SlideShare a Scribd company logo
1 of 46
PyConES 2014 
Experiencias de unos pythonistas 
ETSII Sevilla 18 Noviembre 2014
¿Quiénes somos? 
Sergio Soto Núñez 
@sototan 
https://github.com/ssoto Óscar Ramírez Jiménez 
github.com/tuxskar 
@tuxskar
¿Quiénes somos? 
www.wtelecom.es
PyCon & PyConES
Charlas 
Clases en python: lo estás haciendo mal 
Testing, testing everywhere 
50 shades of docker 
Programación funcional con python 
Python on a plane 
Concurrencia de I/O en Python 
Generators will free your mind 
Django Sample Data Helper
Charlas 
Clases en python: lo estás haciendo mal 
Testing, testing everywhere 
50 shades of docker 
Programación funcional con python 
Python on a plane 
Concurrencia de I/O en Python 
Generators will free your mind 
Django Sample Data Helper
Clases en python: 
lo estás haciendo mal 
Recorrido sobre el buen uso de clases en Python y otras 
peculiaridades 
Víctor Terrón 
Instituto Astrofísica de Andalucia (IAA) 
http://www.iaa.es/~vterron/python-clases.pdf
Clases en python: 
lo estás haciendo mal 
Clases de nuevo estilo: todas heredan de Object. Por compatibilidad hacia 
atrás no lo hacen: 
class Perro(Object): 
def __init__(self, nombre, raza, peso, edad): 
self.nombre ... 
mi_mascota = Perro(‘Lassie’, ‘Collie’, 20, 7)
Clases en python: 
lo estás haciendo mal 
Clases de nuevo estilo: todas heredan de Object. 
Por compatibilidad hacia atrás no lo hacen explícitamente. 
class Perro(Object): 
def __init__(self, nombre, raza, peso, edad): 
self.nombre ... 
mi_mascota = Perro(‘Lassie’, ‘Collie’, 20, 7) 
type(mi_mascota) 
>>> __main__.Perro 
Si no heredara de object sería instance
Clases en python: 
lo estás haciendo mal 
super() 
Llamar al método de tu clase padre: 
perro = Perro( ‘Lassie’, … ) 
super( ).daddy_method( ) 
Se desaconseja hacer la llamada: 
super(Perro, self).daddy_method() 
Habría que cambiarlo en todos sitios si el nombre de tu clase cambia
Clases en python: 
lo estás haciendo mal 
Herencia múltiple 
class T1000(Cyborg, Ninja): 
def ataca(self, n): 
for _ in xrange(n): 
super(T1000, self).ataca()
Clases en python: 
lo estás haciendo mal 
Herencia múltiple 
class Humano(object): 
def ataca(self): 
print "Punetazo" 
class Cyborg(Humano): 
def ataca(self): 
print "Laser" 
class Ninja(Humano): 
def ataca(self): 
print "Shuriken" 
class T1000(Cyborg, Ninja): 
def ataca(self, n): 
for _ in xrange(n): 
super(T1000, 
self).ataca() 
---------------------------------------- 
- 
>> robot = T1000() 
>> robot.ataca(5) 
¿Qué pasará?
Clases en python: 
lo estás haciendo mal 
Herencia múltiple 
>> robot = T1000() 
>> robot.ataca(5) 
Láser 
Láser 
Láser 
Láser 
Láser 
Al llamar a super() dentro del método ataca buscará en sus 
ancestros al primero que implemente ataca en el mismo 
orden en el que se hereda. 
>> T1000.mro() 
[T1000, Cyborg, Ninja, Humano, object] 
What does “mro()” do in Python? 
http://stackoverflow.com/questions/2010692/wh 
at-does-mro-do-in-python
Charlas 
Clases en python: lo estás haciendo mal 
Testing, testing everywhere 
50 shades of docker 
Programación funcional con python 
Python on a plane 
Concurrencia de I/O en Python 
Generators will free your mind 
Django Sample Data Helper
Testing, testing everywhere 
Toni Robres Turón 
SlideShares - Testing, testing everywhere
Testing, testing everywhere 
Herramientas para developers y QAs que permitan realizar testing: 
● python Nose: framework de pruebas unitarias que usa unittest. Permite 
además ver la cobertura de las pruebas 
o python request: módulo par hacer peticiones muy útil para el testeo 
de APIs. Debería suplantar a urllib… 
o Selenium: framework testeo de web UI con soporte para Firefox, 
Chrome, IE, Safari y Opera. NO USAR SU IDE 
● lettuce: framework de BDD (Behavior Driven Development) en python
Charlas 
Clases en python: lo estás haciendo mal 
Testing, testing everywhere 
50 shades of docker 
Programación funcional con python 
Python on a plane 
Concurrencia de I/O en Python 
Generators will free your mind 
Django Sample Data Helper
50 shades of docker 
Iván Pedrazas @ipedrazas 
Blog personal 
http://ivan.pedrazas.me/ 
Artículo de su charla 
Recetas 
https://github.com/ipedrazas/pycones-docker 
Docker despliegue de taiga.io 
https://github.com/ipedrazas/taiga-docker
50 shades of docker 
Dockers… WTF! Leer antes 
Son entornos virtuales linux (LXC) 
Alternativa a la virtualización común 
Usa cgroups, sistema de gestión del uso 
de recursos (cpu, memoria, etc) a grupos de procesos
50 shades of docker 
Virtualización VS Dockers… ¡FIGHT! 
● Recursos necesarios 
● Estabilidad y reproducibilidad 
● Gestión del entorno (libs upgrade) 
● Seguridad 
● Facilidad de uso
Charlas 
Clases en python: lo estás haciendo mal 
Testing, testing everywhere 
50 shades of docker 
Programación funcional con python 
Python on a plane 
Concurrencia de I/O en Python 
Generators will free your mind 
Django Sample Data Helper
Programación funcional con python 
Herramientas para usar python de manera 
funcional 
Ponente: Jesús Espino García (Kaleidos) 
https://speakerdeck.com/jespino/python-funcional
Programación funcional con python 
Programación funcional 
● Función de orden superior: misma entrada, misma salida 
● Ausencia de estados: el comportamiento depende sólo de las entradas 
● Funciones: SÓLO FUNCIONES 
Útil para: 
● Facilitar la paralelización 
● Tests unitarios 
● Reusabilidad y depuración del código
Programación funcional con python 
Python no es un lenguaje funcional 
sino multi-paradigma 
Soporta características funcionales 
básicas: 
● Evaluación perezosa 
● Aplicación parcial 
● Funciones lambda 
● Funciones de orden superior 
No soporta: 
● Estructuras inmutables eficientes 
● Pattern matching 
● TCO (tail call optimization) 
● Currificación 
● Composición de funciones
Programación funcional con python 
Jesús Espino 
https://speakerdeck.com/jespino 
fn.py 
Transparencias
Charlas 
Clases en python: lo estás haciendo mal 
Testing, testing everywhere 
50 shades of docker 
Programación funcional con python 
Python on a plane 
Concurrencia de I/O en Python 
Generators will free your mind 
Django Sample Data Helper
Python on a plane 
Mostrar contenido a los pasajeros de vuelos 
domésticos en europa usando sus dispositivos 
personales 
Ponente: David Arcos, Ingeniero en Immfly 
http://www.slideshare.net/DZPM/python-on-a-plane
Python on a plane, problemas 
1. En vuelo: 
○ Offline y un backend con muchos complementos 
2. Sincronizar la información del vuelo: 
○ Mantener copias consistentes y actualizadas 
3. Integración con terceros: 
○ Pagos, tiempo atmosférico, información, gestión de 
email
En vuelo 
Autenticación común 
● TokenAuthentication 
Apps: web, android, iOS 
● API rest usando django rest framework 
Dispositivos: laptops, smartphone, tablet 
● Generar thumbnails con diferentes tamaños, responsive 
Distintos lenguajes, aerolíneas, destinos, horarios, etc 
● API filtrando con muchísimos parámetros
En vuelo 
Autenticación común 
● TokenAuthentication 
Apps: web, android, iOS 
● API rest usando django rest framework 
Dispositivos: laptops, smartphone, tablet 
● Generar thumbnails con diferentes tamaños, responsive 
Distintos lenguajes, aerolíneas, destinos, horarios, etc 
● API filtrando con muchísimos parámetros
Aterrizando 
Sincronización y volcado de la info del vuelo 
● Volcar y actualizar información usando 3G 
● Se utiliza una VPN para la securizar las conexiones 
● El sistema de tierra (hangar) es pasivo y el avión 
cuando aterriza se actualiza de manera activa
Despegue 
Sincronizar aplicaciones de terceros (pagos por paypal, o 
email por ejemplo) 
Actualizar la información del siguiente vuelo (temperatura, 
mapas, dirección) 
Actualizar contenido multimedia (periódicos, películas, 
música, aplicaciones)
Resumen de herramientas 
Python: 
● Django 
● Django Rest Framework 
● django-uuidfield 
● django-redis 
● django-celery 
● django-extensions 
● django-imagekit 
Otros: 
● NGINX 
● gUnicorn 
● Supervisor 
● Fabric
Charlas 
Clases en python: lo estás haciendo mal 
Testing, testing everywhere 
50 shades of docker 
Programación funcional con python 
Python on a plane 
Concurrencia de I/O en Python 
Generators will free your mind 
Django Sample Data Helper
Concurrencia I/O en python 
Concurrencia en python 
● Threading 
● Twisted 
● Gevent 
● Asyncio 
Ponente: Aitor Guevara, fundador at 
ducksboard.com
Mejor en la misma presentación 
Hacemos peticiones a páginas webs y vemos 
resultados 
Transparencias
Charlas 
Clases en python: lo estás haciendo mal 
Testing, testing everywhere 
50 shades of docker 
Programación funcional con python 
Python on a plane 
Concurrencia de I/O en Python 
Generators will free your mind 
Django Sample Data Helper
Generators will free your mind 
Ejemplos de uso de corrutinas y funciones 
generadoras en python 
Ponente: James Powell, New York, PyGotham 
organizer 
link
Charlas 
Clases en python: lo estás haciendo mal 
Testing, testing everywhere 
50 shades of docker 
Programación funcional con python 
Python on a plane 
Concurrencia de I/O en Python 
Generators will free your mind 
Django Sample Data Helper
Django sample data helper 
Aplicación django para generar datos 
aleatorios para llenar BBDD de django 
Ponente: Jesus Espino, Kaleider 
https://speakerdeck.com/jespino/django-sample-data-helper
Django sample data helper 
Necesidad de generar datos de prueba 
Los fixtures no funcionan 
pip install django-sampledatahelper
Django sample data helper 
Fácil de configurar: 
En el archivo: settings.py 
INSTALLED_APPS += [‘sampledatahelper’] 
SAMPLEDATAHELPER_MODEL = { 
‘model’ : ‘myapp.MyModel’, ‘number’: 5 
}
pyconES 2014 
Más de 30 charlas 
8 talleres… 
Piratepad enlaces de 
transparencias
Preguntas
Python Sevilla 
Pedro Varo Herrero @pevahe91 
Ponente en las PyconEs13 y 14 
Data Analysis, Machine Learning and Data visualization 
CSIC: Cell Biology Depart. (Univ. Sevilla and Instituto de Biomedicina de Sevilla) 
python-sevilla (linkedin)
Gracias,

