#4 – Python rulez

Mais uma série de links que indico:

Captura de tela de 2014-10-09 18:31:33

 

 

Vídeo aulas gratuitas de Python, PHP, Ruby e outros – Tá cansado de ficar indicando um link atrás do outro para aquele seu amigo que está aprendendo a programar? E se juntasse tudo em um lugar só? Então por esse ‘mini-projeto’ foi criado.

Conselhos de um velho programador antissocial e ranzinza – Um depoimento interessante sobre o que os programadores enfrentam diariamente, estimativas, ânimos e muitas outras coisas.

Jogo do Dragon Ball com Pygame – Já imaginou criar um jogo do Dragon Ball, e ainda mais com Python? Pois é, criaram.

imagem1

Discover Flask – Agora você não tem mais desculpa falando que não há vídeo-aulas de Flask de qualidade e atualizadas.

Django, Flask ou Pyramid? Qual escolher? – Quais são as vantagens, desvantagens e características de cada uma.

Como me tornar desenvolvedor Python? – Sabe aquela pergunta que você sempre encontra em grupos ou fóruns de Python em como entrar na área de Python? Então, o Vinícius Assef resolve essa pergunta.

Como ordenar listas em Python

0

Gerenciando Assets com Django Pipeline

Agora o mega tutorial de Flask está na versão Python 3

Contruindo uma aplicação de análise em Flask

Anúncios

Python powered: Coisas que Python pode fazer e você não sabia

animated_3d_python_powered_logo120frame_apng_by_metallicow-d6rdza2

Python é uma das tecnologias que mais cresce o número de adeptos, seja devido a sua popularidade em universidades(USP e Federais no Brasil, além da Fatec São José dos Campos), seja por grandes empresas usarem extensivamente em seus produtos(Instagram, Google, Disney), ou principalmente pela sua facilidade de aprendizado e poder.

Uma das coisas que mais chama atenção dos programadores é que trabalhando com Python você não fica limitado apenas ao desenvolvimento web, existem diversas outras áreas em que Python é presente e muitas vezes não temos conhecimentos de suas aplicações.

pymap

No ano passado a Pycursos teve a iniciativa do mutirão Python, no qual tivemos diversos convidados das mais diversas áreas para falar sobre o que estão trabalhando. No site do Aprenda Python temos alguns compilados de vídeos tutoriais. Exemplo 1, Exemplo 2.

E o mais curioso que a cada dia se descobre uma nova aplicação totalmente fora do padrão. Por exemplo: Você sabia que nos metrôs de São Paulo, o software que processa aquelas notícias selecionadas que aparecem nos monitores tem Python por trás? Ou senão os banners elétricos que ficam em alguns pontos também é utilizado a mesma tecnologia. Ou senão que é muito utilizado para tratamento de imagens em grandes e-commerces como a Dafiti e Netshoes? Grande maioria das imagens do produtos são automaticamente tratadas com a biblioteca Pil.

E também que Python é amplamente usado na computação ciêntífica, trabalhando em paralelo com Numpy, Scipy e outras. Vejamos mais algumas aplicações interessantes:

Python para trabalhos tipográficos:

Python para reconhecimento facial:

Python para reconhecimento de caracteres para deficientes visuais:

http://www.nvaccess.org/

Python para Biologia:

http://biopython.org/wiki/Main_Page

Python para Química:

http://www.pymolwiki.org/index.php/Main_Page

Python para análise digital de sinais:

Python para gerenciamento de estoques:

http://www.stoq.com.br/

Python para análise em tempo real de trending topics do twitter no futebol:

http://www.sentibol.com/

Python para ensino com Arduíno:

https://garoa.net.br/wiki/Garoa_Dojo_Shield

Python para educação:

http://www.qmagico.com.br/
http://www.geekie.com.br/

Python para análise de clima/tempo:

http://www.forecastwatch.com/

Python para mineração de dados e jornalismo:

Python para animações Disney:

http://pydanny-event-notes.readthedocs.org/en/latest/socalpiggies/20110526-wda.html

Python para telecomunicações:

http://www.evolux.net.br/

Python para desenvolvimento mobile:

http://kivy.org/

Python para trabalhos impressos:

https://www.layar.com/

Python para análise de características de Whiskies:

http://whiskyton.herokuapp.com/

Python para filtros RSS:

http://filterss.herokuapp.com/

Python for Small acts manifesto:

http://smallactsmanifesto.org/

E você, conhece mais aplicações? Deixe nos comentários que deixarei mais atualizado possível, ou senão indique de forma mais rápida nesse formulário.

Mesa de bar com Python – Primeira edição

