software


Uma nova reportagem do Terra reacendeu o interesse geral no BitchMaps – um mashup que cruzava posts de um fórum sobre casas de tolerância com sistemas de geotagging e exibia o resultado no Google Maps, chamando a atenção da mídia (vide abaixo) pela aplicação original (e, diriam alguns, surreal) da tecnologia.

Para quem se interessa pela parte operacional da coisa, escrevi na época uma série de posts detalhando as técnicas utilizadas no mashup – vale lembrar que isso foi feito em 2008, e hoje devem existir outras bibliotecas e plugins mais avançados para fazer a mesma coisa no Ruby on Rails.
(mais…)




O último ano viu o surgimento de uma quantidade enorme de sites inspirados no Twitter. Alguns tentam traduzir e/ou adaptar para culturas locais, outros tentam expandir o conceito (incluindo fotos, voz, etc.) – isso sem falar em sites já estabelecidos que abraçaram a idéia. Uns foram comprados por gente grande – e vários fecharam, mesmo com alguém bancando.

Era de se esperar que o Yahoo! entrasse nessa arena de alguma forma, mas o Yahoo! Meme superou as minhas expectativas, trabalhando muito bem três aspectos desse tipo de site: o encaminhamento de posts alheios (o “retweet” ou RT do Twitter); a multimídia (turbinada por uma interface que facilita o compartilhamento de fotos, vídeos e músicas sem as ginásticas que o passarinho exige) e a extensibilidade, que permite que terceiros conectem seus sites e aplicativos na plataforma.

A idéia é ótima (ainda mais como alternativa ao famigerado email com PowerPoint anexado e copiado para meio mundo), mas eu e a Bani nos incomodávamos com um lance: a burocracia. Você tinha que copiar o endereço do conteúdo, abrir o Meme, se autenticar, selecionar a mídia, colar o conteúdo e escrever algo sobre ele (do zero). Na nossa cabeça, a coisa só ia rolar se tivesse um botão no navegador que “olhasse” para o conteúdo e cuidasse desse processo todo.

Esse incômodo se juntou com a coceira de brincar com o ecossistema de tecnologias de compartilhamento de dados que o Yahoo! disponbiliza (tais como YQL e oAuth) e fez a gente criar o MemeThis: um site que em poucos segundos gera o tão sonhado botão (bookmarklet, tecnicamente falando) personalizado para a sua conta no Meme.

O código-fonte é escrito em Java, e é livre. A parte dos bastidores (que faz toda a mágica acontecer) roda no Google App Engine – como bem observou um amigo nosso, usamos uma linguagem da Sun para ampliar um serviço do Yahoo! usando um outro serviço do Google. Web 2.0 é isso! :-P

Apesar de ainda ser uma versão beta, já tem bastante gente usando. E agora não é preciso mais mendigar convites: o Yahoo! Meme está aberto para todos, é só ir !

O simpleyql é uma biblioteca que facilita bastante o desenvolvimento de aplicações em Java que manipulem dados de usuários do Yahoo! Meme (ou de quaisquer sites do Yahoo! que estejam expostos via YQL e oAuth).

Na teoria, é possível usar uma biblioteca de oAuth pré-existente para isso (o próprio simpleyql se baseia em classes disponíveis no oauth.net), mas quando eu e a Bani começamos o MemeThis (falo dele em outro post) vimos que as particularidades do Y! tornariam o código demasiadamente complexo.

Além disso, essas classes exigem um grau de entendimento de oAuth maior do que o puramente conceitual. E o fato de o Yahoo! disponibilizar bibliotecas para outras linguagens – mas não para Java – foi a gota d’água que motivou a criação da biblioteca.

Com ela, basta uma quantidade mínima de código para iniciar o processo de autorização do usuário – um passo necessário quando ele acessa sua aplicação pela primeira vez. Dali em diante basta manter a chave de acesso atualizada no banco de dados ou equivalente, e você poderá usá-la em uma chamada simples sempre que quiser interagir com o Y! em nome da pessoa.

