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