sexta-feira, 24 de abril de 2009

Vamos falar um pouco sobre Django #1

São tantas coisas para tratar e tão pouco tempo... Mas acredite, um dia ainda volto a falar sobre Pyglet, pois ele me empolgou também, infelizmente, desenvolver um jogo não me empolga tanto quanto poder escrever um website dinâmico, mesmo até porque no mundo real, principalmente o "o mundo real brasileiro" é mais fácil ganhar dinheiro com a capacidade de desenhar um site profissional e de qualidade que criar um ninja assassino.

Para iniciar com Django, você precisa apenas de Python (de preferência versões acima da 2.5, pois esta já tem SQLite por padrão, o que facilita muito os testes com o framework) e claro, Django e apenas isso. Mais tarde, após a compreensão básica do framework, você precisará de MySQL, PostgreSQL ou Oracle e um servidor web de produção como Apache ou Lighttpd e um mod para que o servidor possa interpretar códigos escritos em Python.

Para começar, vou supor que você instalou Python (de preferência a versão 2.5.4) e Django (versão 1.0.2, última estável), vou supor também que você adicionou ao PATH do seu sistema a pasta "Scripts" que se encontra no diretório raiz de Python.

Pois então, Django é orientado a projetos com abordagem MVC (Model View Controller), para iniciar o trabalho, lance o prompt de comando do seu sistema, vá para alguma pasta e digite:

django-admin.py startproject meuprojeto

Esta linha de comando iniciará um novo projeto Django, no diretório em que você estava será criada uma pasta meuprojeto com os seguintes arquivos:
  1. __init__: Indica que se trata de um módulo
  2. settings.py: Configurações globais do projeto
  3. urls.py: Lista de urls a serem usadas pelo projeto
  4. manage.py: Gerenciador de comandos úteis ao projeto
Com isso e apenas isso, você já pode digitar no prompt:

manage.py runserver

Essa linha lança o servidor web interno do Django, ele é um servidor para testes e não de produção, agora basta abrir seu navegador e digitar:

localhost:8000

Bem-vindo ao maravilhoso mundo do Django.

Eu poderia me aprofudar mais sobre muitos aspectos deste artigo, mas infelizmente não tenho mais tempo por hoje. Até a próxima!

quarta-feira, 22 de abril de 2009

E o preconceito passou, use Django!

Em primeiro lugar, vamos comemorar! Pela primeira vez eu escrevo 10 artigos em apenas 1 mês! UAU!

-- Fim do momento de vanglória...

Venho hoje falar sobre desenvolvimento web. Eu bem que tentei, mas nunca consegui aprender a "manha" do PHP, nunca consegui fazer algo que eu pudesse considerar "decente", dentro do meu próprio "controle de qualidade", também desisti disso, pois em todo o meu tempo programando em Python, sempre acreditei no jargão: "Python não é para essas coisas..."

Enfim, foi me imposto um desafio e eu adoro desafios e principalmente de vencê-los, apesar de nem sempre conseguir a proeza e o desafio de precisar escrever uma homepage dinâmica, me fez descartar, logo de início o grande PHP, ASP nem pensar, longe de mim essas porcarias...

Foi então que lembrei do Ruby on Rails e lembrando dele, lembrei de Turbo Gears e lembrei do Django. Qual deles escolher para a missão? Ruby on Rails foi descartado, não penso em programar em Ruby e não desejo aprender também, sobrou os web frameworks em Python, lendo um pouco sobre eles, cheguei à conclusão: "Vou experimentar Django".

Foi preciso apenas uns dois dias (e foi muito, /me anta) para que eu me familiarizasse com o modelo de desenvolvimento proposto e assim, meu preconceito foi quebrado, definitivamente, Python pode ser sim, uma linguagem para escrever aplicativos web ricos e estarei mostrando isso no decorrer do tempo.

Django me interessou por ser um framework escrito para resolver problemas reais para sites de conteúdo, não é fruto de nenhuma mente brilhante ou de um trabalho acadêmico, ele nasceu com o tempo e a experiência, para resolver problemas de postagem de notícias em curto prazo de tempo de sites reais, com desenvolvedores reais e acabou se tornando freeware e hoje está em nossas mãos, além disso, é muito bem documentado.