More Related Content

What's hot

Javier.Ramirez.Rails.Hot.Or.Not.Conferenciarails2008
Javier.Ramirez.Rails.Hot.Or.Not.Conferenciarails2008Javier.Ramirez.Rails.Hot.Or.Not.Conferenciarails2008
Javier.Ramirez.Rails.Hot.Or.Not.Conferenciarails2008javier ramirez
 
Jruby On Rails. Ruby on Rails en la JVM
Jruby On Rails. Ruby on Rails en la JVMJruby On Rails. Ruby on Rails en la JVM
Jruby On Rails. Ruby on Rails en la JVMjavier ramirez
 
Python y la POO, en una clase, UNNe-Corrientes
Python y la POO, en una clase, UNNe-CorrientesPython y la POO, en una clase, UNNe-Corrientes
Python y la POO, en una clase, UNNe-Corrientesalexis ibarra
 
Python para ingenieros como alternativa a matlab
Python para ingenieros como alternativa a matlabPython para ingenieros como alternativa a matlab
Python para ingenieros como alternativa a matlabSistemadeEstudiosMed
 
Manual Basico para Encantadores de Serpientes (Python)
Manual Basico para Encantadores de Serpientes (Python)Manual Basico para Encantadores de Serpientes (Python)
Manual Basico para Encantadores de Serpientes (Python)Fco Javier Lucena
 
