Pesquisar este blog

quinta-feira, 28 de janeiro de 2010

Adicionando robots.txt no seu projeto Django

O robots.txt é um arquivo na raíz do seu site que informa os robôs da internet (as maquininhas responsáveis por indexar seu site em sistemas como o do google ou yahoo) o que pode ou não ser indexado. Ele é particularmente interessante ao se trabalhar em ambientes de teste disponíveis na internet ou quando não se quer alguma página específica disponível a todos. 

Em miúdos, o robots.txt é bastante útil, entretanto, sua integração ótima no Django é um pouco cabeluda. "Por quê?" Você perguntaria. Muito simples meu caro Watson, projetos Django, normalmente, utilizam uma pasta especial para servir todo o seu conteúdo estático, e essa pasta especial, normalmente, é acessada por um caminho ou path diferente da raíz. Isso quer dizer que quando um robô indexador procura o robots.txt em meusite.com/robots.txt, ele não o achará, pois o mesmo está, provavelmente, em media/robots.txt.

Para resolver esse problema, existe uma série de abordagens, como criar uma view que sirva o arquivo, por exemplo. Uma abordagem mais interessante e eficiente é utilizar o mod_rewrite do Apache nesse trabalho. O código ficaria assim:
RewriteEngine On
RewriteRule ^robots\.txt$ /media/robots.txt [L] 
(contribuição de Dave Dash)
"/media/" no caso, é o caminho para os arquivos estáticos do seu site. Estou postando essa solução (simples para quem conhece Apache) porque achei bem interessante e me tomou alguns minutos de pesquisa.

No mais, é isso. Abraço a todos!

terça-feira, 26 de janeiro de 2010

Django Snippets - Soluções em Django

Senhores, hoje a postagem será de utilidade pública. Resolvi falar sobre esse excelente (com ressalvas) repositório de códigos para Django, prontos para serem usados.


Para quem não sabe, o Django é um excelente framework de desenvolvimento para web com python. Ele te permite criar aplicações seguras e robustas em pouco tempo. Mesmo o Django sendo "super cool", seu código é bastante enxuto, de várias maneiras. Os desenvolvedores escolheram por adicionar "pouca" coisa ao código padrão do framework, permitindo que houvesse poucas dependências. Assim, se você quer algo diferente, você tem que fazer. "Você" entre aspas! Caso você conheça o django snippets, poderá utilizar soluções bastante interessantes desenvolvidas por diversas pessoas de todo o mundo.

O funcionamento do django snippets é bem simples, existe o site de snippets onde as pessoas vão e postam suas soluções, que são tornadas públicas. Caso alguém encontre um problema na sua solução, elas podem, por exemplo, sugerir uma mudança. Infelizmente, o site não permite buscas das formas usuais. Basicamente, se você quer procurar um snippet, você deve usar o google ou procurar, página por página, na lista de snippets disponível.

Como exemplo de snippets legais que você pode usar tem o snippet de recaptcha que te permite adicionar um captcha a um formulário de busca, por exemplo, sem grandes problemas. snippet

Ou código legal é este que te permite criar objetos de paginação que tornam bastante fácil criar o Look&Feel do digg no seu site. Eu, particularmente, o utilizado no django-forumbr.

Existe uma infinidade de outros snippets que podem lhe agradar. Sugiro doar 15minutos do seu tempo, um dia desses, para averiguar o repositório do Django Snippets. No mais, é isso. Abração, senhores!

segunda-feira, 25 de janeiro de 2010

Comemorando meus dois seguidores!

Hoje descobri que tenho exatos dois seguidores no meu blog, fato que achei "O MÁXIMO"! Rrsrs sinal que o blog está saindo do limbo. Para comemorar, resolvi fazer essa postagem e nela, não falar do que costumo falar: programação, baixo e comida. Hoje vou mostrar uma conversa antiga minha, que tive com meu amigo Nícolas Alcântara, onde discutimos alguns aspectos do movimento bastante falado esses últimos tempos, o movimento EMO.


Durante nossa discussão, uma metáfora poderosíssima foi construída, para classificar as pessoas de acordo com os seus sentimentos por cocô. Nada muito pretencioso, é claro. No mais, espero que gostem!

Uma análise musical com "Fezes pra que te quero".

Hehe, no mais, o compinha Victor Sobreira resolveu me dar uma aula de rails esse domingo, lá no Shopping Aldeota. Ruby ainda sux, mas agora eu aprendi um pouco mais do comportamento do Rails. Vou poder criticar com mais base ainda! Buahahahahá!