Ao contrário do que pensei, Python pode ser facilmente integrado com servidores de produção, como Apache, Lighttpd entre outros e as hospedagens estão cada vez mais oferecendo linguagens como Python e Ruby, creio que no futuro essas exceções venham a se tornar a regra e mais... eu, consegui produzir algo interessante com o meu próprio código com Django!

Ainda vou tratar mais sobre Django em uma outra oportunidade, porém, se lhe interessar, já pode ver o que é possível fazer com Django nos links a seguir:
  1. Django, a casa do Django;
  2. Django Brasil, a casa nacional do Django;
  3. Django Book, livro grátis, uma referência excelente;
  4. Django no site da Lupo;
  5. Aprendendo Django no Planeta Terra, um livro que mostra como usar Django na prática e de forma descomplicada, através de uma história sobre um E.T. (tá, a história não tem pé nem cabeça, mas o livrinho cumpre seu objetivo);
  6. Django Powered Sites, sites criados com Django.

segunda-feira, 20 de abril de 2009

FarCry 2

Outro jogo que obviamente minha plaquinha gráfica só conseguiu rodar no Low: FarCry 2, leva uma boa quando comparado ao FarCry, como já era de se esperar... Nada de Carver, a história aqui é outra e, seguindo a tradição dos jogos de hoje em dia, o lema é liberdade de exploração. Não joguei muito, fui pouco além da primeira missão, simplesmente porque quero esperar para ver como é este jogo com um detalhamento maior.

Você inicia escolhendo um personagem, esse personagem é inserido em meio a uma guerra africana entre duas facções rivais, o objetivo é simples: Matar "The Jackal", o carinha que está fornecendo armas para as duas facções, porém, quando você chega, já é acometido de cara por Malária. Como já deu para perceber, a história é rasa e sem maiores imersões, coisa do tipo, esqueça o texto e parta para a porrada.

Os gráficos são de encher os olhos, mas isso só no full mesmo, porque para mim, a experiência foi: Jogar FarCry 2 com os gráficos de FarCry, por isso, vou pular essa parte e vou direto a dizer como é o esquema do jogo.

Como já mencionei, o jogo privilegia a exploração, há dezenas de coisas para fazer em um mapa com uma escala imensa e você decide quando e como fazer, grande parte do tempo, você deve usar um carro para ir de um lado para outro, há a missão principal e centenas de missões opcionais, além dos objetivos secundários, como achar diamantes para comprar armas (são muitas armas mesmo), aumentar a reputação com os companheiros que você trabalha e salva, fornecer fitas para um repórter, fazer campanhas para conseguir pagamento e etc.

A abordagem do personagem é outra, tudo é em tempo real, nada de acessar um menu para ver o mapa, ele é um objeto como qualquer outro e você deve parar para ver, não tem como você ficar vendo mapa em meio a um tiroteio, as portas não abrem por mágica, há a animação do personagem girando a maçaneta e abrindo-a, o personagem corre, se cansa e precisa descansar em áreas de segurança enquanto o tempo passa, amanhece, escurece e isso é muito legal.

O realismo é levado a sério, você tem que sempre lembrar de pegar armas novas, pois elas ficam velhas, emperram e podem até se quebrar ao meio, as armas de inimigos tem alta chance de dar prego no meio do tiroteio, por isso é preciso pensar nas táticas de infiltração e se preparar antes de agir.

Algumas coisas podem acabar com o realismo do jogo... por exemplo, apesar de ter duas facções rivais, não se vê elas se degladiando e o jogo é cansativo, o mapa é gigante, em escala real chega a ter 50Km² e você passa um bom tempo dirigindo para poder chegar aos objetivos, segundo informações, os objetivos são muito parecidos, matar alguém, interceptar alguma coisa.

Enfim, isso pode parecer bacana no início, mas depois de algumas horas, vai se tornar enjoado e cansativo, sem mencionar que, quebrando mais uma vez a linha de FarCry, você se degladiará o tempo inteiro com mercenários, nada de anormalidade ou mutantes feiosos ou alienígenas ou um doutor maluco e malvado, apenas "homens".