Nessa sexta-feira tivemos a primeira edição do mesa de bar com Python – https://plus.google.com/u/0/events/cbns01fg1is9e01snivvm3g4310

O intuito desse bato papo era encurtar distâncias e criar novos laços com pessoas do Brasil inteiro. As conversas foram muito bacanas, e o intuito que isso se torne algo mais frequente e interativo, por isso criei esse pequeno formulário de 1 minuto para que vocês possam opinar e melhorar as próximas edições.

Python no Brasil: Passado, presente e o futuro – Part:1

Ao ver os resultados que a Lidiane Monteiro apresentou sobre sua pesquisa da comunidade Python brasileira foi um sinal para mim. Sinal dos pontos que devem ser louvados, tanto quanto pontos a serem melhorados. Analisando slide por slide é possível tirar diversas conclusões, e algumas delas não diretamente a Python, e sim a área de TI em geral.

Em cada slide irei colocar MINHAS OPINIÕES a respeito, sinta de a vontade para criticar, concordar ou ressaltar, até porque discussões de pontos de vista são uma excelente forma de aprendizado conjunto ;).

Gênero

Python: Passado, presente, futuro - Part: 1

Infelizmente isso é um número geral em todas as áreas de TI. Ainda há quem sabe um dia que acabe o machismo, brincadeiras nocivas e descriminação do sexo feminino em relação a área de exatas. Vide esse artigo:

http://blog.msoledade.com.br/?p=205

TODAS as mulheres com quem tive contato já falaram que pelo menos uma vez na vida sofreu preconceito no local de trabalho, por isso existem iniciativas sensacionais para que esse cenário mude. Se caso não conhece, veja esses projetos fantásticos:

home


http://pyladiesnatal.github.io/
#SerMulherEmTech
http://rodadahacker.com/
http://inspiradanacomputacao.wordpress.com/
http://www.pyladies.com/
http://railsgirls.com/

Uma das premissas do código de conduta do Python é que visa o respeito e a diversidade de tudo e todos. Isso é um dos motivos de gostar da linguagem, construir um ambiente inclusivo no qual todos possam ser equivalentes, em que o respeito seja o pilar de qualquer relação entre as pessoas.

Esses números são tristes, a área poderia ser muito mais rica, diversificada e repleta de evoluções se esse tipo de coisa não acontecesse. Mas isso não acontece só na área de TI, acontece de forma geral, até porque em muitos casos é tão verdade que a mulher recebe menos do que o homem, mesmo executando os mesmos serviços.

Novamente, ainda bem que existem iniciativas de pessoas como a Lucia Freitas, Camila Archutti, Daniela Silva e diversas outras pessoas que se esforçam diariamente para contornar a situação.

Escolaridade

py2

Esse gráfico mostra diversos pontos interessantes. Ter como a grande maioria pessoas de Superior Incompleto são estudantes, ou seja, são pessoas que estão aprendendo a programar. A outra fatia grande do gráfico são pessoas com Superior Completo. Então temos a leve ideia de que a maioria das pessoas no Brasil que estão mexendo com Python são pessoas na faixa entre 18~25 anos, então haverá uma grande safra de pessoas com conhecimentos em Python dentro de alguns anos no mercado.

Já as pessoas com Superior Completo são a maioria do qual já trabalham há algum tempo com programação, fora os níveis acima como Pós-graduação, Mestrado e Doutorado, que por um lado é ruim termos poucas pessoas com esses níveis.

Acredito que isso venha da cultura brasileira no qual o curso Superior é o suficiente. Até porque a grande maioria entra na faculdade com intuito de ingresso no mercado de trabalho, sendo que o requisito mínimo seja o Superior Completo.

Concluindo, isso mostra que Python tende a crescer com o passar do tempo devido a grande maioria ser jovem.

Quantos anos programando?

py3

Olhe só, 40% das pessoas são entre 1 a 3 anos, aí entra novamente a questão dos estudantes. Já a outra maioria de 28% são as pessoas que estão dentro do mercado. E algo surpreendente é uma fatia de programadores Sênior com 16%.

Isso é bom, e algo também ruim. Bom no sentido que mais da metade das pessoas contém no mínimo 3 anos de experiência com programação. Por outro lado entra o que muitos tem reclamado: Despreparo das pessoas para preencher vagas de emprego.

E já digo na lata: Não arranja emprego na área quem não quer. Como já coloquei esse vídeo uma vez, colocarei de novo para reforçar minha tese:

“Quem quer dá um jeito, não arranja desculpa. Se não tem tempo, então está na hora de você repensar na forma como gasta suas horas. Todos temos 24 horas por dia e mesmo assim consegue fazer as coisas nas horas livres”

