os 4 trabalhos de python
DESCRIPTION
Palestra apresentada por Andrews Medina e Francisco Souza na primeira edição do Dev in Cachu, no dia 30 de abril de 2011.Mais informações sobre o evento: http://www.devincachu.com.brTRANSCRIPT
Os 4 trabalhos de
Resolvendo desafios de diferentespropósitos com uma linguagem multipropósito
Python
Andrews Medinaandrewsmedina.com @[email protected]
Francisco Souzafranciscosouza.com
Monday, May 2, 2011
Andrews Medina
Francisco Souza
#cobrateam member
moderador @ python-brasil/django-brasil
desenvolvedor @ globo.com
#cobrateam member
moderador @ django-brasil
desenvolvedor @ globo.com
Monday, May 2, 2011
Trabalhos de Python?
Monday, May 2, 2011
Monday, May 2, 2011
Por que só 4?!
Monday, May 2, 2011
Por que só 4?!São 12, mas...
Monday, May 2, 2011
Por que só 4?!São 12, mas...
Monday, May 2, 2011
1. Criar um framework para testes de aceitação em aplicações web
2. Criar uma aplicação para Android
3. Criar uma aplicação web para mapear access points
4. Criar um jogo de batalha naval
Monday, May 2, 2011
1. Criar um framework para testes de aceitação em aplicações web
splinter
>>> from splinter.browser import Browser>>> browser = Browser('webdriver.chrome')>>> browser.visit('http://www.devincachu.com.br') >>> browser.find_link_by_text('Programação').first.click()>>> palestrantes = browser.find_by_css_selector('p.palestrante')>>> assert len(palestrantes) == 12>>> browser.quit()
Monday, May 2, 2011
Teste de que?!
Monday, May 2, 2011
Interfaces web
Monday, May 2, 2011
http://www.flickr.com/photos/zakh/337938459/
Ferramentas
Monday, May 2, 2011
‣ Alfajor‣ Mechanize‣ Selenium‣ twill‣ Windmill‣ zope.testbrowser‣ ...
Monday, May 2, 2011
APIs
browser.open('http://www.google.com.br')assert 'Hello world' in browser.response
browser = mechanize.Browser()response = browser.open('http://www.google.com.br')assert 'Hello world' in response.get_data()
browser = Firefox()browser.get("http://www.google.com.br")assert 'Hello world' in browser.get_page_source()
browser = Browser()browser.open("http://www.google.com.br")assert 'Hello world' in browser.contents
Monday, May 2, 2011
Unificando as APIs
browser = Browser('webdriver.firefox')browser.visit("http://www.google.com.br")assert 'Hello world' in browser.html
Monday, May 2, 2011
Unificando as APIs
browser = Browser('zope.testbrowser')browser.visit("http://www.google.com.br")assert 'Hello world' in browser.html
Monday, May 2, 2011
Unificando as APIs
browser = Browser('alfajor')browser.visit("http://www.google.com.br")assert 'Hello world' in browser.html
Monday, May 2, 2011
API beta
Monday, May 2, 2011
Encapsulando mágicas
Monday, May 2, 2011
browser = Browser('webdriver.firefox')browser.visit("http://devincachu.com.br")element = browser.find_element_by_css('ul.menu li').firstelement.hover()
Monday, May 2, 2011
browser = Browser('webdriver.firefox')browser.visit("http://devincachu.com.br")element = browser.find_element_by_css('ul.menu li').firstelement.hover()
Monday, May 2, 2011
from selenium.webdriver.remote.command import Commandweb_element.execute(Command.HOVER_OVER_ELEMENT)
Monday, May 2, 2011
http://127.0.0.1:$port/session/$sessionId/element/$id/hover
POST
Monday, May 2, 2011
ou ainda...
Monday, May 2, 2011
css_selector = 'ul.menu li:first'with open('js/jquery.js') as jquery_file: jquery = jquery_file.read() webdriver.execute_script(jquery) webdriver.execute_script('$("%s").hover()' % css_selector)
Monday, May 2, 2011
element.hover()
Monday, May 2, 2011
splinter.cobrateam.info
github.com/cobrateam/splinter
“Testando interfaces web com Python” (FISL)
Mais detalhes...
Monday, May 2, 2011
2. Criar uma aplicação para Android
Monday, May 2, 2011
Por que?
Monday, May 2, 2011
Monday, May 2, 2011
Python em dispositivos móveis
Monday, May 2, 2011
Monday, May 2, 2011
Monday, May 2, 2011
Monday, May 2, 2011
Quero programar em Python no iOS e no
Android, pode?
Monday, May 2, 2011
Appcelerator TitaniumMonday, May 2, 2011
SL4AScript Layer for Android
Monday, May 2, 2011
Interface em HTML...
<h1>Sorteio</h1><p> <label for="limit">Número de inscritos</label> <input type="text" name="inscritos" value="200" id="limit"/></p><p> <input type="button" value="Sortear" onclick="raffle();" /></p>
Monday, May 2, 2011
Interface em HTML...
<h1>Sorteio</h1><p> <label for="limit">Número de inscritos</label> <input type="text" name="inscritos" value="200" id="limit"/></p><p> <input type="button" value="Sortear" onclick="raffle();" /></p>
Monday, May 2, 2011
droid. eventWaitFor('raffle')
Monday, May 2, 2011
github.com/cobrateam/android-sorteio
code.google.com/p/android-scripting
Mais detalhes...
Monday, May 2, 2011
3. Criar uma aplicação web para mapear access points
Monday, May 2, 2011
‣ globo.com‣ guardian.uk‣ brasil.gov.br‣ yahoo!‣ apontador
‣ facebook‣ new york times‣ google‣ disqus
Monday, May 2, 2011
‣ Django‣ web2py‣ Pylons‣ Grok‣ TurboGears
‣ Zope‣ Tornado‣ Flask‣ Bottle‣ CherryPy
‣ circuits.web‣ TwistedWeb‣ tipfy‣ pyramid‣ Bobo
bit.ly/python-frameworks
Monday, May 2, 2011
Monday, May 2, 2011
O framework web para perfeccionistas com prazos
“”Monday, May 2, 2011
uma aplicação completa
48 horas
Monday, May 2, 2011
wifimap, uma forma fácil de descobrir se tem um lugar com wifi
por perto...
Monday, May 2, 2011
show me the map...
Monday, May 2, 2011
Monday, May 2, 2011
4. Criar um jogo de batalha naval
Monday, May 2, 2011
Monday, May 2, 2011
Monday, May 2, 2011
Monday, May 2, 2011
um simples simulador de batalha naval feito em um fim de semana...
Monday, May 2, 2011
show me the game...
Monday, May 2, 2011
a aventura continua...
Monday, May 2, 2011
github.com/cobrateam/osdozetrabalhos
Monday, May 2, 2011
Obrigado!
Andrews Medinaandrewsmedina.com @[email protected]
Francisco Souzafranciscosouza.com
cobrateam.infogithub.com/cobrateam
Monday, May 2, 2011