Um navio na praia é um farol para o mar.

Envie e-mails do seu gmail utilizando Python!

Postado: August 25th, 2010 | Autor: rochacbruno | Arquivado em: Python | Sem comentários »

Em quase todo projeto Python, principalmente se for um projeto web, precisamos de envio de e-mails. Um dos problemas é a necessidade de um servidor SMTP para garantir este envio.

Podemos resolver este problema utilizando uma conta do Gmail! Simples:

import smtplib
fromaddr = 'seuemail@gmail.com'
toaddrs = 'destinatario@gmail.com'
msg = 'Mensagem enviada pelo Python utilizando Gmail'

#provide gmail user name and password
username = 'seu email'
password = 'sua senha'

# functions to send an email
server = smtplib.SMTP('smtp.gmail.com:587')
server.ehlo()
server.starttls()
server.ehlo()
server.login(username,password)
server.sendmail(fromaddr, toaddrs, msg)
server.quit()
##
##
##
##Ref:
## end of http://code.activestate.com/recipes/577371/ }}}
## {{{ http://code.activestate.com/recipes/577371/ (r1)
#Sending an email through gmail using Python - Raghuram Reddy
Share
Enviar esta pagina em PDF para PDF Free

Concorra a uma vaga para o treinamento de desenvolvimento web com Python em SP

Postado: August 24th, 2010 | Autor: rochacbruno | Arquivado em: Python, web2py | Tags: , | Sem comentários »

O web2pyBrasil http://www.web2pybrasil.com.br/ está sorteando uma vaga para o treinamento de desenvolvimento web com Python e web2py.

http://twitpic.com/show/full/2gxnbm.gif

Treinamento Mão na Massa!

Concorra a uma vaga para o treinamento de desenvolvimento web com Python em SP.

Para participar da promoção é fácil:

Basta seguir o twitter @web2pybrasil e @treventos e tuitar a seguinte mensagem:

Quero ganhar uma vaga para o treinamento de Python e web2py – http://migre.me/16VWO @treventos @web2pybrasil

ou “clique e retuite diretamente no twitter”

é importante que a URL http://migre.me/16VWO esteja em seu tweet

Boa Sorte!


Data do sorteio: Quinta Feira : 26 de agosto

O sorteio será feito através da ferramenta: http://sorteie.me

O contato de aviso com o ganhador(a) será através de direct message. Assim é importante que você seja um seguidor(a) da @web2pybrasil

O sortudo(a) ganhará:

  • A inscrição para o evento
  • Coffee Break (2)
  • Certificado de Participação em papel especial
  • Material Didático (apostila impressa, bloco de anotações e caneta)
  • Oportunidade de conhecer profissionais do mercado com interesses similares ao seus, ou seja: ampliar sua rede de relacionamento.
  • Pós-Evento: Download do material .pdf disponibilizado na apostila
  • Oportunidade de dirimir dúvidas, pós evento, com o Especialista, via email, referente ao conteúdo apresentado.

Importante:

  • O prêmio é intransferível
  • É necessário que o contemplado seja seguidor do @web2pybrasil e @treventos no twitter
  • A realização do treinamento está vinculada a um quórum mínimo de participantes, considerando que não haja este quórum, a pessoa que ganhar o sorteio será notificada sobre a nova data da realização da atividade com pelo menos 15 dias de antecedência para que possa se agendar.
Share
Enviar esta pagina em PDF para PDF Download

Screencast sobre web2py

Postado: July 8th, 2010 | Autor: rochacbruno | Arquivado em: Desenvolvimento, Python, web2py | Tags: , | 1 Comentário »

O Álvaro Justem < http://blog.justen.eng.br/ > – <  @turicas >  Gravou um screencast sobre web2py especialmente para os leitores da revista TI Digital, que este mês publica um artigo escrito pelo Álvaro.

Acompanhe o screenCast no video abaixo, e não deixe de comprar a revista < http://www.revistatidigital.com.br/ >

Screencast web2py – Revista TI Digital from Álvaro Justen – Turicas on Vimeo.

Originalmente postado em: http://screencasts.justen.eng.br/web2py-tidigital/

Mais:

Share
Enviar esta pagina em PDF para PDF

Experiência de OCR: Quebrando captcha com 26 linhas de código!

Postado: July 1st, 2010 | Autor: rochacbruno | Arquivado em: Desenvolvimento, Python | Tags: , | 4 Comentários »

Durante este último mês, estive desenvolvendo uma solução GED utilizando a biblioteca de OCR Pytesser aliada à já conhecida e poderosa biblioteca de manipulação de imagens do Python, a PIL, que é utilizada em larga escala em soluções como Google Maps, Yahoo Maps e até mesmo no Youtube.

Originalmente inspirado por um post[0] da Bonsai Security, resolvi tentar a quebra de um captcha simples utilizando Pytesser e PIL.