Para eu aprender Python, melhor ainda, aprender de forma plena como COMEÇAR a programar, levei 2 anos estudando por conta. Como também já falei em minhas palestras, tentei mais de 100 vezes nos mais diversos tipos de apostilas, aulas, tutoriais.

“Água mole em pedra dura, tanto bate até que fura.”

Quem consegue as coisas são aqueles que persistem, não que desistem ao primeiro obstáculo.

Aí novamente entra o vídeo do Bruno Tikami para a Python Brasil do ano passado: “Quer ganhar 10k por mês? Tem que ralar!”

Em que nível você está?

py4

36% são iniciantes, metade são intermediários, ou seja, a maioria que ou está tentando arranjar emprego, ou já trabalha há algum tempo. E ter apenas 14% de avançado mostra que falta gente capacitada.

O que isso significa? O mercado ainda sofrerá com as pessoas inacapacitadas, e isso sempre será. Bons profissionais são disputados e nunca faltam oportunidades, se tá faltando oportunidade para você, quer dizer que tem alguns pontos a serem melhorados.

Em que usa Python?

py5

Maioria para projetos pessoais, já a outra grande fatia como Hobby, ou seguidos de trabalhos acadêmicos.

Novamente relacionado as pessoas que estão na faculdade. Não tem como comentar muito a respeito.

Em que áreas você usa Python?

py6

Desenvolvimento web ganha disparado, isso é fácil devido a grande parte dos projetos serem desenvolvidos em Django ou Flask. Olha a outra fatia interessante de 16% que apenas estudam.

Já perceberam que os dados são muito bacanas, mas tem que levar em consideração que a grande maioria das pessoas que estão respondendo o formulário são estudantes? Não que isso seja ruim, mas não leve esses dados como verdades proporcionais absolutas.

E outro dado interessante são as diversas aplicações da linguagem em campos diferentes. Confesso que fiquei impressionado com a quantidade de aplicações Desktop e processamento de imagens.

Quais frameworks utilizados?

py7

A ordem é natural, Django é o framework mais popular do Python, devido a ser full-stack, ótima documentação e fontes de referências, seguidos de Flask, alternativa natural caso Django não atenda aos requisitos do projeto.

Web2py no Brasil está em destaque como terceiro lugar devido aos esforços das pessoas da comunidade no Brasil, como o Bruno Rocha e Elcio Ferreira escrevendo artigos e vídeos a respeito.

E os outros frameworks, tão importantes quanto os demais acima, Pyramid e Bottle são muito bacanas, outras alternativas ao Flask, caso queira, Tornado para aplicações com altas requisições, e um número engraçado, Plone em terceiro.

Plone talvez seja tão usado quanto os outros acima citados, diversos projetos brasileiros de grandes portais como os Correios, sites governamentais são feitos em Plone, então esse número seja um pouco errado.

Qual SO usa para programar Python?

py8

Esse ponto se contradiz um pouco. Grande maioria dos estudantes estão usando Windows para aprender a programar, e eles são a grande maioria nessa pesquisa.

O que significa isso?

Significa que a grande maioria está aprendendo por conta própria, saber usar sistemas Linux se torna muito mais fácil e rápido aprender Python do que Windows.

Windows em segundo lugar, então entra a questão das pessoas que tem preferência ao sistema, ou necessidade e tal. Normal.

E Mac em terceiro, provavelmente pessoas que já trabalham na área e precisam de tecnologia mais alta para trabalho.

Em que outras linguagens você programa?

py9

Isso é bacana. Ter Java e C/C++ como as linguagens principais mostra aqueles que trabalham com essas diariamente e usam Python como projetos pessoais ou Hobby.

Outro ponto como PHP, não há de negar que é mais fácil encontrar projetos PHP para dar manutenção do que Python, isso devido ao número de projetos feitos com WordPress, Joomla ou Drupal, ou até mesmo sites mais antigos.

E seguindo a ideia, vejo por exemplo que apenas 3% apenas trabalham com Python. Isso quer dizer que tem muita gente que gostaria de trabalhar com Python, mas por inúmeras razões não trabalham.

Trabalha com programação?

py10

Grande maioria sim, então isso é um ponto positivo. Mas ainda ter 42% não trabalhando quer dizer que a situação poderia ser melhor, a questão é? Quais são as razões para que não haja mais ingresso das pessoas na área de programação?

Alguma vez já trabalhou com Python?

py11

Outro número interessantíssimo. Apenas 36% já trabalharam. Menos da metade já trabalhou com Python.