Python (Lenguaje de Programación)
Python (Lenguaje de Programación)Python (Lenguaje de Programación)
Python (Lenguaje de Programación)Ricardo Muñiz
 
Manual de python
Manual de pythonManual de python
Manual de pythonULEAM
 
Programacion orientada a objetos python manuel casado martín - universidad ...
Programacion orientada a objetos python   manuel casado martín - universidad ...Programacion orientada a objetos python   manuel casado martín - universidad ...
Programacion orientada a objetos python manuel casado martín - universidad ...Wilson Bautista
 
Python - Programación para machos
Python - Programación para machosPython - Programación para machos
Python - Programación para machosJorge Hernandez
 

What's hot (20)

Javier.Ramirez.Rails.Hot.Or.Not.Conferenciarails2008
Javier.Ramirez.Rails.Hot.Or.Not.Conferenciarails2008Javier.Ramirez.Rails.Hot.Or.Not.Conferenciarails2008
Javier.Ramirez.Rails.Hot.Or.Not.Conferenciarails2008
 
Jruby On Rails. Ruby on Rails en la JVM
Jruby On Rails. Ruby on Rails en la JVMJruby On Rails. Ruby on Rails en la JVM
Jruby On Rails. Ruby on Rails en la JVM
 
Python y la POO, en una clase, UNNe-Corrientes
Python y la POO, en una clase, UNNe-CorrientesPython y la POO, en una clase, UNNe-Corrientes
Python y la POO, en una clase, UNNe-Corrientes
 
