sábado, 8 de agosto de 2009

Poético!

Estava eu, inocentemente olhando as notícias do guiadohardware.net quando me deparo com isto! Um "Artigo" com uma lista das personalidades mais marcantes do software livre no mundo! Algumas eu nem conhecia! De qualquer maneira, o artigo é lindo! É poético! E merece uma lida de qualquer pessoa que usa software livre, porque muitas dessas pessoas, senão todas, são pessoas que se importam e lutam por uma sociedade mehor, seja para os desenvolvedores, seja para as empresas, seja para o usuário final.

Abraço!

segunda-feira, 3 de agosto de 2009

Fazendo um script em python

Primeiro gostaria de sugerir esse site http://sexygamesparacelular.blogspot.com/ que possui joguinhos picantes para celular. Rsrsr, muito divertido.

Diversão libertina digital à parte, vamos ao assunto de hoje! Você que aprendeu a sintaxe do python e como fazer um "hello world", deve estar agora disposto a novos desafios, não é mesmo? Bem, que tal escrever um programinha simples, por linha de comando, que faça alguma para você? Esse é o objetivo dessa postagem! Ensinar algumas técnicas e detalhes interessantes na construção de pequenos scripts em python.

Definindo alguns detalhes da implementação.

O que o programa fará?
Ele deve zipar o arquivo informado.

Quais opções devem ser aceitas?
Apenas -o para especificar arquivo de saída.

Deve ser multi-plataforma?
Não. Ele é para linux.

Compatibilidade com python:
python 2.5>=

Alguma biblioteca externa?
Não.

Agora, vamos à codificação. Primeiro, como todo bom programa escrito em python 2.x, devemos informas a codificação do código primeiro. Sugiro utilizar o utf-8, por ser bastante abrangente.

# -*- coding:utf-8 -*-

O código acima informa que as string do arquivo python atual estão na codificação utf-8, que é a padrão do python-3.0.

Agora, importando o que será usado.

import os.path as path
import sys
import getopt
import zipfile

os.path nos permite obter algumas informações úteis sobre o arquivo que estamos convertendo, enquanto o sys permite-nos obter os parâmetros informados em linha de comando. getopt é uma biblioteca que facilita a interpretação dos parâmetros informados em linha de comando e zipfile permite-nos trabalhar com os arquivos zip.

Que tal definirmos um método main?

def main(argv): pass

E por último, o código que chama nosso método main.

if __name__=="__main__": main(sys.argv[1:])

O código acima tem uma função muito interessante. Ele checa se o arquivo .py foi executado com o comando python ou se foi apenas importado. Se tiver sido executado, ele executa o main. Isso facilita muito a utilização de um mesmo código de forma autônoma ou como uma biblioteca.

Como o blogspot não ajuda muito no quesito "escrever código", joguei um embed abaixo[agradecimentos ao sérgio]. Está comentado = ].



obs: getopt foi usado de uma forma bem simples. Depois faço um exemplo mais "cabra homi"!

Abraço.

sábado, 1 de agosto de 2009

Animes que ainda vão sair em 2009



Lista com os animes que estão por vir em 2009. [ref: chartfag]

sexta-feira, 31 de julho de 2009

Pygame-1.9!!!

Saiu a versão 1.9 da biblioteca de desenvolvimento de jogos, em python, pygame!!! Uau! Rsrsrs, ué, não sabe por que eu estou nessa euforia? Muito simples: o pygame deu um grande salto nessa versão!

Não que o pygame fosse ruim nas versões anteriores. Deixe-me fazer uma analogia para explicitar melhor minha idéia: se o pygame antes era vinho do porto, o pygame agora é vinho do porto com pãozinho de alho e uma garçonete gostosa massageando seus pés =D.

Tah tah, menos conversa, mais informação. As grandes melhorias do pygame nesta versão são "coisinhas" como suporte a desenvolvimento de jogos na plataforma S60 da nokia(@o@!), bugfixes, suporte "pre-liminar", vulgo incompleto, a webcam, python-3.0, midi, novas técnicas de textura, exemplos mais limpos, TESTES, e outras florzinhas que tornam o pygame terreno fértil para entusiastas de plantão. Ah, suporte ao py2exe e py2app melhorados também ; )

Fico pensando, os caras estão com as idéias bem centradas. Se vocês notarem, eles estão criando terreno para um lançamento bombástico de uma versão 2.0, que, no caso, teria todas essas funções, e mais.

Para quem acha que o pygame não é uma boa plataforma de desenvolvimento, sugiro conferirem excelentes joguinhos como make-me, bubbman2, invention, happy insect garden e whichwayisup! Lembrando que a maioria desses jogos foi feito em cerca de uma semana, o que é uma amostra do grau de produtividade que a biblioteca pygame te proporciona.

E, para ficar completo, vejamos como instalar o pygame-1.9 no ubuntu. Dois comandos:

# instala dependências
sudo apt-get install libsdl-mixer1.2-dev libsmpeg-dev libsdl-ttf2.0-dev libsdl-image1.2-dev libportmidi-dev
# instala o pygame. Requer python-setuptools instalado
sudo easy_install -U Pygame

Prontinho! Hora de olhar os exemplos e fazer seu primeiro jogo! Vá lá, se garanta ; )

[EDIT] Caso ocorra algum erro durante a instalação do pygame, instale a partir do código fonte, que pode ser obtido por este link. Descompacte o arquivo, e execute o setup.py como administrador do seu sistema.

terça-feira, 28 de julho de 2009

Pyflakes, Python, Django, TDD e mão na massa!

Bem, anteontem resolvi que vou dar mais enfase ao desenvolvimento TDD. Essa minha pequena decisão tem por meta assegurar maior qualidade nos meus softwares e menores dores de cabeça num futuro próximo =D.

