pyLottery: Como Presente de Páscoa, Lotomania agora também pode ser conferida

Se você tem um monte de bilhetes de apostas para a Lotomania de Páscoa e quer conferí-los, temos uma boa notícia para você: agora através da pyLottery você pode conferir também seus bilhetes de apostas para mais essa modalidade de apostas das Loterias nacionais.

Funciona basicamente igual as demais, muito simples e fácil de conferir e também de extender em seus projetos e experiências. Aproveitem!

pyLottery: um nova roupagem, estilo, mecânica e muito mais

Recentemente houve uma grande tarefa de reescrita do código do projeto pyLottery, que agora está modular (com uma classe base e as demais loterias a herdando), com sistema de cache local (utilizando o shelve, nativo do Python) e funcionando como uma API mesmo, para ser integrada a outros sistemas e seus próprios scripts, por exemplo. Também a lógica de funcionamento foi melhorada, agora utilizando a data e intervalos dos concursos para evitar chamadas desnecessárias ao site da CAIXA. Confira mais detalhes do projeto desde seu lançamento.

Conferir Loterias agora ficou mais fácil

Post rápido para divulgar mudanças e updates no projeto PyLottery. Para quem não conhece ainda, recomendo a leitura do post anterior

Além do projeto agora estar no BitBucket.org, temos também a opção de conferir as apostas na Lotofacil também, além de algumas mudanças quase imperceptíveis e também o código estava quebrado devido a uma mudança na disponibilização dos resultados por parte da CEF, que agora está funcionando perfeitamente.

Futuramente teremos um refactoring, fazendo a mesclagem dos códigos numa classe única, conforme as diferenças e semelhanças entre cada tipo de Loteria forem sendo analisados.

Meu Ambiente de trabalho em 7 itens

Development tools, THLopes.comSeguindo a “corrente do bem” que chegou até mim via Rocha C. Bruno, segue minha lista para Meu ambiente de trabalho em 7 items (Nossa, um número realmente pequeno para esse tipo de brincadeira…), vamos lá:

  1. Python: A linguagem mestre, sempre liderando qualquer projeto. Curiosamente, até em projetos onde o Python não é a linguagem principal, ele exerce sua influência: estou sempre pensando “Pythonicamente” para resolver problemas, aplicando o Zen que a comunidade e linguagem prega. Não é apenas linguagem: é Filosofia!
  2. Django: Nem todos projetos são Web, ou 100% Web. Mas os que atendem a esse requisito, sempre tem esse maravilhoso framework direcionando os trabalhos.
  3. Javascript: Para muitos, é algo bizarro. Para mim, que trabalho a maior parte com interfaces e interação do usuário com os sistemas, é a arma. E como já disse para muitos amigos de trabalho: “Para mim, Javascript é o Python rodando diretamente no Browser.
  4. jQuery: Muitas vezes esse framework chega a se sobrepôr a própria linguagem. Em muitos projetos, dá até pra dizer que temos “mais linhas jQuery do que Javascript puro”. Mas o que isso quer dizer? Que Web sem jQuery realmente é muito mais difícil e demorado! Gosto tanto do framework que criei até uns plugins
  5. Firebug: Se eu tiver de nomear um dos items como minha Shuriken, o Firebug seria sem dúvida! Muito prático, rápido e a ferramenta ideal para “prototipar” qualquer interface. Ainda mais se o cliente estiver do seu lado, esperando uma resposta sua: Você abre o console, algumas linhas e opções depois, você mostra pra ele como pode resolver  o problema… e negócio mais próximo de estar fechado!
  6. Mercurial-HG: Devo confessar, antes usava SVN, e quando a vida me exigiu mudar para Mercurial, tive um pouco de resistência. Mas hoje, alguns meses depois, só vejo vantagens, principalmente  após usar os excelentes recursos do Bitbucket e saber que várias boas ferramentas que utilizo, inclusive o próprio Python, tem seu código armazenado por lá, e também que Mercurial é uma ferramenta escrita em Python.
  7. Eclipse: Não vou morrer se o Eclipse não abrir… mas vou ganhar várias horas de lazer com algumas praticidades que ele traz: com essa IDE, eu centralizo diversas outras ferramentas, libraries, automatizo alguns procedimentos, debugs, vários ambientes de execução e depuração customizados com fácil acesso… enfim, um verdadeiro Canivete Suíço! Claro, ele tem que estar turbinado com alguns plugins, tais como: Aptana, PyDev, Mercurial, etc.