Tutorial de Python
Tutorial de PythonTutorial de Python
Tutorial de Python
 
Java world
Java worldJava world
Java world
 
Clase4_Python-CTIC
Clase4_Python-CTICClase4_Python-CTIC
Clase4_Python-CTIC
 
Python básico I
Python básico IPython básico I
Python básico I
 
Python para ingenieros como alternativa a matlab
Python para ingenieros como alternativa a matlabPython para ingenieros como alternativa a matlab
Python para ingenieros como alternativa a matlab
 
Semana 2 Fundamentos de Python(Variables)
Semana 2   Fundamentos de Python(Variables)Semana 2   Fundamentos de Python(Variables)
Semana 2 Fundamentos de Python(Variables)
 
Unidad V Tutorial de Python
Unidad V Tutorial de PythonUnidad V Tutorial de Python
Unidad V Tutorial de Python
 
Python para todos
Python para todosPython para todos
Python para todos
 
Manual Basico para Encantadores de Serpientes (Python)
Manual Basico para Encantadores de Serpientes (Python)Manual Basico para Encantadores de Serpientes (Python)
Manual Basico para Encantadores de Serpientes (Python)
 
Python (Lenguaje de Programación)
Python (Lenguaje de Programación)Python (Lenguaje de Programación)
Python (Lenguaje de Programación)
 
Manual de python
Manual de pythonManual de python
Manual de python
 
Introducción a python
Introducción a pythonIntroducción a python
Introducción a python
 
Programacion orientada a objetos python manuel casado martín - universidad ...
Programacion orientada a objetos python   manuel casado martín - universidad ...Programacion orientada a objetos python   manuel casado martín - universidad ...
Programacion orientada a objetos python manuel casado martín - universidad ...
 
Python
PythonPython
Python
 
Python - Programación para machos
Python - Programación para machosPython - Programación para machos
Python - Programación para machos
 
Análisis de sentimientos con NLTK
Análisis de sentimientos con NLTKAnálisis de sentimientos con NLTK
Análisis de sentimientos con NLTK
 
Recetario de Látex
Recetario de LátexRecetario de Látex
Recetario de Látex
 

Viewers also liked

Ecosistema de desarrollo en PHP con Docker y Ansible
Ecosistema de desarrollo en PHP con Docker y AnsibleEcosistema de desarrollo en PHP con Docker y Ansible
Ecosistema de desarrollo en PHP con Docker y AnsibleVicent Soria Durá
 
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...Kubernetes technical overview and our experience at Restorando :: Buenos Aire...
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...Restorando
 
data warehouse , data mart, etl
data warehouse , data mart, etldata warehouse , data mart, etl
data warehouse , data mart, etlAashish Rathod
 

Viewers also liked (6)

Ecosistema de desarrollo en PHP con Docker y Ansible
Ecosistema de desarrollo en PHP con Docker y AnsibleEcosistema de desarrollo en PHP con Docker y Ansible
Ecosistema de desarrollo en PHP con Docker y Ansible
 
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...Kubernetes technical overview and our experience at Restorando :: Buenos Aire...
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...
 
Conceptos avanzados en docker
Conceptos avanzados en dockerConceptos avanzados en docker
Conceptos avanzados en docker
 
data warehouse , data mart, etl
data warehouse , data mart, etldata warehouse , data mart, etl
data warehouse , data mart, etl
 
