Comunidade de Jogadores e Desportistas

O Mosaico Livre é essencialmente um blog sobre programação, engenharia de software, software livre. Ultimamente venho negligenciando esta essência. É como se tivesse perdido o rumo.

O barco, no entanto, deve seguir seu rumo correto.

Já há algum tempo, por curiosidade, li alguns tutoriais e assistir alguns vídeos sobre o Google App Engine, uma plataforma para desenvolver aplicações web que podem usar a infraestrutura do Google. Ou seja, podemos hospedar nossas aplicações nos servidores do Google.

O Google App Engine é implementado em Python. Um fator importante para que eu rapidamente pudesse desenvolver alguma coisa. Logo será possível usar outras linguagens. Até lá o interesse em aprender Python continuará.

E como Python cresceu desde 1999, o ano em que comecei a programar nesta linguagem! Ela já está entre as linguagens modernas mais comentadas. A falta de uma empresa forte que a utilizasse ou pelo menos incentivasse seu uso era um dos motivos para as pessoas não quererem conhecê-la. O Google mudou isso.

Atualmente desenvolvo uma aplicação para Google App Engine. Na verdade, é um portal para concentrar informações sobre esportes e jogos em geral, seja amador ou profissional. Um local onde o pessoal possa conhecer outros praticantes. Por exemplo, sinto necessidade de conhecer pessoas na minha cidade que joguem Go, um jogo de tabuleiro difundido no oriente, mas pouco por aqui. No site, posso informar os jogos que pratico. Quem tiver interessado em jogar comigo, pode enviar um e-mail. Depois, podemos informar no site o local onde jogaremos para que outras pessoas possam comparecer para apreciar a partida.

É raro encontrar algum portal da imprensa que dedique um espaço a esportes com poucos praticantes. A minha idéia é preencher esta lacuna.

Assim que eu tiver terminado, passo o endereço para vocês.

TurboGears 2: solução de problemas durante a instalação

Pediram-me para documentar a instalação do TurboGears 2. Vocês podem encontrar os passos para a instalação aqui.

O restante deste post é sobre como solucionar certos problemas. Então, se você seguiu a documentação oficial e não teve problemas não precisa mais ler este post.

É bom salientar que fiz a instalação no Ubuntu Linux.

Installing TurboGears 2 from Source

Nesse ponto, quando vocês forem instalar o tg2 com python setup.py develop, vocês não encontrarão o arquivo setup.py. Ocorre que agora o tg2 usa o paver como instalador. Ou seja, documentação desatualizada. Na raiz de tg2 execute sudo paver develop.

Pode ser que durante o download das dependências do tgdev, não seja encontrado a versão 0.8.7dev do ToscaWidgets. Se este for o caso, é melhor você esperar um tempo para eles disponibilizarem-na e então sincronize a cópia de trabalho com svn update. Depois, execute novamente sudo python setup.py develop.

Concluídas as demandas, você já pode brincar com o TurboGears 2. Comece pelo Wiki em 20 minutos.

Estou querendo instalar o TG2 no Windows, então os problemas que possa encontrar vou colocar como comentário aqui.

Primeiro contato com TurboGears 2

Como o Twitter não está muito bem, vai ser por aqui mesmo que informo aos amigos e colegas pythonistas que tive pela primeira vez contato com o TurboGears 2 hoje. Acabei de fazer o exemplo da Wiki.

Aos poucos, devo começar a me aprofundar no uso dele, uma vez que estamos pensando em adotar o framework para o desenvolvimento de um projeto. Queremos que nossa aplicação acompanhe o desenvolvimento do TurboGears, mesmo que isso seja arriscado.

Tive um razoável trabalho para instalá-lo na minha máquina. O trabalho não se deveu ao fato de tê-lo de obter via Subversion, mas sim porque alguns pacotes não estavam sendo encontrados pelo easy_install. Também precisei usar o Paver para baixar umas dependências. Isso a documentação de instalação não explicou. Devo fazer a instalação também no notebook do Stênio. Não anotei nada, espero conseguir.