O jogo em si é muito bonito, porém se torna entediante com o passar do tempo, fico acompanhando preço dos originais e percebo que o valor de FarCry 2 caiu absurdamente, pode-se encontrá-lo por valores de R$ 70,00 até, mas considero uma nova geração para os FPS, creio que a maioria deve seguir, pelo menos, essa abordagem de personagem, Doom 4 irá seguir, como já foi informado pela Id.

Conclusão: Melhor adquirir BioShock!

Algumas imagens... que não são do meu PC, claro!

domingo, 19 de abril de 2009

Bem-vindo a Rapture!

Bom, nos últimos dias andei jogando bastante, na verdade, estava a testar os limites da minha placa de vídeo (às vezes eu tenho que reservar um tempinho para essas coisas), conclusão: Vou ter que adquirir algo melhor! Atualmente o jogo que mais me abriu os olhos desde Half-Life só roda mais ou menos com tudo no Low na minha placa de vídeo FoxConn GeForce 7200/256Mb/PCI-E.

O primeiro jogo que peguei para testes, é este o qual vou tratar aqui: BioShock(Wikipedia), simplesmente o que tenho a dizer é: O único jogo que me chamou a atenção desde Half-Life, se bem que tenho que admitir que ainda não joguei Half-Life 2. Chama-se BioShock.

Ao contrário da maioria dos jogos de tiro em 1ª pessoa, BioShock traz uma história envolvente com elementos de RPG. O jogo se passa em uma cidade subaquática chamada Rapture, no meio do Oceano Atlântico, onde a modificação da genética humana não é mais um sonho, graças à descoberta do Adam.

Rapture foi construída em 1959 por Ryan, um industrial que queria romper os vínculos com a sociedade e permitir às mentes científicas um lugar onde pudessem fazer ciência sem estar amarrados aos governos americano e soviético e muito menos ao vaticano, a mão de Deus na terra.

Logo descobriram um tipo de criatura marinha que produzia Adam, a chave para a mudança genética humana, Ryan então industrializou o Adam e criou os plasmídios, substâncias que alteravam as características humanas, dando-lhes o poder de telecinese, pirogênese e etc, além de alterar características físicas e mentais. Como ele mesmo diz: "Adam é a tela da modificação genética, os plasmídios são a pintura".

O abuso de plasmídios gerou a decadência de Rapture, as pessoas ficaram loucas. Você está em um avião que cai na entrada de Rapture e logo, logo se achará envolvido em uma trama cheia de reviravoltas e decisões a serem tomadas.

O jogo traz uma alteração extrema do engine de Unreal, com gráficos belíssimos(e olha que eu estava no Low), além de armas convencionais, como pistola, carabina, metralhadora, você também dispõe de poderes fornecidos por plasmídios, o que faz a jogabilidade ficar interessante, nada que não esteja preso ao chão pode ser alvo da telecinese, por exemplo.

Você também pode investigar corpos e outros objetos, tais como maletas, gavetas, latas de lixo em buscas de itens que podem ajudá-lo na campanha, com o dinheiro, pode ir até máquinas de venda e comprar kits de primeiros socorros e munição de vários tipos, por exemplo, munição perfurante é boa contra inimigos que usam armadura.

Com Adam você compra modificações genéticas, porém, esse Adam só pode se extraído das irmãzinhas(Little Sisters), garotinhas ingênuas que são fonte de Adam, porém elas sempre estão protegidas pelos Paizões(Big Daddys), inimigos com uma vestimenta de mergulho da época e extremamente fortes. Após vencê-los, você pode libertar a garotinha, extraíndo pouco Adam, ou destruí-la recebendo mais Adam, essa é a chave para um dos dois finais da trama.

O jogo é estratégico, a maior parte do tempo, você luta como em um FPS comum, mas contra inimigos mais fortes, como Paizões e chefes de fase, é requerida estratégia, duas investidas de um Paizão são suficientes para mandá-lo para o último Vita-Chamber, os marcadores de progresso de BioShock.