sábado, 26 de dezembro de 2009

Dolphin, Lua, Ruby, Natal e um pombo safado!



Essas duas últimas semanas foram de muitas novidades e emoções! Natal, estudo de Ruby (falo disso já!), Lua e teve também um episódio envolvendo uma limonada e uma ave mal educada. Nada extremamente interessante, entretanto, o caso do Dolphin, o emulador de GameCube, pode agradar uma galera.

Já falei aqui sobre emulador de Playstation, Sega Saturno e NDS para Ubuntu. Todos muito bons e rápidos. Excelentes projetos. Hoje, apresentado pelo meu amigo, gostaria de apresentá-los ao emulador de GameCube Dolphin. Alguns já devem ter ouvido falar do mesmo, outros devem pensar que este emulador foi descontinuado, mas eis a realidade: Ele existe, continua em desenvolvimento e, de quebra, funciona tanto no linux quando no windows. Isso foi uma grande supresa agradável para mim, pois alguns emuladores só funcionam em Windows, por exemplo, o que é bastante frustrante. Tem um emulador escrito em Java, o JPCPS, que não tem versão atual para Linux.


Bem, choramingos à parte, vamos ao Dolphin. Ele é bastante rápido, tem uma lista de compatibilidade muito boa e instala super fácil em sistemas baseados em Debian, como o Ubuntu. Para instalá-lo no Ubuntu, basta o comando abaixo, no terminal:

# sudo apt-get install subversion scons g++ wx2.8-headers libwxbase2.8-0 libwxbase2.8-dbg libwxbase2.8-dev libwxgtk2.8-0 libwxgtk2.8-dbg libwxgtk2.8-dev libsdl1.2-dev nvidia-cg-toolkit libxxf86vm1-dbg libxxf86vm-dev libxext6-dbg libxext-dev libglew1.5-dev libcairo2-dbg libcairo2-dev libao2 libao-dev libbluetooth-dev libreadline5-dev && svn checkout http://dolphin-emu.googlecode.com/svn/trunk/ dolphin-emu-read-only && cd dolphin-emu-read-only && scons flavor=release

Tudo bem que é um comandozão grande com cara de mal, mas ele funciona muito bem e não requer muita "ação" do usuário. Basicamente, ele baixa e instala as dependências da aplicação e, em seguida, baixa a versão do sistema de versão e a compila. Nisso, um arquivo chamado RunMe estará disponível na pasta dolphin-emu-read-only/Binary/Linux Execute o dito cujo e seja feliz!

No site, tive a impressão que uma placa nvidia moderninha é uma boa escolha para rodar o aplicativo, em conjunto com um bom processador. Quem testar e quiser deixar um comentário do seu hardware, eu agradeço.

Além desse meu texto informativo altamente útil para o curso e progresso da humanidade, isso é um blog, correto? Falar um pouquinho do meu dia-a-dia também, para deixar as coisas mais interessantes.


Seguinte, esses últimos dias, o caro Rafael Cruz, um dos defensores de Ruby aqui no Ceará, fez a caridade de me emprestar um livro sobre Ruby: Conhecimento e Linguagem, do Eustáquio, para estudar. O livro é bom e tudo, mas, quanto mais eu lia, mas eu via que não gostava de Ruby. Linguagem confusa, cheia de símbolos e de estruturas desnecessárias. Para quem vem do Python e já sofreu com Perl, com certeza deve achar a sintaxe muito desgostosa. Até meu background de java chiou com o Ruby.


Nisso, o Rafael sempre me dizia "Dê mais um dia para o ruby. Estude mais um dia". E eu estudava mais um dia. No segundo dia: "Estude mais dois dias", e eu estudava mais dois dias. Quando essa conta chegou na primeira semana, foi demais para mim! Meu sensor de dor disparou e eu tive que largar essa linguagem malévola. Rsrsrs, acho que agora, só programo em Ruby forçado.


De qualquer maneira, durante meus dolorosos estudos de ruby, em meu tempo livre, fui estudar Lua, que eu já conhecia de vista, mas nunca tinha parado para aprender. E quão boa foi a experiência! Ao contrário de ruby, que mais parece uma linguagem frankstein, Lua é super bonitinho e conciso. Tudo bem que a orientação a objetos em Lua não é lá uma Gisele Büdchen, mas tirando isso, ela tem qualidades em relação a outras linguagens. A primeira qualidade dela é ser brasileria. E por que isso é uma qualidade? Pq o que é da terrinha é mais gostoso, é claro =D. Segundo, ela te permite interagir fácilmente com outras linguagens, inclusive C. Terceiro, ela está fazendo muito sucesso com os gringos, ou seja, daqui a algum tempo, ela "chega" por aqui bombando. Sinal que vai valer a pena saber programar com a bichinha. E...bem, muitas qualidades. Para finalizar, eu gostei do fato de ela ter um interpretador interativo embutido, que nem o Python e ter uma sintaxe clara, sem muito frufru (Ruby, aprende!).


