Monthly Archives: May 2010

Porque usar o Z Shell (Zsh)

O Zsh é um shell para sistemas unix muito parecido com o Bash, porém com melhorias. Muito conhecido pelo seu poder de command completion, podendo completar até hosts ssh.

Veja esses dois screencasts do FOSSCasts para ter uma ideia de quão poderoso o Z Shell é:

Esse vídeo aqui também mostra muitas features interessantes do Zsh:

A princípio ele pode parecer bem mais complicado, mas é pelo fato dele ser totalmente costumizável.

Recentemente eu instalei o Ubuntu Lucid Lynx no meu computador, e então resolvi gravar um vídeo para mostrar como é fácil configurar o Zsh nele:

Meu arquivo de configuração tem poucas alterações desse aqui, do Phillipe Smith. Se quiserem, baixem aqui o meu .zshrc e coloquem na sua pasta home (~/.zshrc).

Google Buzz

Desenvolvimento de Jogos Colaborativo

Até hoje, o desenvolvimento colaborativo de softwares opensources são feitos com um repositório online, onde eles ficam armazenados sob um sistema de controle de versão, IRC pra comunicação entre os desenvolvedores e algum sistema de bug tracking. Dessa forma, qualquer pessoa que quiser ajudar o software, entra em contato com os outros programadores pelo IRC, baixa o código do repositório e vê as pendências pelo sistema de bug tracking. Aí então basta que ela comece a programar. Isso prova que esse método funciona muito bem.

Porém quando se trata de jogos, esse método pode ser pouco. Principalmente porque a equipe geralmente é fixa, e há game designers, artistas, músicos e outras pessoas desempenhando papéis diferenciados no processo.

Dividindo o processo por partes, podemos ver que há muitas ferramentas que podem ajudar no desenvolvimento:

Planejamento e Documentação

Skype

A comunicação entre os membros da equipe pode ser feita toda pelo Skype. Principalmente por voz. E é útil em todo o processo de desenvolvimento, não só no planejamento.

É claro que o Skype traz algumas outras utilidades, por exemplo: a versão Windows tem um visualizador de tela remota. Infelizmente ele ainda não é bem desenvolvido para outras plataformas, mas a questão de telas remotas é simples, veremos adiante.

Google Docs

O Google Docs permite a edição de documentos colaborativa e há várias opções: você pode convidar apenas os usuários que quer que tenham acesso, ou então deixá-lo livre, para que todo mundo possa editar. Também é possível deixar o documento como somente visualização.

Cacoo

É possível criar diagramas em geral no Google Docs, porém é um tanto limitado. Já o Cacoo tem muitas opções para criação de qualquer tipo de diagrama. É muito útil no fase de planejamento do projeto. Tanto para criar diagramas UML[bb] de classes, ou comportamento, quanto para rabiscar uma interface.

Desenvolvimento

Sistema de controle de versão

É indispensável o uso de algum sistema de controle de versão, nem vou entrar nessa discussão aqui. Principalmente se você usar um sistema distribuido, como o Git ou o Mercurial.

Dropbox

Nada como ter um local de armazenamento público entre todos os membros da equipe. O código fica sendo versionado, mas e as outras coisas referentes ao jogo[bb]? Nem sempre você precisa de um controle de versão para compartilhar um rascunho de sprite, ou música, mapa do jogo, etc.

O Dropbox é uma ferramenta essencial em qualquer contexto, falando de desenvolvimento ele fica ainda mais evidente.

Há outras ferramentas interessantes como visualizadores de tela remota, que é muito útil em todo o processo de desenvolvimento. A maioria dos sistemas operacionais já vem com uma solução para isso. Eu gosto bastante do protocolo VNC, principalmente porque dá para usar multiplataforma.

Esse post foi bem curto, e com apenas alguns serviços. Quem tiver mais, por favor, não hesite em compartilhar. =]

Google Buzz