O som do jogo é muito bom, ambientes com músicas de época e inimigos que ficam o tempo inteiro resmungando e te procurando com palavras de ódio, além de toda essa experiência o jogo traz outras coisas para que você possa se preocupar, por exemplo: Uma máquina fotográfica para que você tire fotos de inimigos e os estude, isso dará bônus contra eles, indicará pontos fracos e ainda pode gerar plasmídios. É possível também conseguir atualizações para armas e hackear dispositivos, ao tentar hackear um dispositivo você será levado a um minigame, se vencer, pode ter os droids e câmeras de segurança ao seu dispor, liberar itens e diminuir preços em máquinas de venda ou arombar cofres.

BioShock é definitivamente um jogo que você precisa experimentar! Imagens:
Splincers levando pipoco.


Paizão


Outro splicer levando pipoco do lançador de granadas com um belo efeito de distorção ao fundo da arma do splincer.

quinta-feira, 16 de abril de 2009

Python 2.6.2 Final

Lançada a versão 2.6.2 final da linguagem de programação Python, como já sabemos, o objetivo da série 2.6 é preparar o caminho para a adoção da versão 3 da linguagem, por isso a versão 2.6 incorpora novidades e sintaxe da versão 3, enquanto o código permanece compatível com a versão 2. Também incorpora funções compatíveis no módulo future_builtins e um switch que alerta o programador quando ele utilizar algo que não é compatível com a 3ª versão da linguagem.

Novos módulos considerados importantes foram incorporados, são eles: multiprocessing e json. O primeiro é uma API familiar à threading para facilitar o trabalho com multitarefas e a segunda é um subset da sintaxe de Javascript (ECMA-262 3rd edition), importante nestes tempos em que Python deseja se aproximar da interface web.

segunda-feira, 13 de abril de 2009

Sanitarium não funciona no Vista

Estou com 3 sistemas operacionais aqui: XP (32 bit) no Desktop, Vista em um Notebook e Linux em outro Notebook.

Não há como rodar, nativamente, Sanitarium no Windows Vista (32bit), testei todos as configurações de modo de compatibilidade, todos os patchs para o jogo e nenhuma produziu efeito satisfatório, se alguém conhece alguma forma ou programa capaz de sanar o problema, fique à vontade para me informar.

domingo, 12 de abril de 2009

The Umbrella Academy

A dupla formada pelo desenhista brasileiro Gabriel Bá e pelo roteirista Gerard Way (vocalista da banda My Chemical Romance) recebeu duas ótimas notícias nesta semana. O quadrinho “The Umbrella Academy”, assinado pelos dois, foi indicado novamente ao Eisner Awards, o Oscar das HQs - e, ao mesmo tempo, a série deve virar filme em Hollywood.


Bá já ganhou um Eisner pela série em 2008, e pode repetir o feito neste ano, indicado como Melhor desenhista e arte-finalista e Melhor capista. “The Umbrella Academy” concorre também pelo prêmio de Melhor reedição. A coletânea “My Space Dark Horse presents”, da qual Bá participa ao lado do irmão gêmeo Fabio Moon, também foi indicada, na categoria Melhor compilação.


No campo cinematográfico, tudo indica que a adaptação de “The Umbrella Academy” para as telonas deve começar logo. Segundo o site “The Hollywood reporter”, o longa será filmado pelos estúdios Universal, e já tem roteirista: Marc Bomback, de “Duro de matar 4.0” e “A montanha enfeitiçada”. Ainda sem data de lançamento, o filme será produzido por Mike Richardson, da editora Dark Horse.

Fonte: G1

The Umbrella Academy é sobre um professor, ele é um alien, e 44 crianças extraordinárias que nasceram quando ele veio para a Terra. Ele adotou sete deles e tentou fazê-los salvar o mundo. Mas ele realmente não é um bom pai, porque ele não sabe se portar como um pai de crianças humanas. Numa dessas tentativas de salvar o mundo, as crianças foram separadas. Nove anos depois, eles foram unidos novamente, por causa da morte do pai e, mais uma vez, salvar o mundo. Download dos volumes em inglês!

quinta-feira, 9 de abril de 2009

Git e Mercurial

Bom, podem me chamar de nerd se quiserem, mas depois de ter anunciado o fato de que o código de Python iria ser gerenciado por Mercurial, não resisti e fui conferir(apesar de dizer que eu não iria, LoL) e apenas utilizando foi que pude entender porque Guido van Rossum escolheu este sistema.