Isso quer dizer que não há oportunidades?

Na verdade já me perguntei em relação a isso, as vagas de Python em grande parte necessitam de que haja experiência, mas como posso arranjar experiência se não arranjo emprego?

Projetos Open Source. Colabore e o torne como portifólio. Programador bom é aquele que expõe seu código para ser julgado, até porque julgá-lo o tornará um programador melhor.

E também estar dentro da comunidade, 75% das vagas são preenchidas antes de serem postadas em sites de emprego. Se você não está em contato com as pessoas que trabalham com Python, como é que você irá saber sobre as vagas que abrem? Como é que irão saber que você é bom se não tem código aberto para ser avaliado?

Você trabalha atualmente com Python?

py12

Novamente entra a questão, você está preparado para essas vagas? E isso não é só Python, é o mercado em geral? Tem o mínimo de conhecimento sobre testes? Controle de versão com Git? Sabe trabalhar com mais de um framework? E trabalhar com API’s?

O que o Bruno disse: “Se você não sabe, tem que correr, virar noites estudando, se esforçando para aprender.”

O que você acha da documentação de Python?

py13

Um dos pontos fortes de Python é a documentação, tanto é que a metade das pessoas o consideram boa, claro que há pontos a serem melhorados. Já a outra parte que é mais de 1/4 da pesquisa diz que é ótimo, ponto positivo.

Ter 4 pessoas dizendo que é ruim é normal, mas o que eu gostaria de saber quais são os pontos negativos que essas pessoas viram? Talvez possamos melhorar com simples mudanças.

E olha, 7% das pessoas nunca usaram a documentação. Isso novamente entra a questão dos novatos. 7% é muito alto.


 

Farei disso como primeira parte, acredito que no decorrer da semana irei lançar a continuação dos slides. Comentem, sua opinião é muito importante.

TDC2014 – Trilha Python

Mais uma vez estive presente no TDC, e como não poderia deixar de prestigiar a trilha de Python. TDC é um dos maiores eventos de tecnologia que temos no Brasil, palestrantes do país inteiro vão compartilhar suas experiências e conhecimentos com a comunidade.

TDC 2014 - Trilha Python

Tive o primeiro contato com grandes pythonistas na edição anterior, conhecendo pessoalmente Bruno Rocha, Luciano Ramalho, Fernando Masanori, Francisco Souza, Thiago Avelino, Guto Maia, Osvaldo Matos Júnior e diversos outros muito importantes. Confesso que parecia uma criança amedrontada diante tamanha as feras que estavam presentes.

Ano passado foi muito bom, tivemos palestras bacanas falando de Django, Scrapy, pyNES, API pública de ceps, Flask, Tornado, Bottle e outros. E esse ano não poderia ser diferente.

Python como o tema da minha palestra diz: “O que Python pode fazer e você não sabia” em teoria foi a porta de entrada para as diversas opções e aplicações que a linguagem oferece, sendo que muitos dos temas abordados foram apresentados posteriormente.

A organização e a quantidade de trilhas que o evento tem é sensacional, tem de tudo pra todos, robótica, Java, .Net, software livre, empreendedorismo, IOT, e o mais especial desse ano, TDC4kids, uma trilha para crianças aprenderem programação com a aplicação Scratch. O evento é organizado e o local é bem localizado, então ajuda bastante o tamanho dele, o número esperado de pessoas em 4 dias de evento é por volta de 3300 pessoas.

Então irei dar minha opinião sobre as palestras que assisti e compartilhar com vocês o que foi dito.

50 minutos – Python para Zumbis: primeiro MOOC para ensino de programação brasileiro atinge 15 mil inscritos – Fernando Masanori Ashikaga

IMG_20140809_103653676_HDR

Python para Zumbis é algo enorme, tamanho imensurável o impacto que ele teve no Brasil inteiro, analisando seria que a cada 3 cidades do Brasil, 1 tinha algum zumbi estudando Python, e presente em todos os Estados do Brasil.

E é só perguntar quem já fez o curso entre os presentes da sala que metade levantou a mão. E um comentário feliz: Graças ao curso do Masanori foi possível conseguir um trabalho de Python, disse o rapaz. E algo que foi surpreendente que enquanto conversava no horário do almoço, não parava de chegar pessoas seja da trilha de Python ou outras trilhas para conversar com o Masanori fazendo perguntas, e tirando fotos seja dele ou o Drone que foi apresentado.

50 minutos – Quokka CMS – Sites e portais com Flask e MongoDB – Bruno Cezar Rocha

IMG_20140809_114629322_HDR