Apesar dele manter a API bastante semelhante ao TurboGears 1, há componentes novos. A curiosidade foi aguçada por conta disso. Estava tão por fora, que somente agora fiquei sabendo sobre o Paver, criado pelo próprio Kevin Dangoor. Parece-me um melhoramento sobre o processo de instalação/distribuição/empacotamento.

Deixemos para outros posts demais conclusões sobre o TG2.

Sistemas de Controle de Versão em Python

Um amigo, Stênio, e eu conversávamos sobre um projeto secreto (o Google não pode saber) que ele tem em mente. Pretendemos implementá-lo em Python. Coube a idéia da escolha do controle de versões ao Stênio e ele disse que gostaria de experimentar o Mercurial. Isso por ele ser descentralizado e ter uma grande variedade de ferramentas. A referida característica faz parte dos sistemas de controle de versões chamados distribuídos, tais como o Monotone e o Git. Aliás, segundo li, o Mercurial e o Git seguem as idéias do Monotone.

Um fato importante a citar: o Git foi inicialmente desenvolvido pelo próprio Linus Torvalds para substituir uma solução proprietária, o BitKeeper, na tarefa de ser o repositório da árvore do kernel Linux.

O Mercurial e o Bazaar são exemplos recentes de controles de versões distribuídos desenvolvidos em Python. O Bazaar é utilizado pela Canonical, a empresa responsável pela distribuição Ubuntu, que aliás, sou um dos usuários satisfeitos. Pensei até em adotar o Bazaar em nosso projeto, mas em consideração ao amigo, ficamos mesmo com o Mercurial.

Aqui no trabalho, usamos o Subversion, o já tradicional controle de versões que veio a substituir o CVS na importante tarefa de versionar e centralizar o acesso ao código-fonte dos projetos.

Gostaria que esse post servisse também para os leitores-programadores a considerarem o uso de um sistema de controle de versões, mesmo para seus projetos caseiros. Aos programadores Python, considerem o uso do Bazaar e Mercurial, em especial.

Python: como aprender

Muitas vezes percebo dificuldade entre colegas no aprendizado mais rápido da linguagem de programação Python. Isto é mais visível entre os inexperientes.

Com base nessa preocupação resolvi listar aqui algumas formas de ter uma melhor experiência com a linguagem. Creio que servirá para outras linguagens, por ser algo bem geral.

  • Leia um tutorial. Leia do início ao fim aqueles tutoriais introdutórios sobre a linguagem. Não tente ir além disso no começo. Não entre nas áreas complexas rapidamente. Recomendo a leitura do tutorial que se encontra em www.python.org. No PythonBrasil há uma série de referências a tutoriais em português e inglês. Escolha um e comece a leitura.
  • Pesquise mais e pergunte menos. Priorizar o exercício auto-didata é muito importante. Quando resolvi conhecer outra linguagem orientada a objetos diferente da que era ensinada na graduação (Java), não tive muito a quem recorrer. Era pesquisar e ler bastante. Isso me permitiu conhecer muito mais os recursos disponíveis na biblioteca padrão. Quando a pesquisa não for suficiente para as perguntas. Nesse ponto você terá um embassamento maior do problema e facilitará no momento de tirar as dúvidas. Normalmente, perguntas sobre problemas bem básicos que poderiam ser resolvido com simples consultas na Internet chateiam as pessoas. Isso leva a entender que você quer moleza.
  • Tendo um problema, solucione em Python. A melhor maneira de conhecer os recursos da linguagem é quando temos um objetivo a cumprir. Seja um simples script para concatenar arquivos de texto num só ou uma consulta a banco de dados. Dessa forma podemos pesquisar com clareza o que queremos. Assim aprendemos cada vez mais sobre a linguagem. Comece primeiro pela documentação de referência da biblioteca padrão. Depois procure em outros lugares da internet. A biblioteca padrão é riquíssima. Você irá se divertir muito com ela.