Este artigo tem o objetivo de analisar dois sistemas de controle de versão, o Mercurial e o Git, nada muito profundo, mas sim, baseado em dois dias de prática utilizando estes dois sistemas de controle de versão.

Antes de iniciar é necessário falar sobre a questão do paradigma, tanto o Git e o Mercurial foram construídos para quebrar o formato de colaboração utilizado no CVS e SVN, nestes você utiliza um servidor centralizado, onde os commits são feitos todos neste servidor, isso acarreta um dos maiores problemas que esse tipo de sistema enfrenta: os chamados conflitos. Um conflito ocorre quando um desenvolvedor modifica a(s) mesma(s) linha que outro(s) e, a única forma de resolver isto, é se comunicando para que se possa chegar a um consenso e o conflito termine.

Em um projeto simples, em que dois ou três são responsáveis e enviam poucas modificações por dia, é fácil resolver os conflitos, mas imagine agora um projeto como o Kernel do Linux em que a todo momento vários desenvolvedores enviam modificações no código-fonte, com certeza deve ser algo extremamente complexo e penoso gerenciar a quantidade de conflitos que ocorrem a todo momento.

Foi pensando nisso que o próprio Linus Torvalds criou o Git, um sistema de controle de versões descentralizado com o objetivo de gerenciar o exemplo dado acima: o Kernel do Linux, ou seja, o seu próprio PC é o repositório ou um clone dele, neste você faz quantas e quantas modificações desejar e o commit é feito em seu próprio PC, então você sincroniza "puxando" os dados de um servidor e pode ver o que um outro desenvolvedor fez e verificar se o seu código é mais pertinente ou não, só ao fim de todo processo é que você "empurra" as modificações para um servidor central(se você quiser um servidor central, pois ele não é necessário) e o processo se repete. Óbvio que isto não elimina os conflitos, mas facilita a resolução, além disso, o servidor sofre menos carga, pois todos os dados estatísticos e database com informações e históricos são armazenados no repositório local.

O Mercurial e o Bazaar são baseados neste conceito distribuído, porém, construídos em Python, atualmente, o Bazaar está com a fama de lento, devido a isso, como expliquei anteriormente, foi um dos motivos alegados por Guido van Rossum para que este não fosse utilizado no gerenciamento do código da linguagem de programação Python.

Atualmente, grandes nomes do software livre, como Sourceforge.net e Berlios já atualizaram suas carteiras de controladores de versão e já contam com Git, Mercurial e Bazaar, além dos tradicionais CVS e SVN.

Minhas primeiras impressões sobre o Git, é que ele tem muito potencial a ser desenvolvido, a maior parte do trabalho é feita no modo texto e este tipo de trabalho, até o momento, é incentivado. No Windows, ele é mais amigável, há uma interface gráfica criada em TCL/TK muito pobre(óbvio), mas que quebra o galho daqueles que preferem algo mais intuitivo que digitar 666 comandos, se você usa Windows e se interessou pelo Git, pode baixar o msysgit, criar uma conta no github ou outro site que suporte esse sistema de controle de versões e testá-lo.

O Mercurial, não tive problemas, nem em Linux e nem em Windows, apesar de, assim como Git, ser possível escovar bits, o TortoiseHg torna a tarefa muito intuitiva, principalmente para aqueles que já utilizavam SVN, como eu, o princípio é basicamente o mesmo, o look & fell do TortoiseHg é torna a experiência semelhante à do TortoiseSVN, se você se interessou por Mercurial e usa Windows ou Linux, tanto faz, é interessante baixar o TortoiseHg e criar uma conta no bitbucket ou outro site que suporte esse sistema de controle de versões e testá-lo.

Concluíndo, a escolha de um sistema de controle de versões é algo que vai bastante da intuição, como o próprio Guido van Rossum afirmou, se você é um desenvolvedor que tem um projeto que toca sozinho ou com a ajuda de uns poucos colaboradores, a escolha de um sistema de controle de versões a dedo só o fará perder tempo, sinta-se livre para escolher o que achar melhor, este tipo de decisão só afeta mesmo grandes projetos.

