Pesquisar este blog

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!

    quarta-feira, 25 de novembro de 2009

    Como juntar pdf's no Ubuntu Linux

    Opa! Postagem rápida e super útil para o usuário de Linux (Ubuntu) incauto que precisa juntar arquivos pdf e não sabe como. O processo é simples, mas a informação não tem em todo canto, então, vamos lá:

    Você já precisou juntar dois documentos em formato pdf? Precisou? E não tinha ferramentazinha gráfica bonitinha que pudesse usar? Bem, seus problemas acabaram (sem interface gráfica, no entanto)! Seguinte, para juntar arquivos pdf no Ubuntu ou outra distro debian based, você precisa ter o programa pdftk instalado e executar o seguinte comando na linha de comando:
    pdftk arq1.pdf arq2.pdf arq3.pdf cat output arquivo_saida.pdf
    Esse comando gera um arquivo arquivo_saida.pdf com o conteúdo de arq1.pdf, arq2.pdf e arq3.pdf. Não é a coisa mais simples do mundo, mas é factível sem grandes dificuldades. ; )

    Abraço!

    segunda-feira, 16 de novembro de 2009

    Problemas com o SDK Manager do Android no Ubuntu?

    Seguinte, quem resolveu ceder ao boom do Android no Brasil e foi instalar a SDK do Android no seu Ubuntu 9.x, deve ter notado que a plataforma do Android não vem junto no pacotinho, correto? Lá você encontra, basicamente, algumas ferramentas úteis e talz. Bem, o negócio é que, para baixar uma plataforma do Android (para poder começar a desenvolver) você precisa executar uma ferramenta chamada android que fica dentro da pasta tools do pacotinho que você baixou.

    Até aqui, tudo bem. O problema é que quando você executa o aplicativo e pede para ver o que tem disponível para instalação, ocorre um erro e a pessoa morre na praia. Como resolver isso? Não é difícil, mas a resposta não é fácil de achar. Por isso, venho eu, com minha roupa de superman, ao resgate! (rsrsrs menos, menos!)

    De qualquer forma, a solução é assim:
    crie um arquivo ~/.android/androidtool.cfg e nele escreva o seguinte:
    sdkman.force.http=true
    Prontinho. Feito isso, reinicie o tool android e você poderá instalar as plataformas na maior! Bom desenvolvivemnto senhores ; )

    ps: Quem teve problemas com os botões do eclipse parando de responder a eventos de clique do mouse, aqui vai a solução: escreva um scriptzinho que export a variável GDK_NATIVE_WINDOWS e depois chame o eclipse. Aqui na minha máquina, o meu script ficou um negócio desses:

    #!/bin/sh
    export GDK_NATIVE_WINDOWS=1
    ~/eclipse/eclipse
    Enjoy ; )

    domingo, 15 de novembro de 2009

    Wine no Ubuntu Karmic com SOM!!!

    Bem, quem usa o wine no Ubuntu Karmic deve ter achado revoltante não ter som nos seus aplicativos, correto? Algumas aplicações, só existem para Windows e o som, nelas, é muito importante. Para mim, o nome dessa aplicação importante é Epsxe1.7.

    Não possuindo uma versão para Linux, e sendo bem melhor que o PCSX, mesmo emulado, resolvi que eu queria o Epsxe funcionando perfeito aqui. Olhando em vários fóruns, descobri que havia um problema de incompatibilidade do pulseaudio com a forma como o wine acessa o dispositivo de som. E, depois de alguma insistência, consegui achar uma solução neste link. Abaixo, veja como eu fiz aqui:

    Primeiro, baixei o Epsxe1.7 para windows e coloquei numa pasta própria, com a zlib dele. Nisso, instalei o wine com o comando sudo apt-get install wine. Dei um wine epsxe.exe para testar se não ia ter som mesmo. Bem, não tinha! Sabido isso, criei o seguinte script:

    #!/bin/sh
    cd ~/
    cd PastaDoEpsxe/
    # mata o pulseaudio
    pulseaudio -k
    wine epsxe.exe
    pulseaudio -D

    Esse script é responsável por matar o processo do pulseaudo do seu usuário, chamar o programa pelo wine, e reiniciar o pulseaudio ao término do dito-cujo. Feito isso, ficou faltando só uma coisinha: impedir que o pulseaudio reinicie sem ser convidado! Isso também é fácil, basta ir na pasta ~/.pulse/ e criar o seguinte arquivo: client.conf .

    Dentro do client.conf, escreva:
    autospawn = no
    E feche o arquivo. Prontinho! Garanta a permissão de execução do seu script (chmod +x epsxe.sh) e basta executá-lo para ter o melhor emulador de playstation funcionando perfeitamente, e com som, no seu Ubuntu KK. Boa jogatina ; )

    quinta-feira, 12 de novembro de 2009

    DjangoCMS2 - O primeiro Killer App do Django!!!


    A muito tempo que os desenvolvedores que utilizam Django como framework Web reclamam da falta de aplicativos CMS de qualidade para integração em seus projetos. Enquanto outras plataformas possuem soluções poderosas como é o caso do Wordpress, no Django, caso o desenvolvedor não quisesse se sujeitar a aplicativos bugados ou aquém de suas necessidades, era obrigado a escrever seu próprio aplicativo CMS, o que não é lá tão trivial.

    Outra solução, bem menos elegante, consiste em utilizar o aplicativo que vem junto com o django, chamado flatpages, que permite criar páginas simples em html. Algo bem aquém do que seria elegante.



    Devido a isso, venho, a muito tempo, olhando sites de todo gênero em busca de uma solução CMS para django que fosse fácil e prática. O DjangoCMS sempre me pareceu um projeto promissor e ativo, nesse sentido, mas, as versões que eue testava sempre apresentavam muitos bugs. Não eram versões finais, é verdade, mas mesmo assim estavam longe de ser algo utilizável.

    Hoje, ao acordar, me deparo com a notícia que o django-cms não era mais uma versão alpha, nem beta, nem RC, era sua versão final, o que me compeliu, rapidamente, a testá-lo. Quão grande foi minha surpresa quando vislumbrei suas funcionalidades e praticidade. Em minutos, com uma pequena ajudinha da lista (#django-cms no FreeNode) consegui colocar em pé o aplicativo.

    Tendo todo o seu sistema de conteúdo baseado plugins e utilizando placeholders para definir onde cada plugin deve ficar, essa solução me agradou muito. Os desenvolvedores tendo feito todo um trabalho de integração com o admin, que é a interface padrão de edição da ferramenta, deixou tudo agradável e intuitivo.

    Ao meu ver, o django-cms2 (ou django-cms) é a melhor solução em CMS para o Django no momento. Aconselhado! Abraço!

    ps: para quem não sabe, killer app é um aplicativo tão bom que os aplicativos concorrentes se tornam obsoletos rapidamente.

    segunda-feira, 2 de novembro de 2009

    Emulador de PSX para Ubuntu 64bits que funciona!!! =D



    Quem gosta de emuladores, sabe que o playstation é uma das plataformas que mais recebeu esforços heroicos no mundo todo no sentido de obter um emulador descente. Emuladores como o Bleem, Emurayden, Epsxe e AdriPsx marcaram época! Todos com suas vantagens e desvantagens, bugs e facilidades, a gosto do freguês.



    Infelizmente, a era do playstation 1 acabou e os emuladores desenvolvidos pela plataforma começaram a dar lugar para emuladores de nova geração, ou simplesmente a jogos de computador convencionais. Emuladores promissores e multiplataforma como o PCSX tiveram seu desenvolvimento abandonado perto de sua conclusão. Era como se ter um carro excelente, sem retrovisor, por exemplo, é bom, você usa, mas podia ser melhor!


    Atualmente, o PCSX é o emulador de playstation 1 padrão do Ubuntu, está nos repositórios e tudo! O problema é que, mesmo sendo muito bom e compatível, ele possui bugs. Bugs chatinhos que impedem alguns jogos de serem executados com maestria. Como os desenvolvedores do PCSX foram gentis e disponibilizaram seu código para a comunidade, sob licença GPL, alguns bravos, como weimingzhi resolveram arregaçar as mangas e fazer os ajustes e correções necessárias para que o Linux, e consequentemente o Ubuntu, tivesse a sua disposição um emulador compatível e eficiente.

    Disponível no site do projeto e baseado no código do PCSX original, o emulador PCSX-Reloaded é um emulador derivado, com maior compatibilidade, que pretende acalentar os anseios dos ainda muitos saudosistas do primeiro videogame da Sony.

    Disponível em vários formatos, eu acredito ser ele uma opção muito boa para pessoas que estiverem tendo problemas com o emulador original, disponível nos repositórios do Ubuntu. Por enquanto, aqui nos meus testes, foi só alegria!

    Abraço!

    sábado, 31 de outubro de 2009

    Yabause no (x)Ubuntu Karmic!!!

    Para quem era vivo na década de 80, com certeza pôde ver toda a evolução dos videogames até hoje. Viu a ascenção e o declínio de video-games como o Nintendinho, Master system, Megadrive, Super nintendo, Playstation e outros... Dentre essa leva de video-games lendários, um deles, que não fez sucesso no Brasil, se destaca: O Sega Saturno.




    Concorrente direto do Playstation, que dominou todo o mercado, enquanto produto ativo, o sega saturno foi um video-game responsável por um grande número de clássicos na época. Tendo boa parte de seus melhores jogos apenas disponíveis em japonês, ele é hj uma jóia rara em múseus e casas de colecionadores.

    Para aqueles que não tiveram oportunidade de jogar com esse que foi um dos marcos de sua geração, venho aqui apresentar-lhes o Yabause, o emulador multiplataforma de sega saturno.

    Diferente de outros emuladores, o Yabause é um emulador multiplataforma "di cum força"! Para se ter uma idéia, ele roda tanto em PSP quanto em Linux, Windows, MacOs, e outros. Tendo um desempenho razoável, ele é a melhor opção, na minha opinião, para quem quer matar a saudade desse console.

    Disponível com interface Gtk e QT, ele é fácilmente instalável dos repositórios do Ubuntu. Até a versão anterior, 0.9.8, no Linux, ele não rodava quase nada. Com o lançamento da versão 0.9.10 nos repositórios, alguns joguinhos já são "testáveis" fácilmente. Por isso, resolvi fazer essa postagem explicando como instalá-lo e configurá-lo.

    Primeiro, instalando-o. Se você utiliza ubuntu, algo como:

    # sudo apt-get install yabause

    Resolve o seu problema. Utilizando outros sistemas ou distribuições, sugiro visitar o site oficial do projeto para melhores instruções. Feito isso, abra o yabause e entre na tela de preferências. Lá, selecione a ROM que deseja, selecione o CDROM (que não pode ser dummy), selecione o núcleo do vídeo (OpenGL é uma boa), o som (SDL funciona bem), o cartucho (não esquecendo de especificar o arquivo de saída, que pode ter qualquer extensão), configure os controles e pronto. Não se preocupe com a opção de BIOS, pois boa parte dos jogos não a utiliza.

    Coloque o jogo pelo método selecionado (ISO/CUE ou CD), e clique em executar.
    Lembro que o Yabause está em constante desenvolvimento e pode apresentar bugs ou incompatibilidade, entretanto, é um excelente projeto e merece uma conferida!

    Avaliação do Xubuntu Karmic 9.10

    Anteontem saiu a mais nova versão do Ubuntu, o Ubuntu 9.10, codinome Karmic Koala. Ótima notícia, pois o 9.04 já estava me dando dores de cabeça com seus bugs, e problemas diversos. Consequentemente, o Xubuntu, versão do Ubuntu baseada no XFCE, também saiu. Nisso, vou eu, todo animado, fazer uma instalação limpa do Karmic no meu notebook. Sempre tive um certo gosto por distros minimalistas, que consomem pouco hardware, por isso resolvi testar primeiro o Xubuntu.




    Primeira coisa que noto ao iniciar pelo CD é o Grub2, que ficou muito bonito.Aparecem até uns vaga-lumes durante a abertura. De qualquer maneira, o sistema ficou mais bonito. Janelinhas e barras com nova aparência, tudo de bom gosto.

    A instalação em sí foi rápida e sem grandes problemas. Tive que mudar o nome do meu usuário anterior para poder reutilizar o home/ e tal. Mas fora isso, tudo nos conformes.

    Ao iniciar o sistema, já instalado, após as telinhas bonitinhas e a nova tela de login, que agora tem várias opções na parte inferior, sou surpreendido! Com uma instalação limpa, logo após o lançamento, já tenho atualizações de software a fazer. Meio desgostoso, atualizo. Feito isso, vou instalar meus drivers restritos. Instalados, reinicio.

    Esperando alguns minutos, várias telinhas bonitinhas depois, começo a bisbilhotar na lista de aplicativos do novo Xubuntu. Coisas que odeio estão lá...Como sempre. Mas nada alarmante. Removo os softwares que não uso, transmission, pidgin, thunderbird, exaile, gnome-games, e instalo a fina flor da abacaxeira: deluge, emesene, flash-plugin, quodlibet, wine, mplayer, mozilla-mplayer...e outros =D.




    Com o sistema razoavelmente instalado, vou atrás de testar tudo! Como adoro videozinhos, vou direto testar o mplayer. E aí, o que acontece? Decepção! O mplayer não consegue abrir meus flv. Tento abrir meus mp4, tb não dá certo! Já com raiva, tento abrir meus avi...nada! O mplayer simplesmente não consegue abrir nada direito! No Jaunty, ele já apresentava alguns problemas com legendas, quando aberto pela interface gráfica. No Xubuntu Karmic ele está inutilizado! Ainda bem que o totem está aqui para salvar o dia, tocando os vídeos sem problemas.

    [EDIT] Certo. Para corrigir esse erro do mplayer, faça o seguinte: edite o arquivo ~/.mplayer/gui.conf e mude vo_driver para x11 e ao_driver para alsa!

    Fica assim:

    vo_driver="x11"
    ao_driver="alsa"

    Agradecimento ao skysong do canal do xubuntu no irc.




    Já chateado, vou testar o emesene, que funciona a contento, mas ainda com bugs, o quodlibet, que continua bom (faltando só a busca recursiva de biblioteca!), o wine, que ainda é o wine =D e o deluge, que ainda é o melhor cliente de bittorrent da atualidade!




    Tem também uns "papocos" que estão ocorrendo no som. Pretendo olhar isso a fundo até o fim da próxima semana.

    Tirando isso, o sistema está muito bom. Está estável e rápido. Ainda não achei a tão falada "integração com o ubuntuOne", mas estou catando aqui. De hoje para amanhã eu acho ^^ [U1].

    No mais, bem configurado, me parece uma excelente opção para computadores mais simples. Abraço!

    quarta-feira, 7 de outubro de 2009

    Baixando quadrinhos direto do OneManga.com

    Para quem gosta de quadrinhos japoneses, o mangá, com certeza o site onemanga.com não é uma novidade. Sendo o melhor repositório online de quadrinhos traduzidos na web, ele é um ícone para os fãs de todo o mundo. Sua interface fácil e intuitiva, permite buscar na sua base de dados por quaisquer mangás que disponíveis e lê-los utilizando o seu navegador.

    Uma das funcionalidades que o site não fornece é baixar todo um capítulo de uma vez. Bem, não que isso seja o fim do mundo, mas tem gente que gosta de colecionar, não é? Outro problema que um usuário pode achar é a necessidade de utilizar um navegador web, caso ele esteja acompanhando um quadrinho qualquer. Nem sempre você terá acesso a um, e mesmo que tenha, podem ser muitos cliques de distância até que você consiga achar o que procura, como descobrir qual o último capítulo lançado para um quadrinho.

    Pensando nisso, eu andei buscando na internet por um script que facilitasse o meu acesso ao que o OneManga disponibiliza. Rapidamente, achei um script do Will Larson que vazia exatamente o que eu queria. O problema dele é que ele não baixa os quadrinhos, não funciona como um script por linha de comando, e, depois que o OneManga mudou seu layout, ele quebrou.

    Buhou! Mas, como o mundo é belo, a coca-cola é gelada, e a pizza está quentinha, resolvi fazer minha própria versão. Busquei adotar parte da estrutura original que o Will usou e permitir que o script seja usado como standalone. O resultado final ficou bem legal e pode ser conferido aqui.

    Para usá-lo, você deve copiar o texto do link em um arquivo onemanga.py e deve executá-lo por linha de comando. Esse script depende da biblioteca BeautifulSoup e foi testado com Python2.6.

    Abraço aê!

    terça-feira, 6 de outubro de 2009

    Scite: editor poderoso para ambientes minimalistas!



    Para programadores, uma boa IDE é um manjar dos deuses! Nada como desenvolver um aplicativo complexo com o auxílio e facilidades de um bom ambiente de desenvolvimento. Você consegue, fácilmente, ver partes do código que quebrou com uma mudança qualquer, pode fazer edições em massa, pode até desenhar interfaces gráficas visualmente! Uma excelente metralhadora, na guerra contra os prazos curtos e a falta de tempo!

    Mesmo IDE's poderosas sendo o mais novo canivete de prata [ref: resumo de NoSilverBullet] do desenvolvimento de software, nem sempre ele é a melhor opção. Pequenos projetos ou edições rápidas não podem se dar ao luxo de levantar toda uma IDE em memória, antes de qualquer edição. E mais! Computadores minimalistas como os netbooks ou máquinas com poucos recursos necessitam de ferramentas que possibilitem o desenvolvimento rápido, ágil e prático.

    Nesse sentido, o velho companheiro de guerra do desenvolvimento são os editores de texto, que não possuem os recursos poderosos das novas IDE's (pelo menos não por padrão), mas que oferecem facilidades de codificação tentadoras. Bons exemplos de editores, muito adequados para qualquer linguagem com sintaxe bem definida (xml, xhtml, css, python, ruby, lua, perl...) são o Gedit, Kate, Editra, Notepad++ e outros tantos.

    Entre funcionalidades interessantes que um editor de texto mais complexo (notepad do Windows não conta, senhores!) oferece, estão:
    • highlight - o texto carregado na interface é colorido pelo editor, a fim de facilitar sua leitura
    • ferramentas de busca e substituição de trechos
    • padronização da codificação dos arquivos - ajuda a evitar problemas com caracteres estranhos como
    • autocomplete - nem sempre baseados na sintaxe, mas na morfologia
    • navegação no sistema de arquivos integrada
    • verificação ortográfica
    • outras funcionalidades...
    Com tantas funcionalidades, alguns editores de texto, que são opções leves, acabam ficando bastante pesados. Para algumas pessoas, isso pode ser um problema.

    Aí eu lhe pergunto: você faz parte deste grupo de algumas pessoas? Se sim, continue lendo.

    Hoje, enquanto planejava um outro script python (às vezes eu programo para relaxar hohoho), eu me deparei com uma situação inusitada: mesmo tendo vários editores de texto aqui, eu não estava me sentindo confortável a usar nenhum deles. Não queria usar o Scribes (bugs...), nem o Editra (que eu chego a usar como IDE!), nem o Gedit (ando achando ele meio pesado), nem o Idle3 (bugs, muitos bugs!). Em uma busca rápida pela internet, achei um editor de texto que eu nunca uso. Na verdade, editor que eu ignoro, o Scite! Talvez por preconceito, mas resolvi testá-lo.

    Como estou usando o Ubuntu Jaunty, instalar o Scite foi tão fácil quanto dar um:
    #sudo apt-get install scite

    Feito isso, o editor de texto minimalista e bonitão, Scite, já estava na minha máquina! Minhas primeiras impressões dele foi que ele tem um jeitão de Emacs. Os arquivos de configuração são baseados em arquivos texto simples, no melhor estilo Linux de se configurar algo, e que ele é muito rápido, muito MESMO! Para um editor cheio de opções (como as citadas na lista um pouco acima), ele me impressionou. É carregado em memória tão rápido quanto o LeafPad, que é um editor de texto super simples para edição de arquivos texto (os .txt da vida!).

    Certo, o Scite é bonito e rápido, mais alguma coisa? Sim!

    Além de indicar o Scite como editor de texto, gostaria de dar uma dica sobre como configurá-lo. Como falei, a configuração do Scite é baseada em arquivos de texto simples. Por isso, quando você quer mudar algo no Scite, como fonte, ou espaçamento das tabs, você tem que editar o arquivo de texto. O Scite oferece uma forma relativamente fácil de se fazer isso. Com o programa aberto, na opção de menu "Options", duas opções muito uteis lhe serão visíveis:

    Open Global Options File e Open User Options File

    Essas duas opções são importantíssimas pois, clicando nelas, você poderá editar os arquivos de texto com as opções do editor.

    A primeira, Open Global Options File, possui uma lista com todas as opções padrão do Scite. Ela deve ser usada sempre que você quiser saber quais opções no Scite estão disponíveis.

    Por exemplo:
    A opção indent.size permite definir o tamanho de uma indentação, no Scite. Seu valor padrão é 8, e sua representação no arquivo global de configuração é indent.size=8.

    A segunda opção, Open User Options File, serve para você definir novos valores para as opções padrão do arquivo global de configuração. Ou seja, quando você quer mudar uma configuração do Scite, você não edita o arquivo de configurações globais, você simplesmente copia a opção do arquivo global no arquivo de usuário e muda o valor dela.

    Por exemplo:
    Se você quisesse que a indentação da sua instalação do Scite fosse, por padrão, 4, você deveria escrever o seguinte no arquivo de preferências de usuário:
    indent.size=4

    Iaí, fácil, não? Bem que poderia existir uma janelinha com botõezinhos lindos para se clicar, mas como essa é uma abordagem bastante trabalhosa, acho que os caras não fizeram errado, em usar arquivos de texto para a configuração. Pior seria se uma opção fosse de difícil edição pelo simples fato de não existir o botãozinho para modificá-la, não?

    Particularmente, aconselho que estas duas configurações estejam em seu arquivo de configuração:
    # identação de 4 espaços
    indent.size=4
    # usar espaços no lugar de tabs para arquivos .py
    use.tabs.*.py=0
    # habilitar o autocomplete
    autocompleteword.automatic=1

    De qualquer forma, é isso. O Scite é muito bom, e até que o Idle resolvia ficar bonitinho e/ou sem bugs, eu vou usá-lo para escrever meus scripts simples. É isso. Abraço, senhores (e senhoritas!)!

    Indicação de leitura: WalterCruz

    quarta-feira, 30 de setembro de 2009

    A importância da geladeira e colocando mp3 como toque de celular no Ubuntu!



    Hoje em dia, as pessoas não dão mais a devida importânica a certos aspectos e ações do nosso dia a dia. O sorvete, por exemplo, já foi uma comida de reis! Antigamente, para comer sua casquinha favorita, era necessário mandar alguém às montanhas trazer o gelo, para só então, fazer aquele sorvetão gostoso. Como bancar uma espedição era caro, esse prazer ficava apenas para a realeza!



    Com o advindo do compressor de vapor, graças ao senhor James Harrison(1857), a geladeira tornou-se possível, e com ela, outros avanços importantíssimos, como a cerveja gelada e o sorvete de casquinha! Fico pensando, se quando você vai na 50 sabores (sorveteria da minha cidade), se você pensa em todo o avanço científico por trás do seu sorvete! Não né? Pensa no sabor que vai escolher para as bolas rsrsrs. Falando nisso, tomei um sorvete chamado "Obama". Muito bom, a propósito!



    De qualquer maneira, fora os insites sobre o dia a dia, tenho outro motivo nobre para essa postagem. E qual seria? Muito simples, caro gafanhoto, esses dias, encontrei uma música muito legal no MusicasDeBolso, interpretada pela senhorita Lulina. Como o título da música já diz, é uma "Música para colocar naquele som com o despertador". Eu, muito obediente, lo fiz! Agora, vou o processo pelo qual realizei tamanha façanha!

    Primeiro, temos que pegar o vídeo da senhorita Lulina para obter sua música. Depois, cortá-la para um tamanho aceitável.

    Bem, no Ubuntu, a melhor ferramenta para pegar vídeos do blip.tv é online. Por online, eu me refiro a esse site. O VideoSnag, mesmo com sua interface pobre, é bastante eficiente em pegar vídeos de sites de streaming. Funciona bem com Firefox e tudo! De qualquer maneira, use ele com o link do vídeo da Lulina. Baixado o vídeo, precisamos remover o áudio do vídeo.

    Para remover o áudio, usei o avidemux, que é um conversor de vídeo multiformato. Bastante simples e compatível com gtk, ele é rápido e seguro. Carregue seu vídeo com ele, clique na aba "audio" e depois em "salve", para salvar o audio do vídeo em um arquivo separado. Feito isso, dê uma escutada no arquivo com a música. A música está demorando um pouco para começar, não é? Para um toque de despertador, esse comportamento não é interessante. Vamos cortar nosso mp3 então?

    Para cortar o mp3, a ferramenta mais fácil e rápida que achei foi o mp3splt. Ela é por linha de comando, mas permite cortar seu mp3 rapidinho e sem complicação. Você informa qual o ponto de início e fim do corte, o nome do arquivo de entrada e o de saída. O mp3splt se encarrega do resto.

    Exemplos
    # corta arquivo.mp3 nos tempos 01:00 até 05:05 e salva em arquivo2.mp3
    > mp3splt arquivo.mp3 arquivo2.mp3 1.0 5.05

    # corta arquivo.mp3 nos tempos 00:10 até 04:10 e salva em arquivo2.mp3
    # -f indica que o bitrate de arquivo.mp3 é variável
    > mp3splt -f arquivo.mp3 arquivo2.mp3 0.10 4.10

    Eu utilizei os tempos 0.11 e 5.02. Utilizem o tempo que mais lhe agradar!

    Quem vem aqui também pode estar precisando converter algum arquivo para mp3. Como hoje foi um dia bom (entreguei meu copião e marquei a data de defesa da mono), vou ajudar nisso também. Para transformar um arquivo wav, por exemplo, em mp3, variável, podemos usar o lame. Instale-o pelo apt-get e use o seguinte comando para criar seu mp3:

    # -h informa o lame para usar qualidade máxima
    > lame -h arquivo.wav


    Facin neh? Se quiser converter vários arquivos de uma vez, algo como:

    # converte todos os arquivos terminados em .wav da pasta atual em mp3
    > for i in *.wav; do lame -h `pwd`$i; done

    Funciona bem. De qualquer maneira, é isso! Espero ter ajudado!

    terça-feira, 8 de setembro de 2009

    Convertendo arquivos .ogv

    Se você usa o linux e já precisou gravar o que estava ocorrendo no seu desktop, por um motivo ou outro, "e conseguiu!" você provavelmente deve ter sido apresentado ao aplicativo recordmydesktop.

    Até onde me consta, o recordmydesktop é, de longe, a melhor ferramenta para distribuições linux para gravar o que se passa no seu desktop. Essa funcionalidade, para quem não conhece, é muito boa para criar video-aulas de todo tipo, principalmente aquelas que demonstram a utilização de algum programa. Sabido disso, chegamos ao nosso problema. Esse maravilhoso, eficiente, intuitivo e prático aplicativo tem um pequeno inconveniente, ele apenas permite ao usuário salvar seus vídeos em formato ogv.

    O problema disso é que, apesar de ser um excelente formato, ele não é lá muito compatível com a maioria dos programas disponíveis por aí. Mas, calma cocada! Para tudo se tem solução. Neste caso específico, a solução é passar o arquivo ogv para um formato intermediário, tornando-o compatível com programas populares como o avidemux, que pode fazer um tratamento posterior do vídeo, como cortá-lo e redimensioná-lo.

    Para fazer a conversão de nosso ogv, vamos usar o mencoder, que é o conversor de arquivos de vídeo do mplayer. Para fazer a conversão, abra um console e execute o comando abaixo:

    # mencoder -ovc lavc -oac pcm -lavcopts vcodec=ffv1 -o output.avi   input.ogv

    Certifique-se que há uma boa quantidade de espaço no seu disco rígido.

    Após executar esse comando, você terá um arquivo output.avi que poderá ser tocado pela maioria dos players e lido pelo avidemux. Agora, be happy ; )

    Abraço!

    terça-feira, 1 de setembro de 2009

    Lendo os contatos de um arquivo .nbu com python

    Bem, hoje comprei um novo celular que não era nokia. Sabido isso, me deparei com o problema de ter que passar todos os meus contatos do nokia para o meu novo celular. Nisso, usei o nokia studio para fazer o backup dos contatos, tudo bonitinho. Só que, ao trazer o arquivo de backup para o meu Ubuntu, descobri que o mesmo não possuia programas para extrair esses contatos, ou qualquer outra informação dos arquivos *.nbu (que são os arquivos de backup da nokia). Chateado, resolvi criar minha própria solução.

    Para ler um arquivo em um formato desconhecido, o básico é você procurar o documento que descreve o formato utilizado. O legal é que eu não encontrei esse documento para os arquivos nbu, então, o que eu fiz? O que é desaconselhado e vulgarmente chamado de "trabalho de corno", joguei o código em linha de comando, em leitura binária, e fui tentar adivinhar o formato do arquivo no olho. Não que tenha sido uma grande dificuldade, mas com certeza abre espaço para erros de toda natureza. 

    De qualquer forma, depois de alguns minutos estragando minha vista, consegui criar este script que lê os contatos de um arquivo nbu e os grava em um arquivo de saída. O código está meio porquinho, mas bastante funcional. Quem achar que pode contribuir com o código, sinta-se à vontade.
    Abraço a todos.

    quarta-feira, 26 de agosto de 2009

    Para você que não entende o nome deste blog...continue lendo...

    Que mulher nunca teve um sutiã meio furado,
    Um primo meio tarado,
    Ou um amigo meio viado?
    Que mulher nunca tomou um fora de querer sumir,
    Um porre de cair
    Ou um lexotan para dormir?
    Que mulher nunca sonhou com a sogra morta, estendida
    Em ser muito feliz na vida
    Ou com uma lipo na barriga?
    Que mulher nunca pensou
    Em dar fim numa panela,
    Jogar os filhos pela janela
    Ou que a culpa era toda dela?
    Que mulher nunca penou
    Para ter a perna depilada,
    Para aturar uma empregada
    Ou para trabalhar menstruada?
    Que mulher nunca comeu
    Uma caixa de Bis, por ansiedade,
    Uma alface, no almoço, por vaidade
    Ou, um canalha por saudade?
    Que mulher nunca apertou
    O pé no sapato para caber,
    A barriga para emagrecer
    Ou um ursinho para não enlouquecer?
    Que mulher nunca jurou
    Que não estava ao telefone,
    Que não pensa em silicone
    Que 'dele' não lembra nem o nome?
    Só as mulheres para entenderem o significado deste poema!
    Estamos em uma época em que:
    'Homem dando sopa, é apenas um homem distribuindo alimento aos pobres.''
    Pior do que nunca achar o homem certo é viver pra sempre com o homem errado.'
    'Mais vale um cara feio com você do que dois lindos se beijando. '
    'Se todo homem é igual, porque a gente escolhe tanto???'
    'Príncipe encantado que nada.... Bom mesmo é o lobo-mau!!
    Que te ouve melhor...
    Que te vê melhor...
    E ainda te come!!!


    Este poema foi indicação de um amigo ; ) [neh nícolas?]

    quinta-feira, 20 de agosto de 2009

    Backup de jogos de psx no linux

    Para quem tem jogos de playstation e gostaria de fazer seu backup no linux, gostaria de indicar o projeto psxim. Nele, foi criada uma ferramenta baseada no cdrdao e gtk que permite fazer backup dos seus jogos para o formato bin de forma fácil e rápida. Mas, qual a vantagem disso em relação aos jogos tradicionais? Muito simples. Arquivos .bin podem ser usados com emuladores como o pcsx que é muito bom e está disponível nos repositórios do Ubuntu.

    Pois é, dica do dia!

    Os efeitos da gripe suína...na gripe comum!!

    Hoje, estava eu, saboreando minha pizza, quando me toquei de um fato interessante: desde que a gripe suína começou que eu não pego uma gripe! Não que eu tenha um sistema imunológico covarde, mas a gripe comum entrou no mesmo bolo da influenza A.

    Pense aí, antes, no Brasil, a pessoa ficava gripada e ia para o trabalho, espirrava por todo canto contaminando o ambiente, e a vida continuava. Hoje, mudou! As pessoas são aconselhadas a usarem máscaras quando gripadas, evitar aglomerados, lavar as mãoes e a evitar muito contato com estranhos. Essas medidas úteis no combate à nova gripe também servem para a gripe comum, que está sendo combatida, sem querer.

    Quando a pessoa pára para pensar, ela vê como o efeito dominó acontece no dia a dia.

    quarta-feira, 12 de agosto de 2009

    Escolhendo seu joguinho do pygame


    Dia desses, comecei um projeto de uma distribuição linux totalmente com foco em python [turtle linux]. Tipo, troquei todos os aplicativos comuns por versões escritas em python. O editor de texto passou a ser o Editra, o tocador de música virou o Quodlibet, e assim vai. Logo, notei a necessidade de ter jogos em python também! Ciente disto, comecei a procurar na internet por sites que avaliem joguinhos escritos em python, o que, normalmente, implica a utilização do pygame. De qualquer maneira, não havia! Existem sites que hospedam jogos do pygame, sites que divulgam esses jogos, sites que incentivam a criação desses jogos, mas não tinha nenhum que avaliasse esses jogos com reviews objetivos! No site da pyweek é possível ver algumas opiniões e notas, mas nada muito direcionado.

    De qualquer maneira, eu tive que sair testando jogos do pygame, um a um, para achar quais jogos eram bonitos, quais eram completos, e quais eram divertidos! Depois de muitas avaliações e algumas decepções, consegui fazer uma listazinha com os jogos que mais me agradaram, e gostaria de compartilhar com o pessoal que visita o blog. Os jogos abaixo funcionam, possuem começo, meio e fim, e são todos muito bons. Basicamente, todos dependem do pygame 1.8.

    Bubbman2-DX
    Bubbman2-DX é um jogo estilo plataforma escrito pelo talentoso pymike. O jogo possui gráficos estilo old school, entretanto bastante bonitos e agradáveis. A música não irrita, e os controles são preciso. Quanto ao divertimento e desafio, nesses quesitos você pode esperar muito! O jogo consiste em você correr para o lado direito do mapa enquanto um trator te persegue destruindo tudo pelo lado esquerdo. Um negócio legal sobre esse jogo, além da idéia, são as fazes, todas bem diferenciadas, fazendo com que o jogador não enjoe do jogo.


    -

    Invention
    Esse é um jogo muito bonito, tenho que tirar o chapeu para isso! Com gráficos belíssimos, invention e um estilo de jogo no melhor estilo lemmings, seu objetivo neste jogo é levar uma robôzinha até o outro lado do cenário sã e salva, construindo escadinhas para ela. Pode não parecer, mas quem jogou lemmgins, em seu tempo áureo, sabe o quanto essa rotina pode ser divertida. Outro fator legal no jogo é a música, bastante sombria e imersiva. Que conste também na listinha que o jogo não engasga em momento algum! Agora, comigo: junte gráficos bonitos, estilo divertido e música sob medida. O que você tem? Um jogão!


    -

    MakeMe
    Esse jogo é foda de sério! Pura e simplesmente. Por quê, você pergunta. Muito simples, o jogo é lindo e super divertido! Nele, você assume o papel de um robôzinho incompleto que quer conquistar uma robôzinha, e, para isso, tem que fazer algumas coisas para ela (mulheres eletrônicas...tsc tsc ^^). Ou seja, no jogo, você deve pegar certas coisas espalhadas pelo cenário, como peças para você e itens. Parece excitante para você? Bem, pois é excitante! E muito! Você vai poder nadar, voar, rastejar, e tudo aquilo que sempre quis fazer se fosse um robô =D. Pontos ruins desse jogo? Tem? Tem sim. Falta uma musiquinha e alguns sons. Nada que atrapalhe de verdade. É até algo bom pois você vai poder jogar ao som de sua banda predileta sem problemas.

    E por último(mais por preguiça minha que qualquer outra coisa...)

    -

    Bubble Kong
    Bubble Kong é um jogo estilo plataforma semelhante a joguinhos como o conhecido Mário Bros, mas com alguns diferenciais. Entre seu gráfico retrô e sua música 8bits, bubble kong é um joguinho que pode surpreender. Nele você encarna um cavalo marinho capaz de cuspir bolhas nos inimigos. E o que tem de mais nisso? O que tem de mais é que você pode usar essa habilidade para muitas oisas nesse joguinho, como alcançar plataformas ou pegar itens. Os gráficos podem incomodar a começo, mas não se enganem, eles são bastante agradáveis depois que você se acostuma. Mesmo não sendo possível visualizar requintes disponíveis nos jogos mais modernos, bubble kong vale o desafio por sua combinação suave de elementos já consagrados.

    No mais, é isso. Ia falar do happy insect garden e do whichwayisup também, mas estou cansado. Fica aí a dica para quem quiser, dar uma olhada. Abraço!

    GTK+GTKBuilder+Python == Happy!

    Seguinte negada, como foi anunciado em vários blogs internet afora, como este e este, ao se desenvolver para Gtk, deve-se usar o GtkBuilder ao invés do libglade, devido a algumas escolhas de desenvolvimento e para a melhor evolução da biblioteca. Ciente disso, resolvi fazer um pequeno tutorial de como criar e carregar um arquivo no GTKBuilder a partir do glade3.

    1. Basicamente, o que você vai fazer é:
    2. criar um arquivo .glade como glade3
    3. salvar em um local qualquer
    4. criar um objeto GtkBuilder
    5. carregar esse objeto pelo objeto GtkBuilder
    6. conectar os sinais
    7. mostrar a interface

    Não é uma trabalho difícil, entretanto, um exemplo sempre ajuda, não é mesmo? Uma observação que eu gostaria de fazer é que dialogs não são tão interessantes para serem criados no glade3 quanto interfaces customizadas. Isso se dá pela facilidade de criá-los e customizá-los. O FileChooserDialog, citado em outra postagem deste blog, é um bom exemplo disso. De qualquer maneira, mãos na massa!



    Note que o signal definido abaixo tem o mesmo nome do método definido em Example.


    Bem, é isso. Note que o método é semelhante ao usado com o libglade, então, migração de códigos deverão ser bastante tranquilas. No mais, é isso.

    Abraço!

    terça-feira, 11 de agosto de 2009

    Estendendo o GTK filechooserdialog

    Hoje me deparei com um problema! Estava lá eu, feliz da vida, desenvolvendo um aplicativo desktop em python com gtk, quando me deparo com o problema de dar interatividade para o filechooserdialog criado pelo glade3. Não faço a mínima idéia se aquele bicho é um filechooserdialog padrão ou mesmo onde acho exemplos carregando esse bendito, do arquivo .glade onde reside até meu código, de forma funcional.

    Diante deste impasse, e de meu prazo curto( para variar ), mediante pesquisa na internet, achei um link muito maneiro que explica como criar uma caixinha de seleção de arquivos sem usar o glade3, e de forma fácil. Fiquei meio triste que não ia usar o que eu tinha feito direto com o glade, mas é a vida! Quem não tem cão, caça com cobra =D hehe (@.@!). De qualquer maneira, eu dei uma modificada simples para que ficasse com uma aparência legal para o meu aplicativo.

    Basicamente eu criei uma classe que estende o gtk.FileChooserDialog e configurei a danada direto no __init__. Fiquei até bem legal e limpo, o código, sem falar, funcional! Eis o código comentado:




    Bem, é isso. Espero que ajude alguém! Comentem!

    sábado, 8 de agosto de 2009

    Poético!

    Estava eu, inocentemente olhando as notícias do guiadohardware.net quando me deparo com isto! Um "Artigo" com uma lista das personalidades mais marcantes do software livre no mundo! Algumas eu nem conhecia! De qualquer maneira, o artigo é lindo! É poético! E merece uma lida de qualquer pessoa que usa software livre, porque muitas dessas pessoas, senão todas, são pessoas que se importam e lutam por uma sociedade mehor, seja para os desenvolvedores, seja para as empresas, seja para o usuário final.

    Abraço!

    segunda-feira, 3 de agosto de 2009

    Fazendo um script em python

    Primeiro gostaria de sugerir esse site http://sexygamesparacelular.blogspot.com/ que possui joguinhos picantes para celular. Rsrsr, muito divertido.

    Diversão libertina digital à parte, vamos ao assunto de hoje! Você que aprendeu a sintaxe do python e como fazer um "hello world", deve estar agora disposto a novos desafios, não é mesmo? Bem, que tal escrever um programinha simples, por linha de comando, que faça alguma para você? Esse é o objetivo dessa postagem! Ensinar algumas técnicas e detalhes interessantes na construção de pequenos scripts em python.

    Definindo alguns detalhes da implementação.

    O que o programa fará?
    Ele deve zipar o arquivo informado.

    Quais opções devem ser aceitas?
    Apenas -o para especificar arquivo de saída.

    Deve ser multi-plataforma?
    Não. Ele é para linux.

    Compatibilidade com python:
    python 2.5>=

    Alguma biblioteca externa?
    Não.

    Agora, vamos à codificação. Primeiro, como todo bom programa escrito em python 2.x, devemos informas a codificação do código primeiro. Sugiro utilizar o utf-8, por ser bastante abrangente.

    # -*- coding:utf-8 -*-

    O código acima informa que as string do arquivo python atual estão na codificação utf-8, que é a padrão do python-3.0.

    Agora, importando o que será usado.

    import os.path as path
    import sys
    import getopt
    import zipfile

    os.path nos permite obter algumas informações úteis sobre o arquivo que estamos convertendo, enquanto o sys permite-nos obter os parâmetros informados em linha de comando. getopt é uma biblioteca que facilita a interpretação dos parâmetros informados em linha de comando e zipfile permite-nos trabalhar com os arquivos zip.

    Que tal definirmos um método main?

    def main(argv): pass

    E por último, o código que chama nosso método main.

    if __name__=="__main__": main(sys.argv[1:])

    O código acima tem uma função muito interessante. Ele checa se o arquivo .py foi executado com o comando python ou se foi apenas importado. Se tiver sido executado, ele executa o main. Isso facilita muito a utilização de um mesmo código de forma autônoma ou como uma biblioteca.

    Como o blogspot não ajuda muito no quesito "escrever código", joguei um embed abaixo[agradecimentos ao sérgio]. Está comentado = ].



    obs: getopt foi usado de uma forma bem simples. Depois faço um exemplo mais "cabra homi"!

    Abraço.

    sábado, 1 de agosto de 2009

    Animes que ainda vão sair em 2009



    Lista com os animes que estão por vir em 2009. [ref: chartfag]

    sexta-feira, 31 de julho de 2009

    Pygame-1.9!!!

    Saiu a versão 1.9 da biblioteca de desenvolvimento de jogos, em python, pygame!!! Uau! Rsrsrs, ué, não sabe por que eu estou nessa euforia? Muito simples: o pygame deu um grande salto nessa versão!

    Não que o pygame fosse ruim nas versões anteriores. Deixe-me fazer uma analogia para explicitar melhor minha idéia: se o pygame antes era vinho do porto, o pygame agora é vinho do porto com pãozinho de alho e uma garçonete gostosa massageando seus pés =D.

    Tah tah, menos conversa, mais informação. As grandes melhorias do pygame nesta versão são "coisinhas" como suporte a desenvolvimento de jogos na plataforma S60 da nokia(@o@!), bugfixes, suporte "pre-liminar", vulgo incompleto, a webcam, python-3.0, midi, novas técnicas de textura, exemplos mais limpos, TESTES, e outras florzinhas que tornam o pygame terreno fértil para entusiastas de plantão. Ah, suporte ao py2exe e py2app melhorados também ; )

    Fico pensando, os caras estão com as idéias bem centradas. Se vocês notarem, eles estão criando terreno para um lançamento bombástico de uma versão 2.0, que, no caso, teria todas essas funções, e mais.

    Para quem acha que o pygame não é uma boa plataforma de desenvolvimento, sugiro conferirem excelentes joguinhos como make-me, bubbman2, invention, happy insect garden e whichwayisup! Lembrando que a maioria desses jogos foi feito em cerca de uma semana, o que é uma amostra do grau de produtividade que a biblioteca pygame te proporciona.

    E, para ficar completo, vejamos como instalar o pygame-1.9 no ubuntu. Dois comandos:

    # instala dependências
    sudo apt-get install libsdl-mixer1.2-dev libsmpeg-dev libsdl-ttf2.0-dev libsdl-image1.2-dev libportmidi-dev
    # instala o pygame. Requer python-setuptools instalado
    sudo easy_install -U Pygame

    Prontinho! Hora de olhar os exemplos e fazer seu primeiro jogo! Vá lá, se garanta ; )

    [EDIT] Caso ocorra algum erro durante a instalação do pygame, instale a partir do código fonte, que pode ser obtido por este link. Descompacte o arquivo, e execute o setup.py como administrador do seu sistema.

    terça-feira, 28 de julho de 2009

    Pyflakes, Python, Django, TDD e mão na massa!

    Bem, anteontem resolvi que vou dar mais enfase ao desenvolvimento TDD. Essa minha pequena decisão tem por meta assegurar maior qualidade nos meus softwares e menores dores de cabeça num futuro próximo =D.

    A decisão de passar a desenvolver sempre pensando no TDD não veio por acaso. Eu gosto muito de criar aplicativos, deixar eles encostados, e depois voltar e dar um gás neles. Essa minha prática me fez perceber algumas características de manutenabilidade e de qualidade que eu preciso sempre atentar. Entre elas, o fato de que eu não estava criando testes nesses meus aplicativos pessoais, e quando eu voltava e adicionava ou modificava alguma assinatura, eu acabava quebrando alguma coisa. Não que tenha sido difícil rastrear quaisquer dos erros, mesmo sem debug, mas mesmo assim, era algo que estava me fazendo falta.

    Em uma rápida busca, achei no blog do marinho essa ótima postagem sobre o tema. Só vi a introdução ainda, por falta de tempo, entretanto, pretendo lê-la com muito carinho esses dias. Para quem não sabe, TDD significa Test DrivenDevelopment, ou, em português, programação orientada a testes, que é uma forma de se desenvolver onde se escreve o teste de uma funcionalidade antes de escrever a mesma. Essa abordagem tem vantagens visíveis, como citado no artigo do Marinho, principalmente no que diz respeito a qualidade de código, onde você sempre pode garantir um certo comportamento do seu código baseado nos testes dele.

    De qualquer maneira, ainda no escopo de manutenção, revisão e atualização de aplicativos, acabei achando esse ótimo programa que me permite checar alguns aspectos do meu código, como erros, importações nunca utilizadas e má formatação. O nome o bixin é o pyflakes. Mesmo havendo opções mais completas, como o pylint ou pychecker, o que me atraiu no pyflakes foi a sua simplicidade. Ando utilizando ele com frequência e aconselho a todos que queiram dar uma "limpada" em seu código antes de colocá-lo em produção.

    Para finalizar, como não poderia deixar de ser, gostaria de informar aos djangonautas de plantão que a versão 1.1 do framework já está disponível. Houve algumas mudanças de compatibilidade entre as versões 1.0 e 1.1, entretanto, a maioria das pessoas não terá problemas. Eu, pelo menos, fiz a migração do meu aplicativo sem mudar uma linha de código sequer. = D

    No mais, é isso. Usem o pyflakes, usem o django, usem o python e codifiquem usando TDD ; )

    segunda-feira, 20 de julho de 2009

    Configurando o PCSX no [K|X]Ubuntu!!!

    Emuladores são programinhas que "fingem" ser uma máquina completa, para que jogos em formato digital, as roms, possam rodar nele e você possa ter seu playstation, game boy, ou o video game que for, sempre pertinho de você. Acredito, de verdade, que os emuladores são uma das maiores invenções da informática de todos os tempos! Videogames fora de linha, por exemplo, nunca morreram graças aos emuladores.

    Dito isso, e pensando em meu finado PS1, resolvi escrever aqui como instalar e configurar o PCSX no Ubuntu e similares. Para quem não conhece, o PCSX é um excelente emulador de PS1 disponível para linux e windows. Tem um ou outro jogo que ele não roda, mas, ninguém é perfeito, neh? De qualquer maneira, os meus, ele roda! Sem enrolar muito, vamos ao processo:

    Para instalar o pcsx no Ubuntu e similares, primeiro, você deve instalar o mesmo direto do repositório padrão do Ubuntu. O comando a seguir faz isso para você:

    #sudo apt-get install pcsx

    Feito isso, o emulador está instalado. Beleza, não é? Mas ainda faltam duas coisas: configurar o controle e o vídeo. 

    Caso você não esteja usando um joystick, vá na parte de configurações de plugins, no controlador de joystick e mude os botões de acordo com sua preferência. Eu, particularmente, uso a seguinte configuração:

    m: start

    n: select

    a: quadrado

    z: xis

    s: triangulo

    x: bola

    L1: w

    L2: q

    R1: d

    R2: c

    E os direcionais cima, baixo, esquerda, direita com as setinhas de navegação do teclado. Fica ótimo! Você pode fazer como desejar, mas minha receita para os controles é essa.

    Por fim, configure o vídeo, que, caso mal configurado, vai rodar muito rápido ou muito devagar. Edite o arquivo dfxvideo.cfg

    #nano .pcsx/plugins/dfxvideo.cfg 

    Mudando as configurações para algo parecido com o seguinte:

    --- inicio ---

    ResX = 800

    ResY = 600

    NoStretch = 3

    UseDither = 1

    Maintain43 = 1

    FullScreen = 0

    ShowFPS = 0

    UseFrameLimit = 1

    FPSDetection = 0

    UseFrameSkip = 0

    FrameRate = 500

    UseFixes = 0

    CfgFixes = 0

    --- fim ---

    Se abstenha de modificar os atributos abaixo de FullScreen. Caso queira adicionar algum fix, faça-o pela interface de usuário. No mais, é isso. Você deve conseguir jogar a maioria dos jogos muito bem. Abraço, e, comentem! ^_^

    Arquivo do blog