Data mart
Data martData mart
Data mart
 
Data mart
Data martData mart
Data mart
 

Similar to Pycon es 17 noviembre 2014

Clase 2 - Introducción a la programación con Python I.pptx
Clase 2 - Introducción a la programación con Python I.pptxClase 2 - Introducción a la programación con Python I.pptx
Clase 2 - Introducción a la programación con Python I.pptxjgs07
 
Mi Primera Aplicacion en Google App Engine
Mi Primera Aplicacion en Google App EngineMi Primera Aplicacion en Google App Engine
Mi Primera Aplicacion en Google App Engineykro
 
Mini clase Intro Programación Python UTN Profesorado 2015
Mini clase Intro Programación Python UTN Profesorado 2015Mini clase Intro Programación Python UTN Profesorado 2015
Mini clase Intro Programación Python UTN Profesorado 2015Mariano Reingart
 
python-para-todos.pdf
python-para-todos.pdfpython-para-todos.pdf
python-para-todos.pdfJaviMartin21
 
Python para todos
Python para todosPython para todos
Python para todosErik Gur
 
python-para-todos.pdf
python-para-todos.pdfpython-para-todos.pdf
python-para-todos.pdfRafalJMalave
 
Python para todos
Python para todosPython para todos
Python para todossebas145713
 
Python_para_todos.pdf
Python_para_todos.pdfPython_para_todos.pdf
Python_para_todos.pdfssuser626fe4
 
Python_Module_01_Courtesy.pdf
Python_Module_01_Courtesy.pdfPython_Module_01_Courtesy.pdf
Python_Module_01_Courtesy.pdfCeth1
 
Conceptos básicos y aplicaciones prácticas de programación para SEO
Conceptos básicos y aplicaciones prácticas de programación para SEOConceptos básicos y aplicaciones prácticas de programación para SEO
Conceptos básicos y aplicaciones prácticas de programación para SEOnacho mascort
 
Django - Plataforma de sitios web
Django - Plataforma de sitios webDjango - Plataforma de sitios web
Django - Plataforma de sitios webjcarazo
 
Combinación ganadora: Plone como CMS, tu framework preferido como frontend
Combinación ganadora: Plone como CMS, tu framework preferido como frontendCombinación ganadora: Plone como CMS, tu framework preferido como frontend
Combinación ganadora: Plone como CMS, tu framework preferido como frontendmenttes
 

Similar to Pycon es 17 noviembre 2014 (20)

Clase 2 - Introducción a la programación con Python I.pptx
Clase 2 - Introducción a la programación con Python I.pptxClase 2 - Introducción a la programación con Python I.pptx
Clase 2 - Introducción a la programación con Python I.pptx
 
Mi Primera Aplicacion en Google App Engine
Mi Primera Aplicacion en Google App EngineMi Primera Aplicacion en Google App Engine
Mi Primera Aplicacion en Google App Engine
 
Gestión Remota de Equipos con Python
Gestión Remota de Equipos con PythonGestión Remota de Equipos con Python
Gestión Remota de Equipos con Python
 
Mini clase Intro Programación Python UTN Profesorado 2015
Mini clase Intro Programación Python UTN Profesorado 2015Mini clase Intro Programación Python UTN Profesorado 2015
Mini clase Intro Programación Python UTN Profesorado 2015
 
python-para-todos.pdf
python-para-todos.pdfpython-para-todos.pdf
python-para-todos.pdf
 
Python para todos
Python para todosPython para todos
Python para todos
 
Python para Todos
Python para TodosPython para Todos
Python para Todos
 
python-para-todos.pdf
python-para-todos.pdfpython-para-todos.pdf
python-para-todos.pdf
 
Libro python para todos
Libro   python para todosLibro   python para todos
Libro python para todos
 
Python para todos
Python para todosPython para todos
Python para todos
 
Python_para_todos.pdf
Python_para_todos.pdfPython_para_todos.pdf
Python_para_todos.pdf
 
Python_para_todos.pdf
Python_para_todos.pdfPython_para_todos.pdf
Python_para_todos.pdf
 
Django
DjangoDjango
Django
 
Eventos intropython
Eventos intropythonEventos intropython
Eventos intropython
 
Pucela testingdays testing_en_php
Pucela testingdays testing_en_phpPucela testingdays testing_en_php
Pucela testingdays testing_en_php
 
