PyConES 2016Universidad de Almería2016-10-072016-10-09300:402016-10-07T17:30:00+010017:3000:30HallCAFÉ2016-10-07T15:00:00+010015:0002:30Aulario III - 1 - (0.110)# Introducción a Python para principiantes (basado en Software Carpentry)La mejor forma de aprender a programar es haciendo algo útil, por lo que esta introducción a Python se centrará alrededor de una tarea común: el análisis de datos. En este taller práctico se hará un breve repaso a los conceptos básicos de programación con el fin de automatizar procesos cubriendo la sintaxis de Python (junto a NumPy y matplotlib). Software-Carpentry.org ayuda a investigadores/as de todo el mundo a llevar a cabo más trabajo en menos tiempo y con el «menor dolor posible».### Requisitos previosPara el taller los asistentes deberán de tener instalado Jupyter Notebook, NumPy y matplotlib con Python 3.x. Para ello, recomendamos instalar la distribución Anaconda: <https://www.continuum.io/downloads>Por otro lado deberán de descargar el archivo de datos con el que trabajaremos: <http://swcarpentry.github.io/python-novice-inflammation/setup/>[Software Carpentry](http://software-carpentry.org) es una organización formada por voluntarios/as cuyo objetivo es mejorar la productividad y fiabilidad al trabajar con datos mediate habilidades básicas en el campo de la informática. Los talleres de Software Carpentry son breves pero intensos cubriendo normalmente:* [Automatizar tareas repetitivas](http://swcarpentry.github.io/shell-novice/)* [Llevar control y compartir el trabajo](http://swcarpentry.github.io/git-novice/)* [Programación con Python](http://swcarpentry.github.io/python-novice-inflammation/)* [Manejar datos](http://swcarpentry.github.io/sql-novice-survey/)## ¿Qué vamos a dar?En esta ocasión, instructores de Software Carpentry y ayudantes harán una [introducción a Python](http://swcarpentry.github.io/python-novice-inflammation/) enseñando:- Los conceptos de programación generales analizando datos de diferentes archivos - La sintaxis de Python 3 (haciendo uso de variables, bucles, condicionales y funciones)Utilizaremos Python porque:1. Es libre, bien documentado y se puede ejecutar en cualquier sitio.2. Tiene una gran (y creciente) base de usuarios de diversos campos.3. La experiencia demuestra que Python es más fácil de aprender que cualquier otro lenguaje.4. ¡Estaremos en la PyConES! :)En este taller trabajaremos con [Jupyter Notebook](http://jupyter.org/) (IPython) aunque podrá ser seguido desde cualquier ordenador con Python 3 instalado. Además de Python, haremos uso de librerías especializadas como NumPy y matplotlib para procesar y representar datos de forma más eficiente.## ¿Qué tiene de diferente este taller frente a otros?Software Carpentry ha llevado a cabo [cientos de eventos](http://software-carpentry.org/workshops/) para *miles* de científicos en los últimos dos años y medio. El [material actual](http://software-carpentry.org/lessons/) refleja la última iteración de un proceso en curso para perfeccionar las lecciones. No dudes en apuntarte a este taller **basado** en las [lecciones de Software Carpentry](http://software-carpentry.org/lessons/) si te gustaría:- Mejorar entre un 10-20% tu productividad- Hacer frente a nuevos problemas- Hacer cosas antiguas más rápido- No ver como algo raro una mejora de 10x - Prepararte para el Big Data, la nube, HPC, Open Science…Francisco Navarro-Brull, Zuria Bauer, Benjamin Laken2016-10-07T18:00:00+010018:0002:30Aulario III - 1 - (0.110)TDD BásicoEl objetivo del taller es hacer una introducción a la práctica de TDD (Test Driven Development). TDD es una técnica (workflow) para desarrollar software que consiste en tres pasos: escribir un test, escribir el código que hace pasar el test y una fase de refactor. A través de TDD conseguimos:- Evitar dispersarse y tener mayor foco en los requisitos, puesto que nos centramos en hacer pasar única y exclusivamente el test que hayamos escrito.- Código más “limpio”.- Código mejor testeado.### Requisitos previos<https://github.com/aleasoluciones/pycones2016># Agenda del taller:- Introducción a TDD- Explicación de las herramientas a usar: - [mamba](https://github.com/nestorsalceda/mamba) - [expects](https://github.com/jaimegildesagredo/expects)- Explicación de la Kata- Explicación de las iteraciones- Al lío: iteraciones (3 pomodoros). Cada iteración se compone de: - Descripción del objetivo a conseguir - Desarrollo de las posibles soluciones - Puesta en común de problemas surgidos, logros, etc.- Retrospectiva (feedback) del workshop.# Requisitos:- Equipo con python 2.7 + pip + virtualenv + expects + mamba- Tu editor favorito# Recomendaciones:Realizarlo en parejasJaime Gil de Sagredo, Isidro López, Alberto Pérez2016-10-07T15:00:00+010015:0002:30Aulario III - 3 - (0.020)Personalizando nuestro Tryton ERPDurante el taller explicaremos las posibilidades de personalización de Tryton, un framework para desarrollar aplicaciones de gestión de Empresa, que podemos utilizar cómo base para desarrollar aplicaciones. Partiremos desde una instalación básica, y sobre ella haremos el desarrollo de un nuevo módulo para personalizar la aplicación a nuestras necesidades, viendo durante el taller todas las posibilidades de personalización que nos permite Tryton.### Requisitos previos Python (of course) pip sqlite python-lxml instalado (o tener instalado los python-development headers para compilar-lo) MercurialY las siguientes recomendaciones, aunque no son obligatorias harán que todo sea más fácil: Tener virtualenv instalado y configurado Utilizar python2.7 (sinó habrá que estar compilando el código con 2to3 cada vez que se modifique algo) Si se va a utilizar Windows, tener una MV con Linux por si las moscas.La razón de Windows, es que hace mucho tiempo que no lo toco, por lo que no se si seré capaz de dar soporte a las issues que podan salir, asíque mejor utilizamos linux/mac y tiramos todos con los mismos comandos.Las presentaciones del taller se puede consultar en:<https://pokoli.github.io/customizing-our-tryton>En el taller veremos cómo podemos realizar un módulo para realizar las siguientes modificaciones en nuestro ERP: - Modificar vistas existentes. - Añadir campos a modelos existentes. - Modificar información cuando se rellena alguno de los campos. - Crear nuevos modelos (con sus respectivas vistas). - Añadir validaciones. - Mostrar mensajes de Error a nuestros usuarios. - Añadir botones a los modelos. - Añadir datos calculados (campos Funcionales) - Añadir flujos de trabajo a los modelos. - Ejecutar asistentes para realizar procesos. - Modificar informes existentes. - Añadir nuevos informes. Además, al final se hará un resumen de los lugares dónde podremos contactar con otros miembros de la comunidad para exponer nuestras dudas y solucionar problemas de forma conjunta.Sergi Almacellas Abellana2016-10-07T18:00:00+010018:0002:30Aulario III - 3 - (0.020)Creating Dashboards with GrimoireELK Python Analytics PlatformIn this workshop attendees will learn howto use the GrimoireELK platform to create Kibana dashboards for learning about software development. The data retrieval will be done with Perceval and Arthur which use Python RQ to do it in a distributed way. The data retrieved will be converted to JSON items and stored in a Elastic Search. For processing then data, Python Dask parallel computing library for analytics will be used.Finally all data will be visualized in KIbana.### Required Software####WITHOUT DOCKER* Install Perceval: ```git clone https://github.com/grimoirelab/perceval.gitcd percevalsudo python3 setup.py install```* Clone GrimoireELK repository:```git clone https://github.com/grimoirelab/GrimoireELK.git```To have all the platform in your laptop, it is recommended to installElasticSearch and Kibana.####WITH DOCKERYou need docker and docker-compose installed.* Clone GrimoireELK repository:```git clone https://github.com/grimoirelab/GrimoireELK.git```* Start the gelk-lite docker compose:```docker-compose -f GrimoireELK/docker/compose/bidek-lite.yml up```During the workshop the steps we will follow are:* Explain the full architecture and processes .* Download the GrimoireELK docker image with all the platform already installed and configured.* Select some relevant FLOSS Python projects and retrieve all data for their activity: git, issues, pull requests, mailing lists, stackoverflow and others.* Retrieve all data from those projects and store them in a common ElasticSearch using perceval and arthur.* Describe how the Python perceval backends are develop and create a new one as sample.* Process the data using GrimoireELK and Dask technologies. Modify Python GrimoireELK to process the data for getting new metrics/analytics, changing the Dask parallel graph description with new tasks and implementing them.* Visualize all processed data in Kibana for doing interactive analytics with the data.Alvaro del Castillo San Felix2016-10-07T15:00:00+010015:0002:30Aulario III - 4 - (0.030)Paquetes básicos de Python CientíficoThe Aeropython’s guide to the Python Galaxy!Este workshop será una gran introducción a las poderosas herramientas y paquetes que Python puede ofrecer a los científicos. Empezaremos presentando el Notebook de Jupyter, y continuaremos usándolo para explorar los conceptos básicos de Numpy, SciPy, Matplotlib y muchos más. En el taller usaremos como hilo conductor el análisis de datos reales de temas de gran actualidad, como las tendencias de contaminación o las ondas gravitacionales.### Requisitos previos:- Jupyter notebooks- Numpy- Matplotlib- Scipy- Ipywidgets (un poco)- Sympy (un poco)Este workshop es una adaptación condensada del curso de introducción a Python para ingenieros, que desde Aeropython hemos impartido ya con gran éxito más de 15 veces en 5 universidades diferentes. Guiaremos a los asistentes a través de los principales paquetes usados en ciencia, como:- Jupyter Notebook- Interactive Widgets- NumPy- matplotlib- SciPy- Pandas- SymPyPara añadir sabor al taller, seguiremos temas interesantes para ir descubriendo los paquetes mientras trabajamos sobre datos reales. Por ejemplo, usaremos datos de temperatura y polución para encontrar patrones subyacentes, e intentaremos replicar parte del trabajo realizado en el experimento en el que se descubrieron las Ondas Gravitatorias, que fue también desarrollado en Python.Siro Moreno2016-10-07T18:00:00+010018:0002:30Aulario III - 4 - (0.030)Simplifica tu vida con sistemas complejos (y algoritmos genéticos)¿Qué es un algoritmo genético? ¿Qué es un sistema complejo? ¿Cómo puedo usarlos para resolver problemas complicados? En este taller abordaremos estos temas y aprenderemos a diseñar y usar algoritmos de este tipo con Python.### Requisitos previos- Jupyter notebook- Numpy- MatplotlibEl taller se encuentra dividido en tres bloques temáticos:**Bloque A: Sistemas complejos.**¿Qué tienen en común el funcionamiento de un hormiguero y un cerebro?¿En qué se diferencian de un ordenador?¿Podemos programar algoritmos que se comporten de manera parecida a los primeros para abordar problemas de manera diferente? **Bloque B: Métodos heurísticos y algoritmos genéticos**¿Cómo se optimiza algo que no se puede derivar? ¿Qué es un algoritmo genético y cómo se usa? ¿Cuáles son las características de este tipo de algoritmos, y cómo las podemos implementar en Python?**Bloque C: Ajuste de algoritmos, técnicas y paquetes de Python**¿Qué es el dilema exploración-explotación y cómo afecta a estos algoritmos? ¿Cómo podemos ajustarlos para que resuelvan nuestros problemas con rapidez y eficacia? ¿Qué paquetes de Python nos pueden ayudar?Cada bloque incluirá parte de teoría y parte de práctica, y estará enfocado a presentar y comprender los conceptos clave que determinan cada tema de manera gráfica e interactiva.Carlos DoradoSiro Moreno2016-10-07T15:00:00+010015:0002:30Aulario III - 5 - (0.090)Clonando Evernote con FlaskTaller donde se aprenderá a trabajar con Flask. Con objetivo de realizar una aplicación para tomar notas.### Requisitos previos<https://github.com/tanrax/flask-note>Flask es un framework minimalista escrito en Python, realmente potente. Una manera fácil y cómoda para iniciarse en el mundo del desarrollo web con Python o para un proyecto propio.En el taller se aprenderá conceptos básicos de **Flask** y **SQLAlchemy** para aplicar como ORM. Se trabajará con **SQLite** como **Base de datos**.Apto para todo tipo de personas con conocimiento en *Python*, otros ORMs y esten experimientados desarrollando páginas webs.La aplicación tendrá la capacidad de crear notas, modificarlas, borrarlas y buscarlas. Se trabajará con *virtualenv* para instalar las bibliotecas y la versión utilizada será *Python 3*.Andros Fenollosa2016-10-07T18:00:00+010018:0002:30Aulario III - 5 - (0.090)Sistemas distribuidos en PythonEn este taller se tratarán algunas herramientas y patrones de desarrollo para crear sistemas distribuidos escalables de altas prestaciones. Se trata de una sesión de programación en vivo donde la teoría se verá mientras se desarrolla un servidor web donde tanto el frontend como el backend son paralelos y escalables.### Requisitos previos<https://github.com/nfqsolutions/python-distributed>Durante el taller se tratarán conceptos básicos y no tan básicos para poder desarrollar aplicaciones paralelas de alto rendimiento a nivel general, como el uso del sistema de ficheros, las colas de mensajes, proxies, brokers, extensiones escritas en otros lenguajes de programación y la compresión en memoria entre otros.Si se quiere seguir la sesión será necesario instalar uwsgi, pyzmq, Cython, numpy, matplotlib y Julia.No son necesarios conocimientos previos específicos, pero sí un nivel relativamente alto de programación en Python para poder seguir los algoritmos que se van utilizando en cada paso.Guillem Borrell Nogueras2016-10-08T11:20:00+010011:2000:30HallCAFÉ2016-10-08T16:40:00+010016:4000:30HallCAFÉ2016-10-08T10:00:00+010010:0000:40Sala CajamarAprendiendo magia negra con Python, optimización estocástica y simuladoresLa optimización mediante algoritmos estocásticos —ej. algoritmos genéticos o por enjambre de partículas— presenta una serie de ventajas frente a los algoritmos _«clásicos»_ deterministas al no requerir el cálculo de las derivadas del sistema por lo que su implementación en simuladores es casi inmediata. En esta charla se explicará mediante código las ventajas del algoritmo PSO (_Particle Swarm Optimization_) y se mostrarán ejemplos no triviales haciendo uso de simuladores de procesos.La simulación y optimización de procesos han experimentado un crecimiento considerable durante los últimos años. Con el avance, abaratamiento de arquitecturas y mejora de software para procesamiento en paralelo, muchas industrias apuestan por algoritmos estocásticos para mejorar la producción, reducir los costes o disminuir el impacto medioambiental.Debido a la complejidad de la multitud de procesos industriales, es habitual hacer uso de simuladores donde existe un flujo de datos con los que se opera en módulos o bloques de forma secuencial. Sin embargo, con respecto a la optimización, los simuladores no han alcanzado un grado de desarrollo o robustez deseada —no existe aún un botón mágico en los simuladores que “optimice”, por ejemplo, el número de equipos y/o las condiciones de operación.En esta charla, sin embargo, mostraremos con código Python como algoritmos del tipo PSO ([_Particle Swarm Optimization_](https://es.wikipedia.org/wiki/Optimizaci%C3%B3n_por_enjambre_de_part%C3%ADculas)) pueden ser acoplados fácilmente con simuladores de procesos para resolver problemas de optimización. Recientemente en Python han aparecido librerías especializadas en algoritmos [_libres de derivadas_](https://en.wikipedia.org/wiki/Derivative-free_optimization) ([OpenMDAO](https://en.wikipedia.org/wiki/OpenMDAO)-NASA, [PyGMO](http://esa.github.io/pygmo/)-ESA o [PySwarm](http://pythonhosted.org/pyswarm/), entre otras). Éstas, junto al uso de simuladores (propietarios o libres) pueden ser muy interesantes en un gran número de aplicaciones como herramientas de optimización de caja negra.Por ejemplo, en el ámbito de la ingeniería de procesos químicos, los [simuladores secuenciales modulares](https://en.wikipedia.org/wiki/List_of_chemical_process_simulators) (como Aspen Hysys, Aspen Plus, Pro/II, ChemCAD…) son ampliamente utilizados para el diseño refinerías, plantas químicas y/o tratamiento de aguas. Estos paquetes de software incluyen bibliotecas termodinámicas y modelos numéricos que conducen a predicciones precisas de los procesos implementados. Por ello y a modo de aplicación real, combinaremos finalmente estos simuladores con Python, lo que nos permitirá obtener un ahorro económico significativo en el diseño final de una planta de procesos químicos.Esta charla será impartida por investigadores de ingeniería química de la Universidad de Alicante miembros de [CAChemE](http://cacheme.org/) y su estructura será la siguiente:* Introducción a la problemática en la optimización matemática (5 min). Se realizará una introducción visual a conceptos de optimización determinista, así como a las ventajas e inconvenientes que presentan los algoritmos estocásticos.* Implementación del algoritmo PSO (15 min). Se verán ejemplos sencillos de optimización con Python y se explicará de manera breve cómo acelerar su tiempo de ejecución. * Serie de ejemplos de problemas de optimización en ingeniería (10 min), con especial hincapié en ejemplos reales en la industria e ingeniería química.https://github.com/CAChemE/stochastic-optimizationJuan Javaloyes, Fran Navarro2016-10-08T10:40:00+010010:4000:40Sala CajamarPandas - not just for data scientistsPython performance limitations and how pandas can be used to overcome some of these limitations, and not just by data scientists, but also "regular" pythonistas - from research phase to production.Uzi Halaby-Senerman2016-10-08T11:50:00+010011:5000:40Sala CajamarUsing social media geotagged data to estimate railway useOn railway planning, linking demand and supply is a challenge to project, provide and validate better international services that are both reliable and of high quality. We present a Python tool to estimate railway traffic demand through the detection of a set of geotagged tweets overlapping railway lines in Europe.Antònia Tugores2016-10-08T12:30:00+010012:3000:40Sala CajamarDeeplearning Image Recognition with Python"An image says more than 1000 words"At StyleSage we collect and analyze e-commerce data from 150 million fashion products across 100+ countries - updated daily! Analyzing the images and understanding them is a critical step in categorizing products, extracting attributes and detecting outliers.Join us to understand how Convoluted Neural Network (CNN) algorithms can be used in Python for deeplearning image analysis.Robert Figiel, Co-Founder & CTO of StyleSage - Fashion meets Big DataRobert Figiel2016-10-08T13:10:00+010013:1000:40Sala CajamarPython o como mejorar la vida de un administrador de sistemasAmig@ Sysadmin, ¿tus bash se marchitan?... , ¿vives perdido en un mundo de PIPEs sin sentido?.. , ¿te peleas con greps y awks demoniacos? ..., ¿tus scripts pueden hacer sangrar los ojos? … tranquil@ , no estas sol@ … Python es la medicina que necesita tu código.Juan Diego Godoy Robles2016-10-08T15:20:00+010015:2000:20Sala Cajamar¿Puede la máquina aprender a programar?¿Puede un ordenador quitarme el trabajo? ¿Podría el ordenador programar lo que yo le indique? En esta charla veremos cómo representar el código de manera que el ordenador pueda entenderlo (y viceversa) y aplicaremos diferentes técnicas de inteligencia artificial para tratar de que la máquina programe por su cuenta.Federico Mon2016-10-08T15:40:00+010015:4000:20Sala CajamarBreve introducción a los algoritmos genéticosEn esta charla presentaremos el concepto de los algoritmos genéticos, desde un punto de vista general y sencillo.Muchas veces oímos hablar sobre algoritmos genéticos usados en multitud de tareas y resolviendo problemas complicados de manera casi mágica. Pero, ¿qué son exactamente los algoritmos genéticos? ¿En qué se basan?La realidad es que se trata de un concepto muy sencillo, y sorprendentemente fácil de implementar en python. Esta charla está enfocada en presentar los conceptos y tácticas que se usan en estos algoritmos, y no se verá apenas código, por lo que es adecuada para gente de cualquier nivel que tenga curiosidad por introducirse en este tema.Siro Moreno2016-10-08T16:00:00+010016:0000:40Sala CajamarHow to Improve Your Diet and Save Money with PythonImagine if you could, using Python, find the perfect and healthiest menu while also saving money. In this talk you will learn how you can improve your diet and minimize the cost of your menu each time you go to a fast food restaurant.To do this, we will make an introduction to the diet problem —a classic problem within the field of mathematical optimization— and how to work with an specialized Python library (Pyomo) that uses state of the art optimization solvers to solve real-world problems.Optimization (also known as mathematical programming) can be simplified to a selection of the best element/s (minimum or maximum) for a given circumstance (objective function), which may include some conditions (subject to restrictions).One of the classic problems in field optimization is the (diet problem) [http://www.neos-guide.org/content/diet-problem]. This problem came up during the Second World War when the Army wanted to minimize the cost of feeding their soldiers in the field (objective function) while maintaining a balanced diet.For this occasion, we will take as an example a set of foods from a well-know fast food restaurant and try to minimize the cost of the menu while being as healthy as possible. To solve this problem, there are plenty of commercial algebraic modeling languages —such as GAMS and AMPL—, which are used mainly in academia and professional environments. But as Python lovers, we can use several libraries for solving such optimization problems, —e.g. [CVXOpt] (http://cvxopt.org/) [CVXPy] (http: // www.cvxpy.org/en/latest/) [PULP] (https://pythonhosted.org/PuLP/) [OpenOpt] (http://openopt.org/Welcome), or [Pyomo] (http: //www.pyomo.org/).In this talk we will use Pyomo because: * We can use it as an Algebraic Modeling Language, being similar to AMPL and GAMS.* Solve these problems by means of a variety of solvers such as GLPK, Gurobi, CPLEX, CBC and PICO.* It is a free, open source library (BSD license), being developed by Sandia National Laboratories, USA.* Supports Python 3 and is easy to install.* Moreover, it automatically connects with NEOS server (web platform that gives free access to commercial solvers).The talk will be divided in three parts:1. Introduction to Mathematical Programming/Optimization (10 min): visual introduction to optimization concepts including restrictions and non linearties (linear Programming, Nonlinear Programming, ILP, MIP, MINLP).2. Introduction to the diet problem, Pyomo sintax and a quick note for the installation (15 min): showing how to improve your diet and save money when ordering food in fast food restaurants.3. Optimization problems in engineering (5 min): showing more advanced optimization examples in the area of process engineeringDon't miss this talk if are one of those "undecided pythonistas" that want to learn how to solve optimization problems with determination ;)Zuria Bauer Hartwig2016-10-08T17:10:00+010017:1000:40Sala CajamarPython for developing a real-time automated trading platformNowadays Python is the perfect environment for developing a real-time automated trading tool. In this talk we will discuss the development of: a general-purpose multiagent-system module using Pyro and ZeroMQ; a platform, based on it, for developing automated trading strategies using Numpy, Numba, Theano, etc.; and a GUI for visualizing real-time market data using PyQtGraph and Qt.Miguel Sánchez de León Peque2016-10-08T17:50:00+010017:5000:40Sala CajamarosBrain: a general-purpose multi-agent system moduleosBrain is a general-purpose multi-agent system module written in Python. Agents run independently as system processes and communicate with each other using message passing. osBrain uses ØMQ for efficient and flexible messsage passing between agents. It also uses Pyro4 to ease the configuration and deployment of complex systems. Multi-agents systems can be applied for transportation, logistics, defense and military applications, networking, load balancing, self-healing networks...Miguel Sánchez de León Peque2016-10-08T09:00:00+010009:0000:15Sala PSFApertura y presentación de Cajamar PythonHack 2016 **[Visitar site de la Cajamar PythonHack 2016 >>](http://www.cajamardatalab.com/datathon-cajamar-pythonhack-2016/)**2016-10-08T09:15:00+010009:1500:45Sala PSFTensorFlow y Space Apps Challenge2016-10-08T09:15:00+010009:1500:45Sala PSFTensorFlow y Space Apps Challenge¿Ha cambiado la aproximación de la visión por ordenador y la inteligencia artificial? ¿Cuáles son los casos de uso que puede dar la tecnología de TensorFlow? Gema nos contará en qué consisten las redes neuronales y que aplicaciones tienen, ¡incluyendo demos en directo!Gema Parreño2016-10-08T10:00:00+010010:0000:40Sala PSFHola mundo, desde el fichero a la pantallaExplicación de la vida de un programa sencillo en Python desde que se lee el fichero de código, hasta que finalmente llega a la pantalla. El objetivo es explicar todas las fases por las que pasa un programa Python dentro del interprete (más concretamente el interprete CPython) con cierto nivel de detalle.Python es un lenguaje interpretado, pero ¿Qué significa esto? ¿Qué pasa cuando yo ejecuto un programa? ¿Qué hace realmente el interprete por mi? Estas son las preguntas que trataré de responder durante la charla. Como el interprete convierte desde un fichero de texto plano, a la ejecución del mismo en nuestros ordenadores.Existen varias fases por las que pasa el interprete y las recorreremos con un mínimo nivel de detalle para entender realmente que está pasando, desde el parséo a la interpretación del byte code generado.Jesús Espino2016-10-08T10:40:00+010010:4000:40Sala PSFQA 4 PythonIn this talk we will cover how we apply QA in Emergya for Python projects, covering from the inception phase to the delivery phase.We will see a showcase of a real python project to learn by examples (code guidelines definition, Continuous Integration system, Continuous Unit and Functional testing, Performance testing and Continuous Delivery.In this talk we will cover how we apply QA in Emergya for Python projects, covering from the inception phase to the delivery phase.We will see a showcase of a real python project to learn by examples (code guidelines definition, Continuous Integration system, Continuous Unit and Functional testing, Performance testing and Continuous Delivery.We will focus the talk in how a team should manage a Python project from the QA side, showing how a team of developers and QA build a real team.Alejadro Gómez Morón2016-10-08T11:50:00+010011:5000:40Sala PSFTest de infraestructura con pytestActualmente el testing es una práctica más que aceptada dentro del desarrollo de software, esta charla trata de ver cómo podemos aprovecharnos de los beneficios del testing dentro de un entorno de de sistemas. Para ello nos ayudaremos de nuestra librería de testing favorita: pytest, así como de otras librerías como requests o testinfra, para testear nuestra infraestructura.[*Pytest*](http://pytest.org) es una fantástica librería de testing para Python. En esta charla veremos como ayudarnos de *pytest* para testear nuestra infraestructura. Para empezar, de forma breve, usaremos [*requests*](http://docs.python-requests.org) junto con *pytest* para comprobar nuestros servicios y despliegues web.Continuaremos después con test propios de infraestructura utilizando [*testinfra*](http://testinfra.readthedocs.io). Realizaremos un recorrido por las capacidades de *testinfra* y *pytest*, y que tipo de tests podemos realizar para probar nuestros servidores.Para finalizar hablaremos de *TDI*, que no se refiere a un tipo de motor muy contaminante sino a *Test Driven Infraestructure*, y de como podemos utilizar un ciclo estilo *TDD* para configurar nuestras máquinas o contenedores. Si nos queda tiempo, terminaremos con un pequeño ejemplo con *testinfra* y *Ansible*.Agustín Herranz Cecilia2016-10-08T12:30:00+010012:3000:40Sala PSFHeydjbot: Spotify & Telegram. Una historia de amorLos bots están de moda. Prácticamente todos los servicios de mensajería están abriendo sus plataformas para facilitar la creación de bots.En la charla veremos como crear un bot de Telegram desde 0 y como integrarlo con la API de Spotify para recibir sugerencias, buscar canciones, configurar playlists...La charla será 100% práctica. Veremos como crear un bot desde 0 y como configurarlo para que "hable" con la API de Spotify.Además, haremos una segunda versión con Flask que permitirá hacer el bot multiusuario, así como acceder a todos los datos privados del usuario en Spotify, lo que nos permitirá crear Playlists, añadir canciones, recibir sugerencias, hacer búsquedas más completas, etc.La charla requiere un mínimo de conocimientos de Python, Flask y de conceptos como APIs REST y OAuth.Jose Maria Alvarez Rey2016-10-08T13:10:00+010013:1000:40Sala PSFAplicaciones de escritorio con python3 y gtk+Introducción básica al desarrollo de aplicaciones de escritorio gnome con python3, utilizando los bindings automáticos generados por Gobject Introspection.Gtk+3 es un toolkit gráfico avanzado que permite crear aplicaciones gráficas con python de manera sencilla, que se integren completamente en entornos linux y sobretodo en el escritorio gnome.Gobject Introspection (gir) es una tecnología que vino de la mano de Gtk+-3, con esta tecnología se generan bindings "automáticos" para diferentes lenguajes, simplemente anotando las funciones en el código C, por lo que desde python tenemos acceso a todo el toolkit Gtk+3 además de a todas las bibliotecas C que implementen gir.Daniel García Moreno2016-10-08T15:20:00+010015:2000:20Sala PSFTraveling in "datetime"Trabajar con tiempo y fechas en python no siempre es tan sencillo como debería, veremos los diferentes módulos que tienen python para ello junto con los problemas mas comunes.Tras un repaso rápido sobre el modulo time y datetime veremos los diferentes problemas que surgen al trabajar con zonas horarias y operaciones sobre fechas. La presentación incluirá un pequeño repaso sobre las diferentes formas de representar fechas.Mario Corchero2016-10-08T15:40:00+010015:4000:20Sala PSFGitHubCity: una biblioteca para conocer tu comunidadGitHubCity es una biblioteca escrita en Python creada para conocer cómo es tu comunidad de desarrolladores de software libre. Podrás saber quienes son los usuarios que pertenecen a tu misma ciudad, clasificarlos según varios métodos... ¡Ven a ver cómo funciona y cómo sacarle partido para atraer a nuevos desarrolladores a tus eventos!GitHubCity es una biblioteca escrita en Python creada para conocer cómo es tu comunidad de desarrolladores de software libre. Mediante peticiones a la API Rest de GitHub, se extraen datos de los usuarios, siendo filtrados por una ubicación. Podrás saber quienes son los usuarios que pertenecen a tu misma ciudad, clasificarlos según varios métodos... ¡Ven a ver cómo funciona y cómo sacarle partido para atraer a nuevos desarrolladores a tus eventos! Durante la charla se espera que se aporten nuevas ideas para mejorarla y algunas nuevas funcionalidades que puedan ser útiles.Israel Blancas Álvarez2016-10-08T16:00:00+010016:0000:40Sala PSFMi experiencia organizando eventos Python usando Python!Contaré cómo es organizar un evento de Python utilizando herramientas desarrolladas en Python.Voy a presentar herramientas conocidas aplicadas a la organización de eventos y también otras que son desarrollos, de Software Libre, propios, y de colegas con los que hemos organizado varios eventos en Argentina, que simplificarán las tareas de organizadores y oradores.Busco dar una mirada integral de cómo es comenzar a organizar un evento desde el momento cero hasta sus partes más complejas.Contaré cómo es organizar un evento de Python utilizando herramientas desarrolladas en Python.Voy a presentar herramientas conocidas aplicadas a la organización de eventos y también otras que son desarrollos, de Software Libre, propios, y de colegas con los que hemos organizado varios eventos en Argentina, que simplificarán las tareas de organizadores y oradores.Busco dar una mirada integral de cómo es comenzar a organizar un evento desde el momento cero hasta sus partes más complejas.Buscaré contar mi experiencia tras haber organizado 5 Jornadas de Software Libre, 2 Python Days, y PyConAr en el año 2011 en donde tuve la oportunidad de ser el Coordinador General del Evento.Presentaré mi experiencia, así como también las herramientas que me ayudaron a manejar muchos de los eventos. También mostraré aplicaciones propias, y de amigos que trabajaron conmigo en la organización de eventos, que serán de mucha ayuda para organizadores y oradores.Juan Rodríguez Monti2016-10-08T17:10:00+010017:1000:40Sala PSFSOMOS LO PEORVicios y tópicos del informáticos en general y de programadores en particular: cómo nos relacionamos, cómo elegimos la tecnología, cómo realizamos estimaciones o nos relacionamos con los clientes.Basta entrar en un una lista de correo, trabajar en un sector técnico o tomar unas birras con los colegas para darnos cuentas que los informáticos en general somos muy particulares.* nuestra visión del tiempo: hay un tiempo informático: una hora, un día, una semana o un mes. Esto tiene un impacto brutal a la hora de hacer estimaciones.* cómo defendemos la tecnología que utilizamos.* cómo estimamos la complejidad* cómo comunicamos con clientes y proveedoresLa charla tiene por objeto mostrar los vicios más comunes del sector en su relación con los colegas y el mundo y mostrar algunas posibles soluciones.ANTONI ALOY2016-10-08T17:50:00+010017:5000:40Sala PSFPython: Vision ArtificialCharla donde se explicará el uso de Python con manejo de imágenes y visión artificial. En este caso hablaremos de como podemos usar el lenguaje Python a la hora de utilizar imágenes y como obtener información de estas.Ya sea usando un móvil o una Raspberry Pi, si te interesa la visión artificial, esta es tu charla.Charla de introducción a la visión artificial utilizando _Raspberry Pi_ y _dispositivos móviles_. En este caso, vamos a utilizar librerías como _OpenCV_ con python y como utilizarla para obtener información de imágenes y como crear aplicaciones que nos permitan por ejemplo detectar objetos y seguirlos a través de un vídeo.Se tratará como obtener las imágenes, pre procesarlas y como analizarlas para obtener información y como crear algoritmos de reconocimiento de imágenes.Esta charla esta orientada a personas que quieran aprender a utilizar la visión artificial en dispositivos móviles o en otro tipo de dispositivos como _Raspberry Pi_.Victor Suarez Garcia2016-10-08T18:30:00+010018:3000:45Sala PSFCHARLAS RÁPIDAS2016-10-08T19:15:00+010019:1500:15Sala PSF</event><event id="18"><date>2016-10-08T19:15:00+0100</date><start>19:15</start><duration>00:15</duration><room>Sala PSF</room><title>#ThePymientoProject Arte-Tecnología-Experimentación conectados por PythonEn 2016, un grupo compuesto por los bohemios más inquietos de Almería, se unieron por un lenguaje de programación en el que no habían programado.No tardaron en robar unos portátiles del coworking donde se encontraban recluidos.Hoy, buscados todavía por los dueños de los portátiles, sobreviven como cazadores de fortuna. Si usted tiene algún problema y si los encuentra, quizá pueda arrestarlos...**THE-PYMIENTO-PROJECT**ay una zona donde cofluyen la tecnología, el arte y demás facetas culturales con las personas. Pymiento es un grupo de personas que se ha propuesto invadir esa interseccción de parcelas y no dejar títere con cabeza ¿Por qué? Porque vivimos en un mundo cambiante y necesitamos alfabetizarnos digitalmente._**"An Open World begins with an Open Mind"**_Hemos tirado nuestros prejuicios al contenedor de residuos tóxicos y abierto nuestras inquietudes al mundo. Usando Python como herramienta, basamos nuestro aprendizaje en la creación de obras de manera cooperativa y multidisplinar. Nuestros Zen es sencillo _**"nadie debe ser discriminado por lo que conoce o lo que no conoce, así que si tienes ganas de hacer cosas, únete a nosotros"**_.Adolfo Rosilloresto del equipo de #ThePymientoProject2016-10-08T20:00:00+010020:0002:00Museo de AlmeríaExposición #ThePymientoProject en el Museo de Almería2016-10-08T10:00:00+010010:0000:40Sala UALCómo construir un API del que que tus padres se sientan orgullososNecesitas construir una API, ¿pero conoces qué herramientas deberías usar? Cada día aparecen nuevas herramientas pensadas para crear, testear y desplegar APIs. En esta charla se presentará de manera resumida un caso real: el proceso de construcción de una API usando Python desde su diseño hasta su puesta en producción. Veremos los problemas encontrados por nuestro equipo y obviamente sus soluciones.Necesitas construir una API, ¿pero conoces qué herramientas deberías usar? Cada día aparecen nuevas herramientas pensadas para crear, testear y desplegar APIs. En esta charla se presentará de manera resumida un caso real: el proceso de construcción de una API usando Python desde su diseño hasta su puesta en producción. Veremos los problemas encontrados por nuestro equipo y obviamente sus soluciones.Adrián Matellanes2016-10-08T10:40:00+010010:4000:40Sala UALManejo de static con bower y gulp para DjangoDentro de un proyecto Django necesitamos gestionar a menudo ficheros estaticos, como CSS, LESS/SASS, JS, etc. La velocidad a la hora de servirlos es clave para tener una buena web, asi como una gestión fácil de los mismos facilita la gestión diaria del programador. Utilizaremos el gestor de paquetes BOWER para las dependencias y GULP para la ejecución de tareas con nodeJS, como la concatenación y el minimizado de ficheros css y js.En Django normalmente tenemos que incluir librerías de JS así como nuestro código. Además, los estilos los podemos incluir de librerías externas, tanto less/sass/css y nuetros propios estilos.Como programadores necesitamos poder gestionar estos ficheros, tanto en la fase de desarrollo como en el posterior despliegue.Veremos como podemos utilizar Bower para gestionar las librerías que necesitamos en nuestro proyecto (como jquery, bootstrap, Backbone, Toastr, ..) y mediante Gulp las iremos minimizando e integrando en nuestro template base de Django. Para los estilos, utilizaremos también Bower y mediante el compilador de less, iremos generando los ficheros css necesarios para nuestra web.Finalmente, mediante bower y gulp veremos como somos capaces de generar un template base para Django, donde se incluyan todas las dependencias minimizadas y con una marca temporal para facilitar el cacheo en el navegador, sirviendo el mínimo número de ficheros posibles.Tomas Garzon Hervas2016-10-08T11:50:00+010011:5000:40Sala UALScaling Django - Running Django in KubernetesRunning Django in a single machine is easy. Running Django in a few machines becomes a bit more difficult, so, you look at containers but running Django in Docker can be a bit frustrating. During this talk we will see how to define, build and run a distributed Django application using docker and kubernetes.Ivan Pedrazas2016-10-08T12:30:00+010012:3000:40Sala UALDesplegando DjangoHay vida más allá del "python manage.py runserver". Esta charla tratará de desvelar las múltiples y diferentes maneras de desplegar proyectos de Django. Para ello repasaremos todas las herramientas posibles, desde los simples bash scripts a los PAAS (Platform as a Service) pasando por fabric, paramiko, cosas hechas en ruby, paquetes deb o rpm, sistemas de gestión de configuraciones, contenedores de docker y algún que otro sortilegio más!Hay vida más allá del "python manage.py runserver". Siempre que hay charlas de Django un termina pensando, muy bien ¿ y ahora qué? ¿como despliego esto?. Esta charla va precisamente de eso, de intentar poner el foco las mejores maneras de desplegar Django en base al tipo de proyecto, tipo de cliente y tipo de tecnologías disponibles. Para ello revisaremos todo, desde lo más sencillo a lo más complicado. Daremos un breve repaso por las diferentes tecnologías que podemos usar para desplegar: bash, paramiko, fabric, ansible, salt, chef, rpm/deb, docker, PAAS (Platform as a Service), etc. Sin dejar a un lado cosas como sistemas operativos, servidores web, wsgi, integración continua, servicios en la nube.Roberto Majadas Lopez2016-10-08T13:10:00+010013:1000:40Sala UALChannels is coming: real-time web in DjangoTradicionalmente Django ha estado ligado al modelo request-response, no obstante la con la llegada de Channels (previsiblemente para la release 1.11 o 2.0) Django soportará de forma nativa WebSockets y HTTP2 además de la posibilidad de manejar y gestionar tareas en segundo plano. En esta charla aprenderemos los conceptos básicos que introduce Channels en Django, así como el diseño e integración en tus proyectos.# Channels is coming: real-time web in DjangoDesde el primer lanzamiento hace diez años, Django se ha construido en torno a un ciclo de request-response; llega una petición, su vista la procesa y devuelve una respuesta. No obstante a medida que avanzamos en la era de los WebSockets esto ya no parece una abstracción lo suficientemente completa.El proyecto Channels permitirá a Django dar soporte nativo para protocolos como WebSockets y HTTP2 manteniendo al mismo tiempo el modelo vista de Django.Otra de las novedades que traerá Channels son las tareas en segundo plano como por ejemplo, tratamiento de imágenes después de que hayan sido subidas y se haya recibido una respuesta satisfactoria.La charla cubrirá: - Situación actual y modelo de abstracción WSGI/view. - WebSockets y protocolos similares. - Cómo Channels absorbe estos conceptos de la forma más cercana al modelo vista de Django. - Ejemplos del uso de los canales para hacer cosas como un chat o el procesamiento de una imagen en segundo plano. - Preguntas frecuentes.José Manuel Rivas García2016-10-08T15:20:00+010015:2000:20Sala UALAdelgazando los modelos de DjangoCuando una aplicación de Django crece, sus modelos acaban siendo un contenedor infinito de métodos de todo tipo, sus vistas acaban actuando como capa intermedia de lógica, se generan una gran cantidad de módulos de utilidades y cualquier import se convierte en una dependencia circular. Proponemos una arquitectura para hacer frente al problema de los "Fat Models"Probablemente empezaste creando una aplicación de Django que podía presumir de "limpia". Tus modelos tienen un par de métodos añadidos, con lógica sencilla. Tus vistas hacen consultas simples y devuelven templates con un contexto razonable.Con el tiempo, los modelos empiezan a cambiar, necesitas hacer vistas que devuelven contextos con datos más complejos, aumenta la cantidad de métodos en los modelos, las vistas empiezan a implementar lógica y, ahora que lo piensas, puedes reutilizar esa función, así que la sacas a un módulo de utilidades, quizá lo decides bautizar como controlador.Después de todas esas fantásticas nuevas features que has conseguido implementar, tienes modelos de cientos de líneas, lógica desparramada en varios ¨controladores" que importas en tantos módulos que, cada vez que creas uno nuevo, optas por copiar y pegar los import de siempre. Ah, y cada vista tienen más lógica que tu trabajo fin de carrera. ¿En cual de los "controladores" estaba esa función que te da una lista de ids y nombres de usuarios con datos sobres sus vehículos y sus casas? ¿En el controlador de usuarios, el de vehículos, el de casas o el controlador de controladores?No te preocupes, hay varias soluciones. Nosotros te proponemos la que utilizamos en StyleSage, basada en una clara división de responsabilidades entre modelos, proxy models, managers y vistas. Verás como lo encuentras todo a la primera, ¡Y sin dependencias circulares!Héctor Pablos López2016-10-08T15:40:00+010015:4000:20Sala UALCordova, desarrolla apps multiplataformas sin morir en el intentoAprende a realiazar aplicaciones multiplataformas para Android, iOS, Ubuntu Phone, Windows Phone y Web. Todo a través de HTML, CSS, Javascript y la magia de Apache Cordova.Desarrollar Apps nativas puede ser un auténtico dolor de cabeza. Sobretodo si tienes que realizarla para más de una plataforma. Al menos con **Android** y **iOS**. ¿Qué tengo que saber? ¿ *Java*, *Swift*, *C#*, *C++* y despegar con un avión a reacción desde un portaviones? No es necesario. Con **Apache Cordova** solo tendrás que saber un lenguaje: *Javascript*. Deja entrar a tu vida a las Apps híbridas. Trabaja con **Android**, **iOS**, **Ubuntu Phone**, **Windows Phone** y **Web**. Observa sus beneficios, sus limitaciones y usos prácticos. Todo ello gracias a *Apache Cordova*. A través de la experiencia del conferenciante se contará anecdotas y diferentes trabajas realizados. Siempre contando con un *Backup* en **Django** y un *Frontend* en **Javascript**. Además, y si el tiempo lo permite, realizará en directo un **cliente de Twitter multiplataforma**.Andros Fenollosa2016-10-08T16:00:00+010016:0000:40Sala UALEfficient Django¿Es Django escalable? ¿Cómo sobrevivir a picos de tráfico? ¿Qué pasa cuando la base de datos crece demasiado? ¿Cómo encontrar los cuellos de botella?Repasaremos los conceptos básicos, utilizaremos métricas para detectar cuellos de botella, y finalmente veremos trucos y consejos para mejorar la escalabilidad y el rendimiento de un proyecto Django.¿Es Django escalable? ¿Cómo sobrevivir a picos de tráfico? ¿Qué pasa cuando la base de datos crece demasiado? ¿Cómo encontrar los cuellos de botella?Repasaremos los conceptos básicos, utilizaremos métricas para detectar cuellos de botella, y finalmente veremos trucos y consejos para mejorar la escalabilidad y el rendimiento de un proyecto Django.Temas principales:- Arquitectura escalable- Rendimiento de la base de datos- Detección de cuellos de botella- Monitorización, profiling, debugging- Optimizacion de queries- Rendimiento del admin- Colas y workers- Tests más rápidosDavid Arcos2016-10-08T17:50:00+010017:5000:40Sala UALPython y empresa: introducción a los problemas básico de optimización matemática.La optimización o programación matemática mediante lenguajes de modelado algebraico es utilizada en la industria para la resolución de diferentes problemas, que van desde la selección óptima de equipos y recursos hasta la gestión logística de una empresa. En esta charla se presentará Pyomo y se realizará una introducción a los principales problemas de optimización, como el problema de la mochila, el problema del viajante de comercio y demás, base de problemas de optimización logística mayores.La optimización de procesos industriales ha experimentado un crecimiento considerable durante los últimos años. Las industrias modernas apuestan por ella para mejorar la producción, reducir los costes, disminuir el impacto ambiental e incrementar la seguridad. En este sentido, es sensata la introducción y formación de los nuevos ingenieros en esta rama de la ciencia. Resulta curioso pensar que en el ámbito de las ciencias de la computación, la optimización suele hacer referencia a la reducción en el tiempo de ejecución del programa. Pero la optimización matemática (también conocida como investigación de operaciones o programación matemática) no tiene nada que ver con este problema y, en muchos casos, la formación que se recibe en las universidades no pasa de explicar el algoritmo SIMPLEX para la resolución de problemas lineales con variables continuas. Un problema de optimización consiste, a grandes rasgos, en maximizar o minimizar una función real eligiendo sistemáticamente valores de entrada (tomados de un conjunto permitido) y calculando el valor de la función. Este problema se vuelve interesante cuando aparecen restricciones (lineales y no lineales) y variables enteras (para modelar la toma de decisiones discretas). Multitud de problemas de optimización en las empresas pueden llegar a expresarse a partir de un pequeño conjunto de problemas de optimización sencillos, como el problema de la mochila o el problema del viajante de comercio. Estos problemas se incrustan, a veces de manera indirecta, en problemas relacionados con la organización de la logística de la empresa. Por este motivo, el estudio y buen conocimiento de esta serie de problemas es básico para comprender y abordar problemas de una magnitud superior, además de ser un buen entrenamiento para introducirse en la sintaxis del modelado algebraico. Dos de los lenguajes de modelado comerciales más utilizados para resolver este tipo de problemas matemáticos son GAMS y AMPL. En Python existen varias bibliotecas que permiten resolver el mismo tipo de problemas como son [CVXOpt](http://cvxopt.org/), [CVXPy](http://www.cvxpy.org/en/latest/), [PulP](https://pythonhosted.org/PuLP/), [OpenOpt](http://openopt.org/Welcome), o Pyomo. Este último, Pyomo.org, resulta interesante ya que:* Permite la modelización matemática en Python tipo AMPL/GAMS* Se comunica directamente los principales solvers como GLPK, Gurobi, CPLEX, CBC y PICO* Es open source (licencia BSD) y está desarrollado por Sandia National Laboratories, USA.* Pyomo (antiguamente conocido como Coopr) es 100% gratuito, maduro y bien documentado* Soporta Python 3 y su instalación es sencilla* Se comunica con NEOS server (plataforma web que da acceso a solvers comerciales de forma gratuita)* Se adapta al modelado de problemas de todo tipo al estar desarrollado en PythonPor lo tanto, Pyomo proporciona una capacidad que se asocia comúnmente con lenguajes de modelado algebraico comerciales como AMPL, AIMMS y GAMS, pero los objetos de modelado de Pyomo están incrustados dentro de Python, un lenguaje de programación de alto nivel con todas las funciones con un rico conjunto bibliotecas científicas. Respecto a sus capacidades como lenguaje de modelado algebraico, Pyomo es compatible con una amplia gama de tipos de problemas de optimización, incluyendo entre otros:* Programación lineal* Programación cuadrática* Programación no lineal* Programación lineal entera mixta* Programación cuadrática mixta entero* Programación lineal entera mixta* Programación estocástica entera mixta* Programación disyuntiva generalizada* Ecuaciones algebraicas diferencialesLa charla queda estructurada de la siguiente manera:* Introducción a la optimización matemática (10 min). Se realizará una introducción a los conceptos de optimización con restricciones. * Breves notas de instalación e introducción a la sintaxis de Pyomo (5 min): donde se explicará de manera breve como instalar Pyomo y como se trabaja con él. * Ejemplos (15 min): Resolución del problema de la mochila y el problema del viajante de comercio con Pyomo. ¿Quiénes somos?[CAChemE](http://cacheme.org/) es una asociación sin ánimo de lucro formada por ingenieros químicos (profesionales, docentes y estudiantes) que pretende estimular las posibilidades de software en la ingeniería de procesos químicos. Nuestro objetivo es promover las ventajas de las nuevas herramientas de software libre disponibles y fomentar su uso tanto en la industria como en la universidad. La sede central de CAChemE se encuentra en el [Instituto Universitario de Ingeniería de Procesos Químicos](http://iipq.ua.es/) de la [Universidad de Alicante](http://www.ua.es/).Daniel DomeneCarlos Planelles2016-10-08T13:50:00+010013:5001:30Comedor UniversitarioCOMIDA / ASAMBLEA PYTHON ESPAÑA2016-10-09T11:20:00+010011:2000:30HallCAFÉ2016-10-09T09:20:00+010009:2000:40Sala CajamarOptimización automática de modelos bioinspirados de visiónUna cuestión básica en el campo de la computación neurocientífica es saber cómo se comprime la información del mundo externo en la retina y cómo se codifica en trenes de impulsos para ser enviada al cerebro. En consecuencia, uno de los mayores retos es el desarrollo de una plataforma capaz de transformar el mundo visual externo en un conjunto de señales eléctricas que estimulen, en tiempo real, el córtex visual. Todo ello con Python más NumPy, SciPy, OpenCV, DEAP, y scikit-learn.Rubén Crespo Cano2016-10-09T10:00:00+010010:0000:40Sala Cajamar¿Podemos predecir si Twitter hundirá un banco?El análisis de sentimiento es una herramienta con la cual se exploran las opiniones de un producto mediante valoración automática de mensajes en redes sociales. Se ha utilizado esta herramienta sobre Twitter para extraer una métrica sobre la reputación que tiene una entidad financiera, y poder estimar las pérdidas por riesgo reputacional.En el nuevo ámbito de regulación bancaria durante esta crisis financiera, las instituciones financieras empiezan a necesitar una métrica de cómo se ve afectada su liquidez debido a su reputación en la sociedad… ¿Les quita el sueño a los bancos lo que se publique en Twitter? ¿Debería? Sobre la base del análisis de sentimiento, se plantea una metodología para medir el riesgo para un banco ante la opinión de clientes descontentos expresada en Twitter y la estimación de las posibles pérdida.Carlos Perales González2016-10-09T10:40:00+010010:4000:40Sala Cajamarpy - reglas de asociaciónLas reglas de asociación son una técnica de aprendizaje automático utilizada en distintos campos: recomendación, búsqueda de patrones, clasificación... Una de sus características diferenciales es su sencillez y la facilidad de interpretar los resultados que generan. En esta charla se propone repasar los conceptos de soporte y confianza de las reglas, los algoritmos básicos de construcción de sistemas de reglas y su aplicación en ámbitos aparentemente muy distintos. Evidentemente, en Python!Con los grandes volúmenes de datos disponibles hoy en día, encontrar patrones en los datos es una tarea que tiene gran importancia. Con los nuevos dispositivos móviles disponibles poco a poco la recomendación se está imponiendo sobre la búsqueda. Y también hoy en día podemos encontrar un problema de predicción multiclase en cada esquina.Estos son sólo tres ejemplos para los cuales las reglas de asociación son muy válidas. Las reglas de asociación son un sistema de aprendizaje automático que tiene unas características que las hacen muy especiales: son muy intuitivas y sencillas de trabajar con ellas, y no son complicadas de programar. El resultado de esta técnica por lo general puede resumirse en “si pasa esto, entonces esto otro”, de ahí su fácil implementación. Además, en general ofrecen unos resultados que habitualmente son bastante buenos.En la charla revisaremos los conceptos básicos de las reglas de asociación: items, antecedentes, consecuentes, soporte, confianza y lift y cómo programar un sistema de reglas sencillo en Python.Finalmente se muestran ejemplos de aplicación de los sistemas basados en reglas: patrones, recomendación y predicción.Claudia GuiraoMiquel Camprodon2016-10-09T11:50:00+010011:5000:40Sala CajamarPer Shaolin ad AstraIn this talk we will show how it is possible to build an interactive 3D model of the solar system using the python packages shaolin and poliastro. At EuroPython Juan Luis Cano asked for a 3D visualization module for poliastro, and now we are finally presenting the first version of the poliastro 3D models build using plotly and vpython.We will review the data presented at EuroPython 2016 with an interactive model of the solar system for representing planets and its orbits.Guillem Duran Ballester2016-10-09T12:30:00+010012:3000:40Sala CajamarDistributed computing with DaskDask is a modern parallel computing library completely written in Python, that scales from a single laptop to hundreds of nodes. Forget about having to learn a totally new paradigm to work with massive datasets - Dask mimics pandas and numpy interfaces. Welcome to the future of Big Data!Dask is a moder parallel computing library completely written in Python. It is extremely flexible, being able to work well on a laptop, using all available cores in parallel, or scale up to a cluster of hundreds of nodes.Instead of forcing you to wrap your code to use the map-reduce paradigm, it mimics the numpy array and pandas dataframe interfaces, so you can continue doing everything the same way you always do.Dask main abstraction is a Directed Acyclic Graph called "dask" (distributed task) implemented as a simple dictionary. The different interfaces (bag, array, dataframe) create these dasks, that are later computed in a distributed fashion using a suitable scheduler.Forget about the JVM overhead. The future is now, the future is dask!Israel Saeta Pérez2016-10-09T13:10:00+010013:1000:40Sala CajamarBig Data Analytics low cost con Bcolz / BqueryEl análisis de datos numérico es relativamente “fácil” hasta que el volumen de datos no es manejable en RAM. Ahí aparece bcolz/bquery que opera directamente entre disco y procesador y nos permite trabajar con los datos a la misma velocidad que si lo hiciésemos en memoria para no tener que recurrir a estrategias multinodo… ¡y nuestro análisis de datos siga siendo low cost!Cada año, se incrementa la diferencia entre el tiempo de acceso a memoria y la velocidad de los procesadores. Esto está provocando que se formen cuellos de botella en en el uso de memoria, desaprovechando en muchas ocasiones la capacidad de los procesadores.En el análisis de datos, concretamente en el análisis numérico, es usual que ocurra éste desaprovechamiento, sobre todo si se trabaja con datos estructurados en columnas, lo cual es muy habitual en este tipo de análisis. Es el caso de Python Pandas por ejemplo.Bcolz aparece con la idea de utilizar la máxima capacidad posible del procesador, sin tener que depender de la memoria. Para ello bcolz establece un formato de archivos en el cual los datos se guardan en disco comprimidos, estructurados por columnas y en trozos del tamaño de la caché del procesador.Cuando se realiza una operación sobre archivos bcolz, la información es transportada de disco diréctamente a procesador. El procesador descomprime la información en su caché y opera con ella.Al eliminar la barrera de la memoria, conseguimos utilizar el máximo rendimiento del procesador/procesadores y además podremos hacer análisis que antes eran imposible de realizar sin una estrategia multinodo ya que la memoria es algo muy caro/limitado de conseguir en servidores pero el disco no.Además la compresión está hecha con Blosc, que es un compresor muy rápido, que entre otras cosas ha conseguido tiempos excepcionales en el tiempo de transmisión a la caché, incluso más rápido que un memcpy()Bcolz está obteniendo mejores tiempos de consulta en disco que Pandas en memoria. Tabién puede ser usado en memoria aumentando aún más su velocidad, ya que los datos se almacenan en memoria igualmente comprimidos, aunque no es la idea de su diseño.En la charla se examinarán las posibilidades de Bcolz y la revolución que supone en el análisis de datos numérico, especialmente para quien trabaje con Pandas. Se mostrará que para muchos casos en los cuales por considerarse “Big Data” se opta por una estrategia multinodo del tipo Hadoop, y podría ser mucho más fácil, rápido y menos costoso usando Bcolz.También se verá su aplicación a casos reales en producción y se hablarán de sus ventajas así como de sus limitaciones. Se proporcionará una breve demostración en directo de sus capacidades.J. Diego Hueltes Vega2016-10-09T15:30:00+010015:3000:40Sala CajamarPALM. Big data, streaming y microservicios todo en uno.El entorno Big Data y de streaming analytics empieza a saturarse de herramientas de todos los colores y sabores. Hadoop, Spark, Storm, Flink... Cada uno tiene sus particularidades, fortalezas y debilidades. Cuando apareció la necesidad de renovar las herramientas de cálculo de NFQ Solutions, el objetivo fue crear una herramienta más general y adaptable, PALM, que diera más libertad a los desarrolladores manteniendo las máximas prestaciones.PALM (y su implementación en Python, pylm) es una librería que proporciona las herramientas necesarias para crear servidores ligeros de altas prestaciones. Está separada en dos niveles de abstracción. El primero consta de componentes básicos que pueden utilizarse para crear cualquier tipo de servidor, mientras que en el segundo nivel se ofrecen servidores preparados para implementar topologías master-slave, clusters para map-reduce o microservicios, que se pueden extender fácilmente. En esta charla se tratarán las tecnologías y los algoritmos que permiten crear una librería como pylm en Python en menos de un año, se comentarán las dificultades superadas y los desafíos tecnológicos pendientes.PALM se está convirtiendo en la base las nuevas herramientas de NFQ solutions, como MASTR, una aplicación de nueva generación para la evaluación escalable de riesgos financieros o eCAP, que estima necesidades de capital.PALM, y por extensión pylm, aún no están terminados, pero ofrecen un acercamiento alternativo al ecosistema de Big Data, que está tendiendo a las herramientas de alto nivel. Los primeros resultados son prometedores. La misma versión de eCAP portada a PALM demostró ser ligeramente más rápida que la misma implementación con Spark.Guillem Borrell Nogueras2016-10-09T16:10:00+010016:1000:20Sala CajamarLa gran explosión de datos en astronomía. Cómo sobrevivir a la avalancha de datos usando Python.El volumen de los datos producidos por las infraestructuras astronómicas aumenta exponencialmente. En breve, entrarán en servicio nuevos telescopios punteros como el Square Kilometre Array (SKA), que llegará a generar 100 GB por segundo. El desarrollo de nuevas técnicas para manejar este torrente de datos es crucial. En esta charla muestro como se puede manejar el flujo de datos del radio-telescopio LOFAR, precursor de SKA, con infraestructuras en la nube y la ayuda de Python.El volumen de datos de las observaciones astronómicas se hay ido duplicando año tras año. Con la inminente llegada de nuevas infraestructuras astronómicas se espera que el crecimiento sea aún más acelerado. Por ejemplo, el Large Synoptic Survey Telescope ([LSST](https://www.lsst.org/)) obtendrá 30 TB de datos y disparará 2 millones de eventos cada noche durante 10 años a partir de 2022. El radio-telescopio Square Kilometre Array ([SKA](https://www.skatelescope.org/)) producirá 160 TB de datos en bruto o 100 GB de datos procesados por segundo y deberá almacenar un total de ~4.6 EB de datos cada año. La primera fase de SKA entrará en servicio en 2020. La llegada de este torrente de datos es inminente y su procesado y almacenamiento está lejos de ser trivial. Entre los muchos frentes necesarios para tratar estos datos se encuentran la Inteligencia Artificial, las tecnologías de "big data" o la ciencia ciudadana.[LOFAR](http://www.lofar.org/) es uno de los radio-telescopios precursores de SKA y se encuentra actualmente operativo. Se trata de un radio-telescopio definido por software que observa el cielo en frecuencias entre los 10 y los 250 MHz. Los datos de una observación de 8 horas alcanzan los 20 TB y su calibración, además de ser completamente experimental, requiere unos 3 años de procesador. En la charla mostraré cómo se pueden manejar datos radio-astronómicos de LOFAR con la ayuda de infraestructuras en la nube y Python. Se presentará el resultado de una [propuesta](http://www.lofarcloud.uk/) conjunta entre SKA y Amazon Web Services ([AWS](http://aws.amazon.com/)) para la implementación de nuevos métodos de calibración de grandes volúmenes de datos radio-astronómicos en la nube de Amazon. El papel de Python para el desarrollo rápido de este tipo de métodos es fundamental, permitiendo la creación y modificación rápida de flujos de procesado de datos. El objetivo final es mostrar como la astronomía, una de las ciencias más antiguas, empuja la frontera de la tecnología más moderna con la ayuda de Python.Jose Sabater Montes2016-10-09T16:30:00+010016:3000:20Sala CajamarAnálisis de colores: cómo analizar tendencias de moda automáticamenteVale, tengo 150 millones de fotografías de ropa, bolsos y zapatos. ¿qué color está de moda? Esta sencilla pregunta, con una aparentemente sencilla respuesta da paso a una exposición sobre big data, espacios de color, algoritmos de clusterización y visualización de datos con una aplicación práctica directa.En esta charla veremos cómo analizar los colores de un gran conjunto de imágenes y presentar los resultados de dicho análisis para observar las tendencias cromáticas de moda.Para hacer este análisis hay que resolver varios problemas: ¿cómo extraigo el color dominante de una imagen? ¿como comparo los colores? ¿cómo evalúo los resultados aplicando distintos espacios de color? ¿es mejor usar RGB, HSV, Lab...? ¿cómo ordeno los colores de forma visualmente agradable?Y todo para saber si el año que viene se va a llevar el rojo marsala o el rosa quarzo...Javier Abadía Miranda2016-10-09T09:20:00+010009:2000:40Sala PSFPython y DTraceDTrace es un framework intrumentalización que permite monitorizar un sistema operativo completo y todas las aplicaciones desde una única herramienta. En esta ponencia de habla tanto de DTrace como sobre su integración con Python, permitiendo monitorizar aplicaciones Python de forma transparente y sin requerir ningún tipo de modificación en el código del programa.DTrace es un framework de instrumentalización desarrollado por Sun Microsystems para ayudarle en el desarrollo de SOLARIS 10. Presentado en 2005, se ha portado a Mac OS X, freebsd y algunas versiones de Linux.La audiencia no requiere conocimientos especiales. Hay dos perfiles básicos: programadores que desean analizar el funcionaniento detallado de sus programas y administradores de sistemas que desean analizar con detalle el funcionamiento completo de su sistema y la interacción entre rendimiento y los elementos involucrados: la aplicación o aplicaciones que se ejecutan, el sistema operativo, el hardware implicado (discos duros, tarjetas de red, memorias cachés)Jesús Cea2016-10-09T10:00:00+010010:0000:40Sala PSFDepurando como un pro: porque llenar un script con prints es cutreUna introducción a la depuración, cómo se usa en Python y qué ventajas nos ofrece. Veremos qué herramientas podemos utilizar y las emplearemos para encontrar un error esquivo en nuestro código.# TituloDepurando como un pro: porque llenar una función de prints es cutre# CategoríaDesarrollo# Duración30 minutos# DescripciónTodos sabemos que durante la ejecución de un script podemos conocer el contenido de una variable usando un útil `print(current_passenger)`. ¿Y qué podemos hacer cuando ocurre un error que no esperábamos? ¡Ahá! más prints:```if not finished and remaining: print("Enters the if!") if remaining % 2 == 0: print("It's odd!!") if remaining not in expected: print("WTF!") print(remaining, expected)```¿Te resulta familiar ese patrón? Entonces sta charla te va a encantar. Vamos a utilizar varias herramientas súper sencillas para depurar el código y entender qué está pasando durante la ejecución.# AudienciaTodo aquel que spamee prints para entender qué pasa en el código.# Nivel de la audienciaBásico# ObjetivoLos asistentes a la charla descubrirán la depuración de código eficiente y aprenderán que es su mejor amigo a la hora de entender qué ocurre durante la ejecución. Al salir de la charla dispondrán de una herramienta imprescindible para el resto de sus días con Python.# Descripción detalladaEl modo más rudimentario y sencillo de entender qué ocurre en nuestro código es utilizar un `print()`. Es rápido de escribir, es sencillo y para casos puntuales es eficaz. Pero no es la forma más eficiente si no sabemos el punto exacto en el que la ejecución deja de hacer lo que esperamos de ella.Desde que ocurriera el primer error de segmentación en C existen una serie de aplicaciones llamadas depuradores que permiten examinar de forma detallada la ejecución del código y esta charla es una breve introducción a ellos, a su uso y a herramientas adicionales que utilizar con ellos.Repasaremos los diferentes depuradores disponibles, funciones del lenguaje útiles durante la depuración y cómo se utilizan en un caso real para buscar y corregir un error.# Esquema de la charla 1. ¡Hola! 2. Entendiendo dónde estamos 1. print 2. print print 3. print print spam print 3. Depuradores 1. Para qué sirven 2. Opciones en Python 1. pdb 2. pudb 3. ipdb 4. Ipdb 5. Funciones y estrategias útiles 1. locals() & globals() 2. vars() & dir() 3. repr() 6. Manos a la obra: resolviendo un bug 7. ¿Preguntas?Javi Romero2016-10-09T10:40:00+010010:4000:40Sala PSFBeautiful Python (in Spanish)Cuando empecé a programar en Python me llamó la atención que uno de los valores del Zen de Python es escribir código bonito y expresivo... tanto que tiene su propio nombre: Código Pythonico.Cuando empecé a programar en Python me llamó la atención que uno de los valores del Zen de Python es escribir código bonito y expresivo... tanto que tiene su propio nombre: Código Pythonico. En esta charla veremos con detalle algunas de las construcciones más pythonicas y las posibilidades de expresar de forma clara, concisa y elegante cosas que en otros lenguajes nos obligarían a dar muchos rodeos.A veces es fácil olvidar algunos recursos como que una función puede devolver varios valores, cómo manipular listas de forma sencilla, programación funcional, contextos, decoradores...Una forma entretenida y práctica de mejorar tu nivel de Python "nativo"Alicia Pérez2016-10-09T11:50:00+010011:5000:40Sala PSFLos closures que emocionaron a Spielberg¿Te has encontrado alguna vez ese incomprensible error de UnboundLocalError... aunque la variable existe? ¿Por qué ocurre eso? Los “closures” (o “cierres”) forman parte de nuestro día a día en Python… aunque no siempre tengamos claro de qué se trata. En esta media hora vamos a lanzarnos de cabeza a entender qué son exactamente, cómo se relacionan con los ámbitos (o “scopes”) de las variables, por qué debe importarnos y cómo podemos usarlos para mejorar el rendimiento de nuestros programas.De los creadores de “Los titulares sensacionalistas que emocionaron a Spielberg” ([[0]]), esta charla tiene como objetivo que la audiencia se familiarize con el casi eternamente esquivo concepto de los “closures” (o “cierres”). Éste es un término con el que en ocasiones nos cruzamos en charlas o por Internet y ante el cual nuestro primer impulso es, aterrados, cerrar la pestaña de nuestro navegador. Pero, quizás muy a nuestro pesar, los “cierres” forman parte de nuestro día a día, y merece la pena aprender a desenvolvernos con ellos aunque sólo sea para —por fin— entender qué es exactamente ese error de `UnboundLocalError` que nos hemos encontrado a veces… aunque la variable *existe*. Para ello, seguiremos un itinerario que va progresivamente desde lo más fácil y familiar a lo más difícil y específico. Empezaremos por introducir algunos problemas sencillos que se suelen presentar en escenarios de programación comunes, entediendo cuál es su relación con ese arcano y misterioso ente que son los closures . Una vez hayamos comprendido su definición, pasaremos a dar algunos ejémplos prácticos que nos ayuden a asentar el concepto permanente e irreversiblemente en nuestras mentes. También explicaremos su relación con otros componentes del ecosistema Python, incluyendo decoradores y el módulo functools. Por último, mostraremos algunos ejemplos ignotos en los que los primigenios usaron closures para optimizar parte del código de la librería estándar.Resumen esquemático de la charla:Scope de las variablesvars() / locals() / globals()Qué es una closureMotivación: por qué se usanEjemplos practicosDecoradoresClosures y functoolsOptimizacion de codigo[0]: https://www.google.es/search?q=que%20emocion%C3%B3%20a%20spielberg&rct=jPablo GalindoVíctor Terron2016-10-09T12:30:00+010012:3000:40Sala PSFPor qué Python mola tanto - Capítulo 462: RequestsRequests es el ejemplo perfecto de por qué Python mola tanto. Hacer peticiones HTTP no es algo especialmente complicado. Todo el mundo entiende mejor o peor cómo funciona la cosa. Pero, cuando ves cómo se hace en la mayoría de lenguajes (incluido Python, si lo haces con urllib), tu ego se hace pequeñito y tu amor propio se esconde aterrorizado. No debería ser tan difícil, ¿verdad?En esta charla daremos un repaso a las posibilidades de Requests, comparándolo con otros lenguajes o librerías cuando venga al caso. Haremos cosas tan habituales como las siguientes:* Realizar peticiones sencillas.* Realizar peticiones con autenticación* Enviar cabeceras personalizadas.* Enviar ficheros.* Manejar los formatos más comunes, como json o stream binarios.* Gestionar cookies y sesiones.* Gestionar conexiones SSL.* Manejar fácilmente códigos de error, redirecciones, timeouts, etc.En definitiva, veremos cómo hacer lo que uno esperaría poder hacer con una librería HTTP.César García Tapia2016-10-09T13:10:00+010013:1000:40Sala PSFIntroducción a PyQtIntroducción a los bindings Python del framework de desarrollo de aplicaciones gráficas PyQt. La charla se enfoca en ayudar a introducir nuevos programadores al framework, a través de ejemplos detallados intuitivos y simples.Cubriremos conceptos introductorios, y widgets básicos, y armaremos aplicaciones de ejemplo, mientras explicamos y mostramos cómo poder tener una aplicación útil fácilmente.Usaremos el editor de PyQt y también aprenderemos a hacer los ejemplos desde un IDE.Es una charla que pretende resolver una cuestión que suele surgir en todos los nuevos programadores que se acercan a PyQt y que es la curva de aprendizaje, dado que no es simple comenzar a usar PyQt para quienes recién comienzan.A diferencia de otros proyectos Python o de Software Libre, PyQt tiene una documentación a veces poco críptica o muy técnica que es prohibitiva para los usuarios novatos, y que aleja a mucha gente de este interesantisimo framework gráfico multiplataforma.La documentación de los bindings suele estar basada en los ejemplos de C++ de Qt que suelen ser difíciles de comprender para programadores Python novatos.Veremos como trabajar con los widgets básicos, algunos de sus métodos principales, y también desarrollaremos algunas aplicaciones simples pero representativas, tales como un visor de imágenes CLI, una aplicación para simplificar tareas en entornos comerciales y algunos otros ejemplos más que incluyan interacción con bases de datos SQL.Nos basaremos en la última versión del framework PyQt, que tiene sintaxis diferente, en algunas partes, respecto de versiones anteriores, que son las que - en general - son tratadas en los pocos libros que hay del tema.La charla pretenderá ser una buena introducción, que le dará al público los elementos necesarios para poder continuar,luego de esta completa introducción, a conceptos más complejos de PyQt.Juan Rodríguez Monti2016-10-09T15:30:00+010015:3000:40Sala PSFTryton: Un ERP que se adapta a tus necesidades sin atadurasTryton es un termino medio entre un framework para desarrollar ERPs y un ERP con todas sus letras que se adapta a las peculiaridades de cada una de sus implantaciones. En esta charla veremos cómo podemos gestionar nuestra empresa con Tryton, las funcionalidades que nos aporta su base, y cómo podemos instalar módulos para adaptarlo a nuestras necesidades.Tryton es un framework para diseñar aplicaciones para la gestión de recursos empresariales (ERP). Explicaremos el sistema de licencias de Tryton, su stack tecnológico y su ciclo de liberación y mantenimiento de versiones. Además durante la charla haremos un pequeño tour por la aplicación mostrando las funcionalidades que nos proporciona para ser usada cómo herramienta de gestión e incluso para poder desarrollar nuestras propias desarrollo de aplicaciones de gestión. Además veremos un repaso del área funcional que cubre el núcleo de Tryton y las extensiones que se han realizado en la comunidad Española para adaptarlo a los casos de uso de España. También explicaremos cómo se integra Tryton con el ecosistema de aplicaciones Python.Sergi Almacellas Abellana2016-10-09T16:10:00+010016:1000:20Sala PSFMóntate tu propio bot por cuatro duros2016, el año de los bots. Telegram proporciona una plataforma muy sencilla, pero el problema es cómo escalar. Amazon Lambda ofrece una nueva forma de trabajar donde la infraesctrutura desaparece y solo nos cobran por el uso real que hagamos. Ya solo nos falta la idea para empezar a desarrollar.Amazon Lambda y API Gateway para la infrastructura, Telepot para acceder a la API de Telegram, Amazon DynamoDB para guardar el estado.Pocos ingredientes pero cócktel explosivo. Gracias a la expresividad que nos proporciona Python, aunque anclados al pasado por la obligación de usar la versión 2.7, en muy pocas líneas de código podemos conseguir la suficiente funcionalidad en un bot.El resultado es un asistente para la PyconEs a la que podemos indicarle nuestros intereses para que nos recomiende charlas y talleres, crear nuestra propia agenda y que nos avise antes de que empieze cada evento a los que nos hayamos apuntado.Durante la charla introduciremos los puntos clave para que cualquiera entienda y pueda montar su propio bot. Todo el código se hará público en Github para que otros puedan hacer sus propias versiones.Alberto Fernández Valiente2016-10-09T16:30:00+010016:3000:20Sala PSFCodecombat: Aprendiendo Python mientras matas OrcosCodecombat es una plataforma que permite a niños (y no tan niños) aprender a programar en Python y otros lenguajes usando retos tipo challenge.Codecombat me parece una gran idea. Permite a profesores y padres el enseñar a sus hijos a programar de una manera adictiva y divertida.El objetivo de la charla es presentar la plataforma a nivel técnico, enseñar como funciona, ver algunos retos y analizar algunos casos de niños cuyo experiencia en programación es 0 y empiezan a programar usándola. Al final, haré un pequeño overview de otras plataformas similares.La charla quiero que sea 100% práctica. Viendo como funciona la plataforma y que tipo de retos tienen que superar los niños y que cosas van aprendiendo en cada uno de ellos.Al ser una plataforma orientada a gente sin ningún conocimiento en programación, no son necesarios ningún tipo de conocimiento previos.Jose Maria Alvarez Rey2016-10-09T16:50:00+010016:5001:00Sala PSFArgentina en Python: comunidad, sueños, viajes y aprendizaje2016-10-09T16:50:00+010016:5001:00Sala PSFArgentina en Python: comunidad, sueños, viajes y aprendizaje¿Alguna vez soñaste con viajar y trabajar? ¿en dejarlo todo y perseguir tu sueño? ¿o llevar la programación a los lugares más recónditos? En esta keynote hablaré sobre la experiencia de llevar Python a más de 100 ciudades en 8 países de Latinoamérica durante los últimos 3 años. Pequeñas historias, problemas cotidianos, éxitos y fracasos, eventos realizados y la gran comunidad Python a nivel internacional serán los tópicos de esta charla.Manuel Kaufmann2016-10-09T17:40:00+010017:4000:20Sala PSFClausura y entrega de premios Cajamar PythonHack 20162016-10-09T13:10:00+010013:1000:40Sala de grados, edificio Ciencias de la SaludPresentación mejores proyectos Cajamar PythonHack 2016Cajamar PythonHack 2016 es la competición online de analítica de datos en base a datos bancarios reales del Grupo Cajamar organizada con motivo de la PyConES 2016, la conferencia nacional de Python más importante de España.[Visitar site de la Cajamar PythonHack 2016 >>](http://www.cajamardatalab.com/datathon-cajamar-pythonhack-2016/)Participantes PythonHack 2016curiosos2016-10-09T09:20:00+010009:2000:40Sala UALCómo crear tu propio Shodan de casaShodan es un buscador que no busca páginas Web como el todopoderoso buscador Google, sino que encuentra dispositivos conectados a Internet con configuraciones erróneas de seguridad. En esta charla expondré como crear tu propio Shodan de forma muy económica y muy fácilmente con Python y MongoDB.Autor: Jorge CoronadoTwitter: @JorgeWebsec-------------------------------------------------------------------------------------------------------INTRODUCCIÓN:En su momento ya el buscador Google hizo un antes y un después en la navegación de los usuarios. En 2009 John Matherly creo Shodan que hizo un antes y un después en los expertos en seguridad y delincuentes que se aprovechan de esta tecnología para atacar infraestructuras y servidores informáticos.Mi objetivo de esta charla es enseñar lo fácil que es gestionar un ataque dirigido teniendo una base de datos llena de información sobre posibles servicios vulnerables. Por último explico como crear una lanzadera de exploits para automatizar los ataques masivos a esas posibles máquinas vulnerables.-----------------------------------------------------------------------------------------¿Cómo funciona Shodan?Al igual que Google dispone de un ejercito de crawlers, sin embargo la diferencia es que no indexa webs si no la información de los puertos y servicios que disponen cada una de las Ips v.4.Sabiendo esta información de cómo funciona. ¿Por qué no creamos nuestro propio Shodan? La charla de 30 minutos comprende en varias fases:1. Explicación del funcionamiento de Shodan.2. ¿Qué es Shodita? (Python, mongoDB)3. Cómo crear un Bot en Python.4. Datos y resultados de servidores vulnerables por zona.5. Crear lanzadera de exploits con Python.Enlaces:[INFO] http://blog.quantika14.com/?s=shoditaJorge Coronado2016-10-09T10:00:00+010010:0000:40Sala UALOSINT Tools for security auditingThe talk would aim about making an introduction to open source intelligence automation tools(OSINT) developed in Python, commenting the process we can follow to obtain, analyze and exploit public information in social networks and public servers.The final objective is obtain the maximum possible of knowledge in the context we are auditing.The talking points could be:-Introduction searching information from multiples sources with OSINT tools.-OSINT tools developed with python for extracting public information from servers and domains.-Advantages and limitations these tools from the user point of view.-Comment how these tools are developed and the main modules used in their development.Some of the tools to comment are:Shodan Python API as search engine server information.Tinfoleak and Tweepy as Python scripts for data extraction on twitter.SpiderFoot as a tool for extract information from multiple sources.the Harvester as Python script for extracting emails and hostnames in a particular domain.José Manuel Ortega2016-10-09T10:40:00+010010:4000:40Sala UALTu código apesta, pero puedes tomar medidasAl crear software siempre aparecen bugs (¡También en las fases de diseño!). Existe una despreocupación generalizada sobre la seguridad del software, especialmente en las primeras etapas del ciclo de desarrollo. Las consecuencias pueden ser nefastas, pero un moderado esfuerzo nos puede ahorrar muchos disgustos.Ya en nuestras primeras líneas de código aprendemos un mal hábito: Pensar que, si el software funciona, no hay errores. Con frecuencia los errores de lógica (y en especial los fallos de seguridad) empiezan a aparecer incluso **antes de programar una sola línea**. No los vemos, pero estarán ahí, a la espera de una condición muy especial en el flujo de nuestro programa para hacer de las suyas. Dichos errores se irán acumulando si no son detectados a tiempo, y con la falta de herramientas adecuadas terminarán siendo un gasto inmenso de recursos (en dinero, tiempo y esfuerzo). Afortunadamente, existe un buen número de recursos públicos o de código libre que pueden ayudarnos a evitarlo.En esta charla se visitarán, a través de ejemplos prácticos, las herramientas y métodos que se pueden aplicar a lo largo del desarrollo de nuestro programa, logrando con un esfuerzo moderado reducir drásticamente las consecuencias de un error oculto.Jesús Marín2016-10-09T11:50:00+010011:5000:40Sala UALLa bicha ahora también hace hardwareA la hora de diseñar hardware, hay unos recursos que juegan un papel crucial, las FPGAs. Con estos chips podemos diseñar otros chips, e incluso emularlos en vivo para comprobar su funcionamiento.Hasta hace poco solo se podían usar "Lenguajes de Síntesis Hardware" (HLD) como Verilog o VHDL para usar estos chips. Pero la pitón ha saltado de las líneas de código de los scripts científicos para adentrarse en el mundo de la circuitería digital ¿Te atreves a descubrirlo?Si quisiéramos diseñar nuestros propios chips y poder testear nuestros prototipos, debemos usar unas herramientas llamadas FPGAs. La charla estará enfocada a conocer que son, que utilidades tienen y como podemos usarlas con Python. La librería usada para tal fin es [MyHDL](http://www.myhdl.org/), la cual transforma Python en una lenguaje de síntesis hardware (HDL).Últimamente estos chips están en el candelero gracias al [proyecto IceStorm](http://www.clifford.at/icestorm/), donde se ha conseguido a través de ingeniería inversa poder tener una pila _Open Source-Hardware_ completa. Así pues veremos que placas permiten trabajar con estas **Open-FPGA**, y realizaremos un pequeño _Hello World_ con una de ellas.Cristóbal Contreras Rubio2016-10-09T13:10:00+010013:1000:40Sala UALMicropythonMicropython es una implementación de Python lo bastante pequeña como para poder instalarla dentro de micro controladores de muy bajo coste, con apenas unos cientos de kbytes de memoria flash o memoria RAM. En esta ponencia de describirá micropython, algunas de las características que han permitido reducirlo para ser ejecutado en entornos con muy pocos recursos y por qué es útil programar un micro controlador en Python.Hoy en día podemos comprar un ESP8266 por apenas 2€. Este chip incluye 4 megas de memoria flash (los modelos más grandes) pero apenas 96kbytes de RAM. Poder instalar Python en un entorno así, capaz de conectarse a una red wifi y de emplear infinidad de sensores y actuadores abre unas posibilidades ilimitadas.Python permite realizar desarrollos muy complejos en un tiempo récord. Esto es igualmente válido en el mundo de los micro Controladores, donde el coste por unidad y el coste de desarrollo dominan el precio final.Esta ponencia está orientada a personas con inquietudes hardware y que puedan estar interesadas es domótica, estaciones meteorológicas, alarmas y, en general, en automatizar y monitorizar pequeñas actividades en casa: controlar el consumo eléctrico en el hogar, el nivel del agua en el pozo, conexión Bluetooth en el coche, etcJesús Cea2016-10-09T15:30:00+010015:3000:40Sala UALA Primer on Recommendation SystemsLos sistemas de recomendación son un tema bastante familiar para cualquier Data Scientist. Sin embargo, no existe ningún tutorial de perfil generalista, que empiece con la teoría básica y que acabe implementando sistemas de recomendación reales.Manuel Garrido Peña2016-10-09T16:10:00+010016:1000:20Sala UALAggregation framework con PymongoEn esta sesión haremos una rápida introducción al aggregation framework de MongoDB y como puede ser utilizado dentro de un proyecto mediante el uso de la librería Pymongo. Trabajaremos con un ejemplo para ver el uso de los pipelines, generando distinas consultas y proyecciones.Se comenzará dando una breve descripción a MongoDB y a su aggregation framework. Se seleccionará un ejemplo fácilmente entendible y se comenzará a trabajar con distintas operaciones en MongoDB. Se practicará con consultas de campos embebidos, jugando con distintas proyecciones y condiciones, para asi comprender los conocimientos básicos del pipeline.De esta manera se pretende mostrar las principales ideas y cómo hacer este tipo de consultas en una base de datos NoSQL.La audiencia podrá entender mejor esta charla si posee conocimientos previos de MongoDB.Javier Sujar Rodríguez2016-10-09T16:30:00+010016:3000:20Sala UALHaciendo matemáticas con PythonLas matemáticas son imprescindibles a la hora de abordar cualquier problema científico: desde la realización de cálculos para hacer llegar sondas a Jupiter... hasta la resolución de ecuaciones diferenciales para determinar el ciclo de vida de una bacteria, pasando por el control estadístico y complejidad en el código que escribimos. Por este motivo, en esta charla se hará una introducción a las matemáticas más básicas, empleando como medio el código en Python.#### Haciendo matemáticas con Python Esta charla está basada en el libro "Doing Math With Python" de Amit Saha. En los 15 minutos de charla se hará una pequeña introducción al algebra y al cálculo:* En un primer acercamiento se hará un repaso a cómo trabajar con los números y se expondrán diferentes maneras de utilizar python para escribir programas que trabajen por nosotros, y se mostrará por ejemplo como hacer un pequeño código para el cambio de unidades. * En una segunda parte se introducirá el cálculo simbólico con SymPy y se navegará en las posibilidades que ofrece, como la resolución de pequeñas ecuaciones o incluso su representación. * Si queda tiempo se introducirá a modo demostrativo cómo representar figuras geométricas y fractales en python.Daniel DomeneCarlos Planelles2016-10-09T13:50:00+010013:5001:40Comedor UniversitarioCOMIDA