A decisão de passar a desenvolver sempre pensando no TDD não veio por acaso. Eu gosto muito de criar aplicativos, deixar eles encostados, e depois voltar e dar um gás neles. Essa minha prática me fez perceber algumas características de manutenabilidade e de qualidade que eu preciso sempre atentar. Entre elas, o fato de que eu não estava criando testes nesses meus aplicativos pessoais, e quando eu voltava e adicionava ou modificava alguma assinatura, eu acabava quebrando alguma coisa. Não que tenha sido difícil rastrear quaisquer dos erros, mesmo sem debug, mas mesmo assim, era algo que estava me fazendo falta.

Em uma rápida busca, achei no blog do marinho essa ótima postagem sobre o tema. Só vi a introdução ainda, por falta de tempo, entretanto, pretendo lê-la com muito carinho esses dias. Para quem não sabe, TDD significa Test DrivenDevelopment, ou, em português, programação orientada a testes, que é uma forma de se desenvolver onde se escreve o teste de uma funcionalidade antes de escrever a mesma. Essa abordagem tem vantagens visíveis, como citado no artigo do Marinho, principalmente no que diz respeito a qualidade de código, onde você sempre pode garantir um certo comportamento do seu código baseado nos testes dele.

De qualquer maneira, ainda no escopo de manutenção, revisão e atualização de aplicativos, acabei achando esse ótimo programa que me permite checar alguns aspectos do meu código, como erros, importações nunca utilizadas e má formatação. O nome o bixin é o pyflakes. Mesmo havendo opções mais completas, como o pylint ou pychecker, o que me atraiu no pyflakes foi a sua simplicidade. Ando utilizando ele com frequência e aconselho a todos que queiram dar uma "limpada" em seu código antes de colocá-lo em produção.

Para finalizar, como não poderia deixar de ser, gostaria de informar aos djangonautas de plantão que a versão 1.1 do framework já está disponível. Houve algumas mudanças de compatibilidade entre as versões 1.0 e 1.1, entretanto, a maioria das pessoas não terá problemas. Eu, pelo menos, fiz a migração do meu aplicativo sem mudar uma linha de código sequer. = D

No mais, é isso. Usem o pyflakes, usem o django, usem o python e codifiquem usando TDD ; )

segunda-feira, 20 de julho de 2009

Configurando o PCSX no [K|X]Ubuntu!!!

Emuladores são programinhas que "fingem" ser uma máquina completa, para que jogos em formato digital, as roms, possam rodar nele e você possa ter seu playstation, game boy, ou o video game que for, sempre pertinho de você. Acredito, de verdade, que os emuladores são uma das maiores invenções da informática de todos os tempos! Videogames fora de linha, por exemplo, nunca morreram graças aos emuladores.

Dito isso, e pensando em meu finado PS1, resolvi escrever aqui como instalar e configurar o PCSX no Ubuntu e similares. Para quem não conhece, o PCSX é um excelente emulador de PS1 disponível para linux e windows. Tem um ou outro jogo que ele não roda, mas, ninguém é perfeito, neh? De qualquer maneira, os meus, ele roda! Sem enrolar muito, vamos ao processo:

Para instalar o pcsx no Ubuntu e similares, primeiro, você deve instalar o mesmo direto do repositório padrão do Ubuntu. O comando a seguir faz isso para você:

#sudo apt-get install pcsx

Feito isso, o emulador está instalado. Beleza, não é? Mas ainda faltam duas coisas: configurar o controle e o vídeo. 

Caso você não esteja usando um joystick, vá na parte de configurações de plugins, no controlador de joystick e mude os botões de acordo com sua preferência. Eu, particularmente, uso a seguinte configuração:

m: start

n: select

a: quadrado

z: xis

s: triangulo

x: bola

L1: w

L2: q

R1: d

R2: c

E os direcionais cima, baixo, esquerda, direita com as setinhas de navegação do teclado. Fica ótimo! Você pode fazer como desejar, mas minha receita para os controles é essa.

Por fim, configure o vídeo, que, caso mal configurado, vai rodar muito rápido ou muito devagar. Edite o arquivo dfxvideo.cfg

#nano .pcsx/plugins/dfxvideo.cfg 

Mudando as configurações para algo parecido com o seguinte:

--- inicio ---

ResX = 800

ResY = 600

NoStretch = 3

UseDither = 1

Maintain43 = 1

FullScreen = 0

ShowFPS = 0

UseFrameLimit = 1

FPSDetection = 0

UseFrameSkip = 0

FrameRate = 500

UseFixes = 0

CfgFixes = 0

--- fim ---

Se abstenha de modificar os atributos abaixo de FullScreen. Caso queira adicionar algum fix, faça-o pela interface de usuário. No mais, é isso. Você deve conseguir jogar a maioria dos jogos muito bem. Abraço, e, comentem! ^_^

segunda-feira, 13 de julho de 2009

Análise do HTC Magic - por Roberto Félix

Seguinte galera, o Roberto Félix, grande pessoa e contemporâneo de faculdade teve, em suas mãos, um HTC Magic por um fim de semana. Nesse meio tempo, entre uma cobertura e outra do aidentu.com.br resolveu fazer uma análise super bacana desse excelente celular da HTC. Como possuidor de um Iphone 3G, ele pode dar uma visão comparativa interessante sobre o produto, já que, a cada nuance da análise, ele tinha em mente como era aquela funcionalidade no seu Iphone.



Atenção especial para a mão de piloto de aeronave do cara! A câmera ficou bem estável!

ps: para quem não conhece, o HTC Magic é o segundo celular utilizando o Google Android, que é a solução em Sistema Operacional da Google para dispositivos móveis ( em um futuro próximo para netbooks também ).

Arquivo do blog