segunda-feira, 26 de março de 2012

Jogo Side-Scroller para aprender SDL e C

Este aqui é um vídeo de um pequeno jogo que estou desenvolvendo usando SDL e C. Enquanto desenvolvo o jogo vou aprendendo um pouco dos dois.
É um jogo no estilo side-scroller, 2D daqueles que para quem viveu a fase de videogames como Super-Nes e Mega Drive vai trazer algumas boas lembranças! Mas ainda falta muita coisa para ser feita.

sexta-feira, 23 de março de 2012

Simular o comando stash do git no svn

O programa de controle de versão git tem um comando muito útil chamado stash. Ele permite que você "coloque de lado" as alterações não persistidas. É muito útil quando por exemplo você está trabalhando em alguma alteração profunda na base de código e uma alteração rápida para corrigir um bug surge. O que você faz neste caso? Você não vai querer perder as alterações já feitas, mas para corrigir o bug você precisa de uma versão "limpa" do código. Uma solução seria obter o código novamente do programa de controle de versão e corrigir o bug neste novo checkout, o que é muito trabalhoso e dependendo do tamanho de sua base de código pode tomar muito tempo. É aí que o comando stash entra, você coloca suas alterações na "espera", corrige o bug e depois traz novamente todas as alterações iniciais.

Agora como dar um stash no svn? O svn não tem o comando stash, mas podemos simulá-lo usando outros comandos. Primeiro nós precisamos criar um patch com todas as alterações feitas. Na raiz de seu diretório execute o seguinte comando:
svn diff > nome_patch.patch
Um patch nada mais é do que um arquivo que contem as alterações feitas em um ou mais arquivos. O comando diff cria exatamente isso. Se você abrir o arquivo nome_patch.patch em um editor de texto vai ver várias linhas com sinais de + ou - indicando linhas adicionadas ou removidas.
Antes de fazer o diff adicione os novos arquivos criados (com o comando svn add nome_arquivo) se você quiser que eles sejam enviados para o patch. Após isso você pode executar o seguinte comando:
svn revert -R .
Este comando vai desfazer todas as alterações feitas nos arquivos em todos os diretórios do projeto. Quando você quiser retornar todas as alterações feitas você deve executar o seguinte comando:
patch -p0 < nome_patch.patch
Lembrem-se de executar os comando de criação e restauração do patch no mesmo diretório e de preferência que seja o diretório raiz.

Pronto agora todas as alterações devem estar de volta!

segunda-feira, 5 de março de 2012

Fazer download de arquivos via Ajax

Na verdade o método que vou mencionar aqui não usa ajax. Mas permite que sejam enviadas requisições do tipo post ou get e que a partir destas requisições seja possível fazer um download de um arquivo.

A ideia não é minha e todos os créditos vão para o autor deste post. A implementação é bem simples e o truque usado é no mínimo inteligente. A requisição é enviada através de um form criado em tempo de execução, basta que o servidor que recebeu a requisição responda com o download do arquivo (em PHP geralmente é usada a função readfile). Ao invés de uma requisição ajax o browser envia uma requisição de form via post ou get conforme definido na chamada da função no parâmetro method. O autor criou a função na forma de um plugin jQuery, aqui está o código:



O uso é bem simples:
$.download('./url_download.php','parametro_1=valor_1&parametro_2=' + valor_2 );

Aqui está o projeto github do plugin. É isso aí até a próxima.

sexta-feira, 2 de março de 2012

E aqui está a nova versão PHP

Acabou de ser lançada a nova versão PHP. O anúncio pode ser visto aqui. Várias correções de bugs, melhoras no uso de memória e algumas coisas adicionais. Seu código está preparado para esta nova versão?