XML não é a resposta

Não me entenda mal, XML é uma idéia interessantíssima, pela qual sou apaixonado. Tenho dado aula de XML, escrito HTML como XML válido, publicado e consumido dados em XML, acompanhado as iniciativas de Open Data e RDF no W3C.

O problema é que, enquanto alguns mercados subutilizam XML, tornando o intercâmbio de dados muito complexo, outros exageram no uso. XML não é a panaceia da troca de dados.

Há, por exemplo, uma porção de sistemas que usam XML como arquivos de configuração. Isso torna complicado o trabalho de editar esses XML, e na maioria dos casos torna complicado o parsing disso para rodar o sistema.

Veja um breve exemplo: a busca do Twitter está disponível em três formatos, HTML, ATOM e JSON. Teste a busca a seguir nesses três formatos (veja a diferença nas URLs):

http://search.twitter.com/search?q=%40elcio (HTML)

http://search.twitter.com/search.atom?q=%40elcio (ATOM)

http://search.twitter.com/search.json?q=%40elcio (JSON)

A maneira como o Twitter publica suas buscas é inspiradoras. O formato ATOM servirá para leitores de feeds e para aqueles programadores que adoram escrever parsers XML. E para o resto do mundo, temos JSON. Veja como consumir a URL JSON e obter dados nativos no Python:

import json,urllib2
url='http://search.twitter.com/search.json?q=%40elcio'
dados=json.load(urllib2.urlopen(url))

A dica então é se perguntar se XML é necessário e, se não tiver um bom motivo para usá-lo, trabalhar com JSON, YAML ou, quem sabe, um arquivo de configuração declarando variáveis em sua própria linguagem.

Vídeo e slides da minha palestra no ELPI

Coloquei os slides no slideshare, aqui.

E o Andrey Pedro Lefkum filmou a palestra inteira e publicou.

A resenha oficial:

A palestra apresentou ao público os Microformats[bb], uma maneira de incluir novas características e possibilidades no HTML atual, oferecendo significado extra ao conteúdo e facilitando a criação de mash-ups. Comparou também a adoção inicial de Microformats com o padrão de adoção de novas tecnologias abertas, em especial o RSS. Por fim, demonstrou com exemplos práticos a simplicidade para se implementar Microformats e sua grande utilidade e flexibilidade.

Bom proveito!

Microsoft, Google e o poder da massa crítica

Está todo mundo por aí falando sobre:

  • Microsoft Surface, um computador-mesa realmente impressionante. Entre no site e veja alguns dos videozinhos que você vai entender.
  • Google Gears, uma extensão para Firefox/Internet Explorer que permite ao desenvolvedor web guardar dados locais, na máquina do usuário.
  • O Orkut agora permite que você cadastre feeds em seu perfil.

Quando olhei cada um desses lançamentos, tive a mesma reação: “Ah, grande coisa!”

Nenhuma dessas idéias é nova ou revolucionária. Começando pelo Surface, é uma coleção de idéias velhas. Já vimos parte delas implementada no iPhone e na maneira como o sujeito pode usar os dedos nele. A idéia de colocar um computador numa mesa ou permitir seu uso por mais de uma pessoa também não é nova. E a maquininha da Microsoft está saindo por 10 mil. Dólares.

O Google Gears merece um pouquinho de explicação antes de dizer que a idéia não é nova. O Gears tem três componentes importantes. O primeiro é um tipo de servidor proxy com cache local. É um pouquinho mais do que isso, mas no fim permite a uma aplicação web responder dados ao usuário uma única vez, e ele terá esses dados em sua própria máquina a partir daí. O segundo é um banco de dados local, que permite a uma aplicação web, por exemplo, funcionar offline. O terceiro é um mecanismo para fazer com que seus scripts possam ser executados em segundo plano, sem congelar o navegador. De verdade? Isso não é nem tão novo, nem tão revolucionário assim. Para o sujeito que está desenvolvendo um Gmail, pode fazer diferença. Mas para pequenas aplicações, ou mesmo as medianas, dessas que a gente desenvolve todo dia, tudo poderia ser resolvido com cookies e um pouquinho de inteligência, sem demandar a instalação de um plugin.

Por fim, os feeds no Orkut. Aqui a experiência de quem esperava algo realmente novo pode ser decepcionante. Leia os comentários do Charles Pilger sobre o assunto, por exemplo.

Apesar disso, há algo que pode realmente fazer diferença nesse tipo de produto: massa crítica, quantidade de usuários, visibilidade. O Surface pode mostrar ao mundo a idéia nova. Talvez eu nunca venha a ter um Microsoft Surface, mas quem sabe eu daqui a algum tempo comecem a vender o XingLing Surface, o Itautec Surface ou o Positivo Surface? Tenho perguntado ao auditório, nos Encontros Locaweb, quem usa leitores de feeds e quem fornece RSS de qualquer maneira. Num público de desenvolvedores, o número de pessoas que levantam suas mãos é assombrosamente baixo. Imagino que entre os seres humanos comuns este números deve ser ainda menor. Feeds no Orkut podem ser um excelente recurso educativo. Isso pode fazer muita gente descobrir o RSS.

Em relação ao Gears, assim como em relação ao Silverlight, que não está na lista acima porque já tem um tempo, acontece algo curioso. Quem teria coragem de apostar hoje numa tecnologia que exige a instalação de um plugin para que seu site seja usado? Se fosse qualquer empresa pequena que estivesse lançando um desses produtos, ele logo seria descartado como algo ridículo. Mas todo mundo tem suas em relação ao poder de empresas como a Microsoft ou o Google de fazer com que as pessoas instalem algo em suas máquinas.

