Acorda pra Web!

Tecnologia que vai mudar nossas vidas, depois do café.

Arquivo de May, 2007

GRDDL - Sugando Páginas da Internet

Saturday, May 19th, 2007

Nem me pergunte, eu não sei como se pronuncia isso! :) Só sei que é uma tecnologia útil:

O GRDDL, que significa Gleaning Resource Descriptions from Dialects of Languages (ufa!) ou Coletanto Descrições de Recursos de Dialetos de Linguagens é uma maneira legal de extrair informação organizada de uma internet organizada. Basicamente, o GRDDL funciona assim:

  • A Web atualmente é desorganizada. Semanticamente, existem muitos dialetos, ou seja, pequenos padrões internos dentro dos sites. Cada site usa seu próprio padrão pra criar os elementos HTML, por exemplo.
  • A Web Semântica traz um dialeto universal, um padrão uniforme pra descrever recursos: O RDF. Poucos sites o utilizam.
  • As ferramentas pra trabalhar com RDF não lêem os demais dialetos, que são em HTML normal.
  • Mecanismos GRDDL lêem os dialetos específicos e transformam em RDF.

Pra isso, obviamente, é necessário construir GRDDL para cada fonte que você deseja coletar. GRDDL é baseado em XSLT, uma linguagem que transforma arquivos XHTML e RDF.

O difícil mesmo é criar um exemplo pra isso. O W3C ainda está trabalhando em um documento com exemplos e explicação para iniciantes. Quem sabe eu não me animo e faço algo em português pra exemplificar :)

Validação significa muito

Thursday, May 17th, 2007

As duas principais linguagens de marcação na internet e suas principais características são:

  • HTML: Atualmente na versão 4.1, é uma revisão do HTML 4 depreciando os elementos exclusivos de formatação e deixando apenas um núcleo formato de elementos semânticos. Ainda é uma recomendação do W3C.
  • XHTML: Atualmente na versão 1.1, embora a 1.0 ainda seja recomendada. É um “HTML escrito em XML“.

Em termos gerais, não existe diferença semântica entre o HTML e o XHTML. Eles tem exatamente o mesmo propósito semântico: formatar dados de páginas da internet. E esqueça esse papo de que o XHTML é uma evolução do HTML, não é.

A diferença crucial entre o HTML e o XHTML é a forma como ambos devem ser tratados. Geralmente se fala muito do MIME dos documentos e do problema que alguns navegadores tem ao tratar o MIME do XHTML, que deve ser application/xhtml. Além do MIME existe um característica muito mais importante: XHTML precisa validar, HTML não.

Todos os navegadores e ferramentas que lêem XHTML, ao encontrar um mínimo erro de formação, deveriam gerar um erro fatal e não processar o documento. Essa é uma característica primordial do XML que tem como objetivo torná-lo rápido evitando consertar erros automaticamente verificando-os antes.

Por outro lado o HTML não precisa ser validado. Navegadores e ferramentas que lêem HTML devem ignorar erros de formação e continuar lendo o documento.

Em outras palavras, um erro de validação em um site XHTML deveria derrubar a página inteira, enquanto no HTML não. Isso significa muito. Eu digo deveria porque os navegadores hoje em dia não seguem essa recomendação do W3C.

Quem conseguir explicar porque eu não discordo do artigo publicado pelo Henrique (sim, ele também está certo), entendeu muito bem a questão da validação! Algum voluntário?

WYSIWYG, padrões e monografias

Wednesday, May 16th, 2007

HTML e CSS, conteúdo e apresentação, mortadela e pão. São exemplos de duas coisas distintas que devem ser desenolvidas separadamente. Um editor WYSIWYG tenta o impossível: editar dois aspectos opostos de um documento em uma única etapa.

A idéia de um editor perfeito seria aquele que tem duas etapas de edição:

  1. Criação do conteúdo: Você cria títulos, citações, ligações, referências, abreviaturas, tabelas e tudo mais.
  2. Criação da apresentação: Agora sim você pode atribuir bordas, espaçamentos, fontes, cores, fundos e etc. Tudo baseado na etapa anterior.

Um editor que se assemelha bastante à essa primeira etapa é o WYMeditor. Nele você edita cada bloco de texto definindo semanticamente o que cada um representa. O que falta mesmo é a segunda etapa, na qual o indivíduo poderá alterar a aparência do conteúdo da maneira que quiser.

Isso resolveria muitos problemas dentro e fora da internet, como por exemplo a criação de monografias de acordo com as normas brasileiras.

A maioria das pessoas criam suas monografias utilizando programas como o Microsoft Word, que é um editor WYSIWYG tradicional. A pessoa tem que se preocupar com recuos, margens, espaçamentos, espaços entre linhas e tudo mais. Se a monografia fosse criada em duas camadas, bastaria a pessoa criar o conteúdo e a segunda camada poderia ser apenas um arquivo css que gera todas essas formatações normatizadas.

Inclusive, se alguém fizer um CSS e um modelo HTML de monografia completamente nos padrões da ABNT (e da web), crio um post totalmente dedicado a isso e um link permanente no Acorda pra Web! para o site do criador :)