Quokka CMS é um projeto fantástico do Bruno, um novo CMS de banco NoSQL, em que é fácil a instalação, customização e aplicação de temas. O intuito do CMS é oferecer os diferenciais que outros CMS’s não tem, Bruno tendo experiência sobre como trabalham os CMS’s, já que ele é um dos grandes responsáveis no desenvolvimento do Opps CMS, sentiu que haviam algumas coisas que não puderam ser feitas, seja pelas características do projeto, ou do Django.

15 minutos – O que Python pode fazer e você não sabia- Eric Hideki Imai Satake

Então veio minha palestra, procurei falar sobre as possibilidades que Python oferece para quem não conhecia a linguagem, abordando a aplicação na web, trabalhando com tratamento de imagens, BioPython, Pygame e outros.

Link da palestra gravada

15 minutos – Processamento de tweets em tempo real com Python + Django + Celery – Miguel Galves

IMG_20140809_132933862

Criar uma aplicação trabalhando com API do Twitter é algo complicado, complicado no sentido de que o Twitter é imenso, são em média 5700 tweets por segundo, então foi comentado como poder trabalhar com essas Big Datas, como a API funciona, quais as melhores ferramentas e falar sobre a experiência de criar grandes aplicações com esse nicho.

15 minutos – APIs de visualização em Python – Wilson Freitas

IMG_20140809_135115530

Outra palestra muito bacana, mostrando como podemos usar Python para gerar gráficos a partir de informações complexas, compartilhando as características e opções que temos, seja com mpld3, matplotlib, seaborn e outros. Comentou sobre um caso de catalogação de vinhos e os resultados.

50 minutos – Ensaio sobre testes automatizados- Gustavo O. da Fonseca

IMG_20140809_141617747

TDD é fundamental na vida de um desenvolvedor, aplicando essa metodologia conseguimos construir aplicações sustentáveis, seguras e que sejam fáceis de fazer manutenção, então o Gustavo mostrou os tipos de testes que temos disponíveis, seja por testes automatizados ou unitários, mostrando as características e aplicações em casos reais.

15 minutos – Python para programadores com DDA – Pedro Palhares

Desculpe amigo, não vi essa palestra que começou mais cedo do que eu esperava e só peguei o minuto final e não assisti. Por favor quem assistiu possa comentar no post falando do que achou.

Link da palestra gravada

15 minutos – Prototipando Games em Python – Guto Maia

IMG_20140809_155319722_HDR

Guto é um aficcionado por games, ano passado comentou sobre seu projeto do pyNES, e então dessa vez foi mostrado as formas de você criar seus games com Pygame, quais são os atalhos que deve percorrer e dicas para que seu aprendizado seja rápido.

E um dado bem interessante é que a grande maioria das pessoas entra na faculdade com intuito de criar jogos, mas 97% desistem no meio do caminho, e apenas 3% continuam. Ou seja, é muito pouco devido ao mercado crescente, então mostrar as possibilidades que Python tem em relação a jogos foi muito bacana.

Link da palestra gravada

15 minutos – AudioLazy 0.6 will robotize you! – Danilo de Jesus da Silva Bellini

IMG_20140809_162634487_HDR

Audiolazy é um projeto fantástico, suas variações e possibilidades com processamento de sons é surpreendente, sendo feitos em tempo real. Aplicações como alterar o som de uma guitarra, alterar a voz de uma pessoa, parecendo um robô ou até criar um teclado sonoro.

50 minutos – Machine Learning “Gerrilha” – Felipe Cruz

IMG_20140809_164739615_HDR

Felipe era um cara que queria conhecer pessoalmente, conheço pela internet há uns 2 anos acho e pudemos finalmente trocar ideias e compartilhar experiências. E nessa visita a terra da garoa foi para falar de machine learning, ensinando como manipular datasets, mostrando técnicas de melhorar sua performance na hora do processamento, como trabalhar em nuvem com machine learning e também uma aplicação real dessas práticas em um desafio.

https://speakerdeck.com/felipecruz/machine-learning-guerrilha

Link para a palestra gravada

15 minutos – Porque len() não é um método? – Luciano Ramalho

IMG_20140809_120933376

Luciano comenta de forma prática e rápida porque devemos usar len(s) ao invés de s.len(). Para quem não sabem len() é um método Python para saber quantos elementos estão contidos dentro de uma lista.

Por exemplo:

len(eric)

Resultado: 4 (número de letras)

E novatos tem a ideia de que se quer analisar o número de elementos, faz mais sentido fazer ‘eric.len()’ ao invés do modelo acima.

len é um método poderoso, e ele não faz análise apenas de palavras, e sim de listas, sendo assim conter a lista dentro do método faz muito mais sentido.