Eu estou trabalhando com o Mercurial no momento porque gostei dele, é escrito em Python e é parecido com SVN, graças ao TortoiseHg, mas não faria diferença para mim trabalhar com Git ou SVN, no fim das contas essa é uma decisão pessoal e você tem liberdade de fazer a sua.

quarta-feira, 8 de abril de 2009

Shadow of Colossus irá virar filme

O prequel de ICO: Shadow of Colossus (ambos para PlayStation 2) irá provavelmente, virar filme, de acordo com o The Hollywood Reporter: Risky Biz, o blog informa que a Sony encomendou a adaptação ao produtor Kevin Misher de O Escorpião Rei(2002) e A Intérprete(2005), o roteiro está sendo escrito por Justin Marks, que também atuou como roteirista em Street Fighter: A Lenda de Chun-Li.

Shadow of Colossus é tido como um dos grandes clássicos de PlayStation 2, você controla um personagem que precisa salvar uma garota da morte e para isso deve vencer os Colossus, monstros gigantes que habitam uma terra inóspita e misteriosa.

Para isso, conta apenas com uma espada especial, roubada do vilarejo e única capaz de apontar a direção e deter os Colossus, um arco e flecha e o seu fiel cavalo: Abro.

O roteiro é aberto e passível de várias interpretações, sabe-se apenas que é um prequel, uma história que acontece antes de ICO, também para PlayStation 2 e outro maravilhoso clássico do sistema.

Firefox Personas


O que o seu navegador vai vestir hoje?

Com este slogan a Mozilla lançou a extensão "personas" para o firefox, trata-se de uma nova maneira de enfeitar o navegador, uma atualização cosmética, o menu superior do navegador e outras partes, como a barra de status, por exemplo, podem agora ser redesenhados com temas artísticos que são separadas por categorias, tais como anime, moda, causas, cenário, música e etc. Está a fim de ter o Hitsugaya do anime Bleach no Firefox? agora pode! Quer ter um tema da sua banda favorita? Também pode!

Além disso, você pode criar o seu próprio persona, se trabalha em uma empresa, poderá personalizar o navegador inserido a marca da empresa no Firefox, se tiver um site, pode ajudar a difundi-lo através dos seus usuários criando um persona para o site.

Para ter acesso gratuito ao serviço, basta acessar:
http://www.getpersonas.com/

Para se inscrever como autor de personas, acesse:
https://personas.services.mozilla.com/signin?return=/upload

Para saber mais e tirar dúvidas sobre personas, sua criação e execução:
https://personas.services.mozilla.com/demo_create

Veja a lista de personas de anime:
http://www.getpersonas.com/gallery/Anime/Popular

Eu prefiro os de cenários:
http://www.getpersonas.com/gallery/Scenery/Popular
OBS: Se estiver no Firefox com o personas instalado, poderá visualizar em tempo real.

terça-feira, 7 de abril de 2009

Python escolhe Mercurial como sistema de controle de versões


Estava eu dando uma conferida em sistemas de controle de versão, após meu velho amigo sl0wy ter me apresentado o Git(o qual irei tratar em uma outra oportunidade), quando hoje, o mesmo me mostra uma mensagem do Python-Dev onde, no fim do último mês, Guido van Rossum afirma que Mercurial será o sistema de controle de versões oficial da linguagem de programação Python.

Vamos por partes, eu sou um tanto quanto ignorante em se tratando de controle de versões, para mim, esse mundo se reduzia a CVS e SVN, isto foi abalado com a notícia do Git agora vem o Mercurial!? WTF!

Ainda tem mais, na mensagem do Guido van Rossum, ele deixa claro que, após desconsiderar a escolha do Git, foi ponderado Bazaar e Mercurial, parece que a decisão de não utilizar Git foi um tanto parcial, já que os finalistas são ambos escritos em Python, a escolha de Mercurial, segundo Guido van Rossum se deve à velocidade e ao fato da curva de aprendizagem ser menor para quem já usava SVN.

Sabe de uma coisa, vou conferir Mercurial sim, mas não agora, por enquanto vou dar uma sacada no Git, não vou seguir essa tendência pythonica não, por enquanto não, já não tenho tanto tempo como antigamente para testar e definir prós e contras para essas coisas, mas não se preocupe, eu ainda vou falar sobre o Git.