Python para desarrolladores web
Python para desarrolladores webPython para desarrolladores web
Python para desarrolladores web
 
Python_Module_01_Courtesy.pdf
Python_Module_01_Courtesy.pdfPython_Module_01_Courtesy.pdf
Python_Module_01_Courtesy.pdf
 
Conceptos básicos y aplicaciones prácticas de programación para SEO
Conceptos básicos y aplicaciones prácticas de programación para SEOConceptos básicos y aplicaciones prácticas de programación para SEO
Conceptos básicos y aplicaciones prácticas de programación para SEO
 
Django - Plataforma de sitios web
Django - Plataforma de sitios webDjango - Plataforma de sitios web
Django - Plataforma de sitios web
 
Combinación ganadora: Plone como CMS, tu framework preferido como frontend
Combinación ganadora: Plone como CMS, tu framework preferido como frontendCombinación ganadora: Plone como CMS, tu framework preferido como frontend
Combinación ganadora: Plone como CMS, tu framework preferido como frontend
 

Recently uploaded

Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1ivanapaterninar
 
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024u20211198540
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
La tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedadLa tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedadEduardoSantiagoSegov
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxhasbleidit
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxtjcesar1
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptxHugoGutierrez99
 
David_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDavid_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDAVIDROBERTOGALLEGOS
 
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxLINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxkimontey
 
Análisis de Artefactos Tecnologicos (3) (1).pdf
Análisis de Artefactos Tecnologicos  (3) (1).pdfAnálisis de Artefactos Tecnologicos  (3) (1).pdf
Análisis de Artefactos Tecnologicos (3) (1).pdfsharitcalderon04
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfcristianrb0324
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointValerioIvanDePazLoja
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerenciacubillannoly
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdfBetianaJuarez1
 
Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar24roberto21
 
Viguetas Pretensadas en concreto armado
Viguetas Pretensadas  en concreto armadoViguetas Pretensadas  en concreto armado
Viguetas Pretensadas en concreto armadob7fwtwtfxf
 

Recently uploaded (20)

Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1
 
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
La tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedadLa tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedad
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
 
El camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVPEl camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVP
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
 
David_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDavid_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptx
 
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxLINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
 
Análisis de Artefactos Tecnologicos (3) (1).pdf
Análisis de Artefactos Tecnologicos  (3) (1).pdfAnálisis de Artefactos Tecnologicos  (3) (1).pdf
Análisis de Artefactos Tecnologicos (3) (1).pdf
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdf
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power Point
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerencia
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
 
Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar
 
Viguetas Pretensadas en concreto armado
Viguetas Pretensadas  en concreto armadoViguetas Pretensadas  en concreto armado
Viguetas Pretensadas en concreto armado
 

