Este post é curto e simples pois o único intuito é compartilhar com vocês leitores o link do site HTML5 Rocks.
Este site possui diversos guias sobre as melhores práticas no desenvolvimento de aplicações e sites utilizando a tecnologia HTML5.
Se você pode se dar ao luxo de focar-se apenas nos navegadores mais novos (IE9, Chrome, Firefox, Safari, Opera) então considere-se sortudo pois seu código vai ficar mais simples (sem hacks mirabolantes) e seus produtos muito mais bem acabados.
A maior parte dos participantes do projeto acima são funcionários da Google, porém existem desenvolvedores independentes e de outras empresas também.
Apenas lembre-se de não desenvolver apenas para um dos browsers pois você pode limitar demais seu público alvo e não queremos que a web volte a ser o que era antes de 1996.
Abraço a todos.
Andre Dev Channel
Quem sou eu
- André Moraes
- 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)
terça-feira, 14 de fevereiro de 2012
domingo, 4 de dezembro de 2011
Desenvolvendo jogos 3d no Linux - Ogre3D
Boas notícias, a Irrlicht compilou sem problemas no Ubuntu 11.10 com minha placa nVidia 8800 GT (não entendeu, veja o post anterior ).
Agora como no mundo não faltam opções decidi testar também a engine Ogre3D.
Essa engine possui uma documentação muito melhor do que a Irrlicht e alguns recursos muito avançados para renderização. Vale a pena citar que isso não é uma comparação pois a Irrlicht é uma "game engine" e a Ogre3D é uma "render engine".
Basicamente com a irrlicht você pega a engine, escreve um pouco de código e têm seu jogo. Na Ogre3D apenas a renderização está pronta todo o resto você precisa plugar na engine, nem mesmo detecção de colisão é embutida.
A instalação da Ogre3d (nos dois equipamentos citados no post anterior) foi muito simples e como você pode imaginar o desempenho foi extremamente diferente porém usável em ambos.
Para instalar, acesse o site da Ogre3d, baixe os fontes para sua plataforma (usei linux).
Depois disso, SIGA os passos para compilar a engine.
Feito isso você deverá ter um executável em:
Basta rodar esse camarada e observar as diversas qualidades da engine. Alguns desses exemplos são pesados ou exigem recursos novos e talvez não rodem muito bem dependo da sua máquina.
Como sempre, qualquer dúvida podem deixar um comentário perguntando que tento ajudar.
Agora como no mundo não faltam opções decidi testar também a engine Ogre3D.
Essa engine possui uma documentação muito melhor do que a Irrlicht e alguns recursos muito avançados para renderização. Vale a pena citar que isso não é uma comparação pois a Irrlicht é uma "game engine" e a Ogre3D é uma "render engine".
Basicamente com a irrlicht você pega a engine, escreve um pouco de código e têm seu jogo. Na Ogre3D apenas a renderização está pronta todo o resto você precisa plugar na engine, nem mesmo detecção de colisão é embutida.
A instalação da Ogre3d (nos dois equipamentos citados no post anterior) foi muito simples e como você pode imaginar o desempenho foi extremamente diferente porém usável em ambos.
Para instalar, acesse o site da Ogre3d, baixe os fontes para sua plataforma (usei linux).
Depois disso, SIGA os passos para compilar a engine.
Feito isso você deverá ter um executável em:
<LOCAL DOS FONTES>/build/bin/SampleBrowserBasta rodar esse camarada e observar as diversas qualidades da engine. Alguns desses exemplos são pesados ou exigem recursos novos e talvez não rodem muito bem dependo da sua máquina.
Como sempre, qualquer dúvida podem deixar um comentário perguntando que tento ajudar.
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.
Depois disso foi só baixar a SDK 1.7.2, entrar na pasta source/Irrlicht e dar um
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)
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-devDepois disso foi só baixar a SDK 1.7.2, entrar na pasta source/Irrlicht e dar um
make -j 2Compilou 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
*Outro link interessante (youtube)
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)
Marcadores:
guia postgres,
PostgreSQL
quinta-feira, 13 de outubro de 2011
Uma notícia muito triste para todos programadores do mundo.
Hoje, assim cheguei em casa e comecei a ler as notícias do dia, vi que um grande gênio da computação deixou de nos fazer companhia.
Dennis MacAlistair Ritchie, também conhecido como Dennis Ritchie (dmr) ou pai do UNIX faleceu no final de semana passado.
A notícia foi dada pelo site G1 e também pelo amigo dele Rob Pike.
Dennis juntamente com Ken Thompson trabalharam muitos anos na Bell Labs desenvolvendo tecnologias que permeiam nossas vidas até a data presente. Uma delas o belo sistema UNIX que acabou gerando diversas variantes e sendo base para os sistemas mais avançados existentes atualmente foi criado por Dennis.
O UNIX serviu de inspiração para o sistema GNU\Linux e no BSD que por sua vez foi a base dos sistemas que rodam nos computadores da Apple (Mac OS)
Além disso, Dennis também criou a linguagem C provavelmente uma das melhores e mais simples linguagens já criada. A filosofia UNIX de manter as ferramentas simples e bem feitas, as vezes citado como: "Do one thing and do it well" (Faça uma coise e faça bem feito).
O sistema UNIX é uma das peças que tornou possível o que conhecemos hoje como a Internet e que dependemos para praticamente tudo (transações financeiras, compras on-line, conversas e video conferências, etc).
Espero que o Mundo posso entender o alcance das mudanças provocadas por esse hacker e gênio da computação.
Da próxima vez que você acessar a internet ou abrir um aplicativo em seu computador/celular/notebook/geladeira/televisão/carro lembre-se que se não fosse pelo UNIX e pela linguagem C você provavelmente iria estar assistindo TV ou ouvindo Rádio.
Descanse em paz, Dennis Ritchie.
RIP dmr, my sincere condolences to his family and friends.
Notícia do G1 sobre a morte de Dennis Ritchie
Post do Rob Pike (amigo de Ritchie) sobre o falecimento do mesmo.
Dennis MacAlistair Ritchie, também conhecido como Dennis Ritchie (dmr) ou pai do UNIX faleceu no final de semana passado.
A notícia foi dada pelo site G1 e também pelo amigo dele Rob Pike.
Dennis juntamente com Ken Thompson trabalharam muitos anos na Bell Labs desenvolvendo tecnologias que permeiam nossas vidas até a data presente. Uma delas o belo sistema UNIX que acabou gerando diversas variantes e sendo base para os sistemas mais avançados existentes atualmente foi criado por Dennis.
O UNIX serviu de inspiração para o sistema GNU\Linux e no BSD que por sua vez foi a base dos sistemas que rodam nos computadores da Apple (Mac OS)
Além disso, Dennis também criou a linguagem C provavelmente uma das melhores e mais simples linguagens já criada. A filosofia UNIX de manter as ferramentas simples e bem feitas, as vezes citado como: "Do one thing and do it well" (Faça uma coise e faça bem feito).
O sistema UNIX é uma das peças que tornou possível o que conhecemos hoje como a Internet e que dependemos para praticamente tudo (transações financeiras, compras on-line, conversas e video conferências, etc).
Espero que o Mundo posso entender o alcance das mudanças provocadas por esse hacker e gênio da computação.
Da próxima vez que você acessar a internet ou abrir um aplicativo em seu computador/celular/notebook/geladeira/televisão/carro lembre-se que se não fosse pelo UNIX e pela linguagem C você provavelmente iria estar assistindo TV ou ouvindo Rádio.
Descanse em paz, Dennis Ritchie.
RIP dmr, my sincere condolences to his family and friends.
Notícia do G1 sobre a morte de Dennis Ritchie
Post do Rob Pike (amigo de Ritchie) sobre o falecimento do mesmo.
Marcadores:
Dennis Ritchie,
Falecimento,
gênio,
hacker,
UNIX
quarta-feira, 15 de junho de 2011
Guia prático do VIM - Removendo search highlight
Essa dica vai para quem gosta de destacar as buscas de strings no VIM, porém fica irritado quando entra em modo de inserção e os trechos encontrados continuam em destaque.
"" Clean the hlsearch when entering/leaving insert mode. set hlsearch autocmd VimEnter * :let @/="" autocmd InsertEnter * :noh autocmd InsertLeave * :noh
Referência http://superuser.com/questions/156248/disable-set-hlsearch-when-i-enter-insert-mode.
O event VimEnter descobri lendo um pouco da documentação do VIM, disponível no próprio VIM ou então em: http://vimdoc.sourceforge.net/htmldoc/autocmd.html#autocmd-events
sábado, 30 de abril de 2011
Notificação via linha de comando no Ubuntu
Procurando uma maneira de se avisado quando meus downloads com o wget terminassem, achei esse site.
O script python é muito simples, porém quebra um galho.
Sem contar que existe o comando notify-send que facilita ainda mais a vida.
O link da postagem é: http://ubuntu.online02.com/node/30
E só para garantir que o texto vai continuar disponível caso o blog do camarada feche, segue a cópia literal do mesmo:
O script python é muito simples, porém quebra um galho.
Sem contar que existe o comando notify-send que facilita ainda mais a vida.
O link da postagem é: http://ubuntu.online02.com/node/30
E só para garantir que o texto vai continuar disponível caso o blog do camarada feche, segue a cópia literal do mesmo:
#!/usr/bin/env python
import pynotify
import sys
from optparse import OptionParser
class NotifyCallerID:
def __init__(self):
if not pynotify.init("Caller ID"):
sys.exit(-1)
parser = OptionParser()
parser.add_option("-b", "--body", dest="body", help="Body of Alert", metavar="FILE")
parser.add_option("-t", "--title", dest="title", help="Title of Alert", metavar="FILE")
parser.add_option("-i", "--icon", dest="icon", help="Path to Icon File", metavar="FILE")
(o, args) = parser.parse_args()
self.showNotification(o.title,o.body,o.icon)
def showNotification(self, summary, message, ikon):
if summary == None: summary = " "
n = pynotify.Notification(summary, message, ikon)
n.show()
cm = NotifyCallerID()
Assinar:
Postagens (Atom)