Para quem não sabe, Lua também pode ser usado com o Ginga, que é o middleware de interatividade do padrão brasileiro. Como a outra linguagem fácilmente utilizada com o Ginga é Java, acredito que Lua é uma opção bastante atraente. Quem quiser ver Lua funcionando de verdade, pode baixar a "Engine" de jogos do Lua löve, que é muito bonita.


Ufa! Que postagem grande! Falta só falar do pombo...Ave danada, viu? Algumas pessoas chamam esse bicho de "rato voador". Dia desses eu tive certeza do motivo. Em mais uma de minhas mirabolantes noites de insônia, saio eu, de manhãzinha, 6hrs, à procura de uma merciaria aberta, disposta a me vender alguns limões. Seis quarteirões depois, descubro que está tudo fechado. Excelente. Voltando de minha empreitada mal sucedida, triste e desiludido, sabendo que não terei minha limonada, eis que sinto a cagada em meu braço. Olho para cima, e lá está, o pombo, com a cara mais sínica. Tudo bem que o bicho é irracional e tudo, mas eu acho que o pombo fez de propósito. Só tinha ele lá no fio do poste, e o maldito ainda me acertou. Ele fez mira. Não pode ser coincidência, um negócio desses...

É por coisas como essa que eu digo: NÃO ALIMENTEM OS POMBOS! Esse ato pode se voltar contra vocês! Vocês podem levar uma cagada enquanto procuram limões!

É isso. Boas festas de fim de ano, negada ö/!

domingo, 29 de novembro de 2009

Mootools Vs JQuery

Quem desenvolve para web nos últimos anos, com certeza sentiu a necessidade de aprender algum framework javascript para agilizar seu trabalho ou mesmo possibilitar criar efeitos mais complexos com menos esforço. Nessa empreitada, o cidadão vai se deparar com uma série de opções das mais variadas, como ExtJs, Prototype, Dojo e outros.

Dentre esta gama de opções, escolhi como meu framework principal o Mootools que é bastante prático e poderoso. O problema é que, na minha região, esse não é lá um framework muito utilizado. O mercado costuma ser dominado por uma tecnologia ou outra, enquanto as "outras" convivem timidamente, em seu nicho. No meu caso, o framework que está "na boca do povo" aqui é o JQuery, outra opção muito popular, internet a fora.

Nisso, sempre ocorrem aquelas discussões sobre qual o seu framework predileto ou por que pessoa tal escolhe framework tal. Aqui, normalmente essas discussões envolvem o JQuery, e no meu caso, o barraco é mais ou menos no estilo Mootools Vs JQuery. Hoje, ocorreu algo assim, em pequenas proporções, quando comentei meu desgosto com a sintaxe do JQuery em relação à sintaxe do MooTools no twitter.

Disseram que a sintaxe do Mootools é "mais feia" que a do JQuery e que o primeiro era "javeiro". Tudo bem que sintaxe bonita e feia é questão de gosto, mas o adjetivo "javeiro" que foi definido pelo interlocutor como prolixo já não é. Ele faz referência a alguma coisa (Java, no caso) e representa uma característica teoricamente perjorativa.

Mediante tudo isso, me sinto compelido a contribuir com meus dois centavos. Vou justificar porque vejo a sintaxe do Mootools como sendo mais clara e "bonita" que a do JQuery, por fim, vou colocar alguns exemplos de código para ver se o adjetivo "javeiro" realmente procede.

Primeiro, quem já parou para ler a documentação do JQuery? Ver os métodos e classes disponíveis? Galera normalmente só olha o que vai precisar neh? Então vou fazer uma análise sobre trechos de código que se usa normalmente.

Vejamos alguns exemplos de como selecionar elementos com JQuery e Mootools:



Bem, não vou me estender muito neste artigo, mas acho que foi possível mostrar alguns pontos que mostram que o adjetivo javeiro, talvez tenha sido mal empregado pelo meu colega. De qualquer forma, quaisquer observações ou erros no código, favor, não deixem de informar. Abraço a todos!

sexta-feira, 27 de novembro de 2009