15/15 minutos – Scrapy Model – Modelagem fácil de web crawlers | OrientDB – No more joins!
– Bruno Cezar Rocha

IMG_20140809_180006122_HDR

Palestra dupla!

Na primeira parte foi mostrada como podemos trabalhar com buscas de termos na internet com Scrapy, dando dicas de como dribar problemas como o resultado esperado não ter sido o que desejava, ou senão quais as melhores formas de trabalhar índices.

Na segunda parte foi introduzido a ideia do OrientDB, um banco de dados orientado a grafos, algo que será ainda muito comentado. Repensando de forma diferente de como podemos criar laços entre as informações e dados, tirando diversos paradigmas que temos em bancos SQL e noSQL, e como trabalhar ele com Python.

IMG_20140809_182115416_HDR

15 minutos – Python Performance Tips – Sérgio Oliveira Campos

Infelizmente houve problemas com o Sérgio e ele não pode fazer sua apresentação.


Em todo geral foi muito bacana, superou minhas expectativas. Assim que os slides forem disponibilizados serão atualizados o artigo.


Segue também as palestras gravadas do ano de 2013:

Extraindo dados estruturados da Web com Scrapy – Ricardo Panaggio

Opps CMS: Django para portais de alta visibilidade – Thiago Avelino e Bruno Rocha

Django: Primeiro teste a subida – Francisco Souza

pyNES – Programando em Python no Nintendo 8 bits – Guto Maia

Desenvolvendo grandes aplicações com micro-framework Flask – Osvaldo Matos

#4 Armin Ronacher | Pythonistas que você devia conhecer

armin_ronacher_pythonistas_que_voce_devia_conhecer

Armin Ronacher é o responsável por criar o Flask, microframework web Python mais famoso, tendo features interessantes como integração para testes únicos, usa Jinja2 templates, base unicode, extensa documentação e ótima comunidade em volta. Nomeado membro da PSF em 2012 como forma de reconhecimento pelas suas colaborações na comunidade Python.

E hoje iremos falar um pouco sobre esse framework e a história e projetos do criador.

Armin é um dos fundadores do team Pocoo, um grupo de pessoas da comunidade Python que trabalham em diversos aplicações e bibliotecas Python, tais como: Flask, Jinja 2, Pygments, Sphinx, Werkzeug e outros.

Morando na Austria, trabalhando atualmente na Fireteam, empresa que trabalha em diversos campos na plataforma de jogos.

Uma das coisas que mais perguntam seria qual a diferença entre o Flask e o Bottle, ambos microframeworks web Python, e uma das melhores respostas foi a que ele disse no Stackoverflow:

A grande diferença é que Flask é baseado em outras tecnologias como Werkzeug e Jinja2 que existem há um bom tempo e tentam não reinventar as coisas. Bottle está em outra vertente tentando manter a ideia de manter apenas um arquivo padrão. Eu quero me juntar a eles mas desenvolvedores Bottle não estão muito felizes com a ideia de abandonar a ideologia de um arquivo apenas.

Em relação a flexibilidade: Não há razões para que não seja permitido usar Flask com outras engines de template se isso que precisa. Na verdade, coisas como Flask-Genshi existem: Flask-Genshi e é incrivelmente fácil usar mako com isso, ainda que seja sem a extensão que você quer.

Aviso: Sou o desenvolvedor do Flask, Werkzeug e Jinja2

Tradução livre minha.

 


jinja2

Jinja2 é uma engine de template baseada nos princípios do Django template, porém com mais funcionalidades e mais flexíveis implementações. O Jinja2 é um dos motivos de muitas pessoas gostarem do Flask, permitindo misturar código junto com HTML, tornando as coisas mais simples. Sendo usado em projetos como o Mozilla, Sourceforge, Instagram e outros.

Veja sua simplicidade:

{% extends “layout.html” %}
{% block body %}
<ul>
<ul>{% for user in users %}
<li><a href=”{{ user.url }}”>{{ user.username }}</a></li>
</ul>
</ul>
{% endfor %}

{% endblock %}

{% block title %}{% endblock %}
<ul>
<ul>{% for user in users %}
<li><a href=”{{ user.url }}”>{{ user.username }}</a></li>
</ul>
</ul>
{% endfor %}


werkzeug

Werkzeug é um conjunto de ferramentas para aplicações WSGI. Ele permite as interações entre requisito e resposta de objetos, utilidade de funções e permite criar uma customização de um framework por cima. Trabalhar com ele também é super simples:

from werkzeug.wrappers import Request, Response