Parece simples? Ótimo, essa era a idéia: encapsular os detalhes do vai-e-vem de tokens e permitir ao desenvolvedor focar apenas na aplicação. A biblioteca é compatível com o Google App Engine (o MemeThis roda nele), então não tem mais desculpa: se a sua praia é Java, a hora de desenvolver pro Yahoo! Meme é agora.

O EDGE Switch é um programa que desenvolvi para o iPhone com o objetivo de bloquear/liberar a conexão de dados da operadora (EDGE). Isso é necessário porque o sistema operacional da Apple assume que o seu plano de dados é generoso e usa esta conexão sem perguntar quando não encontra uma rede sem fio.

UPDATE: Este programa foi criado no início dos tempos do iPhone, quando mal existia SDK oficial. Ele não foi testado com o OS 2.x/3.x, e com certeza existem alternativas melhores (como o SBSettings) para fazer isso hoje. Mas o código-fonte permanece online para fins de curiosidade e para ilustrar o mínimo do mínimo que a parte não-visual de uma aplicação iPhone tem que ter.
(mais…)

Ano passado escrevi um texto sobre o problema do Java com o horário de verão, explicando as causas, apontando soluções comuns e sugerindo uma nova – cuja principal vantagem é dispensar alterações no código-fonte da aplicação afetada.

Sua maior desvantagem é que o arquivo com o código de correção tem que ser recompilado a cada mudança de regra do horário de verão (i.e., uma vez por ano, pelo menos) e re-copiado em cada servidor – o que fica complicado quando se cuida de dezenas ou centenas deles.

Em vista disso (e com a ajuda da classe ZoneInfo, de autoria de Stuart D. Gathman), criei o timefix – uma biblioteca que lê automaticamente o arquivo /etc/localtime do servidor, ajusta o timezone default e chama a aplicação final. Desta forma, basta reiniciá-la quando o arquivo for atualizado parq que as novas datas de início e fim do horário de verão entrem em vigor.

(mais…)

tela do jogo 'A Busca de Epaminondas Jr.'Este jogo, criado no início dos anos 90, foi uma das primeiras coisas que disponibilizei na web, não sem um certo constrangimento: minha definição de “humor” mudou um pouco ao longo dos últimos quinze anos.

Embora o jogo não use (nem de longe) os recursos dos PCs modernos, os e-mails que recebo mostram que ainda hoje há quem se divirta um pouco com ele. Este fenômeno curioso me levou a falar um pouco mais a respeito – incluindo algumas curiosidades e dicas para ajudar quem ficou travado em algum quebra-cabeças.

(mais…)

O miniTruco é um jogo de cartas gratuito para telefones celulares e outros dispositivos móveis que suportem Java (J2ME), que pode ser jogado individualmente, ou em grupos de até 4 pessoas (via Bluetooth ou Internet/GPRS).

Você também pode jogar direto nesta pagina, usando o gadget à direita. Também é possível adicioná-lo à sua página pessoal no Google (e, em breve, no Orkut). O código original é de minha autoria, mas está disponível como código livre (GPL), o que permitiu a diversos desenvolvedores adicionar estratégias e novas características.

O endereço oficial do jogo é http://chester.blog.br/minitruco. Este post foi atualizado em 10/11/2007.

(mais…)

Há alguns anos eu comecei a desenvolver um jogo de Truco para Windows. O projeto caminhou bastante, mas nunca tive tempo de acabar.

Como falta pouca coisa, resolvi disponbilizar o código-fonte para que algum programador Delphi ou Kylix que se interesse complete o jogo. Alguém se habilita?

Quando a empresa onde eu trabalhava foi infestada pelo Sockets De Troie (um software frances que mistura virus e cavalo-de-troia) criei este programa para remover o dito-cujo dos computadores.

As versoes mais recentes do Norton Antivirus e do ViruScan fazem este trabalho, mas deixei o programa online caso alguem venha a precisar. Ele so roda em Windows 95/98/Me (mas isso nao atrapalha, porque o Sockets de Troie tambem so invade estas versoes).