Quem sou eu

Minha foto
Programador por profissão, formação e opção! Interessado em tudo relacionado a computadores, menos manutenção de hardware! Linguagens (interesse e trabalho): Java, C#, C/C++, Python, Ruby, Haskell. Atualmente trabalhando como Desenvolvedor (maior parte do tempo em soluções ASP.NET)

segunda-feira, 28 de novembro de 2011

Desenvolvendo jogos 3d no Linux - parte 1

Este post é uma maneira de compartilhar minha felicidade que tive alguns dias atrás ao conseguir compilar com sucesso a engine Irrlicht no Ubuntu 11.10.

Para começo de conversa, a máquina que estou utilizando possui as placas integradas Intel Corporation Mobile GM965/GL960 que não são o top de linha no que diz respeito à aceleração 3d.

Apesar dessa limitação, instalando o mesa-utils e rodando glxinfo o sistema informa que possui renderização direta! O que é um bom sinal pois melhora consideravelmente o desempenho das aplicações gráficas (leia sobre o funcionamento do X e DRI para entender melhor).

Depois de tentar, sem sucesso, instalar e rodar os demos da Crystal Space através dos repositórios do ubuntu, decidi tentar a Irrlicht novamente, meu primeiro contato com essa engine foi à +/- 6 anos atrás quando comecei a faculdade de Ciência da Computação e queria aprender C++ e programar jogos (como praticamente todo estudante de ciência da computação que passou a infância jogando snes/doom/duke nuken/shadow warrior).

Na primeira vez que usei a irrlicht foi indicação de um grande amigo da faculdade (rwrz!) e eu ainda tinha o dual-boot com Windows. Tudo correu sem problemas e instalar/configurar a irrlicht no VS Express foi moleza.

Desta vez, instalar ela no GNU\Linux (Ubuntu 11.10 ou Oneric Ocelot) foi mais fácil ainda.
Bastou achar no site a lista completa de dependências, que por sinal, já veio com os comands apt-get para instalar as mesmas.

sudo apt-get install build-essential xserver-xorg-dev x11proto-xf86vidmode-dev libxxf86vm-dev mesa-common-dev libgl1-mesa-dev libglu1-mesa-dev libxext-dev libxcursor-dev

Depois disso foi só baixar a SDK 1.7.2, entrar na pasta source/Irrlicht e dar um make -j 2

Compilou que foi uma beleza, sem erros e quase nenhum warning. Após terminar a compilação para testar tudo bastou entrar no diretório de exemplos, 01.Helloworld e rodar make. Um detalhe, o código de exemplo usa renderização vai software ao invés da OpenGL, foi necessário alterar para utilizar a OpenGL para checar se a aceleração estava OK.

Novamente nenhum erro e como resultado um binário impecável na pasta bin/Linux/.

A medida que avançar nos trabalhos com a Irrlicht vou postando mais informações aqui, a próxima etapa é compilar a engine no Ubuntu 11.04 onde tenho hardware bem mais poderoso (nVidia GForce 8800 GT / Intel Quad-Core)

quinta-feira, 17 de novembro de 2011

Guia Postgres - Alterar dono (owner) da tabela.

Este post é mais um da série de guias que venho fazendo, postando aqui códigos e trechos de códigos que ajudaram a resolver algum problema durante o dia-a-dia do desenvolvedor.

Mas vamos ao que interessa, o trecho abaixo troca o owner de todas as tabelas (do schema public) da sua base de dados postgresql pelo onwer que você informar.

UPDATE pg_class SET relowner = (SELECT oid FROM pg_roles WHERE rolname = '$USER') 
 WHERE relname IN (SELECT relname FROM pg_class, pg_namespace 
                    WHERE pg_namespace.oid = pg_class.relnamespace AND 
                          pg_namespace.nspname = 'public');

*Outro link interessante (youtube)