@Request.application
def application(request):
return Response('Hello World!')

if __name__ == ‘__main__’:
from werkzeug.serving import run_simple
run_simple(‘localhost’, 4000, application)

Exemplo tirado da documentação do Werkzeug


flask

E temos também o Flask, que é baseado no Werkzeug, Jinja2 e boas intenções. Muitas das pessoas que converso que gostam de Python pra desenvolvimento web, dizem que sentem um enorme prazer em desenvolver com Flask, sua flexibilidade e ferramentas poderosas o tornam bem interessante, não é a toa que tenho 2 artigos elogiando o mesmo, um com o Bruno Rocha falando sobre suas aplicações e outro com links de fontes de estudo.

Eu que sou uma pessoa azarada que nunca funciona meus experimentos de primeira, consegui sem pestanejar logo na primeira testar o Flask, seu código é facílimo de aplicar:

from flask import Flask
app = Flask(__name__)

@app.route(“/”)
def hello():
return “Hello World!”

if __name__ == “__main__”:
app.run()

Exemplo tirado da documentação do Flask

Com apenas um arquivo é possível criar um “Hello World”, e podemos subir essa aplicação sem problemas no servidor. E olha que mais bacana ainda, com apenas dois comandos já conseguimos fazer o download e rodar. Claro que antes é necessário que tenha instalado o pip, gerenciador de pacotes do Python.

pip install Flask
python hello.py
* Running on http://localhost:5000/

Exemplo tirado da documentação do Flask

Muito mais do que falar da pessoa, falar do seus projetos nesse ponto acredito ser o mais importante, muito desses projetos dizem muito sobre o Armin, coisas simples, funcionais, extensíveis, coisas que vem do zen do Python, do Tim Peters.

Bonito é melhor que feio.
Explícito é melhor que implícito.
Simples é melhor que complexo.
Complexo é melhor que complicado.
Linear é melhor do que aninhado.
Esparso é melhor que denso.
Legibilidade conta.
Casos especiais não são especiais o bastante para quebrar as regras.
Ainda que praticidade vença a pureza.
Erros nunca devem passar silenciosamente.
A menos que sejam explicitamente silenciados.
Diante da ambigüidade, recuse a tentação de adivinhar.
Deveria haver um — e preferencialmente só um — modo óbvio para fazer algo.
Embora esse modo possa não ser óbvio a princípio a menos que você seja holandês.
Agora é melhor que nunca.
Embora nunca freqüentemente seja melhor que *já*.
Se a implementação é difícil de explicar, é uma má idéia.
Se a implementação é fácil de explicar, pode ser uma boa idéia.
Namespaces são uma grande idéia — vamos ter mais dessas!


 

Deixo também outras fontes de estudos que encontrei esses dias, além dos vídeos e fontes do Armin.


 

http://pythonclub.com.br/what-the-flask-pt-2-flask-patterns-boas-praticas-na-estrutura-de-aplicacoes-flask.html

http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world

#1 Python Help | Blogs que me inspiram

Hoje converso com o Valdir Stumm Júnior, responsável pelo blog Python Help, blog repleto de tutoriais de alta qualidade sobre Python, abordando assuntos como as características e mágicas da linguagem, além de como trabalhar com web com o Google App Engine.

Valdir, fale um pouco de ti.

Sou professor da área de programação no Instituto Federal Catarinense, em Blumenau. Conheci Python em 2005 em um projeto de uma disciplina na graduação, mas comecei a utilizar de forma mais intensiva em 2007, quando fui desenvolver o meu trabalho de graduação, que se tratava de uma extensão para o Plone. Depois disso, também utilizei Python no mestrado. Daí para diante, passei a usar Python em sala de aula e no desenvolvimento de projetos.

Qual foi a inspiração para criar o blog?

Criei o blog porque eu percebi que era preciso criar um mecanismo para que os meus alunos pudessem aprender conceitos além daqueles vistos em sala de aula, cujo tempo era restrito. Além de poder publicar artigos relacionados às dúvidas que surgiam em sala e fora dela, o blog também tornou possível a publicação de materiais envolvendo novos conceitos e tecnologias, para que os alunos pudessem avançar além daquilo que foi visto na disciplina.

De onde são feitos os estudos para criar seus artigos?

Em geral, os textos surgem de dúvidas ou coisas interessantes que encontro quando estou escrevendo código Python. As fontes de consulta que mais uso para resolver minhas dúvidas são: a documentação oficial, respostas do StackOverflow.com, e os livros Learning Python e Python in a Nutshell.

E quais são suas inspirações para poder compartilhar seus conhecimentos sobre Python?

