Centro de Arte y Tecnología Etopia, 8-9 de Noviembre 2014
La conferencia empezará el sabado día 8 a las 9:30 y terminará el domingo día 9 a las 21:00
Esta charla explora diferentes conceptos y técnicas fundamentales para hacer idiomáticas y elegantes nuestras clases programadas en Python. La mayoría de nosotros utiliza la orientación a objetos, pero desconocer qué hace exactamente el método mágico __new__()
o lo útil que resulta la función collections.namedtuple()
puede hacer que nuestro código sea innecesariamente feo o complejo. También aprenderemos detalles que pueden evitarnos más de un bug, como por ejemplo a no delegar en __del__()
la liberación de recursos, cuando esta es una tarea que debería confiarse a with
, o cómo implementar correctamente __hash__()
.
Hay también tiempo para discutir asuntos casi filosóficos, como por qué quizás deberíamos llamar a __init__()
inicializador en vez de constructor (ya que es __new__()
quien realmente crea el nuevo objeto) o cuál es en la práctica la diferencia entre __str__()
y __repr__()
, a menudo usados indistintamente.
Algunos conceptos avanzados, como qué son los descriptores o una introducción a las metaclases (esas grandes desconocidas) se exponen en la recta final, antes de cerrar con algunos ejemplos rápidos bastante útiles — como, por ejemplo, cómo podemos aplicar lo aprendido para heredar de un array de NumPy.
En definitiva, el objetivo es enseñar a simplificar y optimizar nuestras clases, convirtiendo un trozo de código tan habitual como este:
class Point(object):
def __init__(self, x, y, z):
self.x = x
self.y = y
self.z = z
... en algo mucho más eficiente y versátil:
Point = collections.namedtuple("Point", "x y z")
Fáciles:
object
(new-style)
@property
)
__str__()
vs __repr__()
: para qué son
Menú principal:
collections.namedtuple()
__init__()
y __new__()
__hash__()
functools.total_ordering()
__del__()
__enter__()
y __exit__()
Algo difíciles:
Frikadas varias:
50 minutos.
Trabajo como ingeniero de software en el Instituto de Astrofísica de Andalucía (CSIC). Desde 2009 desarrollo LEMON, un programa de reducción y análisis de imágenes astronómicas para PANIC, un instrumento del Observatorio de Calar Alto (Almería). Tengo una enemistad personal con los ponentes aburridos, así que me tomo muy en serio que mis charlas sean amenas y todo lo divertidas posibles — es lo que intenté en la charla que di el año pasado, y que sorprendentemente, y si es que eso significa algo, es una de las que más reproducciones tiene en YouTube (¡!) de la PyConES 2013. También tengo unos cuantos y muy modestos parches que, contra todo pronóstico, me han aceptado en proyectos como CPython y matplotlib.
Duración: 1 hora Idioma: Castellano (slides en inglés)
La versatilidad de Python nos permite encontrarlo a 10.000 metros del suelo, a bordo de un avión.
La charla explicará en el caso de uso de Immfly: un sistema de entretenimiento, durante el vuelo, en el que el pasajero se conecta a una red wifi mediante su dispositivo favorito, y puede ver películas, leer revistas, consultar datos del vuelo, hacer reservas en destino, y mucho más.
La charla consta de tres bloques diferenciados: - 1) A bordo del avión: arquitectura de un sistema offline - 2) Del avión al hangar: sincronización y actualizaciones - 3) Integración con "3rd parties": contenidos, pagos, partners Veremos los retos técnicos que se presentan en cada uno, así como las herramientas Python que se han usado para resolverlos.
David Arcos es un desarrollador Python especializado en sistemas distribuidos, escalabilidad y seguridad. Utiliza Python y Django desde 2008. Actualmente trabaja en Immfly, desarrollando la plataforma de entretenimiento a bordo.
Recorrido práctico a través de las opciones que Python ofrece para la optimización de código númerico de baja fricción (esto es, sin dejar de escribir Python), incluyendo: agotando CPython, NumPy, Numba, Parakeet, Cython, Theano, PyPy/NumPyPy, Pyston y Blaze.
40 minutos. Charla presentada en PyData Silicon Valley 2014, PyData Berlin 2014 y PyGotham 2014.
El objetivo de la charla es revisar el estado del desarrollo de aplicaciones distribuidas / asíncronas / concurrentes con Python. No siendo un lenguaje diseñado con aplicaciones de red en mente, la librería estándar no ofrece (ofrecía hasta 3.4, al menos) demasiadas facilidades en este aspecto. Con la creciente escala de los proyectos de internet, la necesidad ha propiciado la aparición de librerías y frameworks de terceros que rellenan ese vacío siguiendo distintas estrategias. Tal es así que la revisión de esos proyectos sirve como introducción a las principales estrategias de desarrollo asíncrono en uso actualmente.
La charla es una variante de una presentación que ya he dado en un par de ocasiones (slides en https://speakerdeck.com/aitorciki/concurrent-io-and-python) y trata de equilibrar conceptos teóricos con ejemplos concretos de código. No tengo problema en presentar en castellano o inglés, cómo le convenga a la organización. Charla de 50 minutos, claro.
Un ligero resumen de los asuntos abordados:
Aitor Guevara (https://twitter.com/aitorciki), co-fundador de Ducksboard (http://ducksboard.com). Ducksboard es un panel web de métricas en tiempo real escrito en Python. Tanto en Ducksboard como en mi anterior puesto (Flumotion) he usado Python y Twisted para el desarrollo de aplicaciones distribuidas de tamaño considerable.
(new material)
duración: 50 minute talk
What are generators and coroutines in Python? What additional conceptualisations do they offer, and how can we use them to better model problems? This is a talk I've given at PyData London, PyCon Spain, and the conference "for Python Quants". It's an intermediate-level talk around the core concept of generators with a lot of examples of not only neat things you can do with generators but also new ways to model and conceptualise problems.
Generators are one of the most notable features of Python, and they are a critical component of Python 3's driving focus on iterability as a core protocol. This talk introduces the basic concepts surrounding generators, generator expressions, and co-routines, then dives into ways that generators can improve our code: not just in terms of performance but also by offering us better ways to model our problems.
I'm a Python programmer in NYC. I run NYC Python (http://nycpython.org), the world's largest and most active Python meetup group, and am the president of the not-for-profit that runs the group (http://bigapplepy.org)
I am the chair of New York's upcoming regional Python conference (http://pygotham.org - Aug 16-17) , was the chair of a conference "for Python Quants" on pi-day, Mar-14 of this year, and am a co-organiser for the PyData conference series (http://pydata.org)
I've given talks at PyTexas, PyCon Sweden, PyCon Canada, and PyCon Finland, and a number of PyData events (London, New York, Boston, Silicon Valley, and Berlin.)
I spoke last year at PyCon Spain 2013, and it was my favourite conference of the year!
Básicamente cubriría algunos aspectos del procesamiento de lenguaje natural con NLTK (Natural Language ToolKit), explicaré por encima en qué consiste, pasos para poder procesar un lenguaje, identificar patrones en un lenguaje y casos de uso útiles para aplicar.
La duración de la charla creo que será de unos 45 minutos aproximadamente.
Me llamo Iván Compañy, trabajo en Barcelona (aunque soy nacido en Alicante) y soy arquitecto Python en MyTaste.com. Mi trabajo consiste en administrar un sistema de extracción de recetas de cocina de otras webs (Con Scrapy). A parte de eso, desarrollo aplicaciones de vez en cuando a titulo personal con Django + AngularJS.
Desde el 2010 tengo en marcha un proyecto llamado CityBikes (http://citybik.es). Básicamente, lo que empezó siendo una app Android para mostrar el estado de las bicis públicas de Barcelona (Bicing), luego una API pública para esos datos, ha acabado siendo un proyecto que incluye, a día de hoy, 177 sistemas de bicis de alrededor del mundo y una API usada por la mayoria de aplicaciones alternativas a las oficiales para Android, iPhone, firefox, etc.
Todo el proyecto es FOSS y, exceptuando la (ya un poco desfasada) aplicación de Android, esta realizado enteramente en Python. Los componentes son:
pybikes: la pieza fundamental del proyecto es una librería de scraping para todos éstos sistemas. A mi me gusta llamarlo "bike sharing data at your fingertips". Utiliza requests y lxml. Lo importante de éstapycon libreria es que es el punto de encuentro principal para las personas que contribuyen a CityBikes: si quieres añadir el sistema de tu ciudad, puedes hacerlo tu mismo. http://github.com/eskerda/pybikes
api: nada realmente importante, flask y pymongo. https://github.com/eskerda/citybikes-api
gyro: el sistema que mantiene la base de datos de sistemas actualizado. En resumen, una serie de tareas rq que trabajan con pybikes y la base de datos. https://github.com/eskerda/citybikes-gyro
(new material)
duración: 50 minute talk
This is a proper expert talk, but it's actually still fairly accessible to an intermediate audience.
The contents of this talk are much less immediately useful to the audience than the Generators talk, but I think it's a bit more fun! (e.g., can we use ctypes to load a seperate Python interpreter into the same process space, could we use this as some perverse way to run Python 2 and Python 3 code side-by-side, what does this mean as an approach to avoiding the GIL?)
I'm a Python programmer in NYC. I run NYC Python (http://nycpython.org), the world's largest and most active Python meetup group, and am the president of the not-for-profit that runs the group (http://bigapplepy.org)
I am the chair of New York's upcoming regional Python conference (http://pygotham.org - Aug 16-17) , was the chair of a conference "for Python Quants" on pi-day, Mar-14 of this year, and am a co-organiser for the PyData conference series (http://pydata.org)
I've given talks at PyTexas, PyCon Sweden, PyCon Canada, and PyCon Finland, and a number of PyData events (London, New York, Boston, Silicon Valley, and Berlin.)
I spoke last year at PyCon Spain 2013, and it was my favourite conference of the year!
NumPy, Pandas y Matplotlib, entre otros, han revolucionado el procesamiento, manipulación y visualización de datos en Python. ¿Pero, qué hacemos cuando nuestro dataset es demasiado grande para caber en la memoria de nuestro ordenador? ¿Usar una base de datos como Postgres o MongoDB, almacenar en disco con PyTables o BColz, o usar sistemas distribuidos como Hadoop o Spark?Cada una de estas opciones tiene sus ventajas e inconvenientes. Aprender cada una de estas herramientas consume tiempo que podría estar empleándose en el análisis de los datos en sí. La librería Blaze ofrece una interfaz común para una variedad de backends y abstracciones para el procesamiento y la migración de datos.
Por otro lado, ¿cómo visualizamos nuestro dataset cuando tenemos más individuos que píxeles tiene nuestra pantalla? Bokeh es una librería para la visualización interactiva de datos en el navegador al estilo de D3.js en Python, que incluye la funcionalidad de Abstract Rendering para estos casos.
La charla consistirá en una introducción al análisis y visualización de large datasets, cómo las librerías Blaze and Bokeh nos pueden facilitar el trabajo y un ejemplo práctico con un dataset de tweets.
Para más información sobre las librerías, visita: - http://bokeh.pydata.org/ - http://blaze.pydata.org/
Duración: 50 min.
Christine Doig, Data Scientist en Continuum Analytics. Ingeniera Industrial (UPC) y estudiante del Máster en Informática (UPC), especialidad en Data Mining y Business Intelligence. Experiencia analizando datos en varios sectores: energía (E.ON), manufacturing (P&G - A&A) y banca (consultora en "La Caixa").
Los buenos de Marvel han liberado su API, ¿qué quiere decir esto? ¡Un montón de datos para jugar!
La premisa que queremos estudiar mediante el análisis de los datos disponibles a través de la API de Marvel es la variedad de personajes femeninos y de personajes de minorías culturales y raciales (en occidente) que hay en el mundo Marvel así como los roles en los que están representados más frecuentemente.¿De qué color dirías que tiene el pelo el personaje típico de Marvel? ¿Y cuál es su nacionalidad?
El objetivo de la charla es enseñar las distintas herramientas de las que disponemos los científicos para el análisis de datos. Usando ipython Notebook veremos como cargar datos y extraer información de ellos usando pandas, cómo dibujar gráficas con matplotlib.
Además aplicaremos Machine Learning para distinguir clases (iris, spam,...) aplicado a la muestra de personajes de Marvel que hay disponibles a través de la citada API, para ello utilizaremos el toolkit scikit-learn.
Probablemente Stan Lee no nos acompañe, pero nunca se sabe.
Duración 40/50 minutos
Soy Ingeniera Informática y graduada en Bellas Artes por la Univesitat Politècnica de València, actualmente curso un máster de inteligencia artificial, reconocimiento de formas y lingüística computacional. Tengo la suerte de trabajar en uno de los trabajos más molones (para mi, claro) y en python (en mis horas felices) en el departamento de sistemas y computación de la UPV.
Llevo trabajando con python desde el 2005, he disfrutado de las becas Google Summer of Code del 2011 al 2013. Creo firmemente que divulgar conocimiento es una de las obligaciones de los científicos. He dado una charla en la PyCon ES 2013 y presenté un póster en la PyCon 2013. Formo parte del capítulo español de las pyladies y de la asociación de python españa.
Soy licenciada en Física por la Universidad Complutense de Madrid, he trabajado en consultoría y durante los últimos siete años en la industria aeroespacial en proyectos para la ESA como Ingeniera de Entorno Espacial y en desarrollo de software con Python para análisis de radiación y aplicaciones. Tras toda una vida dedicada al rol como hobby me he embarcado en la industria de los juegos de rol en USA, además estoy reorientando mi carrera profesional desarrollando un proyecto supersecreto para jugadores usando Django que puede que vea la luz antes de la PyCon.
Revisión de los métodos mágicos implementados en Python 3, haciendo énfasis especial en los menos conocidos y en casos de uso interesantes.
Esta charla es un recorrido por las posibilidades para programación funcional que tiene python, incluyendo las que están en las baterias de python, las propias estructuras inmutables de python y bibliotecas externas como fn.py.
La duración sería de unos 45/60 minutos.
Mi nombre es Jesús Espino, soy desarollador python/django en Kaleidos y colaboro con proyectos de software libre.
Un saludo.
Los sistemas embebidos y los appliances están ganando terreno día a día en el ámbito de la implantación de soluciones de propósito específico. Áreas como la telemetría, el datalogger, los sistemas expertos o el bussines intelligence están ocupando un porcentaje cada vez mas elevado del desarrollo software. Históricamente tanto C como C++ o Assembler han sido los lenguajes dominantes en este campo, sin embargo Python en un lenguaje de programación que ofrece importantes ventajas frente a estos "clásicos". La existencia de módulos o librerías para casi todo lo que podamos necesitar, unido al desarrollo multiplataforma, junto con las características intrínsecas a un lenguaje de muy alto nivel unido a la capacidad de acceso a muy bajo nivel hacen de Python el lenguaje ideal para el desarrollo de este tipo de proyectos.
Duración: entre 40 y 50 mins.
Realizé estudios de Ingeniero Técnico en Informática en la Universidade de A Coruña (sin finalizar), complementados con un postgrado como experto en sistemas de información para la empresa por la Universidad de Cádiz (esta vez si finalizados). Durante 10 años fui el socio fundador y responsable general de una empresa de Ingeniería Informática dedicada al desarrollo de proyectos de I+D+I relacionados con el sector de las telecomunicaciones, Industrial y Naval. Desde hace tres años soy el responsable de informática de una importante empresa gallega relacionada con el juego y las apuestas. Experto en telemetía y en extracción y análisis de datos.
Uno de los principales problemas que existen en la automatización y diseño de test cases es la diversidad de herramientas que se utilizan para cada parte del proceso de QA. Esto implica que los diferentes componentes del equipo tengan que formarse en todas las herramientas necesarias, y que haga falta una integración ad-hoc para que todo el proceso sea automático.
Existe una herramienta capaz de realizar el proceso sin salir de ella, y que la utilizan millones de desarrolladores, una herramienta que nos permite poder realizar pruebas a todos los niveles sin necesitar ninguna integración con otras herramientas. Una herramienta que la utilizan millones de personas en el mundo. Python!
Python nos provee de varias librerías para facilitar la realización de pruebas en todos los niveles, desde pruebas unitaria como pruebas de frontend (Selenium) pasando por las pruebas de componente o las pruebas de Performance. Utilizando Python podemos incrementar la velocidad de la automatización de pruebas y mejorar el mantenimiento de los test gracias a la reutilización de código y utilidades entre las diferentes pruebas.
En esta conferencia se mostrará como podemos realizar pruebas en diferentes niveles (unitario, backend, frontend, performance) utilizando diferentes librerías de Python. También se mostraran ejemplos de como podemos reutizar tests entre diferentes niveles (unitario, aceptación y performance) para mejorar el mantenimiento de la automatización de tests y mejorar la comunicación entre programadores y testers.
Mi nombre es Antonio Robres y me considero QA y tester hasta la medula, con una gran pasión por el desarrollo de software. Automatizando proyectos de testing desde hace varios años y lidiando con proyectos inmantenibles hasta que descubrí como integrar todo el proceso con Python... desde entonces puedo dormir con la conciencia tranquila.
Me gustaría contar nuestro último caso de éxito utilizando Python. Consiste en un sistema de actualización automática de trabajos en el servidor de Integración Contínua. Está basado en la forma de trabajar de Travis, de manera que la especificación de las pruebas (entorno y ejecución) se encuentre en el mismo repositorio que el código, y se gestione automáticamente el entorno de integración contínua. Entre otras ventajas, se consigue que:
Los desarrolladores tengan control completo sobre el entorno de pruebas existe un histórico de la configuración del entorno de pruebas cierta independencia del sistema de Integración Contínua
Desgraciadamente, Travis no se ajustaba completamente a nuestros requisitos, por lo que tuvimos que escribir nuestra propia solución. En Python, por supuesto.
En Tuenti hemos llamado a este proyecto: "Travisification", lo que da lugar al título de la charla.
Duración: 40-45 minutos Ponente: Miguel Ángel García (Tuenti)
Miguel Ángel García, perteneciente al grupo SRE (System Reliability Engeneers) en Tuenti.
Nuestro grupo tiene un ámbito bastante amplio: gestión de las máquinas de desarrollo, pruebas y producción, automatización de procesos y gestión de releases.
Your web application becomes so successful that you start to have performance problems (in particular, on your persistence layer)- it cannot withstand so many concurrent reads and writes. What to do now? While scaling up should be your first option, there will be a point in which you code and your hardware will make imposible to survive on a single database instance. However, both sharding and clustering can be hard and they are never fully transparent for the application, no matter the technology.
MySQL Fabric is an open source Python (2.6+) set of tools that handles MySQL (5.6+) sharding, load balancing and read/write splitting in a GTID replication environment and that can talk to the Python Connector itself using XML-RPC for application awareness, making the handling of MySQL farms much easier.
In this presentation we will try to introduce MySQL fabric in a practical way, providing use cases in which Fabric can provide a better read and write throughput for a Python application, and also more service resiliency.
Jaime Crespo is a former MySQL A.B./Sun Microsystems/Oracle and Percona consultant trainer, having worked for companies like Telefónica, BBC, Activision-Blizzard or Twitter.
Currently he is a freelance consultant at <http://dbahire.com>, specialized on web performance optimization and architectures for high availability.
More info: <http://jynus.com>
Scrapy is a fast high-level screen scraping and web crawling framework, used to crawl websites and extract structured data from their pages. It can be used for a wide range of purposes, from data mining to monitoring and automated testing.
In this talk some advanced techniques will be shown based on how Scrapy is used at Scrapinghub.
Juan Riaza - Pythonista, Djangonaut, Web Scraper. Data addict. Software developer @ScrapingHub Organizing @betabeersvg
La charla recuerda la importancia del method dispatching en la POO en general
y en Python en particular a través de 3 implementaciones de
__getattribute__()
: decoración dinámica de métodos,
APIs tolerantes a typos y control de acceso a miembros privados de clase.
50min.
Sage es un sistema de álgebra computacional que nació hace ya diez años con la idea ser una alternativa libre a Maple, Mathematica, Matlab y Magma. Para ello se aprovecha de numerosos paquetes libes disponibles para tareas muy específicas. Como lenguaje común a un entorno tan heterogéneo, se usa extensamente python, y para tareas donde el rendimiento es crítico, cython. Esta charla pretende mostrar un breve repaso sobre este proyecto, algunas de sus peculiaridades y retos futuros.
Mi nombre es Miguel Angel Marco Buzunariz. Soy doctor en matemáticas por la Universidad de Zaragoza, en la que actualmente soy profesor. Mi carrera investigadora se ha centrado en las áreas de la geometría algebraica, la teoría de singularidades, combinatoria y álgebra computacional. Como parte de esa investigación, he necesitado en algunas ocasiones desarrollar software específico, la mayor parte del cual está integrada en Sage.
PyPy is an alternative implementation of CPython implemented in Python, to newcomers understanding concepts like RPython, JIT, PyPy garbage collection and other core concepts could be difficult so this talk is aimed to introduce all of these concepts and understand better how PyPy works.
Francisco Fernandez works as a software engineer at Rushmore.fm in Madrid. He uses Python as his main programming language but he also program in other languages like Scala, Go, Clojure... His main interests are distributed systems, functional programming and graph databases.
I've been speaker at international conferences like Codemotion Rome, EuroPython, Scala Workshop also I'll be speaking at PyCon Finland, Codemotion Madrid.
Las charlas las puedo dar tanto en español como en inglés y la duración de todas rondaría los 40 minutos más preguntas y el taller podemos cuadrarlo en 2 horas y media.
En CartoDB usamos torque (https://github.com/cartodb/torque) para la generación de visualizaciones en el navegador de millones de puntos. Para que sea posible es necesario hacer un procesado de los datos en el servidor. En esta charla se tratará como usamos python para:
Del toolset de python usamos tornado para servidor datos de torque en tiempo real y numpy + pyplot para el análsis de datos.
Un poco más de información sobre torque en: http://javisantana.com/2014/07/18/encoding-point-map-animations.html http://javisantana.com/jsgeo14/
La duración sería en torno a unos 30 minutos
Soy desarrollador en CartoDB desde hace 3 años donde creamos un producto para la visualización de datos geoespaciales. Llevo desarrollando aplicaciones desde hace 10 años, desde aplicaciones para agricultores hasta videojuegos
Buildout es un sistema de instalación y despliegue de aplicaciones escrita en python. Desarrollado originalmente para la instalación de aplicaciones Zope, su uso se ha extendido a la instalación de todo tipo de aplicaciones, aunque la mayoría son escritas en python.
En CodeSyntax utilizamos buildout para la configuración y despliegue de nuestras aplicaciones basadas en Plone y Django, porque nos permite tener una forma repetible y potente para la instalación de aplicaciones. Desde simples webs que solo usan el interfaz de administración de Django, hasta aplicaciones distribuidas en 5 servidores diferentes en las que se instala Apache, pound, haproxy, Zope o Memcache.
En esta charla, explicaremos el funcionamiento y las ideas básicas de buldout, como se configuran las diferentes partes y explicaremos y mostraremos ejemplos y casos de uso reales. También compararemos buildout con otras herramientas muy usadas en entornos python como fabric.
La duración estimada de la charla es de 45 minutos, todavía no hemos decidido quien va a ser el ponente de esta charla, probablemente sea yo mismo Aitzol Naberan o Mikel Larreategi, ambos somos desarrolladores python con años de experiencia. Nos apasiona la tecnología y somos los encargados de analizar e implementar nuevos métodos de trabajo en CodeSyntax
Un rehash, director's cut de la charla que di en el grupo de python madrid "Fabric F&F edition" http://www.slideshare.net/ae_bm/fabric-ff-32842706 haciendo ejemplo de como integrar fabric como libreria en nuestros scripts en python, quizas con un caso de uso en AWS. Podria ser un taller corto si la "patria" lo requiere.
Duracion: 40 - 45 minutos (o lo que tarden en lanzar tomates)
Me llamo Alejandro, trabajo como administrador de sistemas aunque estudie ciencias de la computación ( si deberia dedicarme a investigar cosas en sistemas operativos, redes de computadoras y no en reiniciar aplicaciones). Miembro del grupo de Madrid devops, python Madrid, postgres España. Di una charla en el codemotion España del año 2013. Y para más cosas esta twitter @ae_bm, linkedin y google. Advertencia humor acido.
La nube, la infraestructura para servicios online del presente y del futuro, es enormemente similar a un superordenador. Muchas tecnologías que han hecho la nube posible fueron desarrolladas, ensayadas y escaladas en centros de supercomputación hace años. Python ha permitido por primera vez que científicos acostumbrados a utilizar superordenadores puedan hablar el mismo lenguaje que los expertos en servicios online, y que entiendan los problemas técnicos que surgen con el problema C10K, C100K o C1M. En esta charla, la experiencia utilizando superordenadores se intenta trasladar al desarrollo de un servidor de chat capaz de escalar de manera eficiente sobre un PAAS, identificando qué tecnologías y patrones que ya han demostrado su eficacia en supercomputación pueden ser aplicables. El chat, por cierto, funciona y escala bastante bien.
Duración de la charla: 50 minutos.
Ingeniero Aeronáutico de formación, llevo más de una década explorando la computación aplicada al ámbito científico y técnico. Después de una etapa como consultor, ayudando a empresas a entender la supercomputación, volví a la universidad para doctorarme. He pasado estos últimos años simulando flujos turbulentos, participando en dos proyectos PRACE y un INCITE, desarrollando herramientas que han demostrado escalar hasta millones de procesadores, y analizando cientos de terabytes de datos con Python. Todo ello para entender un poco más cómo los fluidos disipan energía. También me he encargado de mantener y ampliar el centro de datos del laboratorio, y un poco a mi pesar, he conseguido aprender algo sobre hardware y sistemas.
Fuera del ámbito profesional me he involucrado en la promoción del software libre. Publiqué unos apuntes sobre Octave en 2004, que se convirtieron en un libro gratuito relativamente popular. He promovido el uso de Python en Ciencia e Ingeniería desde 2007, y ha sido una pieza importante en mi trabajo como investigador. Me gusta entender cómo funcionan las cosas usándolas y enseñando a usarlas.
Mi página web personal es http://guillemborrell.es
Duración: 90 minutos
Descripción: A través de este taller se realizarán una serie de ejercicios, katas o ejemplos en los que el lenguaje de programación Python será la herramienta para integrar dispositivos en el Internet Of Things (enviar datos de sensores, controlarlos remotamente, etc..). Se realizarán prácticas sobre dispositivos tales como Arduino, Raspberry PI, Arduino Yun y Beagleboard. El número de asistentes se estima en aproximadamente un máximo de 50 personas, para que sea ágil.
Requisitos para asistir al taller: Cada participante (o grupo de trabajo de participantes) deberá traer su propio portátil con wifi y a ser posible su dispositivo que quiera conectar, así como los sensores, placa de inserción, leds y cables. En función de la disponibilidad de material, se podrá prestar material a los asistentes que no dispongan del mismo.
Alejadro Guirao Rodríguez. Soy pythonista acérrimo, radioaficionado, amante de la electrónica y el cacharreo vario. Me podéis encontrar en twitter como @lekum y enhttps://github.com/lekum.
Samuel de Ancos Martín. Soy un apasionado del desarrollo y la tecnología, ultimamente me dedico a eso que llaman "Internet Of things" como analista y desarrollador core en la plataforma Carriots. Me podeis encontrar en twitter como @sdeancos, en mi pagina web http://deancos.com y en http://github.com/sdeancos.
El workshop intentara explicar como montar una application hecha en Flask que usa un cluster de Cassandra (o mongo o redis... la base de datos da un poco igual) como backend y tiene servicios anyadidos como podria ser un buscador (ES)
No hay mucho codigo Python... which is bad :(
Por contra, el workshop trata de como coger el codigo en Python y ponerlo en production... which is good :) Asi que el workshop se centrara en como hacer el deploy... usando Docker.
[Supervisor] ? (si hay tiempo) [Gunicorn - Flask] [Cassandra] [ElasticSearch] ? (si hay tiempo)
La Agenda podria ser algo asi - Intro - Docker, por que y como - Ejecutar Flask en docker - Ejecutar Cassandra en docker - Conectar Flask-container y cassandra-container - Ejecutar ElasticSearch en docker - Conectar Flask container con ElasticSearch container - Q & A
La duracion: 1:30 - 2h (seguro que pasa de la hora y media... pero despues del 5 punto, ya podremos dar el dia por bueno
Me defino a mi mismo como developer, aunque mi titulo oficial es Software Architecht en el departamento de DevOps del EMA (European Medicines Agency) en Londres. En mi dia a dia programo en Java (O_0) Python ( ^^) y Php (##)
Estoy a punto de poner en marcha una (os && python) application para gestionar bookmarks (lo se, lo se...) hecha en flask y mongo (y redis, y celery y... angularjs ("_"))
La gente que quiere empezar a hacer TDD, es cómo aplicarlo a su plataforma. Los ejemplos siempre se basan en lógica de negocio, sin prestar atención al resto de interacciones con el sistema.
Cuando se acaban encontrando un montón de problemas a la hora de escribir tests de unidad, lo acaban resolviendo escribiendo tests de integración.
El problema no reside en el ciclo de TDD, sino en una arquitectura pobre o falta de ella. Será en esta última parte donde pongamos más hincapié.
Vamos a:
Hacer un modelo de dominio como parte central de la aplicación
Evitar el framework como parte central de un software / arquitectura
Demostrar cómo se puede hacer TDD "de libro"
Ver algunos smells de TDD (tests lentos, dificultad de probar algunas partes), que no son de TDD sino de una arquitectura pobre.
Demostrar que se pueden tener suites de tests rápidas < 1s
Dejar muy claro el concepto de "Delivery Mechanism"
Este workshop es un port para Python de uno realizado en la CAS 2013 por parte de Guillermo Pascual y Javier Acero que tuvo muy buena acogida. Se pueden ver las diapositivas y el código original que hicieron Guillermo y Javier.
Se realizará una aplicación web utilizando TDD, para hacerlo sencillo utilizaremos un clon de alguna aplicación existente, con un dominio conocido por todos los asistentes.
Se dividirá en pequeñas funcionalidades que presentarán una dificultad o un problema específico, y expondremos soluciones (dobles, tests de contrato …). De este modo, se mezclarán explicaciones e implementación.
Este ha sido el año de matar TDD, en este taller vamos a hacer una aplicación haciendo iteraciones y utilizando TDD; para que veamos que no estaba muerto, que estaba de parranda.
Vamos a hacer una aplicación utilizando TDD, hablaremos de tests de integración y hablaremos de arquitecturas pobres, problemas de diseño y principios SOLID.
2 horas
Néstor Salceda
Eduardo Ferro
Alberto Pérez
Jaime Gil de Sagredo
Computación Altas Prestaciones con Python en Cluster - MPI: Módulo a usar MPI4PY.
FALTA Vídeo - PresentaciónSería una charla o taller para personas que saben o se dediquen a la informática o personas de perfil investigador(físicos, matemáticos, biologos..) que necesiten o hagan uso de computacion de altas prestaciones en cluster.
Pequeña introducción a MPI, cómo funciona sin entrar en detalles sobre capas bajas del desarrolo, explicando que se basa en el paso de mensajes. A continuación pasaría a introducir el módulo de Python MPI4Py, sus funciones, sus diferencias con C y cómo se usan. Todo esto con pequeños ejemplos, empezando por un calculo de Pi y terminando por ejemplo con la paralización de un algoritmo genético o colonias de hormigas. Si es un taller haría algún notebook en ipython para que todos fuésemos a la vez y cada uno programe lo que vaya tocando.
Graduado en ingeniería informática, este Julio me gradué, por la Universidad de Sevilla. Especializado en computación ( Algorítmica, complejidad, matemáticas, modelos de computación e inteligencia artificial), y en computación de altas prestaciones con conocimiento de varias tecnologías, MPI, OpenMP, CUDA, OpenCL. Esto último porque me apasiona esa rama.
Con Python llevo ya para 4 años y fuí a la anterior edición de PyConES cómo ponente.
Mi trabajo final de carrera, defendido en Julio, fué la implementación de un algoritmo genético con Python en un sistema de computación de altas prestaciones con 40 procesadores, orientado a la genética, Redes de Regulación Génicas y el estudio de la aceleración, escalabilidad y convergencia del algoritmo. http://www.atc.us.es/news/125-defensa-tfg-evogenet
Algunos de mis temas que llevo investigando actualmente son: Modelos de computación no convencionales, Computación con Membranas y computación con ADN. Aplicación de técnicas de computación de altas prestaciones a procesos de inteligencias artificial( aprendizaje, visión artificial, simulaciones)
Por último en Julio me aceptaron y fuí al curso PUMPS 2014 en el Barcelona Supercomputing Center, curso sobre CUDA dado por la Universidad de Illinois. http://bcw.ac.upc.edu/PUMPS2014/
Introducción al lenguaje de programación Python enfocado principalmente a científicos, ingenieros o cualquier persona interesada en análisis y visualización de datos. Los temas a tratar serían: Introducción a la sintaxis de Python Uso del Notebook de IPython Introducción a NumPy Representación gráfica con matplotlib Análisis numérico con Pandas y SciPy Introducción a la depuración con pdb, testing y buenas prácticas (siempre que el tiempo lo permita) Introducción a DVCS (siempre que el tiempo lo permita) El taller en general sería algo similar a lo que proponen los afamados talleres de Software Carpentry (http://software-carpentry.org/) presentados alrededor del mundo. Una versión de este taller ya ha sido realizada con éxito en la Universidad de Alicante (http://cacheme.org/curso-online-python-cientifico-ingenieros/) y ya se dispone de materiales de apoyo digitales (Vídeos, presentaciones, notebooks,...) relacionados con el mismo.
Duración: 120-180 minutos (dependiendo de la decisión final de los organizadores)
El taller será impartido por personas relacionadas con CAChemE y Pybonacci, comunidades que tratan de fomentar el uso del software libre en entornos científicos y en las universidades.
Pybonacci (@pybonacci): Es una comunidad abierta iniciada por gente vinculada a Python-Madrid compuesta por estudiantes, licenciados, ingenieros, Doctores y todo le que se quiera implicar y colaborar. Su principal función es dar a conocer el mundo de la programación y el software libre dentro del entorno científico y académico enfocándose principalmente en Python.
CAChemE.org (@CAChemEorg): CAChemE (Computer Aided Chemical Engineering) es una comunidad de ingenieros químicos que pretende estimular las posibilidades del software libre en la ingeniería de procesos. Formada por estudiantes, profesionales y docentes del sector; la sede de CAChemE se encuentra en el Instituto Universitario de Ingeniería de Procesos Químicos de la Universidad de Alicante.
El desarrollo dirigido por comportamiento (BDD por sus siglas en inglés), toma la filosofía del desarrollo dirigido por pruebas y las enriquece con técnicas y herramientas que permiten crear un punto de encuentro para clientes y usuarios, desarrolladores y testers.
Los clientes y usuarios tienen la posibilidad de participar de forma más directa e interactiva en la definición de requisitos y la resolución de dudas, así como conocer con más detalle qué se ha hecho y cómo avanza el proyecto.
Los desarrolladores obtienen especificaciones más claras y precisas y una referencia clara para saber cuándo han terminado de implementar la funcionalidad esperada.
Los testers pueden integrarse proponiendo pruebas adicionales de una manera que el resto del equipo puede entender.
Una de las herramientas que existen en Python para soportar BDD es Behave (otras serían Lettuce o Mamba). Esta herramienta permite escribir escenarios en texto plano y lenguaje natural utilizando la sintaxis Gherkin de Given (precondiciones), When (acción a realizar), Then (resultados), e implementar dichos escenarios con código Python que interactúa con la aplicación.
En este taller se pondrá en práctica BDD desde la perspectiva del desarrollador, aunque ya se proporcionará implementado el código de la aplicación. Los objetivos a alcanzar son dos: El primer objetivo es mostrar cómo los escenarios son una técnica para identificar inconsistencias y ambigüedades en los requisitos que impiden su implementación y cómo nos ayudan a resolverlos El segundo objetivo de es que todos los asistentes escriban sus primeros escenarios y los implementen como pruebas utilizando una herramienta de BDD como Behave.
A los asistentes se les presentará el enunciado de la kata Gildes Rose, el cuál es un conjunto de requisitos incompletos y ambiguos, y un código Python con una calidad muy baja, que implementa correctamente dicha documentación. En la primera parte del taller realizamos un workshop de especificaciones (specification workshop, http://gojko.net/2008/11/12/specification-workshops-an-agile-way-to-get-better-requirements/) para identificar posibles escenarios a partir de los requisitos así como poner de relieve las ambigüedades y carencias. En la segunda parte, cada equipo de una o dos personas implementará algunos de los escenarios identificados con la herramienta Behave y comprobar que se ejecuta correctamente con la implementación ya proporcionada. En ambas partes, habrá una pequeña charla de 5-10 min. para dar una introducción a lo que estamos haciendo y explicar las mecánicas. Al final, reservaremos 10 min. para hacer una puesta en común. La duración estimada del taller es, como mínimo de 1 hora y como máximo, de 2 horas y se propone un mínimo de 2 y un máximo de 10 asistentes, aunque nos apañaremos con el número de asistentes que sea. El taller puede durar menos dependiendo de la fluidez con la que transcurra tanto el workshop como la implementación y ejecución de escenarios. He realizado esta actividad con un grupo de 5 personas con total desconocimiento de BDD y tardamos 2 horas largas, pero también lo he practicado con varias personas de manera individual vía hangout y hemos tardado menos de 40 min. Nunca he tenido la oportunidad de probar esta actividad con personas con experiencia en escenarios o en BDD. El único conocimiento requerido por parte de los asistente es fundamentos de programación en Python (e, incluso, ni eso si haces pareja con alguien que sí sepa Python).
El ejercicio del taller estará basado en la kata Gilded Rose, aunque esto no se anunciará a los participantes hasta el momento de comenzar el taller. Con un ordenador cada dos participantes sería suficiente. Se dejará libertad para que, quienes quieran trabajen en pareja. Cada participante tendrá disponible, vía USB, el código de la kata Gilded Rose por si no tuviera conexión a Internet. Se aconseja traer portátiles con la herramienta Behave ya instalada. Ayudaría mucho el disponer de una gran pizarra para realizar el specification workshop entre todos.
Javier J. Gutiérrez es doctor en Lenguajes y sistemas Informáticos y miembro del grupo de investigación en Ingeniería Web y Testing Temprano (IWT2) de la Universidad de Sevilla. También es Certified Agile TDD por el iSQB y certificado en Scrum por Scrum.org En su tiempo libre, facilita un dojo de código activo desde 2.020, escribe un libro para enseñar TDD que se ya está para libre descarga en la web, colabora en varios blogs (Indie-O-Rama, Pybonacci, AprendeTDD, etc.) y escribe pequeños videojuegos aplicando TDD tanto como puede. Su presentación sobre TDD en la PyConEs 2.013 está en el siguiente enlace: https://www.youtube.com/watch?v=P_gInusEF5M
Enlaces Enunciado kata Gilded Rose: Código Gilded Rose en Python: Enlace a Behave:
Pequeño taller en el que los participantes podrán crear un videojuego sencillo usando python y pilasengine. PilasEngine ( http://pilasengine.com.ar/ ) es un motor multiplataforma, creado y liderado por el argentino Hugo Ruscitti, dirigido a personas que comienzan a programar videojuegos y quieren lograr resultados sorprendentes y divertidos en poco tiempo.
Tiempo: 1h ó 1:30h
Quique Porta (Valencia) y Fernando Salamero (Huesca). Ambos colaboramos junto con Hugo Ruscitti (Argentina) e Irving Rodríguez (México) en el desarrollo y difusión de pilasengine.
Quique Porta es un programador valenciano que descubrió Python a través de la programación de videojuegos y cada día está más fascinado por este gran lenguaje y su comunidad.
Fernando Salamero es profesor e inicia a sus alumnos en el mundo de la programación a través del desarrollo de videojuegos, usando Python y pilasengine.
En la anterior edición de PyConES ya se presentó "SonSilentSea, creación de juegos en Blender con Python", donde se introducía de cierta forma la programación de videojuegos con Python mediante el motor de Blender. En esta edición creo que sería muy interesante dar un salto más a las tripas de Blender, no limitándonos a extender el motor gráfico BGE en si, sino creando un conjunto de herramientas en Blender que permitan generar objetos que comparten ciertas propiedades de manera sencilla.
Mi nombre es Jose Luis Cercós, Ingeniero Naval y Oceánico, y actualmente doctorando en el programa de Ingeniería Aeroespacial, donde me especializo en la mecánica de fluidos computacional. A título personal participó en varios proyectos de software libre, entre ellos: AQUAgpusph FreeCAD-Ship Ocland SonSilentSea
Presentación del proyecto MIIMETIQ se trata de un framework para construir soluciones M2M a medida. Más del 80% del código es python y muchísimas tecnologías de moda como: MongoDB, RabbitMQ, Elastic Search, Graphite, Sencha Architect, etc. El proyecto MIIMETIQ ha sido desarrollado como producto de la empresa M2M Cloud Factory se trata de una startup que hemos montado un equipo de personas que actualmente esta alrededor de 10 personas y que ya ha conseguido vender su primer proyecto a una multinacional un mes después de finalizar la versión 1.0. La idea sería explicar para que sirve el producto y la arquitectura que se ha usado para desarrollarlo. Hay que tener en cuenta que el diseño esta pensado para soportar millones de dispositivos conectados.
Duración Un buen formato puede ser una keynote de 10minutos Pero hay material para hablar durante horas, así que si se quiere extender a 50 minutos no habría ningún problema.
Me gusta definirme como "Pure G33k", es decir que tengo la suerte de vivir de mi vocación; una vocación que tengo desde los 9 años y que jamas me ha abandonado hasta los 37 años que tengo ahora. Tengo un blog desde hace 14 años http://oriolrius.cat Además me podeis seguir por twitter: @oriolrius Mi linkedin es: http://es.linkedin.com/in/oriolrius Una buena idea para conocerme mejor es escuchar la entrevista me hicieron en el blog de "Business Coaching": http://tubusinesscoach.es/oriol-rius/
El producto a presentar es Lead Ratings:http://lead-ratings.com. Es un Software as a Service que realiza análisis on-line de la probabilidad de conversión a venta de leads. A partir de una base de datos de leads previos, se evalúa con modelos matemáticos y estadísticos la probabilidad estimada de conversión de cada lead de forma individual. El resultado que devuelve Lead Ratings del análisis es un rating. Este rating permite comparar los leads entre ellos y clasificarlos según la probabilidad conversión. La clasificación permite la toma de decisiones a medida para cada uno de los leads. El análisis de un lead se realiza on-line, en el mismo momento que se genera la petición a la API, lo que permite la toma de decisiones de forma rápida a partir del resultado obtenido. El motor analítico está desarrollado en Python, y la interfaz de gestión en Django.
Lead Ratings es una empresa con sede en Barcelona liderada por Ricard Bonastre. Empezó su andadura justo hace un año, en septiembre 2013, y ya dispone de una decena de clientes que usan habitualmente el sistema de rating de leads. Entre ellos están varios centros de formación y empresas de e-commerce. Link: http://es.linkedin.com/company/lead-ratings
Miquel Camprodon es un matemático e informático con cinco años de experiencia en el análisis de datos y la programación web en varias empresas. Israel Saeta es licenciado en física con un máster en Inteligencia Artificial y tiene amplia experiencia en programación web en Python. Miquel es el responsable técnico de Lead Ratings desde su fundación hace un año, responsabilidad que comparte con Israel desde su incorporación.
¿Cómo que no conoces a las pyladies? Somos un grupo internacional de chicas que disfrutan programando y si es en python mucho más!
En esta charla os contaremos que hemos estado haciendo durante el año de vida que tenemos, los sueños que nos quedan por cumplir y, sobre todo, que puedes hacer tú para ayudarnos a conseguirlos.
¡Ah! Y no os engañéis, esto no es una pequeña secta, esto es una comunidad. Los chicos también tenéis un papel importante y sois más que bienvenidos. Guido es uno de los más firmes defensores de las pyladies y ¿Quién somos nosotros para enmendarle la plana a nuestro benevolente dictador? ¡Venid todos y todas! ¡Nos encantará oír aquellas propuestas que tengáis para nosotras!
Esta charla la daremos entre todas las pyladies españolas, de este modo podemos exponer las distintas perspectivas que cada una tenemos y el heterogéneo grupo que formamos. La mayor parte de nosotras ya nos hemos presentado pero para resumir somos todas pythonistas y pyladies.
Teresa de la Torre Mayte Giménez Núria Pujol Ángela Rivera Yamila Moreno
Lightning talks: Django Sample Data Helper
Vídeo - PresentaciónDjango Sample Data Helper es un plugin de django para la rellenar la bbdd con datos aleatorios de manera fácil y potente, pudiendo personalizar los datos a generar, y escogiendo una semilla para que se generen siempre los mismos datos aleatorios.
Permite empezar a trabajar en proyectos teniendo datos relativamente realistas para probar y ver como va quedando.
Duración: 10 minutos.
Mi nombre es Jesús Espino, soy desarollador python/django en Kaleidos y colaboro con proyectos de software libre.
I would like to talk about Djnago-Oscar. I'll start with the basic features and mainly talk about the learning curve, how easy or how hard it is to get started, and customization of templates, views, models, etc....
Duration: 10 minutes Lightning talk
I'm a Django/Python Web Developer at CloudAppers. I work on creating websites, and mobile backend APIs. I contribute to django.me project and contributed to the Arabic translation of the Django web framework. I gave a lighting talk about why people should use Django http://www.slideshare.net/dadoeyad/why-you-should-use-django-in-your-next-project at ArabNet Beirut 2014
La herencia es una de las forma de acoplamiento más fuerte entre clases y en muchas ocasiones se usa sin ser necesario, generando diseño s frágiles y difíciles de mantener.
Se va ha presentar los dos tipos básicos de herencia, su uso más adecuado y los errores más comunes en su uso. Parte de estos errores de diseño provienen de cómo nos han enseñado la OO o de otros lenguajes en que la herencia sirve para otros propósitos.
En Python podemos usar la composición como alternativa permitiéndonos realizar diseños más simples, fáciles de reusar y de testear.
10min
Eduardo Ferro
El notebook de IPython se ha convertido en una herramienta omnipresente entre el mundo científico (y parte del mundo no científico) al haber abierto la posibilidad de poner los datos y el código dentro de un contexto que permite visualizar historias.
En esta charla veremos mediante ejemplos cómo podemos modificar el notebook, cómo podemos crear nuestras propias extensiones, cómo podemos crear nuestras propias funciones mágicas, cómo podemos manipular las salidas para convertir el notebook a otros formatos,...
El/la taller/charla pretende ser muy práctico/a viendo los ejemplos en directo.
Duración: 50 mins
Kiko Correoso: PhD en Físicas y actualmente trabajando manejando datos en Iberdrola. Co-organizador de Python-madrid, Co-fundador de Pybonacci, Co-fundador de la asociación Python España y Co-medor de sobrassada a tiempo parcial.
Tiempo: 10-20 minutos.
Mi nombre es Núria Pujol y trabajo en el Centro de Investigaciones Marinas y Ambientales del CSIC en Barcelona en la Unidad de Tecnologia Marina dónde compagino tareas de desarrollo de software para control de calidad de datos, automatización de procesos e informes, etc. con tareas diseño electrónico para la adaptación de nuevos sensores a plataformas autónomas marinas y "cacharreo" en general.
Llevo años trabajando con Python, dando algunas charlas internas en mi centro de trabajo y desde hace casi un año formo parte de la de la organización de PyBCN (Python Barcelona) y soy miembro de PyLadies España (e intento que la cosa también arranque en Barcelona). También estoy metida en algunas asociaciones de robótica e informática para niños a las que puedo dedicar menos tiempo del que quisiera.
A parte de eso también me gustan los deportes al aire libre como el patinaje en linea, el treking, la vela y buscando tiempo para hacer el "open water" de submarinismo: una chica todoterreno :P
Gradual typing in dynamic languages is becoming popular. The implementations for Python, Lua, Clojure and Racket show how a dynamic language can be retrofitted with static type checking. This makes possible to combine the flexibility of these languages with the guarantees of a type checker and can be done in a gradual, non-invasive manner.
In this talk we’ll understand what gradual typing is and the benefits it yields, explore the existing implementations for Python and talk about Guido’s plans for the usage of function annotations introduced in Python 3.
En esta lighning talk se mostrará la herramienta brythonmagic, que permite correr Brython dentro del notebook de IPython.
Brython es una implementación de CPython 3 que corre en navegadores mientras que el notebook de IPython es la versión más moderna del famoso REPL. Brythonmagic permite poder utilizar librerías javascript con una sintáxis más pythónica, permite crear prototipos rápidos de aplicaciones hechas con Brython, permite visualizar datos manipulados con Python usando librerías javascript como openLayers, Highcharts, d3, Raphäel,...
Duración: 10 mins (lighning talk)
Es un escenario habitual. Subes un script a GitHub y tus usuarios hacen click en Download ZIP
o teclean git clone
, seguido de python setup.py install
. El problema: el desarollo en el repositorio continúa, pero la versión instalada en sus ordenadores no se actualiza de forma acorde. Aquellos usuarios que no hagan git update
de forma manual se quedarán cada vez más atrás.
Esta breve charla muestra en apenas unos minutos cómo podemos usar la API de GitHub y el módulo de JSON de la librería estándar (Python 2.6+) para hacer que todas nuestras aplicaciones muestren una advertencia cuando detecten que hay una nueva versión disponible en GitHub — es decir, que se se ha hecho push de commits más recientes a origin
. Apenas unas líneas de código más bastan para que no se haga más de una consulta a la API por hora, así como para que la advertencia sólo se muestre una vez al día. Y lo mejor: toda esta funcionalidad se ha implementado en un único módulo que tan sólo hemos de importar para que nuestro programa se encargue de avisar al usuario cuando haya nuevos cambios disponibles en GitHub.
Duración: 10 minutos.
Además de esta lightning talk, he enviado también una propuesta de charla de 50 minutos. Para no duplicar contenido, creo que lo mejor es enlazar a la misma, donde ya he escrito un párrafo sobre quién soy.
Nuestro propósito como profesionales del desarrollo es entregar software útil y funcional a los usuarios tan pronto como sea posible. Esta es la premisa detrás de la Entrega Continua (o Continuous Delivery). Veremos rápidamente las prácticas y herramientas necesarias para lograr entregar nuestro software a la comunidad de una forma rápida y confiable.
10min
Jaime Gil de Sagredo