Presentación de Álex González (@nihilistbird) en el #DataBeers del 29 de noviembre de 2014 (Madrid). ¿Por qué sumergirse? Esto nos otorga más dimensiones de representación. Capacidad de recrear entornos reales. Nuevas sensaciones asociadas a datos. Y mucho más.
Te has preguntado alguna vez ¿Existe vida después de ActiveRecord::Base? si es así, en esta charla vamos descubrir que Rails es algo más que un simple MVC, es un framework repleto de herramientas cuyo conocimiento nos va a facilitar enormemente la vida.
Con estas herramientas vas a poder extender Rails de una forma que no habías imaginado hasta ahora: crearas tus propios validadores, responders y renderers; serás capaz de enviar datos por streaming, de interceptar mails o añadir un nuevo middleware a tu stack.
Queremos mostrar 10 de estas herramientas junto con ejemplos de uso de cada una de ellas, para que las puedas incorporar poco a poco en tu día a día y descubras el mundo de posibilidades que realmente tienes en tus manos.
El conjunto de herramientas que vamos a mostrar es:
ActiveModel::Model
ActiveModel::Validator
ActiveSupport::Concern
ActionSupport::Notifications
ActionController::Renderers
ActionController::Responder
ActionController::Live
ActionView::Resolvers
ActionMailer Interceptors
Rack Middleware
Presentación de Álex González (@nihilistbird) en el #DataBeers del 29 de noviembre de 2014 (Madrid). ¿Por qué sumergirse? Esto nos otorga más dimensiones de representación. Capacidad de recrear entornos reales. Nuevas sensaciones asociadas a datos. Y mucho más.
Te has preguntado alguna vez ¿Existe vida después de ActiveRecord::Base? si es así, en esta charla vamos descubrir que Rails es algo más que un simple MVC, es un framework repleto de herramientas cuyo conocimiento nos va a facilitar enormemente la vida.
Con estas herramientas vas a poder extender Rails de una forma que no habías imaginado hasta ahora: crearas tus propios validadores, responders y renderers; serás capaz de enviar datos por streaming, de interceptar mails o añadir un nuevo middleware a tu stack.
Queremos mostrar 10 de estas herramientas junto con ejemplos de uso de cada una de ellas, para que las puedas incorporar poco a poco en tu día a día y descubras el mundo de posibilidades que realmente tienes en tus manos.
El conjunto de herramientas que vamos a mostrar es:
ActiveModel::Model
ActiveModel::Validator
ActiveSupport::Concern
ActionSupport::Notifications
ActionController::Renderers
ActionController::Responder
ActionController::Live
ActionView::Resolvers
ActionMailer Interceptors
Rack Middleware
Volunteering assistance to online geocoding services through a distributed kn...José Pablo Gómez Barrón S.
Work presented in RICH-VGI: enRICHment of volunteered geographic information (VGI): Techniques, practices and current state of knowledge, Workshop at the 18th AGILE Conference on Geographic Information Science, June 9th, 2015, Lisboa, Portugal.
* Conceptos esenciales. ¿Qué problemas resuelve Django Migrations?
* Bases de datos: Peculiaridades que debemos saber al implementar la librería según nuestro motor de base de datos.
* Un vistazo a los componentes internos que conforman Django Migrations.
* Presentación compartida el 2016-05-25 en la comunidad de Python Dominicana.
* https://www.facebook.com/events/1787153718174739/
This talk is quick reference of all the different queerability options that MongoDB offers to developers that want to build mobile and geospatial referenced applications. We reviewed the basic functionality but also recent improvements in the query and indexation engine of MongoDB geospatial features
Volunteering assistance to online geocoding services through a distributed kn...José Pablo Gómez Barrón S.
Work presented in RICH-VGI: enRICHment of volunteered geographic information (VGI): Techniques, practices and current state of knowledge, Workshop at the 18th AGILE Conference on Geographic Information Science, June 9th, 2015, Lisboa, Portugal.
* Conceptos esenciales. ¿Qué problemas resuelve Django Migrations?
* Bases de datos: Peculiaridades que debemos saber al implementar la librería según nuestro motor de base de datos.
* Un vistazo a los componentes internos que conforman Django Migrations.
* Presentación compartida el 2016-05-25 en la comunidad de Python Dominicana.
* https://www.facebook.com/events/1787153718174739/
This talk is quick reference of all the different queerability options that MongoDB offers to developers that want to build mobile and geospatial referenced applications. We reviewed the basic functionality but also recent improvements in the query and indexation engine of MongoDB geospatial features
1. Introducció a Python
Copyleft 2012 Santi Camps
#bbmnk Betabeers Menorca
Copieu I compartiu aquesta
presentació tant com vulgueu ..
per favor
2. Llenguatge de programació creat per Guido
Van Rossum
És software lliure
És multiplataforma (quasi totalment)
És interpretat o pseudo-compilat (psyco)
Combina el millor d'un llenguatge de script
amb el millor de l'orientació a objectes
Aconsegueix productivitats 5-10 superiors a
altres llenguatges
3. Usos: the glue language
Scripts de sistema
Serveis i pàgines web
Software de baix nivell
Daemons
Protocols d'intercanvi
Inteligència Artificial
Software d'escriptori
Absolutament de tot !!
5. Casos d'èxit
Youtube
Dropbox
Instagram
Pinterest
Mozilla Fundation
Reddit
OpenERP
Google te 3 llenguages recomanats: C+
+, Java i python !!
6. Sintaxi i altres
rareses
Indentació per llei:
barca = 5
madrid = 1
if (barca > madrid):
print("Barca guanya de %i" % (barca - madrid))
Tipus de dades bàsics:
int / long / float
string: suport unicode i implementat com a class
booleans
classes
7. Tipus de dades extranys
Llistes:
l = [1, 4, 9, 4]
print l[2]
Tuples:
t = (3, 4, "beer")
print t[2]
Diccionaris:
d = {'uid': 2, 'name': 'betabeers menorca'}
print d['name']
Sets:
print set(l)
8. Classes i Objectes
class beer(object):
def __init__(self, alc, name):
self.alc = alc
self.name = name
def __str__(self):
return "%s with %0.2f %% of alcohol" % (self.name, self.alc)
b1 = beer(0.0, "San Miguel 0 0")
b2 = beer(5.4, "Sant Climent Brown Ale")
print "What do you prefer, %s or %s ?" % (str(b1), str(b2))
9. Herència
class damm(beer):
base_name = " Damm"
def __init__(self, alc, name=''):
self.alc = alc
self.name = name + self.__class__.base_name
b1 = damm(4.8, "Estrella")
b2 = beer(5.4, "Sant Climent Brown Ale")
print "What do you prefer, %s or %s ?" % (str(b1), str(b2))
10. Control d'Errors
# Sense control
b3 = beer("Volldamm", 6.5)
str(b3)
# Amb control d'errors
try:
b3 = beer("Volldamm", 6.5)
str(b3)
except TypeError:
print "Invalid type"
import pdb; pdb.set_trace()
11. Dinamisme
def producer(self):
if hasattr(self.__class__, 'base_name'):
return self.name + ' is produced by ' +
self.__class__.base_name
else:
return self.name + ' producer is unknown'
beer.producer = producer
print b1.producer()
print b2.producer()
12. Velocitat
import random, time
llist = [random.random()*100000 for i in range(1000000)]
t1 = time.time()
maxitem = 0
for item in llist:
if item > maxitem:
maxitem = item
print "Found %i in %0.4f secs" % (maxitem, time.time() - t1)
t1 = time.time()
maxitem = max(llist)
print "Found %i in %0.4f secs" % (maxitem, time.time() - t1)
13. Mòduls
SINTAXI D'IMPORTACIO
import nom_modul
from nom_modul import funcio, classe, submodul
from nom_modul.submodul import funcio, classe, submodul
SINTAXI DE DEFINICIO: fitxer __init__.py
PYTHONPATH
MODULS DISPONIBLES: os, xml, json, datetime, md5, urllib,
calendar, locale, pickle ... més tot un món instalables
15. Cas pràctic
Crear un servidor que escolti pel port
6666 i que converteixi a majúscules el
que rebi i li afegeixi el nom de cadascú
Crear un client que li envïi peticions al
servidor
Cridar-nos entre noltros