Uma das coisas que mais gosto de fazer é escrever. No meu dia a dia, fico sempre em alerta sobre algo que poderia render um post no blog. Às vezes, a ideia vem de um módulo que acabei de aprender a utilizar. Nesse caso, escrever um texto me ajuda a firmar o que aprendi, e também a estudar o assunto com mais atenção. Em outros casos, a ideia surge ao revisitar determinado problema. Tendo aprendido outras linguagens antes, dá para perceber que o modo de pensar muda depois de começar a programar em Python. Assim, percebo que algumas coisas simples em Python podem não ser tão triviais para quem está começando com a linguagem, mesmo que já tenha experiência com programação em outras linguagens. E é sobre esse tipo de coisa que gosto de escrever.

Por que Python?

Porque é simples o suficiente para que o iniciante não se confunda e para que o experiente não se entedie. Porque é consistente, característica que é primordial para que o iniciante consiga absorver bem os conceitos. Porque tem uma stdlib gigantesca, que é complementada pela enorme quantidade de bibliotecas e frameworks que a comunidade fornece. Porque tem um REPL, que permite ao iniciante experimentar a linguagem e aprender de forma interativa. Porque tem uma comunidade engajada, com material novo surgindo a cada dia, com diversas fontes para busca de ajuda. E também porque tem o IPython, o IPython Notebook e o Dreampie que quebram um galhão no dia a dia de quem está desenvolvendo.

O que acha de programar com o Google App Engine?

Google_app_engine
http://pythonhelp.wordpress.com/2013/10/03/um-blog-com-google-app-engine/

Eu acho muito legal esse negócio de programar para a web sem se preocupar muito com a infraestrutura que vai dar suporte. O App Engine é perfeito para quem está começando, pois permite desenvolver e já publicar o app de uma forma muito simples, bastando ter uma conta Google. Com ele, podemos deixar para lá aquela chatice de instalar e configurar um servidor especialmente para publicar um aplicativo.

Uma das coisas que sempre quis fazer e você já tem feito é abordar diversas features da linguagem, seja as bibliotecas embutidas como datetime, e além de outros externos, criando tutoriais e dicas a respeito. Quais são as principais vantagens para quem não conhece?

A biblioteca padrão do Python é repleta de ferramentas úteis. O pessoal costuma dizer que Python “vem com as pilhas inclusas”, isto é, tudo o que você precisar para resolver o seu problema já está incluso quando você instala o interpretador. Então, conhecer bem a biblioteca padrão significa ter um caixa de ferramentas muito maior na hora de resolver um problema. Porém, não é só na stdlib que tem ferramentas boas. Pelo contrário, existe uma enorme quantidade de bibliotecas de terceiros que são, às vezes, até melhores que as disponíveis na biblioteca padrão. Acho que o melhor exemplo disso é a requests (http://docs.python-requests.org/en/latest/), que é uma lib para trabalhar com HTTP que é, na minha opinião, muito melhor do que a correspondente na stdlib, a urllib2.

O que o blog te trouxe de interessante?

O blog me estimulou a estudar mais a fundo vários assuntos. Afinal, antes de escrever um artigo sobre um tema qualquer, é imprescindível dar uma boa estudada nele, para não cometer gafes. Além da parte técnica, acho que treinar a escrita e a comunicação com outras pessoas é muito importante. Como professor, é essencial que eu consiga me expressar da forma mais clara possível, e acho que escrever me ajuda a melhorar não somente a escrita, mas também o discurso.

Deixe suas considerações sobre dicas para quem deseja aprender Python?

Acho que a principal dica é: organize seus estudos. Existem muitos materiais de excelente qualidade na web, mas é fácil se perder nessa imensidão de conteúdo. Para quem está começando a programar, sugiro que estude através de cursos online, como por exemplo o Python para Zumbis, pois eles já são cuidadosamente planejados para que o iniciante veja os assuntos de forma gradual, fazendo atividades práticas com feedback imediato, firmando o conteúdo que foi recém visto. Entretanto, a melhor forma de aprender Python é programando muito. Pratique; fazendo projetinhos para resolver problemas do seu dia a dia (mesmo que já existam programas com a mesma finalidade) e resolvendo problemas que exercitem a sua lógica de programação. Existem vários recursos que podem servir como guias nesse processo, como os sites codingbat.com e projecteuler.net. Outro recurso bem interessante, que conheci há pouco, é o projeto Python Koans (github.com/gregmalcolm/python_koans) que é um tutorial interativo em que o sujeito aprende com uma abordagem incremental baseada em testes. Enfim, recursos existem aos montes, basta escolher algum e praticar muito.