Em suma, quando você tem metade da Internet usando seus produtos, as regras podem ser diferentes para você. E quando você lança um Google Notebook ou um Zune, as pessoas parecem se esquecer muito rápido que você fracassou.

Em relação ao fato de não haver nenhuma novidade nesses produtos, vale lembrar o que diz o Getting Real: uma boa idéia não vale quase nada, o que vale mesmo é uma boa execução. Embora o Surface não seja novo, parece pelos vídeos que foi executado de maneira exímia.

E, claro, a história dos computadores mostra que nem sempre os melhores vencem. Nada de certezas, por enquanto.

Links interessantes:

Songbird ainda não está pronto para mim

Como todo mundo anda elogiando, resolvi testar o Songbird. O programa é lindo! Mas eu acho que ainda não vou conseguir usá-lo. Talvez eu não tenha entendido direito o funcionamento do programa, e algum leitor mais esperto do que eu possa me ajudar.

Eu entendi errado ou o Songbird não entende feeds de Podcast? Só consegui pedir ao programa para assinar o conteúdo de uma página, que carregue no navegador, não um feed XML[bb]. No caso de feeds que possuem uma folha de estilo XSLT para o navegador, como os do Feedburner, a coisa funciona porque o Songbird os entende como uma página web:

Songbird vendo um feed no Feedburner

Já se o arquivo XML não tem nenhuma mágica associada a ele, veja o que acontece:

Songbird vendo um feed XML

Ou seja, eu preciso visitar o site, e mandar o Songbird “assinar” a página que contém a lista de arquivos mp3. Há uma série de problemas com essa abordagem:

  1. Nem todos os feeds tem uma página HTML[bb] que liste os arquivos. Estes eu não posso assinar.
  2. O endereço da página pode mudar. Não deveria, claro, “cool URI don’t change” certo? Mas pode. E muita gente publica conteúdo só no feed, exclusivo para quem assina.
  3. Preciso navegar na minha coleção de podcasts e repetir este processo um a um.
  4. Por falar nisso, não há uma maneira de importar meu OPML. Incluir os podcasts um a um não é divertido. E como ele também não exporta, usar o Songbird significaria repetir o processo no dia em que eu resolvesse migrar para outro programa.

Ou seja, por enquanto ainda não vou me arriscar com o Songbird. É um projeto open source, baseado em XUL, logo é muito fácil criar extensões para ele e melhorá-lo. Qualquer um que saiba javascript pode colaborar. Quem sabe eles não resolvem isso rápido?

Yahoo! Pipes: criar mash-ups é como brincar de Lego

http://pipes.yahoo.com/

Assombroso. O nome deve de alguma maneira ser inspirado nos pipes do Unix. Sabe aquele papo que quem usa Linux vive dizendo, que o grande poder do Linux[bb] só é percebido quando você entende como usar o terminal e os pipes? Sabe aquele outro papo, do pessoal da semântica e do XML, de que essa coisas toda torna as aplicações mais fáceis de se integrar?

Pois é, o Yahoo! Pipes dá um gostinho das duas coisas. De um jeito que qualquer um com um pouquinho de raciocínio lógico consegue experimentar, sem precisar saber programar.

StayValid

O caso é muito comum: você cria um site com um gerenciador de conteúdos qualquer. Por exemplo, um blog WordPress. Você valida o código e o site passa perfeitamente pelo validador. Mas, depois de algum tempo, alguém, você, seu cliente, seu colega, seu cachorro ou seu papagaio fazem um post no blog, ou alteram um conteúdo no CMS e isso quebra a validação. E você só vai descrobir sabe-se lá quanto tempo depois.

Como resolver este problema? Validar todos os seus sites, todos os dias?

O StayValid valida seu site para você, todos os dias, de hora em hora. Insira o endereço de seu site e o StayValid vai criar um feed RSS[bb] onde você pode acompanhar os resultados da validação. Se tudo correr bem, você vai receber apenas uma notícia por dia, do StayValid dizendo que validou seu site. Se ele encontrar um ou mais erros, ou se o resultado da validação mudar (por exemplo, você tinha três erros e agora só tem dois) o StayValid vai validar de hora em hora e te avisar via RSS.

Em tempo: o StayValid nasceu de uma necessidade nossa, e se tornou possível porque o código de resultados do validador do W3C é XHTML válido. Bastou então escrever um arquivo XSLT que transformasse os resultados num RSS.

Bloglines ainda reina supremo, pelo menos para mim.

Enquanto o Ronaldo está procurando uma alternativa para o Bloglines, o Henrique se assusta com sua popularidade.

Eu, por enquanto, continuo no Bloglines. Passei algum tempo usando Newshutch. As alternativas que eu tinha visto até então eram complicadas e lentas, e eu preferia um Bloglines sem Ajax a um Google Reader cheio de Ajax que só atrapalhava. Até que encontrei o Newshutch, que tem Ajax na medida certa e não confunde os feeds lidos com não lidos como o Bloglines tem feito. Passei um bocado de tempo usando o Newshutch, quase satisfeito, mas voltei para o Bloglines por um único motivo: é o único que funciona em meu Nokia 6111.

Leio e respondo meus e-mails nele, acesso o Internet Banking (só Bradesco, o Itaú por enquanto não funciona), publico coisas neste blog, no da Visie e no Tableless e modero comentários, acesso o Google Maps e, usando o excelente MobyExplorer, até publico fotos e conserto pequenos bugs de programação em situações de emergência. Todas as aplicações da Visie funcionam nele. Não vou abrir mão de algo tão simples quanto ler meus feeds.

Se você souber de algum agregador legal com suporte ao Opera Mini, por favor me avise para eu testar. Enquanto isso, continuo no Bloglines.