CAPTCHA é um acrônimo da expressão “Completely Automated Public Turing test to tell Computers and Humans Apart” (teste de Turing público completamente automatizado para diferenciação entre computadores e humanos): um teste de desafio cognitivo, utilizado como ferramenta anti-spam, desenvolvido pioneiramente na universidade de Carnegie-Mellon. Como o teste é administrado por um computador, em contraste ao teste de Turing padrão que é administrado por um ser humano, este teste é na realidade corretamente descrito como um teste de Turing reverso.

O consenso geral diz que isso seria fácil, mas o problema é conseguir uma solução de quebra de captcha que qualquer um possa fazer download e rodar em seu computador. Então, o pessoal da Bonsai criou em alguns minutos um simples script Python, que eu testei com vários exemplos de imagens, e acabei utilizando o mesmo conceito para outras aplicações.

A grande sacada está em utilizar httplib ou urllib para fazer a chamada aos arquivos de imagem. :P

Antes de qualquer coisa, tenha em mente que isto é uma experiência didática; geralmente não encontramos captchas fracos por aí, e neste exemplo trabalharemos exclusivamente com este tipo de catpcha:

  • As letras não são rotacionadas
  • As letras possuem a mesma largura
  • As imagens são do mesmo tamanho
  • Letras e imagens não sofrem deformações
  • O plano de fundo é o mesmo para toda a imagem

Agora, vamos entender o código que quebra este captcha:

from PIL import Image
#Imagem a ser quebrada, neste ponto você poderia usar urlib, httplib ou curl para carregar esta imagem.
img = Image.open('input.gif')
#convertemos para o padrão RGB
img = img.convert("RGBA")
#damos bind da imagem para a variável pixdata
pixdata = img.load()

# Limpando a sujeira do background, se a cor for != black, então transformamos em branco.
for y in xrange(img.size[1]):
    for x in xrange(img.size[0]):
        if pixdata[x, y] != (0, 0, 0, 255):
            pixdata[x, y] = (255, 255, 255, 255)

#Salvamos a nova imagem com fundo branco
img.save("input-black.gif", "GIF")

#   Aumentamos as dimensões da imagem (requerido pelo OCR)
im_orig = Image.open('input-black.gif')
big = im_orig.resize((116, 56), Image.NEAREST)

#Salvamos a imagem com tamanho maior
ext = ".tif"
big.save("input-NEAREST" + ext)

#   Yeah! Fazemos OCR da imagem usando o Pytesser
from pytesser import *
image = Image.open('input-NEAREST.tif')
#simplesmente imprimimos a imagem em formato de string OCRizado
print image_to_string(image)

resultado:

python ocrcaptcha.py
>>> e4ya
>>> jxt9

Esta implementação simples quebra 90% de qualquer captcha que utilize este modelo.
Aconselho fortemente aos programadores Pythonistas (ou não) que fiquem de olho no Pytesser, uma biblioteca excelente para OCR, com a qual tenho tido muito sucesso ultimamente! :)

[0] Bonsai

Aconselho a leitura deste post -> http://under-linux.org/blogs/magnun/brincando-com-python-e-pil-392/

{{ Abraço }}’s

Share
Enviar esta pagina em PDF para PDF Download

Treinamento Mão na Massa – Desenvolvimento web ágil com Python e web2py

Postado: June 22nd, 2010 | Autor: rochacbruno | Arquivado em: Desenvolvimento, Linux, Python, WebDev, web2py | Tags: , , | 9 Comentários »

Convidados pela Tempo Real Eventos, empresa que atua há mais de 5 anos oferecendo treinamentos, congressos, seminários, workshops e tutoriais Mão na Massa, já tendo atendido cerca de 15 mil profissionais, o Álvaro Justen e eu ministraremos o treinamento Mão na Massa – Desenvolvimento Web Ágil com Python e web2py – eu serei responsável pelas turmas de São Paulo e ele pelas turmas do Rio de Janeiro.

A Linguagem:

Python é uma linguagem de programação dinâmica de altíssimo nível, utilizada em larga escala por empresas como Google,  Dreamworks e Industrial Light & Magic. No Brasil, é utilizada pela Locaweb, Globo.com, SERPRO, Interlegis (órgão vinculado ao Senado Federal), entre outros. Diversos softwares como GIMP, Inkscape e Blender3D utilizam a linguagem Python para extensões e criação de plugins.

O Framework:


Web2py é um framework para desenvolvimento Web escrito em Python, software livre e gratuíto, que tem como um de seus principais objetivos a agilidade no desenvolvimento de aplicações Web seguras, baseadas em banco de dados.

Possibilitando que o desenvolvedor pense apenas na aplicação que está desenvolvendo (sem demandar configurações de linguagem e ferramentas), o web2py possui integração com mais de 10 sistemas de banco de dados, e vários subssistemas, como: criação automática de formulários com validação, autenticação e autorização, gerador de códigos AJAX para melhor interação do usuário com a aplicação, upload seguro de arquivos, integração com vários padrões Web (XML, RSS etc.), dentre outros.