E assim como outros fizeram, vamos às menções honrosas de outras ferramentas que fazer uma pontinha no ambiente com menos frequência. Percebam que muitas ferramentas são claramente feitas para rodar em Windows, geralmente para suprir necessidades que são padrão no Linux

  1. Ubuntu: Companheiro de cada dia! Geralmente uso Windows por conveniência (sempre compro notebooks com Windows original pré-instalado, e dá uma preguiça de instalar e configurar um novo sistema… apesar de que nas últimas versões de Ubuntu esse processo estar facílimo!). Certas coisas na vida de um desenvolvedor só são possíveis num sistema Linux, e Ubuntu é o mestre nesse aspecto. Um exemplo é um projeto recente que estou trabalhando que envolve processamento de vídeo, usando FFMpeg e PyFFMpeg. Praticamente impossível de rodar em Windows… porém, no Linux, é mamão-com-açúcar
  2. Google App Engine SDK: Ferramenta essencial para projetos dentro da plataforma do Google. Quando usando com Eclipse, basta integrar no ambiente ou no projeto e o Eclipse/Pydev faz toda a interface pra você.
  3. Putty: Quando não no Linux, uma ferramenta essencial para conectar-se a sistemas remotos.
  4. iPython: Mão na roda para agilizar alguns comandos experimentais e em testes (Experimentando o DreamPie também)
  5. XAMPP: Outra ferramenta indispensável quando desenvolvendo fora do Linux
  6. phpMyAdmin: Muita gente torce o nariz, mas essa ferramenta é muito boa e prática. Só não é melhor por não ser em Python, :D .
  7. Skype: Para conversar com a equipe, clientes, e até fazer pequenos treinamentos
  8. DropBox: Backup e compartilhamento entre máquinas remotas. Uso principalmente como backup automatizado do meu ambiente de desenvolvimento remoto e até apaga alguns
  9. VMWare Player: Para rodar mais de um sistema de uma vez, permitindo testes (compatibilidade e usabilidade) mais rápidos e práticos
  10. VNC / Win2VNC: Também para rodar mais de um sistema de uma vez, mas aqui, para controlar mais de uma máquina com um único teclado e mouse, não para visualização remota (inclusive, acho horrível…)
  11. Pencil (Firefox Add-on): Para fazer Wireframes

Para dar continuidade, convido os amigos para seguir nesse trend:

@mauriciosl
@jeanwainer
@ergalassi
@marcelohonorio
@odranoel
@Ericgoes
@marcosriso

zipando arrays javascript como no python

Essa dica rápida é para aqueles que estão procurando uma forma de mesclar (merge) arrays em Javascript como é feito em Python através da função zip():

function zip() {
    var merged=[],arrays=[],lengths=[];
    for(var i=0; i<arguments.length; i++) {
        arrays.push(arguments[i]);
        lengths.push(arguments[i].length);
    }
    for (var i=0; i < Math.min.apply(null,lengths); i++) {
        merged[i] = arrays.map(function(value) { return value[i]; });
    }
    return merged;
}

Enjoy!!!

Programando e se divertindo

loteria-numerosEstava eu aqui, curtindo o “feriado”, e pensando no sorteio da Mega da Virada, para o qual fiz algumas apostas. Precisava viajar até a casa de minha sogra, e resolvi fazer um script para conferir os jogos (é, meus amigos e eu fizemos uma quantidade razoável de jogos :D ) em Python. Agora que já cheguei, almocei, e acabei de concluir uma nova versão mais reutilzável, permitindo conferir outros concursos da Mega Sena também, e puxando o resultado direto da fonte oficial: o site da Caixa Econômica Federal!

E porque não compartilhar esse script para todos aqueles programadores que também fizeram suas apostas?

É bem simples de usar:

$ python megadavirada.py 1245 jogos.txt

Acho que dá pra perceber a sintaxe do comando: 1245 é o argumento que representa o numero do concurso que você quer conferir, o ‘jogos.txt’ o nome do arquivo com suas apostas, seguindo a estrutura:

jose
9,14,16,24,38,45
maria
3,10,32,41,57,60
6,10,21,34,48,52
8,18,19,36,41,58
joazinho
7,13,28,31,43,59

Se você chamar o script sem argumentos, ele vai buscar o concurso 1245 e o arquivo jogos.txt, no mesmo diretório onde está o script. Faça o download através desse link, e aproveite!!! O script tem apenas um pré-requisito, além do Python: a Biblioteca BeautifulSoup. Para instalá-la no Ubuntu/Debian, utilize o seguinte comando:

$ sudo apt-get install python-beautifulsoup

No Windows, basta entrar no site oficial da linguagem e baixar o pacote para instalação. P.S.: Se ganhar, pode fazer uma doação pra mim também! :D Brincadeiras a parte, quero deixar aqui um Feliz Ano Novo, com mais de 200 milhões de motivos para abraçar cada um dos amigos nessa vida! Saúde e Paz, o resto a gente corre atrás!!!