Automatizando o novo blog

Após muitos anos de serviço, resolvi aposentar o blog antigo feito com [Blogger do Google]. Minha experiência com geradores de site estáticos sempre foi muito boa, desde os primeiros geradores de sites estáticos que escrevi ainda nos anos 90, alguns em Object Pascal (Delphi), outros mesmo em Perl! Nos últimos anos, tive o prazer de criar o site da primeira [PyCon Amazônia], usando o [Pelican] e antes disso já vinha trabalhando numa nova versão do gerador do [site do meu livro].
Ler mais →

Migrando o servidor de chat para Python 3.6

Na época do lançamento do Python 3.4, eu estava tão contente com a integração do Asyncio que escrevi um servidor de chat aqui. O tempo passou e novas versões do Python foram lançadas. Resolvi então migrar o servidor para Python 3.6. Uma das grandes mudanças que ocorreram no Python 3.5, foi o suporte a async e await para substituir @asyncio.corroutine e yield from respectivamente. Esta pequena mudança por si só já facilita em muito a leitura do código, que ficou mais leve.
Ler mais →

Consultas via Telegram

Seria legal se profissionais de informática dessem consultas como médicos ou advogados, mas algo nos impede de cobrar por tudo e esse desejo ou intenção de compartilhar ideias nos consome. Eu participo de vários grupos de Telegram, principalmente sobre Python, um deles é o PyCoding e o outro é o pybr. Normalmente eu leio os grupos quando estou usando meu celular, então nem sempre é possível ajudar com as dúvidas, mas vou tentar separar um pouco de tempo para explorar algumas ideias aqui e lá.
Ler mais →

Uso de UUIDs como chave primária com Django e Postgres

Por default, o Django cria chaves primárias do tipo inteiro (32 bits) quando usado com o banco PostgreSQL. Estes campos são incrementados automaticamente e funcionam perfeitamente bem em ambiente local. Um problema que aparece quando você cria uma API é o fato de seus ids sequenciais e numéricos exporem detalhes de sua base de dados. Imagine que seu cliente tem o id 1, ele pode imaginar (e com razão) que é seu primeiro cliente.
Ler mais →

Convertendo um jogo escrito em Basic para Python - Parte III

Nesta terceira parte, temos os seguintes objetivos: Limpar as classes Vários aviões Múltiplos tiros. Generalizar os objetos do jogo em uma super classe Exibir um placar Atribuir teclas para atirar e jogar de novo ou sair Na versão da Parte II, as classes tem muito código repetido. Analisando cada uma delas, podemos chegar a conclusão de um comportamento comum quanto a forma de desenhar e atualizar os objetos. Um método para retirar o objeto do jogo também é utilizado.
Ler mais →

Convertendo um jogo escrito em Basic para Python - Parte II

Neste segundo post, vamos melhorar nosso jogo. Embora a nova versão rode em Python, ainda está muito anos 80. A primeira coisa a corrigir é a animação. Como estamos usando um sistema de coordenadas de 280 por 192 pontos para simular as coordenadas do Apple, multiplicamos cada coordenada por 4 na hora de desenhar. Para deixar parecido com o Apple, eu reduzi o número de frames a 8 frames por segundo.
Ler mais →

Convertendo um jogo escrito em Basic para Python - Parte I

A nostalgia dos computadores da década de 80 é algo que nunca parei de ter. Quando criança, tive a sorte de utilizar vários computadores de 8-bits, como ZX-81, ZX-Spectrum, Apple II e MSX, ou melhor, seus clones nacionais (TK-85, TK-90X, TK2000), uma vez que o Brasil vivia a época da Reserva do Mercado de Informática. Numa época que não havia Internet, nós passávamos o tempo a digitar programas. Uma série de livros sobre programação de jogos foi editada pela editora Lutécia no Brasil, mas os originais americanos foram liberados pela Usborne.
Ler mais →

Ajude a manter a Fundação Nokia aberta

A Fundação Nokia é uma instituição de ensino médio, localizada em Manaus, Amazonas. Atuando há 30 anos na região, a instituição teve vários nomes como CEPI, FEPEMM, FMM e finalmente Fundação Nokia a partir de 2001. Com a venda da Nokia, a Fundação Nokia passou a ser mantida pela Microsoft. Este ano, pela primeira vez em 30 anos, o processo seletivo da instituição foi suspenso. Se esta situação continuar, a Fundação Nokia vai desaparecer em 3 anos.
Ler mais →

Servidor de Chat com websockets e asyncio

Já é hora de escrever sobre um projeto mais completo. Aproveito para mostrar o módulo websockets para Python 3.4 que funciona muito bem com asyncio. Para não ter problemas de interface, eu resolvi escrever o cliente do chat em JavaScript. O cliente de exemplo foi baixado daqui. Como quase sempre, os exemplos são muito simples e nos deixam com água na boca sobre o que poderíamos realmente fazer. Quem já tentou escrever um chat em JavaScript sabe que WebSockets são uma mão na roda.
Ler mais →

Asyncio - Lendo o teclado

Continuando a série sobre o módulo asyncio do Python 3.4, vamos ver como criar um jogo simples, em modo texto. O objetivo do jogo é simplesmente mostrar um labirinto e deixar o jogador se mover utilizando o teclado numérico (4 - esquerda, 6 - direita, 8 - cima, 2 - baixo e S para sair). Para exercitar nossos músculos da época do DOS com programação assíncrona, vamos exibir o relógio na última linha.
Ler mais →