Resultado inicial do estudo do Flask Framework

Cansado de fazer as coisas só com Django resolvi implementar algo usando algum outro framework Python. Como não curto estudar só a teoria e não implementar nada, resolvi fazer um microprojeto.

Como estava sem criatividade, lembrei de script que o Rudy Matela tinha feito para gerar um pdf com os textos dos postits do sprint. E resolvi fazer um clone da versão web usando Flask e Google App Engine(GAE).

O Flask é microframework feito em Python que usa o Jinja2Werkzeug, ele não é um framework full stack, ele vem só com o básico para você desenvolver sua aplicação Web, isso é vantagem no caso do uso com o GAE, pois como ele não tem um ORM própria, você pode usar SQLAlchemy, SQLObject ou mesmo a API de armazenamento de dados do GAE. O Flask possui extensões que ajudam no desenvolvimento para várias funcionalidade.

O resultado do estudo e implementação você pode ver no ScrumReal

O código você pode baixar através do github http://github.com/fabiocerqueira/scrumreal

Quem tiver sugestões sobre o que pode melhorar no código, agradeço!😀

PyLestras do PugCE – REST com Python

Hoje na Fa7 o PugCE realizou o evento PyLestras, tivemos 3 palestras e a resolução de problema em um pequeno Dojo.

As palestras foram:

  • 09:00-09:20 – Conhecendo o PugCe (Italo Maia)
  • 09:30-10:20 – AppEngine (Filipe Fernandes)
  • 10:30-11:20 – Rest com Python (Eu \o)
  • 11:30-12:00 – DOJO

O problema proposto para Dojo foi implementar a sequência de Conway da seguinte forma:

# -*- coding: utf-8 -*-
import doctest

def next(prev):
    """
    >>> next(1)
    '11'
    >>> next(2)
    '12'
    >>> next(312311)
    '1311121321'
    >>> next(22)
    '22'
    """
    prev = str(prev)
    res = ''
    pa = prev[0]
    acc = 0
    for a in prev:
        if a == pa:
            acc += 1
        else:
            res += "%d%s" % (acc, pa)
            acc = 1
        pa = a
    res += '%d%s' % (acc, pa)
    return res

def conway(ini, lim):
    """
    >>> conway(1, 1)
    '1'
    >>> conway(1, 6)
    '1 11 21 1211 111221 312211'
    >>> conway(3, 4)
    '3 13 1113 3113'
    >>> conway(22, 5)
    '22 22 22 22 22'
    """
    res = str(ini)
    for i in range(lim - 1):
        prev = res.split()[-1]
        res += " %s" % next(prev)
    return res

if __name__ == "__main__":
    doctest.testmod(verbose=True)

Um segunda versão usando o módulo itertools do Python e geradores, mostra também como representar exceptions no doctest:

# -*- coding: utf-8 -*-
import doctest
from itertools import groupby

def conway_generator(ini, lim):
    """
    >>> a = conway_generator(1, 1)
    >>> a.next()
    '1'
    >>> a = conway_generator(2, 3)
    >>> a.next()
    '2'
    >>> a.next()
    '12'
    >>> a.next()
    '1112'
    >>> a.next()
    Traceback (most recent call last):
        ...
    StopIteration
    """
    res = str(ini)
    yield res
    for i in range(1, lim):
        res = ''.join(["%d%s" % (len(list(g)), k) for k, g in groupby(res)])
        yield res

def conway(ini, lim):
    """
    >>> conway(1, 1)
    '1'
    >>> conway(1, 6)
    '1 11 21 1211 111221 312211'
    >>> conway(3, 4)
    '3 13 1113 3113'
    >>> conway(22, 5)
    '22 22 22 22 22'
    """
    return ' '.join(conway_generator(ini,lim))

if __name__ == "__main__":
    doctest.testmod(verbose=True)

O problema não foi resolvido na hora do Dojo, mas serviu para mostrar algumas coisas interessante do Python😀

Os slides da minha palestra seguem abaixo assim como o link para o código usado de exemplo:

source: github.com/fabiocerqueira/murl

livro citado em inglês e português

A história do Python

Na lista da Python Brasil divulgaram um blog com a história do Python. É uma leitura interessante e estou repassando aqui para outros também conhecerem melhor essa linguagem incrível.

Tem o blog oficial[1] mantido pelo Guido van Rossum e Greg Stein e também a traduação para pt-br[2] mantida pelo Douglas Drumond e Victor Matheus.

A versão em português não foi completamente traduzida.

[1] – http://python-history.blogspot.com/