Turtle Linux 9.10



A algum tempo, eu resolvi que as distribuições atuais não forneciam os programas que eu mais uso no meu dia a dia, por padrão. Sempre que eu instalava o finado Kurumin, e depois o (X)Ubuntu, eu passava muito tempo retirando, colocando, e polindo programas. Nisso, tive a idéia de fazer um backup do meu sistema, depois de pronto, para poder reinstalá-lo fácilmente sempre que quisesse. Durante essa empreitada, me ocorreu que eu poderia, no lugar de fazer um backup dos programas do sistema, criar uma pequena distro com tudo aquilo que eu achava que deveria haver nela e divulgar para a galera. E mais, nessa distro, eu poderia dar o foco no python, que é minha linguagem de programação predileta, pois eu via muitos programas escritos e python, bons, que não recebiam a devida atenção.


Nisso surgiu o Turtle Linux, que é uma remasterização do Xubuntu que possui diversos programas e modificações que o tornam uma distro realmente verde! No começo, eu queria colocar opções python a qualquer custo. Aí, pensando melhor, coloquei python apenas quando a solução em python era tão boa quanto, ou melhor. Comecei com a versão 9.04 do Xubuntu. Ficou legal, mas ainda precisava de muitas modificações. Aí, agora que sou um rapaz formado e livre, peguei um pouco do meu tempo extra para retomar o projeto.

Pronta, baseada na versão 9.10 do Xubuntu, o Turtle Linux 9.10 trás uma série de melhorias em relação à distribuição alvo. Tirei vários programas que não achava interessante, como o totem e o transmission, e os substituí por opções, na minha opinião, melhores. Acrescentei também alguns scripts próprios que muito me orgulham. Um deles permite criar projetos web2py fácilmente. Outro permite baixar quadrinhos do site onemanga.com ( quadrinho detona! ). E outro, que considero ser um diferencial, permite jogar joguinhos escritos em pygame que vem junto com o sistema através de uma interface de seleção bastante simples.

Mesmo na versão final, ainda existem alguns probleminhas como o nome "Xubuntu" aparecendo aqui e ali. Na próxima versão (que se depender de mim, virá!) eu já devo ter isso corrigido. Mas não é nada muito gritante ou que estrague a experiência.

Outro ponto que vale comentar é a existência de algumas bibliotecas e frameworks python instalados por padrão na distribuição. Django e Pygame são dois exemplos muito utilizados que você não precisará instalar. A lista completa de bibliotecas instaladas por mim (além daquelas do xubuntu original), incluindo aplicativos e scripts podem ser obtidos abaixo. Interessados em baixar a distro, podem obtê-la neste link.

Quem quiser ver a distro funcionando, pode fazê-lo abaixo.



( a voz sexy nesse vídeo sou eu narrando, viu galera! )

Python?

Programas?

Jogos?

Scripts?
  • web2py-admin
  • turtle-games
  • omreader
A arte do turtle linux foi feita por mim (edição, etc) e pelos seguintes artistas:
  • http://kktasarim.deviantart.com/
  • http://sweetlikecandy.deviantart.com/
  • http://kaykaykit.deviantart.com/
ps: ao contrário do Xubuntu, que numera suas versões pelo mês da release, a numeração do Turtle Linux é baseada na versão do Xubuntu utilizada na remasterização. [agradecimento ao R. Félix pela observação]

    quinta-feira, 26 de novembro de 2009

    Fazendo o midori funcionar com o gmail!


    Para quem gosta de opções aos navegadores web, o midori é uma grande escolha! Feito como um projeto leve e com poucas dependências, o midori permite navegar na web de forma rapida e com vantagens. Tendo  passado pelo teste de compatibilidade de padrões acid2 com nota máxima, ele permite experimentar todas as funcionalidades das mais novas tecnologias web utilizando poucos recursos.

    Disponível para linux [e consequentemente (X)Ubuntu], foi feito com foco na utilização com XFCE, mas pode ser usado em qualquer ambiente.



    Por ser um navegador pouco conhecido, mesmo tendo funcionalidades avançadas, alguns sites como o gmail não permite acesso a algumas de suas funcionalidades ao navegador em uma instalação padrão. Por isso, desta postagem. Vou ensinar como navegar em sites como o gmail sem se preocupar com incompatibilidades.

    A receita e simples: va em editar->preferências->rede e mude a opcão "identificar como" para safari. pronto! Sites como o gmail, e outros, funcionaram perfeitamente, pois tratarão seu navegador como se fosse o Safari.

    Abraco!