Semântica é um webstandard e ponto!

Wednesday, May 16th, 2007

Você desenvolve usando a filosofia tableless, ótimo. Ela diz que devemos usar os padrões da internet como guia.

Quem conhece os padrões deve saber que existe pra cada tecnologia considerada um padrão uma especificação técnica na página do W3C. Você já leu alguma?

Pois é, chegou a hora de encarar os fatos. Se você não constrói HTML semântico você não está seguindo os padrões.

Chega a ser irônico alguns desenvolvedores seguirem a filosofia tableless e só se preocuparem de fato se devem ou não usar apenas as tabelas, esquecendo que os outros elementos do HTML, principalmente o <div>, também devem obedecer regras e padrões.

Na especificação do HTML você verá que a semântica é importante e devemos respeitar o conteúdo e significado de cada elemento e atributo, e não somente as tabelas.

Se não sabe por onde começar pode dar uma olhada na lista de elementos HTML a cada vez que for usar um deles. Embora seja cansativo é um ótimo exercício didático.

Sala Meebo: Padrões da Internet

Monday, May 14th, 2007

Atualização rápida: O Meebo, famoso serviço de mensagens instantâneas acabou de lançar uma nova versão com uma ferramenta interessante: Salas.

A idéia é absolutamente incrível! É uma sala de chat muito inteligente: Quando você envia um endereço web para a sala, o Meebo processa a URL e relaciona a mídia em uma área especial da janela.

Se uma página é enviada, ele mostra uma pré-visualização da mesma. Quando posto um vídeo do YouTube por exemplo, ele mostra um player na área de mídia. Essa é uma ferramenta completamente diferente do que já vi e que tem um potencial enorme!

Criei uma sala para Padrões da Internet, os WebStandards e uma sala para Blogosfera. Convido todos a testar a ferramenta, postar endereços de páginas, vídeos e imagens (relacionados aos temas das salas) e ver o resultado. Abaixo está a sala de Padrões da Internet em formato widget:

O que acharam?

A origem semântica dos microformatos

Monday, May 14th, 2007

Toda coisa pode ser descrita com classes e propriedades. Alguns exemplos simples de uma classe fruta:

  • Coisa maçã-agentina com as propriedades cor:vermelha e estado:madura
  • Coisa laranja-lima com as propriedades origem:brasil e estado:madura
  • Coisa limão-thaiti com as propriedades preço-por-kilo:0,89 e estado:maduro
  • Coisa uva-itália com as propriedades destino:exportação e estado:verde

E também pode haver hierarquia nas classes:

  • Classe fruta
    • Classe fruta cítrica
      • Coisa laranja
      • Coisa limão
    • Coisa laranja
    • Coisa uva

Isso é particularmente importante na internet para que máquinas começem a processar os dados de maneira cada vez mais eficiente. E o mais legal é que quase existe um mecanismo pra isso, muito difundido: HTML.

No HTML temos várias tags que delimitam coisas, nosso conteúdo. Podemos identificar coisas usando o atributo id e classes usando o atributo class de qualquer tag. O que falta mesmo é a descrição de propriedades.

Pra suprir essa necessidade, foram criados padrões de formatação que complementam o HTML, usando o conteúdo das tags como valores para propriedades. O mais famoso deles é o conjunto de microformatos, veja o exemplo:

HTML:
<div class="section vcard" id="author-data">
por <a class="url fn" href="http://alexandre.gaigalas.net/">Alexandre Gomes Gaigalas</a>
<div class="org">zeta Internet</div>
</div>

Nesse exemplo acima, temos algo parecido com isso: Coisa autor com as propriedades fn:Alexandre Gomes Gaigalas. (fn significa first name, ou primeiro nome em português), url:http://alexandre.gaigalas.net e org:ZetaInternet. Tudo isso na classe vcard, que define cartões pessoais.

Como você pode ver, não existe exatamente um padrão uniforme para os microformatos. Cada microformato tem sua “fórmula” e deve ser criado de acordo com ela. Não existe uma maneira de tornar uniformes ids, classes e propriedades.

Por outro lado o RDFa tem um suporte muito bom a todos os aspectos nos quais os microformatos falham, o único problema é que é um módulo do XHTML.

Pois é, teremos que esperar. Enquanto isso podemos fazer algumas coisas até legais com as poucas ferramentas que temos. Um exemplo é essa área de transferência inteligente feita com eRDF e SPARQL. Pra usar o exemplo, clique em algum retângulo laranja, depois copie (Ctrl+C), clique em outro e cole (Ctrl+V). Sugiro que cole nos que estão em branco, são os mais divertidos.

Design virou coisa de programador

Sunday, May 13th, 2007

Designer bom hoje em dia tem que saber CSS, senão já sabe o que acontece né? É quase certeza de briga com o programador. E o programador tem razão! Como se não bastasse ter que construir o acesso aos dados ele ainda terá que criar folhas de estilos? Sem chance.

