SlideShare uma empresa Scribd logo
1 de 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,

Mais conteúdo relacionado

Mais procurados

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
 
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
 

Mais procurados (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
 

Destaque (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
 

Semelhante a 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.pptx
jgs07
 

Semelhante a 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
 

Último

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
nicho110
 

Último (12)

Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 

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)