Pycon es 17 noviembre 2014

  • 1. PyConES 2014 Experiencias de unos pythonistas ETSII Sevilla 18 Noviembre 2014
  • 2. ¿Quiénes somos? Sergio Soto Núñez @sototan https://github.com/ssoto Óscar Ramírez Jiménez github.com/tuxskar @tuxskar
  • 5. Charlas Clases en python: lo estás haciendo mal Testing, testing everywhere 50 shades of docker Programación funcional con python Python on a plane Concurrencia de I/O en Python Generators will free your mind Django Sample Data Helper
  • 6. Charlas Clases en python: lo estás haciendo mal Testing, testing everywhere 50 shades of docker Programación funcional con python Python on a plane Concurrencia de I/O en Python Generators will free your mind Django Sample Data Helper
  • 7. Clases en python: lo estás haciendo mal Recorrido sobre el buen uso de clases en Python y otras peculiaridades Víctor Terrón Instituto Astrofísica de Andalucia (IAA) http://www.iaa.es/~vterron/python-clases.pdf
  • 8. Clases en python: lo estás haciendo mal Clases de nuevo estilo: todas heredan de Object. Por compatibilidad hacia atrás no lo hacen: class Perro(Object): def __init__(self, nombre, raza, peso, edad): self.nombre ... mi_mascota = Perro(‘Lassie’, ‘Collie’, 20, 7)
  • 9. Clases en python: lo estás haciendo mal Clases de nuevo estilo: todas heredan de Object. Por compatibilidad hacia atrás no lo hacen explícitamente. class Perro(Object): def __init__(self, nombre, raza, peso, edad): self.nombre ... mi_mascota = Perro(‘Lassie’, ‘Collie’, 20, 7) type(mi_mascota) >>> __main__.Perro Si no heredara de object sería instance
  • 10. Clases en python: lo estás haciendo mal super() Llamar al método de tu clase padre: perro = Perro( ‘Lassie’, … ) super( ).daddy_method( ) Se desaconseja hacer la llamada: super(Perro, self).daddy_method() Habría que cambiarlo en todos sitios si el nombre de tu clase cambia
  • 11. Clases en python: lo estás haciendo mal Herencia múltiple class T1000(Cyborg, Ninja): def ataca(self, n): for _ in xrange(n): super(T1000, self).ataca()
  • 12. Clases en python: lo estás haciendo mal Herencia múltiple class Humano(object): def ataca(self): print "Punetazo" class Cyborg(Humano): def ataca(self): print "Laser" class Ninja(Humano): def ataca(self): print "Shuriken" class T1000(Cyborg, Ninja): def ataca(self, n): for _ in xrange(n): super(T1000, self).ataca() ---------------------------------------- - >> robot = T1000() >> robot.ataca(5) ¿Qué pasará?
  • 13. Clases en python: lo estás haciendo mal Herencia múltiple >> robot = T1000() >> robot.ataca(5) Láser Láser Láser Láser Láser Al llamar a super() dentro del método ataca buscará en sus ancestros al primero que implemente ataca en el mismo orden en el que se hereda. >> T1000.mro() [T1000, Cyborg, Ninja, Humano, object] What does “mro()” do in Python? http://stackoverflow.com/questions/2010692/wh at-does-mro-do-in-python
  • 14. Charlas Clases en python: lo estás haciendo mal Testing, testing everywhere 50 shades of docker Programación funcional con python Python on a plane Concurrencia de I/O en Python Generators will free your mind Django Sample Data Helper
  • 15. Testing, testing everywhere Toni Robres Turón SlideShares - Testing, testing everywhere
  • 16. Testing, testing everywhere Herramientas para developers y QAs que permitan realizar testing: ● python Nose: framework de pruebas unitarias que usa unittest. Permite además ver la cobertura de las pruebas o python request: módulo par hacer peticiones muy útil para el testeo de APIs. Debería suplantar a urllib… o Selenium: framework testeo de web UI con soporte para Firefox, Chrome, IE, Safari y Opera. NO USAR SU IDE ● lettuce: framework de BDD (Behavior Driven Development) en python
  • 17. Charlas Clases en python: lo estás haciendo mal Testing, testing everywhere 50 shades of docker Programación funcional con python Python on a plane Concurrencia de I/O en Python Generators will free your mind Django Sample Data Helper
  • 18. 50 shades of docker Iván Pedrazas @ipedrazas Blog personal http://ivan.pedrazas.me/ Artículo de su charla Recetas https://github.com/ipedrazas/pycones-docker Docker despliegue de taiga.io https://github.com/ipedrazas/taiga-docker
  • 19. 50 shades of docker Dockers… WTF! Leer antes Son entornos virtuales linux (LXC) Alternativa a la virtualización común Usa cgroups, sistema de gestión del uso de recursos (cpu, memoria, etc) a grupos de procesos
  • 20. 50 shades of docker Virtualización VS Dockers… ¡FIGHT! ● Recursos necesarios ● Estabilidad y reproducibilidad ● Gestión del entorno (libs upgrade) ● Seguridad ● Facilidad de uso
  • 21. Charlas Clases en python: lo estás haciendo mal Testing, testing everywhere 50 shades of docker Programación funcional con python Python on a plane Concurrencia de I/O en Python Generators will free your mind Django Sample Data Helper
  • 22. Programación funcional con python Herramientas para usar python de manera funcional Ponente: Jesús Espino García (Kaleidos) https://speakerdeck.com/jespino/python-funcional
  • 23. Programación funcional con python Programación funcional ● Función de orden superior: misma entrada, misma salida ● Ausencia de estados: el comportamiento depende sólo de las entradas ● Funciones: SÓLO FUNCIONES Útil para: ● Facilitar la paralelización ● Tests unitarios ● Reusabilidad y depuración del código
  • 24. Programación funcional con python Python no es un lenguaje funcional sino multi-paradigma Soporta características funcionales básicas: ● Evaluación perezosa ● Aplicación parcial ● Funciones lambda ● Funciones de orden superior No soporta: ● Estructuras inmutables eficientes ● Pattern matching ● TCO (tail call optimization) ● Currificación ● Composición de funciones
  • 25. Programación funcional con python Jesús Espino https://speakerdeck.com/jespino fn.py Transparencias
  • 26. Charlas Clases en python: lo estás haciendo mal Testing, testing everywhere 50 shades of docker Programación funcional con python Python on a plane Concurrencia de I/O en Python Generators will free your mind Django Sample Data Helper
  • 27. Python on a plane Mostrar contenido a los pasajeros de vuelos domésticos en europa usando sus dispositivos personales Ponente: David Arcos, Ingeniero en Immfly http://www.slideshare.net/DZPM/python-on-a-plane
  • 28. Python on a plane, problemas 1. En vuelo: ○ Offline y un backend con muchos complementos 2. Sincronizar la información del vuelo: ○ Mantener copias consistentes y actualizadas 3. Integración con terceros: ○ Pagos, tiempo atmosférico, información, gestión de email
  • 29. En vuelo Autenticación común ● TokenAuthentication Apps: web, android, iOS ● API rest usando django rest framework Dispositivos: laptops, smartphone, tablet ● Generar thumbnails con diferentes tamaños, responsive Distintos lenguajes, aerolíneas, destinos, horarios, etc ● API filtrando con muchísimos parámetros
  • 30. En vuelo Autenticación común ● TokenAuthentication Apps: web, android, iOS ● API rest usando django rest framework Dispositivos: laptops, smartphone, tablet ● Generar thumbnails con diferentes tamaños, responsive Distintos lenguajes, aerolíneas, destinos, horarios, etc ● API filtrando con muchísimos parámetros
  • 31. Aterrizando Sincronización y volcado de la info del vuelo ● Volcar y actualizar información usando 3G ● Se utiliza una VPN para la securizar las conexiones ● El sistema de tierra (hangar) es pasivo y el avión cuando aterriza se actualiza de manera activa
  • 32. Despegue Sincronizar aplicaciones de terceros (pagos por paypal, o email por ejemplo) Actualizar la información del siguiente vuelo (temperatura, mapas, dirección) Actualizar contenido multimedia (periódicos, películas, música, aplicaciones)
  • 33. Resumen de herramientas Python: ● Django ● Django Rest Framework ● django-uuidfield ● django-redis ● django-celery ● django-extensions ● django-imagekit Otros: ● NGINX ● gUnicorn ● Supervisor ● Fabric
  • 34. Charlas Clases en python: lo estás haciendo mal Testing, testing everywhere 50 shades of docker Programación funcional con python Python on a plane Concurrencia de I/O en Python Generators will free your mind Django Sample Data Helper
  • 35. Concurrencia I/O en python Concurrencia en python ● Threading ● Twisted ● Gevent ● Asyncio Ponente: Aitor Guevara, fundador at ducksboard.com
  • 36. Mejor en la misma presentación Hacemos peticiones a páginas webs y vemos resultados Transparencias
  • 37. Charlas Clases en python: lo estás haciendo mal Testing, testing everywhere 50 shades of docker Programación funcional con python Python on a plane Concurrencia de I/O en Python Generators will free your mind Django Sample Data Helper
  • 38. Generators will free your mind Ejemplos de uso de corrutinas y funciones generadoras en python Ponente: James Powell, New York, PyGotham organizer link
  • 39. Charlas Clases en python: lo estás haciendo mal Testing, testing everywhere 50 shades of docker Programación funcional con python Python on a plane Concurrencia de I/O en Python Generators will free your mind Django Sample Data Helper
  • 40. Django sample data helper Aplicación django para generar datos aleatorios para llenar BBDD de django Ponente: Jesus Espino, Kaleider https://speakerdeck.com/jespino/django-sample-data-helper
  • 41. Django sample data helper Necesidad de generar datos de prueba Los fixtures no funcionan pip install django-sampledatahelper
  • 42. Django sample data helper Fácil de configurar: En el archivo: settings.py INSTALLED_APPS += [‘sampledatahelper’] SAMPLEDATAHELPER_MODEL = { ‘model’ : ‘myapp.MyModel’, ‘number’: 5 }
  • 43. pyconES 2014 Más de 30 charlas 8 talleres… Piratepad enlaces de transparencias
  • 45. Python Sevilla Pedro Varo Herrero @pevahe91 Ponente en las PyconEs13 y 14 Data Analysis, Machine Learning and Data visualization CSIC: Cell Biology Depart. (Univ. Sevilla and Instituto de Biomedicina de Sevilla) python-sevilla (linkedin)