Códigos que não tem nada a ver com o assunto do artigo, mas ficam bonitos.Aí é que está o grande problema: Há uma carência muito grande de ferramentas visuais pra CSS, o que torna essa linguagem praticamente código puro. Não tem jeito, você terá que abrir o editor de código e fazer as folhas de estilo na unha.

Isso prova quanto tempo as empresas estavam cegas para os padrões web. O Dreamweaver, um popular editor visual para criação de websites, teve sua explosão de popularidade em 1999, pouco tempo depois do lançamento do CSS nível 2. Só agora nas versões mais recentes, os padrões da web tem recebido um pouco mais de atenção.

Engraçado é que tem gente até comentando o futuro do css, pedindo revisões com menos intervalos de tempo e mais ferramentas para trabalharmos. Mas e o coitado do designer? Nenhuma ferramenta pra trabalhar de maneira prática com CSS é feita pra ele. Coitado do programador também.

Você já deu uma lida nos esboços do CSS nível 3? Sabe as bordas, fundos, texto e tudo mais que somos obrigados a fazer com imagens hoje em dia? Ele incorpora tudo isso.

Eu não sei o nome do primeiro editor CSS3 visual que surgirá, só sei que será um pouco de Photoshop, um pouco de Dreamweaver e totalmente visual. E vai vender muito.

Não gosto do Ubuntu

Saturday, May 12th, 2007

Não gosto do Windows, nem do Mac OSX, nem de nenhuma distro Linux que experimentei, especialmente o Ubuntu.

Logo que instalei o Ubuntu vi que o meu hardware mais bem-quisto, o meu mouse Genius de porta serial, não tinha sido reconhecido. Se fosse no Windows ou Mac, eu teria me virado com o teclado, mas no Ubuntu foi impossível, completamente inacessível. Isso é o de menos.

Eu acho todos os sistemas operacionais gordos demais. Eu não uso editor de texto, planilhas, jogos idiotas, duzentos tipos de navegadores diferentes, quatrocentos gerenciadores de janelas e não suporto aplicativos pra ler email.

Parece que toda distro Linux tem a síndrome de querer ter tudo que o Windows tem, só pra dizer “viu, Linux pode ser uma merda igual o Windows”. E sabe do pior? Agora tem esse papo de Desktop 3D, que nojo.

Um amigo me deu uma solução, montar minha própria distro. Mas quem tem paciência pra isso? Quero usar meu sistema agora.

O sistema operacional perfeito pra mim é qualquer um que seja completamente modular, que eu possa instalar somente o que eu quiser. O meu teria o Firefox, Inkscape, GIMP e só, e esses dois últimos usarei porque ainda não saiu uma boa versão do Fauxto, um tipo de Photoshop online.

Enquanto isso eu fico com o Windows mesmo, ele reconhece o meu mouse de 6 anos atrás.

Dicas e críticas

Friday, May 11th, 2007

Atualização rapidinha com algumas críticas e dicas:

  • Há um tempo atrás conheci o Blogmusik, uma rádio online bem simples e descomplicada. O serviço ficou fora do ar pra reestruturação e deixei meu email no campo para ser avisado quando o serviço voltasse. Pois é, confiei no aviso que dariam e não visitei mais o site. Hoje descobri que voltaram e sequer me avisaram, ponto negativo pro Blogmusik.
  • Recomendo esse excelente tutorial sobre XML em português.
  • Sempre que uso algo em Flash de algum site, o Firefox não me deixa usar os comandos de teclado pra fechar aba, abrir nova aba e todos os demais. Isso é bastante irritante!
  • Eu timidamente inaugurei outro blog meu, o Metalingua, que também tem um Fórum. Ambos pra discutir sobre temas polêmicos. Se interessar, tá aí a dica!
  • Essa semana desassinei três feeds do meu leitor por um único motivo: Alteram algo e repentinamente todos os posts aparecem como não-lidos. Entre eles está o famoso ProBlogger.

Como um programador pensa?

Friday, May 11th, 2007

Quando eu começei com PHP, criava um arquivo pra cada página. Se eu fosse criar uma loja virtual, criava um arquivo produtos.php, um categorias.php, um detalheproduto.php e assim por diante. Eu pensava em páginas, em sites, em sistemas, em programas.

Depois que descobri a programação orientada a objetos, comecei a pensar em objetos. Criava o objeto que conectava ao banco de dados, os resultados das consultas eram retornados em objetos, sessões e cookies controladas por objetos. Embora eu construísse tudo com objetos ainda estava construindo sites, páginas na internet.

Finalmente quando me aprofundei nos estudos relacionados com a Web Semântica, vi que o grande erro era esse: programar páginas. O ideal pra mim se tornou focar todo sistema em informação real: Se a loja vende carros, eu crio um banco de dados sobre carros com cor, ano, marca, modelo, etc. Se é um site de flores, crio um banco de dados de flores com espécie, cor, origem, preço, etc. Isso torna as aplicações muito mais ricas.

Acredito que essa seja uma parte do trabalho de um Arquiteto da Informação, em conjunto com a organização final e apresentação do conteúdo para o usuário. No final, todos acabamos fazendo papel de Arquiteto da Informação, só resta saber se estamos fazendo nosso trabalho direito.