[2] – http://python-history-pt-br.blogspot.com/

PythOnCeará – Primeiro evento do PugCE

No próximo sábado dia 14/11 será realizado na FA7(Faculdade 7 de Setembro) o primeiro evento dos programadores Python no Ceará. O evento será promovido pelo PugCE e contará com quatro palestras de diversos temas envolvendo Python, desde mercado, web, desktop e mobile.

Mais informações sobre o encontro:
local: FA7, em frente a Unifor, sala 35 – mapa
horário: das 13:00 às 17:30
dia: 14/11/09
Programação:
Quatro palestras de 50 minutos, com pausa para coffee break
Palestras:

  • “Por que python?!” – Nicholas Amorim
  • “Python para Web e Desktop” – Alec Nascimento
  • “Django tem ritmo!” – Italo Maia
  • “Sokoban com PyS60” – Fábio Cerqueira

Eu serei um dos palestrantes como vocês viram na grade acima e falarei de como foi o desenvolvimento do Sokoban para celular. Espero a presença de quem ler isso aqui \o/

Faça sua inscrição no evento aqui.

Sokoban – Jogo python para plataforma s60

Comprei faz uma semana um celular Nokia N78, um dos motivos da compra foi que poderia ter Python instalado nele e também pelo wifi hehe. Para testar o python resolvi pegar o meu remake do BoxWorld que tenho em Python e refazê-lo usando a API do PyS60. O Resultado ficou divertido e serve para quem nunca desenvolveu nada para celular ter noção de como começar.

Onde encontrei material?

No Fórum da Nokia tem muita informação sobre como desenvolver para celulares da plataforma deles. Um bom link: http://wiki.forum.nokia.com/index.php/Introduction_to_PyS60

Onde testei?

Como eu tenho o celular ficou tranquilo fazer os testes, mas existe um simulador que roda no windows. Como eu uso linux testava diretamente no celular, mas instalei aqui o simulador para fazer um vídeo do jogo.

Um boa referência também para início você ver no blog do Igor do Santos:

http://stoa.usp.br/igordsm/weblog/40092.html

http://stoa.usp.br/igordsm/weblog/41001.html

Vídeo do jogo:

Usei o xVidCap para capturar o vídeo do emulador rodando o Windows no VBox.

Comandos para jogar:

O jogo é simples:

  • usei os números para controlar: 2 – cima, 8 – baixo, 4 – esquerda, 6 – direita(muda quando vira para paisagem)
  • setas para movimentar o mapa caso ele seja maior que a tela.
  • c – para desfazer

Tem um menu com opções para reiniciar, ir para(mudar de mapa) e mudar o modo de visualização do jogo(Retrato e Paisagem).

Código Fonte:

Vamos ao que interessa.🙂 Source do Sokoban:

No DropBox:  download.

E no github: http://github.com/fabiocerqueira/BoxWorld-for-PyS60

Como organizar seu dinheiro?

Aqui em casa sempre vi meus pais estressados no início do mês com as contas de cartões, prestações de carros, apartamento e essas coisas. Dinheiro aqui em casa sempre foi bagunçado, “sorte” que meu pai ganha relativamente bem e consegue ainda assim nos oferecer uma vida confortável.

Mesmo com a vida confortável não temos aquela liberdade para fazer viagens quando queremos ou qualquer outro tipo de lazer que exija mais dinheiro(como o circo de Soleil), pois não temos o costume de fazer planejamento financeiro nem para um mês muito menos para um ano.

Vendo o exemplo deles de não conseguir poupar e só conseguir as coisas na base de prestações e sem investir em ativo nenhum, eu quero fazer diferente.

Hoje sou bolsista de um laboratório na UECE e estou conseguindo poupar bastante e no fim do ano estarei com dinheiro suficiente para comprar meus primeiros ativos(ainda estou estudando no que investir), mas para poupar estou acompanhando todos os meus gastos bem de perto. Para isso criei uma planilha eletrônica simples no estilo do moneylog e tem dado resultado. Vendo os gastos bem de perto consigo controlá-los melhor, estabelecendo máximos para gastar no mês em relação a custo de vida, lazer. Assim facilita fazer planejamentos para comprar meus ativos como também algumas coisas que eu queira me presentear e até fazer uma viagem com amigos ou namorada. Meu padrão de vida nesse período caiu um pouco, mas espero compensar isso no futuro, afinal sem esforço não há recompensa.

Nessa nova fase da minha vida financeira, eu diria a primeira, os blogs que tem me ajudado muito são:  produzindo.net e o dinheirama.com