Esse treinamento visa introduzir os alunos ao desenvolvimento Web com Python utilizando o web2py como ferramenta, mostrando todas as vantagens de se utilizar um framework.

O treinamento:

Os treinamentos acontecerão no estilo “tutorial mão na massa”, onde cada aluno tem um computador para testar e treinar o que está sendo ensinado; o objetivo desses treinamentos é capacitação no desenvolvimento de aplicações Web utilizando Pythonweb2py a desenvolvedores que procuram uma ferramenta para desenvolvimento ágil, dinâmico, seguro e fácil de utilizar. O curso acontecerá em um sábado (assim que fecharmos a turma ou no máximo em 45 dias), o dia todo: de 9 às 17h. Caso exista interesse em treinamento in company em São Paulo, entre em contato comigo (rochacbruno[arroba] gmail [ponto] com), e para o Rio de Janeiro  (alvaro [arroba] justen [ponto] eng [ponto] br).

O treinamento é dividido em dois módulos, Básico e Avançado, e o público alvo são os desenvolvedores web, programadores e  webdesigners que procuram uma ferramenta para desenvolvimento ágil, dinâmico, seguro e fácil de utilizar.

Para o módulo básico, é preciso ter conhecimento básico em HTML e lógica de programação (em qualquer linguagem).
Já para cursar o
módulo avançado, é aconselhável que o interessado tenha participado do primeiro módulo, ou tenha conhecimentos equivalentes, além de possuir conhecimento básico da linguagem Python.

Os treinamentos possuirão apostila própria e durante eles será desenvolvida uma aplicação Web completa e funcional. Serão abordados vários temas com relação a desenvolvimento Web como MVC, sessões, autenticação e autorização, internacionalização, deploy, Google App Engine, dentre outros. Além disso, tudo será baseado em software livre: os computadores do laboratório terão Ubuntu 10.04.

Módulo 1 – Básico

1. Conceitos
Conceitos básicos da linguagem Python
O padrão MVC
Introdução ao web2py
Objetivos da aplicação que será desenvolvida
Preparação do ambiente

2. Trabalhando com banco de dados (Model)
A camada de acesso à base de dados (DAL)
Modelagem do banco de dados
Consulta e alteração dos registros
Upload de arquivos e imagens
Validação básica


3. Programando as Ações (Controller)
Mapeamento de URLS padrão
Passagem de parâmetros
Acesso à camada de base de dados
Comunicação com a camada de apresentação (View)
Redirecionamento de URL
Autenticação básica
Criação automatizada de formulários com CRUD


4. Apresentando a aplicação (View)
Marcação de template
Programando Python diretamente na View
HTML helpers
Exibição de imagens e download de arquivos
Links e URLs dinâmicas
Formulários com validação automatizada
JavaScript, jQuery e AJAX básicos


5. Distribuindo e publicando a aplicação
Requisitos do servidor Web
Dicas para hospedagem
Importação e exportação de pacotes em formato w2p.

Módulo 2  - Avançado

1. Conceito
Objetivos da aplicação que será desenvolvida
Preparação do ambiente
Utilização do terminal (shell)

2. Trabalhando com banco de dados (Model)
Consultas avançadas
Métodos avançados da DAL
Exportação e importação de registros
Tabelas auto referenciadas
Herança entre tabelas
Execução direta de comandos SQL
Acesso a bancos de dados MySQL e PostGreSQL
Utilizando a DAL no Google App Engine
Cache de consultas

3. Programando as Ações (Controller)
Importação de módulos externos
Gerenciamento de sessões e cookies
Autenticação avançada (grupos e permissões)
Autenticação com serviços externos (CAS, OpenID, Google)
Trabalhando com emails
Personalização de formulários automáticos
Internacionalização/tradução
WebServices

4. Apresentando a aplicação (View)
Tipos de retorno (HTML, XML, JSON, RSS e outros)
Criação de views genéricas
Criação de templates para envio de e-mails
Criação de um feed RSS

5. Plugins
Estrutura e organização de um plugin
Exemplos

6. Distribuindo e publicando a aplicação
Hospedagem no Google App Engine
Configuração da aplicação no Apache

O valor da inscrição em cada módulo é R$249,00 e, juntamente com o treinamento, cada aluno terá direito a:

  • Coffee Break (2)
  • Certificado de Participação em papel especial
  • Material Didático (apostila impressa, bloco de anotações e caneta)

Para mais informações e inscrições visite o site da Tempo Real Eventos:

Gostou da ementa dos cursos? Gostaria de que mais algum assunto fosse adicionado? Tem interesse em algum dos cursos? Comente!

Related Posts with ThumbnailsShare
Enviar esta pagina em PDF para PDF Free