Basicamente, este é o caminho a se seguir. Verá que é uma forma simples, mas que precisa sempre ser lembrada o tempo todo até virá um hábito.

Powered by ScribeFire.

TurboGears: a espera

Devido a existência do projeto de desenvolvimento do Turbogears 2, decidi fazer uma pausa nos estudos e casos de uso sobre esta framework. O Turbogears 2 é um reprojeto visando adotar o WSGI como base para a componentização e reusabilidade na arquitetura.

WSGI é um padrão já adotado largamente na comunidade Python. Ele facilita bastante o reuso de código em aplicações web, principalmente. A equipe de desenvolvimento resolveu adotar o núcleo do Pylons 1.0 para pular etapas, uma vez que este já adotava o WSGI, inclusive adotava o Paste para facilitar a configuração. Vale ressaltar que eu fico maravilhado com a tríplice setuptools + wsgi + paste.

Essa mudança é um ponto positivo mas que me levou a parar um tempo de escrever sobre a framework aqui no blog. A sensação é que ela está no limbo e o Django continua ganhando novos adeptos. Verdade que este limbo é bem produtivo e tenho a sensação de um retorno ao mercado ainda este ano.

Então, quando tivermos lançamentos oficiais e documentação sobre o Turbogears 2, estarei novamente estudando e escrevendo aplicações de exemplo e divulgando minhas experiências por aqui.

Um pouco do meu tempo para todo mundo.

Powered by ScribeFire.

O Pregão do Laptop Escolar

O XO da OLPC parece que vai perder a parada. O pregão para a compra de 150 mil laptops escolares teve um vencedor: o Mobilis da Positivo Informática. Ela venceu a primeira fase, mas não se sabe ainda se é uma vitória definitiva. Depende de um acordo entre as partes. O Governo quer um preço menor.

Eu estou torcendo pelo XO, entretanto, torço pelo pela idéia como um todo. Espero que os investimentos nessa área não diminuam com os cortes orçamentários.

Links:

Sobre críticas e elogios ao XO da OLPC

Encontro muitas críticas infantis sobre o XO, o famoso laptop de “100 dólares” da OLPC – one laptop per child. Muito dizem que o laptop não presta porque é muito pequeno, não é potente, possui pouca memória e não tem Windows instalado. Em relação a isso dar para perceber que o pessoal não anda lendo mais a respeito do propósito do computador e das novidades tecnológicas a que se destina.

O XO deve ser econômico. Ele não é um laptop somente para a cidade mas também para o campo. Não é computador para classe média ou classe alta, e sim para alunos carentes. Esses computadores estão destinados a lugares distantes, possivelmente sem energia. Esses lugares ainda existem em nosso mundo e até no Brasil, podem crer.

Dizer que as crianças precisam aprender a usar o Windows para entrar no mercado de trabalho é brincadeira. Os laptops são destinados a crianças bem jovens que vão usar o laptop como meio pedagógico para acelerar o aprendizado. O foco não é o mercado de trabalho, mas indiretamente, claro vai contribuir para isso.

Uma matéria interessante para quem quer entender mais um pouco sobre o hardware do XO e sua proposta pode ser encontrada aqui.

Outros links:

Webinsider

Pycon Brasil chegando

A proximidade do evento e certamente sua importância como fator de divulgação da linguagem, foi energia mais que suficiente para escrever em meu blog. O Mosaico tá parado.

Por tudo o que li nos blogs e no PythonBrasil, o evento promete muito. Leio mensalmente a Linux Magazine e certamente deverá aparecer alguma matéria sobre o evento. Afinal, Python é muito usada pelas distribuições do sistema operacional Linux.

Ótimo evento a todos! Estarei no primeiro que for nas terras nordestinas.