Web,ruby, Ajax ou qualquer outra coisa que me venha a cabeça (com prioridade para esta última)

30 julho, 2007

Concurso Agile - Vídeos

Para os agilistas que por aí andem há um concurso de vídeos sobre desenvolvimento Agile no youtube. Parece que até os bonecos dos legos gostam de desenvolvimento Agile.

Planeta Terra

Cem dias a comemorar fotografia: (seguem-se dois vídeos)

28 julho, 2007

Got API

GotAPI Este é um daqueles sítios que não posso chamar de cábulas mas é claramente uma grande referência para programadores.

div e span - II

Há uns poucos dias alguém comentava no meu artigo div vs span que gostava de conhecer um pouco melhor os elementos div e span. Eis uma primeira vista de olhos a esses dois elementos, claro está que para um melhor esclarecimento devemos recorrer às fontes do w3c.

div

Definição

As div são uma maneira genérica de agrupar áreas de conteúdo

Exemplo

O elemento div pode ser usado para criar o arranjo da página Web. O exemplo serve de apresentação à natureza de agrupamento do elemento div:


 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pt">
 <head>
 <title>Casa da Mata</title>
 <style type="text/css">
 navigacao {width: 200px; float: left;}
 conteudo {margin-left: 205px;}
 rodape {clear: both;}
 </style>
 </head>
 <body>
 <div id="cabecalho">
 ... [aqui deve ficar o anúncio e ou o logótipo] ...
 </div>
 <div id="navigacao">
 ... [aqui deve ficar o menu principal] ...
 </div>
 <div id="conteudo">
 ... [o conteúdo principal da página fica aqui] ...
 </div>
 <div id="rodape">
 ... [informação legal fica aqui] ...
 </div>
 </body>
 </html>

Boas práticas

O elemento div não contém significado semântico. É uma maneira genérica de agrupar áreas de conteúdo. Assim mesmo sendo permitido, pela especificação do XHTML, conter texto e elementos em linha considera-se melhor prática envolver texto e elementos em linha em elementos bloco com significado tais como p, ol, ul, dl, de h1 a h6, blockquote, etc. O exemplo seguinte mostra um enlace e texto e imagens dentro de um elemento div:


 <div class="bala semanal">
   <a href=   "/multimedia/interior/conteudo=408746">
       <img src="/armazem/ng1017428.jpg" class="chamada" alt="A semana em fotos">
       <br />
       <img src="/Comum/Imagens/2007/icone_fotog.gif" alt="" class="Icone">
       <p class="destaque medio">Fotogaleria</p>
       <br />
    ...
 </a>
  </div>

Note-se o uso de um atributo class na div com dois nomes.

span

Definição

O elemento span propicia uma maneira genérica de adicionar estrutura ao conteúdo. Trata-se de um elemento em linha

Exemplo

O elemento span pode ser usado com o uma maneira de aplicar formatação CSS ao conteúdo. No exemplo seguinte o elemento span no cabeçalho irá ter um fundo a ciano e o elemento span no parágrafo irá ter um fundo cinza.


 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pt">
 <head>
 <title>A Casa da Mata</title>
 <style type="text/css">
h1 span {background-color: cyan}
 p span {background-color: gray}
 </style>
 </head>
 <body>
 <h1>A <span>Casa da Mata</span> - É um descanso do guerreiro</h1>
 <p>A <span>Casa da Mata</span> foi construída como estalagem há 22 anos.</p>
 </body>
 </html>
 

Atributos

Atributos comuns

class
Este atributo atribui um nome ou um conjunto de nomes de classe a um elemento. Pode atribuir-se o mesmo nome de classe ou conjunto de nomes de classe a vários elementos. Quando se atribuir um conjunto de nomes os nomes devem ser separados por caracteres de espaço em branco. Normalmente usam-se nomes de classe para aplicação de regras de formatação CSS a um elemento.
id
Este atributo atribui uma ID a um elemento. Esta ID deve ser única no documento. Esta ID pode ser usada em guiões aplicados do lado do cliente (tais como os escritos em JavaScript) para seleccionar elementos ou para aplicar regras de formatação CSS ou para criar relações entre elementos.
text
Este atributo propicía informação auxiliar. Alguns navegadores irão apresentar esta informação em janelas de ponto. As tecnologias de assistência podem disponibilizar esta informação aos utilizadores como informação adicional sobre o elemento.

Atributos de internacionalização

xml:lang
Este atributo específica o idioma base dos valores do atributos de um elemento e do seu conteúdo textual.
dir
Este atributo específica a direcção base do texto. Este atributo pode tomar os seguintes valores:
  • ltr: da Esquerda para a direita
  • rtl: da Direita para a esquerda

Pode conter

  • Elementos em linha
  • Texto

27 julho, 2007

ruby-lang pt

Ontem estive à noite com o Joaquim, a sua namorada, o Francisco, o Pedro, e o João no Peters para o lançamento da versão portuguesa do sítio da ruby. Aquilo foi um mero evento social. Nele falou-se de tudo um pouco e a certa altura derivou-se para a forma como se gasta dinheiro, como há mesmo algum novo riquismo na forma de o gastar (Ver conta geral do estado).

Mesmo com esse nível de gastos podemos continuar a encontrar sítios como este: O sítio do Ministério da Cultura mostra o lado oposto uma pobreza franciscana (nenhuma referência ao Francisco) nos seus código e conteúdos.

Parece que o sítio foi concebido por um imberbe em desenvolvimento de sítios web, talvez até esteja a criticar a pessoa errada. Talvez me esteja a equivocar e a acusar o trolha de não saber de electricidade (como o da manutenção do semáforo).

Tenho que admitir que não esperava ver código com <font... ou <b num sítio oficial. Claro está que isto é um sítio com tabelas para tratar de arranjos.

Além da pobreza do código, a pobreza dos conteúdos é fantástica. Por exemplo fui ver a agenda, hoje 27 de Julho apresentam como destaques dança, música, exposições e teatro. Na dança destacam algo sucedido em 21 de Julho, algo que já não pode ser apreciado ao vivo. Tudo bem, será que tinham algo sobre as reacções do público ao espectáculo, não, isso seria demais.

Fico parvo quando veja que o estado gasta uma pipa de massa a auditar sítios oficiais, ou a tarefa encomendada aos auditores é algo que não gera alterações ou estão a auditar algo errado ou a própria auditoria enferma de defeitos ou uma combinação disto, não sei.

Acho que um dia destes crio um pastiche do site só para experimentar. Não parece muito difícil. O único problema é que aquilo parece tudo reles, uns botões animados que já ficavam mal em 1999.

26 julho, 2007

Off-Topic

Sempre gostei de uma boa estória e esta conta-se em poucas linhas.

Há uns anos a minha irmã mais velha dava aulas. Tinha hábitos fora do vulgar. Um dia resolveu levar um leitor de cassetes e uma k7 com a 5ª Sinfonia. Momentos depois de iniciar a aula surge um rapaz a transmitir um pedido do Sr. Prof. Caeiro, para baixar a música pois não conseguia dar a sua aula. Uns minutos depois aparece o mesmo rapaz a pedir para subir o som pois os alunos não conseguiam suportar a aula do Sr. Prof. Caeiro.

Isto é resultado da "minha" comemoração da alta da minha irmã. Boas vindas.

Planet I18n

O planeta i18n foi lançado pela actividade de internacionalização do w3c. Neste planeta surgem entradas de blogues (que exprimem as suas próprias opiniões) de todo o mundo sobre o que vai surgindo de interessante na área de internacionalização. Por exemplo, surge um artigo do blogamundo sobe Idioma perdido na agregação (como a de um planeta).

Como a internacionalização é tema central do ILG do WaSP tento (nos últimos 3 meses isto não tem sido verdade) acompanhar o que vem sendo escrito sobre este assunto. Este agregador vem ajudar nessa tentativa de acompanhamento.

i18n vem dos 20 caracteres da palavra inglesa internationalization menos os dois caracteres i e n (inicial e final).

Suporte Mozilla

A Mozilla está a criar um série de artigos sobre o funcionamento do firefox. Esperam que os candidatos a autores se autoproponham.

23 julho, 2007

Rake - Um Ajudante da Automatização das Tarefas

Necessita de automação? Use Rake ou Sake!

Para quem não conheça o Rake é uma linguagem de domínio específico escrita em Ruby.

Neste artigo vou introduzir a rake e descrever algumas pistas para automatização de tarefas repetitivas que se fazem no dia a dia.

Teoria

A Rake foi desenvolvida por Jim Weirich e baseia-se em Ruby, o que quer dizer que temos acesso completo às capacidades da Ruby de dentro da Rake. A Rake não está limitada aquilo que conhece em ferramentas similares é muito mais poderosa e flexível (isto é aliás um sinal de perigo).

A Rake funciona à base de dependências. Quando se escreve um guião Rake iremos dizer-lhe que uma dada tarefa depende de outra e assim sucessivamente. Deste modo podemos construir uma receita completa para explicar como fazer as coisas e a respectiva ordem de execução.

Como a Rake é construída em Ruby podemos fazer o que quisermos nas suas tarefas:

  • manipular ficheiros
  • compilar os nossos programas
  • limpar o nosso (do computador claro) sistema de ficheiros
  • gerar esqueletos de aplicações
  • e ainda muito mais

Primeira Tentativa: Adicionar uma tarefa e fazer com que seja executada por omissão


task :default => [:ola]
desc "Esta é a nossa primeira tarefa"
task :ola do
  puts "Olá! Sou a primeira tarefa escrita por nós!"
end

desc "Execução de Teste"
task :test do 
  require 'rake/runtest'
  Rake.run_tests 'tests/*.rb'
end

Na primeira linha dizemos ao rake que a nossa tarefa por omissão, a que é chamada quando usamos rake na linha de comando sem aditivos será a tarefa designada por ola. Pode ainda tentar chamar-se explicitamente essa tarefa usando o comando rake ola

Depois na linha seguinte descrevemos a tarefa que vamos executar. Esta descrição irá ser impressa quando usamos o comando rake -T para ficarmos a saber quais as tarefas disponíveis no nosso Rakefile.

Finalmente definimos a nova tarefa ola usando a palavra chave task. Aquilo que colocamos dentro da tarefa é código Ruby perfeitamente normal.

A Rake oferece algumas capacidades de manipulação de ficheiros, criação de gemas e coisas que tais. Deve ler a sua API para mais informação.

Usamos essas capacidades para a tarefa testes ao carregar a biblioteca distribuida com a Rake e chamando um desses métodos. Por exemplo estamos a carregar a biblioteca runtest e executar cada ficheiro de teste que se encontre na pasta de "tests".

Encadear tarefas


task :carregar_ficheiros do
  # fazer o carregamento
end

task :ligacaossimbolicas => :carregar_ficheiros do
  # criar ligações simbólicas do lado do servidor
end

task :instalar => :ligacaossimbolicas do
  # instalar a última revisão do nosso projecto
end

Agora temos uma série de tarefas que podemos usar. Se escrevermos rake instalar, essa tarefa irá chamar a tarefa ligacoessimbolicas que depende da tarefa carregar_ficheiros. Assim a Rake irá executar a tarefa carregar_ficheiros em primeiro lugar, depois a tarefa ligacoessimbolicas e depois instalar.

É assim que pode encadear tarefas e assegurar-se que todos os passos exigidos são executados antes de executar o que está a pedir ao Rake.

Conclusão

Se começar a usar Rake para automatizar as suas tarefas rapidamente compreenderá que é uma ferramenta poderosa e fácil de usar. Uma das coisas mais interessantes é que a Rake foi construída em Ruby e que Ruby pode correr em qualquer sistema operativo. Claro que saber Ruby irá ajudar a aprender realmente a usar a Rake e a escrever a suas próprias tarefas simples mesmo que seja s o um principiante em Ruby.

A Rake não é só para utilizadores de Ruby, pode ser usada para montar programas em C, limpar o sistema de ficheiros, instalações, administração das suas bases de dados, ...

19 julho, 2007

Os Desafios dos Navegadores

Mozilla, produtores (talvez seja um termo excessivo) do firefox possuem disponível e visível uma lista de desafios que podem vir a encontrar dos seus concorrentes (do firefox)

3 sítios conformes as WCAG 1.0 A

A nomensa foi contratada pelas Nações Unidas para efectuar uma auditoria de acessibilidade Web a nível mundial. Nessa auditoria foram, passe o pleonasmo, auditados 100 sítios em 20 países e todos apresentavam inconformidades em relação às WCAG 1.0 embora 3 (governos) passassem o nível básico de verificação.

Os sítios analizados incluiam as seguintes áreas:

  • Companhias aéreas,
  • bancos,
  • imprensa,
  • política e
  • lojas

A Internet Crachou

Neste vídeo a *NN "informa" que a Internet Crachou.

18 julho, 2007

A Obra do Frei Gil

Este mês o Planeta Geek apoia a Obra do Frei Gil instituição que acolhe crianças e jovens em risco. Quem desejar ajudar poderá efectuá-lo divulgando esta acção ou fazendo um donativo conforme informação que podem encontrar na página acima assinalada.

12 julho, 2007

Open XML - Aberto para a asneira

A vantagem de escrever uma norma com participação de várias entidades é evitar fazer asneiras como a abaixo descrita: Nas funções trignométrica da Open XML SIN (Part 4, Section 3.17.7.287), COS (Part 4, Section 3.17.7.50) e TAN (Part 4, Section 3.17.7.313) esqueceram-se de indicar se os seus argumentos são ângulos expressos em radianos ou graus. (ligação para a fonte original de Rob Weir. Nessa peça pode encontrar outras limitações à interoperabilidade do OOXML por omissão de definição de vários aspectos de determinadas fórmulas e funções ou por uma especificação algo fora do vulgar. O outro aspecto estranho desta especificação é o seu volume.

02 julho, 2007

A reboque

Que raio de Geeks somos quando para vermos isto tenho que ver na internActu.

P.s. ó MG desculpa lá ir a reboque do tema do dia. E parece que estava a dormir quando dei o nome à entrada anterior.

Que futuro para as democracias

Introdução

Que uma pessoa seja ignorante sobre determinado assunto é razoável. Que uma pessoa ignorante sobre determinado assunto elabore uma resposta apressada quando exerce um carga público significa que além de ignorante sobre o tal assunto é também inapta para a vida pública.

Este entróito serve para dizer que quando um dos pilares de uma democracia, o pilar judicial, tem um inapto digital que se atira de cabeça e responde como fez o actual Procurador da Republica sobre conteúdos existentes em blogues temos um dos pilares da democracia em má forma. Então porque não eu também atirar-me ao assunto, o futuro da democracia, e paciência se me espalhar ao comprido. A minha audiência é muito menor e a minha capacidade de influenciar também.

O mundo encontra-se numa encruzilhada algo complexa e perigosa e julgo que a Internet pode ser uma ferramenta importante para reduzir esse risco e essa complexidade. Acredito no poder de pessoas comuns comunicarem umas com as outras poder ajudar na resolução de alguns dos problemas

Democracia e Liderança

Se democracia é uma forma de poder então alguém o exerce. Quem serão os líderes do futuro? Serão pessoas medianas como nas democracias estabilizadas no mundo dito ocidental ou serão os líderes locais dos novos aglomerados do tipo de bairro da lata que são os locais com maior aumento populacional no planeta como diz Steward Brand. Pessoas com preparação académica reduzida ou nula, mas que mesmo com esses baixos conhecimentos académicos mostram capacidade de organização para gerirem o sistema de cobrança de água em fontanários público em Luanda num projecto acompanhado pela Águas de Portugal para a EPAL - EP )ou que criam autarquias na Turquia com casas construídas de noite, que não podem ser deitadas abaixo a não ser com o devido processo judicial e que quando o aglomerado atinge as 2000 pessoas podem pedir para formar uma autarquia. (Robert Neuwirth: "shadow cities"). Ou ainda o caso da biblioteca de Backul que foi formada graças a um grupo de 1000 pessoas que doaram livros.

Liberdade ou autoritarismo

Nos últimos tempos temos vivido em Portugal com expressões por parte de alguns dos nossos governantes no mínimo inusitadas. O ministro da saúde deu uma entrevista a um jornal. Nessa entrevista disse (parece algo displicente) que nunca tinha ido nem tencionava ir a um SAP. A mim parece-me que se o ministro da saúde acha que o serviço prestado por esses organismos públicos sob a sua alçada não é adequado ao fim a que foram destinados tem algumas opções entre elas fechá-los e assumir as consequências ou alterar o seu funcionamento de forma a ser mais adequado (e até ele senhor ministro ficar seguro de valer a pena usá-lo ou ainda dimitir-se se for incompetente. Tentar tapar com a peneiro o sol é que parece ser algo estranho. Uma pessoa deve ser livre de emitir as suas opiniões (mesmo políticas) (salvo os casos em que a lei tenha um preceito expresso como no caso das forças armadas e dos juizes). Outro caso de falta de senso é quando um primeiro ministro processa alguém sem que se perceba claramente onde é que esse alguém tenha eventualmente mentido. Esta deriva contra a liberdade de expressão parece mais acentuada no PS que já tinha tido no passado a questão terravista. Parece que andamos com falta de liderança e excesso de arrogância.

Nos EUA existem grupos que advogam na defesa dos nossos direitos numa cultura digital emergente, será que não poderão nascer grupos destes em Portugal.

Alguns destes grupos acham mesmo que com a continuação de legislação restritiva qualquer dia será impossível a muita gente efectuar vídeos (os militares americanos no Iraque praticamente estão proibidos de o fazer usando as redes militares (e já acham um ataque à sua liberdade de expressão)) visto estar-se a pensar exigir por exemplo em Nova Iorque um seguro de um valor exorbitante que ainda por cima poderá ser usada (a exigência) de forma discriminatória.

A importância da imprensa como

O software livre é uma questão de liberdade: as pessoas devem poder ser livres de usar software da maneira que considerem mais apropriada desde que socialmente útil). O software livre é software desenvolvido e mantido em conjunto e qualquer pessoa pode usá-lo, copiá-lo, estudá-lo, modificá-lo ou melhorá-lo.

Mudança de atitude

Os problemas que são enfrentados no mundo e em Portugal exigem uma mudança de atitudes. Deixamos de poder entregar o poder (passe a expressão) aos nossos representantes esperando que eles tratem dos nossos assuntos. Quando em 1992 Severn Cullis-Suzuki discursou na Cimeira da terra, foi uma menina de 12 anos a dizer isso mesmo.

O vídeo acima tem legendas em português do Brasil.

Uma das entidades que tem procurado esta mudança de atitude é a WorldChanging que partiu da ideia de que já existem verdadeiras soluções para construirmos o futuro que desejamos, basta tratarmos das coisas por nós.

Responsabilização

O governador de uma província nigeriana foi preso em Londres por ter desviado alguns milhões de dolares. Após ter fugido vestido de mulher foi obrigado a resignar e foi preso na Nigéria. Disse-o a ex-ministra das finanças Ngozi Okonjo-Iweala.

Cada vez mais temos que ser exigentes conosco e com os nossos representantes. Será que entre 230 não há mais do que 5 blogueiros. Será que temos que fazer algo como o They Work For You.

Será que podemos (e eu diria deveremos) ler regularmente o que se passou na nossa assembleia municipal e ver onde foi gasto e onde se preve gastar dinheiro e outros recursos. Será assim tão exotérico este exercício.

Será que podemos criar/participar e grupo ou grupos (mesmo que informais) que queiram melhorar o meio onde vivemos. Por exemplo criar um site para colocar-mos as nossas promessas/visões para melhoria da nossa rua, do nosso bairro, da nossa cidade e do nosso país.

Será que não deveremos reclamar mais (por escrito e ficando com a respectiva cópia) para que mudem quer atitudes quer processos de trabalho. Há cerca de 1 mês estava a acompanhar o meu pai à área de Imagiologia do Santa Maria, uma senhora estava literalmente possessa por terem feito esperar o marido numa cadeira de rodas várias horas, tendo este que lhe ligar e ele ter que sair do seu local de trabalho para o fazer circular no hospital para a secção onde o estavam à espera pois não apareciam auxiliares para essa tarefa - desconheço os termos usados pela senhora na respectiva reclamação mas ela estava francamente nervosa. Ou então reclamar-mos quando representantes legais de um banco (de capitais maioritariamente espanhóis) faz esperar no notário uns desgraçados que tiveram o azar de lhes pedir um empréstimo para aquisição de casa e que esses mesmos representantes não se tenham certificado de que todos os documentos estavam conformes (tendo o banco cobrado um valor por esses serviço).

Algumas destas coisas poderão parecer não ter nada a haver com democracia mas para que uma democracia o seja é necessário que cada um participe, na medida das suas possibilidades e desejos puxando cada um para o seu lado e chegando a compromissos para toda a comunidade e não sendo amorfo ou atirando as "culpas" para "os outros".

Há ainda algo mais insidioso para o futuro das democracias se continuarmos a deixar a corrupção encapotada seguir o seu caminho. Lawrence Lessig acaba de lançar um wiki para recolha de ideias sobre este assunto. Nele fala-se não da corrupção descarada de algum funcionário ou político pedir ou aceitar dinheiro ou outro meio de troca para uma finalidade não legal ou para acelerar um processo, mas sim de algo mais escondido como por são os casos em que uma decisão é impropriamente influenciada antecipando-se alguma forma indirecta de ganho ou perca financeira. Assim dinheiro, ou uso de bens (alguém se lembra de uma moradia no cruzamento da Marquês da Fronteira com a António Augusto de Aguiar num campanha eleitoral), que seja aplicado numa campanha, financiamento de investigação, etc.

É claro que há países em que primeiro se terá que apontar a dedo os corruptores e corrompidos de tal forma é descarada a corrupção. Quando alguém diz que os corruptores passivos devem ser os únicos a sofrer as consequências dos seus actos, parece-me ter vistas curtas. Primeiro julgo mais útil tornar os actos mais transparentes (todos os actos administrativos). Porque é que há que fazer um remendo na rede pública de distribuição de água num sítio e noutro se adopta a solução de substituição integral e noutro ainda se cria uma verdadeira malha de distribuição de forma a reduzir ao mínimo os transtornos provocados pelo corte de água. Julgo que a divulgação pública dos estudos que levem a cada uma das decisões seria pelo menos mais transparente. Será razoável pagar na Madeira todos aqueles túneis e não fazer nas zonas do interior algum esforço de investimento de modo a tornar mais atractivo viver lá.

Há ainda algumas obras que antes de começarem parecem já ter meia dúzia de destinatários possíveis, felizmente que com a nossa adesão à UE hoje aparecem por vezes algumas empresas de fora e julgo que nas obras grandes o problema do cambão tenha se não desaparecido sido reduzido.

Democracia vs. Ditadura

Este parágrafo surge após conversa com outro membro do PG. Há algumas pessoas que por serem mais inteligentes (na sua opinião e provavelmente algumas delas têm razão quanto ao aspecto de serem mais inteligentes) do que a média acharem que os regimes democráticos se tornam uma ditadura das massas ignaras sobre eles. O argumento andaria algo perto disto: como sou mais inteligente sei mais do que os outros para me dirigir e para os dirigir (podem substituir este verbo se for demasiado forte.) Parece que não se percebe que é este o fundamento das ditaduras. Quem quer dirigir num ambiente democrático tem que convencer os seus concidadãos sobre os seus pensamentos e as suas acções. Não colhe aqui só os seus pensamentos as acções (pelo menos as apercebidas) é realmente o factor chave. Não serve o discurso aparentemente fluído de um Santana Lopes é necessário uma acção consequente de um Sócrates.

Conclusões

A democracia corre riscos, como aliás sempre correu. Ainda não apareceu um regime político que preserve melhor a liberdade individual e colectiva embora claro como qualquer construção humana não seja um regime perfeito, como Winston Churchil dizia é o melhor dos piores regimes (não há regimes bons). A tecnologia de que dispomos pode ser posta ao serviço da vigilância a favor da democracia ou pode ser aplicada ao serviço da vigilância em ditadura (ou a caminho).

Podemos usar meios existentes ou, devido à grande facilidade de criação de meios mais adequados às nossas necessidades específicas, podemos criar (digitais) meios à nossa medida. Por exemplo talvez fosse interessante criar um agregador de decisões de assembleias municipais onde as pessoas além de verem as decisões pudessem dar os seus contributos. O aumento da transparência das decisões parece-me importante. Podia ainda verificar-se que promessas os políticos fazem em campanha e quais são cumpridas e quais não são cumpridas e quanto tempo demoram a colocá-las em prática.

Quando um ministro dá uma entrevista deve evitar mandar boutades cá para fora pois como é evidente podem ser contestadas nos organismos públicos que supostamente superintendem. Acho estranho que se possam calar pessoas (não responderem sem autorização das hierárquias) (lei da rolha) a pessoas que não pertençam a corpos militarizados ou a orgãos de soberania em que eu compreendo que se aplique tal regra.

Existe tecnologia suficiente para cada um de nós participar e fazer saber qual a nossa opinião, não necessitamos de a delegar (elegendo de x em x anos os nossos representantes) e depois ficar calados durante algum tempo. Podemos tentar dialogar, mesmo que de forma indirecta usando blogues, e vlogues e podcast mostrando o que está mal e o que pode e deve ser mudado e mesmo o como.

PG blogues com entradas sobre este tema

Nota 1: Nesta entrada serão eliminados quaisquer comentários que sejam ataques pessoais explícitos. Serão claro aceites opiniões contrárias às aqui expressas. Tratem pois de me convencer

Nota 2: Este texto irá ser actualizado no futuro incluindo aqui uma lista de sítios e de conteúdos que versam este tema.

Nota 2: Peço desculpa do texto não estar lá muito coerente e algo desconexo mas realmente não tenho tempo para o refazer meia dúzia de vezes (sou muito lento a escrever), mas realmente estou mais preocupado com a minha irmã mais velha que já está em Santa Maria há 1 semana e ainda não acordou. Últimas: já esteve acordada 2 horas seguidas e depois de tempos a tempos.

Certificados-Firefox e Prémio de 1000 euros

No sítio do Mário Valente vem um pedido de ajuda com um pagamento prometido para quem conseguir o que lhe é pedido.

27 junho, 2007

Discussão sobre normas de documentos

O primeiro argumento que vejo que faz algum sentido a favor da puralidade de normas sobre troca de documentos abertos (ODF vs OOXML):

O requisito, para uma conformidade, com uma única norma monolítica não encaixa contudo, com a natureza descentralizada da produção da WWW e com a Web Semântica. Embora organizações como a UNESCO tenham analisado cuidadosamente a problemática do multilinguismo e multiculturalismo humano (UNESCO 2005), considerando-o como valor a preservar que a comunicação com e entre todos pode e deve ocurrer com a preservação dos idiomas locais e valores culturais - a liberdade de escolha de linguagens de computadores, isto é, a codificação de dados e programas foi largamento ignorada. Flávio Soares Corrêa da Silva

Só tem um detalhe que não aprecio aquelas normas destinam-se a máquinas em primeiro lugar e a humanos num segundo lugar muito distante.

Conferência SemGrail

A Microsoft Research teve há alguns dias uma conferência sobre web semântica onde foram apresentadas algumas teses interessantes entre estas há uma, Evolving the Web Through Open Data, de Harry Halpin, investigador posgraduado da Universidade de Edinburgh, em que conclui dizendo:

O cerne da questão é que em vez de dependermos de motores de busca centralizados não estruturados, como o motor da Google, uma série de aplicações poderosas da Web podem tirar vantagem da natureza inerentemente social e natureza estruturada da web de um modo descentralizado. Qualquer Web centralizada está essencialmente danificada, e os dados abertos através de RDF são actualmente a única equipa em jogo para a descentralização à escala da Web de dados abertos. A combinação de GRDDL, RDF e microformatos proporciona um primeiro passo prático para a implementação de dados abertos como camada por cima da Web actual.

Roots

Roots (raízes) é uma fundação livre para a web, com a finalidade de retirar o trabalho repetitivo em CSS, HTML e JavaScript que quem desenvolve sítios web incorre na maior parte dos sítios. É muito detalhada e inclui vários ficheiros separados. Actualmente a documentação é escassa. Para ser usada o utilizador desta fundação deverá ter pelos menos 2 anos de experiência em HTML e pelo menos 1 ano de experiência em CSS e JavaScipt. O utilizador deverá saber mesmo criar documentos com HTML semântico sem utilização de tabelas para o arranjo do sítio e escrever notação literal de objectos em JavaScript e ainda como criar classes e protótipos.

Roots tem as seguintes características:

  • Ficheiros HTML para serem incluídos de forma a ajudar a manter e organizar o seu sítio
  • Ficheiros CSS flexíveis incluindo:
    • CSS para arranjos mais habituais
    • CSS para vários estilos tipográficos
    • CSS para diferentes paletas de cor
    • Suporte para dispositivos com ecrã, impressão, portáteis e auditivos
  • Infraestruturas de Javascript incluindo: Prototype, Dojo, MochiKit, Mootools, Rico, Scriptaculous e Yahoo! UI Library.
  • Funções utilitáriazs em JavaScript, incluindo um auxiliar Ajax, o Encapsulated Load Object, suporte para PNGs em IE 5.5 & 6, um editor Ajax em linha, um auxiliar de criação de formulários e uma correcção para o problema Eolas "clicar para activar".

25 junho, 2007

Conhecimento - Não encontrado

Como eu sou um chato (quase troll ou tendências trollianas) quando me aparecem tais seres por aqui tenho a tendência para me colocar do lado deles e tolerar o facto, por vezes isso conduz a coisas interessantes como por exemplo a do lado.

22 junho, 2007

HTML - Futuro

Parece que a comunidade que desenvolve sítios para a web está finalmente a acordar e a ver o que é que o futuro virá a ser. Começam a aparecer as primeiras críticas estruturadas quer genéricas quer específicas sobre o (X)HTML5 e o XHTML 2.0.

As discussões quanto a mim mais importantes têm a haver com o que se está a esquecer ter aprendido sobre acessibilidade e a utilização (ou praticamente a sua ausência) de elementos e sobretudo atributos necessários a uma web semântica.

Embora Lee Bryant possa ter razão quanto à necessidade de alimentarmos a nossa mente e não propriamente a máquina, isso não significa que não se possa tirar partido de uma máquina bem alimentada de informação e não só de meros dados.

15 junho, 2007

As 15 regras de desenvolvimento de sítios na Web da BBC

No blog do Tom Loosemore encontra-se uma entrada chamada de "Os 15 princípios da BBC [para desenvolvimento] Web" [en].

Como os acho interessantes e como estão sobre a licença Atribuição-Uso Não-Comercial-Partilha nos termos da mesma licença 2.0 Reino Unido resolvi colocar aqui uma tradução algo livre.

  1. Contruir produtos web que vão ao encontro das necessidades das audiências: antecipar as necessidades ainda não totalmente articuladas pelas audiências e então ir ao encontro dessas necessidades com produtos que estabeleção novos padrões. (Roubado da Google)
  2. Os melhores sítios fazem uma coisa bem, realmente bem: faça menos, mas execute de forma perfeita. (Novamente retirado da Google, com uma pista do Jason Fried da 37signals)
  3. Não tente fazer tudo sozinho: ligue a outros sítios de elevada qualidade. Os seus utilizadores vão agradecer-lhe. Use os conteúdos e ferramentas das outras pessoas para melhorar o seu sítio e vice-versa.
  4. Se tiver que falhar falhe rapidamente: faça apostas pequenas, faça muitas iterações, guarde os sucessos, mate as falhas, rapidamente.
  5. Trate a totalidade da web como a sua paleta criativa: não restrinja a sua criatividade ao seu próprio sítio.
  6. A web é uma conversação. Participe: adopte um tom relaxado e em conversa. Admita os seus erros.
  7. Qualquer sítio é tão bom quanto a sua pior página: Assegure-se que os processos editoriais seguem sempre as melhores práticas adoptadas.
  8. Assegure-se que todo o seu conteúdo pode ser página de chegada, para sempre (isto é a que se pode sempre ligar).
  9. Lembre-se que a sua avó nunca irá usar o "Second Life": ela poderá ligar-se à rede, mas com diferentes necessidades do que aquelas que os pioneiros têm.
  10. Maximise as rotas para o conteúdo: Desenvolva tantas agregações de conteúdos sobre pessoas, locais, temas, canais, redes e tempo que lhe sejam possíveis. Optimize o seu sítio de modo a aparecer bem colocado no Google.
  11. Design e navegação consistentes não quer dizer que um tamanho serve para todos: Os utilizadores devem sempre saber que se encontram num dos seus sítios, mesmo que estes tenham uma aparência diferente. Mais importante que isso sabem que nunca se irão perder.
  12. A acessibilidade não é um extra opcional: os sítios concebidos dessa forma funcionam melhor para todos os utilizadores.
  13. Deixe que as pessoas copiem o seu conteúdo para as paredes das suas casas virtuais: encorage os utilizadores a tirarem as gemas do seu conteúdo com elas, com ligações de volta para o seu sítio.
  14. Ligue-se a discussões na web, não as hospede: só hospedar discussões baseadas na web onde tal faça claramente sentido.
  15. A personalização não deve criar obstáculos, deve ser elegante e transparente: Não se esqueça que os dados são dos seus utilizadores. É melhor respeitar isso.

14 junho, 2007

A List Apart 239

O A List Apart nº 239 saiu dia 12 de Junho. Neste número o primeiro artigo trata de infraestruturas para web designers (em compara as suas vantagens com as infraestruturas de programação em javascript). O segundo artigo é um artigo mais filosófico e que trata da importância e indispensabilidade dos seres humanos na produção de sítios web.

08 junho, 2007

SIOC - Guia do programador

SIOC ou Comunidades On-line Semanticamente Interligadas é uma infraestrutura cuja finalidade é interligar sítios on-line de comunidades e discussões baseadas na Internet.

Produzir dados SIOC

  • Há uma lista de correio "SIOC-Dev" para programadores nos Grupos do Google;
  • O vocabulário SIOC para termos de descrição semântica de discussão está disponível e pode ser combinado com outros vocabulários como FOAF, SKOS e Dublin Core;
  • Foi disponibilizada a API de PHP para SIOC de modo a poder produzir-se dados SIOC a partir de aplicações baseadas em PHP;
  • Pode escrever um exportador SIOC e ligar o seu sistema de discussão à Web com capacidades de metadados.

Usar Dados SIOC

  • Pode encontrar-se uma série de origens de dados SIOC na página de wiki SIOC "Enabled Sites", ou descarregando a lista de exportação a partir de PingtheSemanticWeb.com.
  • A SIOC e a linguagem de inquérito SPARQL desacoplam os consumidores de dados de discussão de detalhes particulares de um motor de blogue ou CMS;
  • Foram desenvolvidos um crawler e um navegador e está disponível código em open source a partir do repositório SIOC.
  • ;
  • Outras aplicações que usam dados SIOC são SemRadar, OpenLink Data Spaces e TalkDigger;
  • Pode criar os seus próprios navegadores SIOC ou outras aplicações a partir dos recursos acima mencionados.

Nota: ver originais em

SIOC - Guia de Utilizador final

Original em:http://sioc-project.org/

SIOC ou Comunidades On-line Semanticamente Interligadas é uma infraestrutura cuja finalidade é interligar sítios on-line de comunidades e discussões baseadas na Internet.

O que é que posso fazer?

  • Carregar um plugin exportador para o seu sítios de blogues - há plugins para WordPress, Drupal, DotClear, b2evolution e outros...
  • Adiconar um botão SIOC ao seu sítio!
  • Instalar o extra Semantic Radar ao Mozilla Firefox de modo a que voçê (e um serviço de ping) seja notificado se estiver em presença de dados SIOC;
  • Junte-se à comunidade e diga-nos como deseja usar a SIOC.

O que é que obtemos?

  • Mais visibilidade dos nossos sítios através de serviços que fazem uso de dados SIOC (crawlers, navegadores, aplicações de visualização);
  • Métodos melhorados para utilização de tagging e metadados semânticos;
  • Mais conhecimento sobre a estrutura de um sítio assim como dos seus conteúdos;
  • Mais ligações entre sítios que discutam tópicos complementares via esta "SIOC-o-esfera";
  • Respostas relevantes a perguntas em vez de resultados potencialmente correctos a partir de palavras chave, isto é "encontrar todas em entradas feitas por John e entradas feitas por alguém que as tenha comentado ou tenha ligado ao blogue do John (find me all blog posts by John and posts by anybody else who has commented on or linked to John's blog)"

SIOC - Sumário para Executivos

Comunidades on-line interligadas semanticamente (do inglês SIOC) é uma infraestrutura que tem por finalidade interligar sítios comunitários on-line e discussões baseadas na Internet. Actualmente as comunidades on-line são maioritariamente como ilhas, possuindo informção valiosa mas não muito bem ligada. A SIOC permite-nos interligar estes sítios, e permite-nos a extração de informação mais rica a partir de vários serviços de discussão.

http://sioc-project.org

Breviário SIOC

  • O cerne da SIOC é a ontologia. É um vocabulário que contem os conceitos necessários à expressão de informação contida em sítios comunitários on-line.
  • Então os sítios on-line comunitários fornecem informação sobre a sua estrutura e conteúdos ao mundo exterior. Esta informação é legível por máquina e estruturada usando a ontologia SIOC.
  • Visto a informação já estar presente nestes sítios, tudo o que é necessário é instalar um extra exportador SIOC como plug-in ou extensão.
  • Esta informação pode ser usada por ferramentas que compreendam dados SIOC para sugestão de informação relacionada a partir de outros sítios comunitários.

Usos actuais e futuros da SIOC

  • Criação de conversações distribuídas usando blogues, forúns e listas de correio;
  • Usar como formato melhorado de exportação/importação, com acesso seja ao conteúdo completo seja a sumários;
  • Permitir a publicação e subscrição de canais descentralizados de discussão e de comunidades descentralizadas.

05 junho, 2007

Método para determinação de OS em Ruby

Quando se quer saber em que plataforma estamos a correr uma aplicação ruby então podemos fazer algo do género:

def platforma
  $RUBY_PLATFORM ||=
    case RUBY_PLATFORM.downcase
      when /linux|bsd|solaris|hpux|darwin/
        :unix
      when /mswin32|mingw32|bccwin32/
        :windows
      when /cygwin/
        :cygwin
      when /java/
        :java
      else
        :outra
    end
end

p platforma

04 junho, 2007

Introdução à RDF

Isto é uma tradução do trabalho do Joshua

Introdução à RDF

Introdução breve à Resource Description Framework (RDF)

RDF é um método de expressão de conhecimento num mundo descentralizado e é uma das fundações da Web Semântica, na qual aplicações de computador utilizam informação distribuida e estruturada espalhada na Web. Só para informação prévia RDF não é estritamente um formato XML, e não é só metadados, tem pouco a haver com RSS e é menos complicado do que imagina.

Panorâmica

RDF é um método geral de decompor qualquer tipo de conhecimento em partes, com algumas regras sobre semântica ou significado dessas partes. O importante é ter um método tão simples que pode exprimir qualquer facto e contudo tão estruturado que uma aplicação de computador pode fazer coisas úteis com ele. Eis um pouco de RDF:

@prefix : <http://www.exemplo.org/> .
:joao    uma           :Pessoa .
:joao    :temMae     :susana .
:joao    :temPai       :ricardo .
:ricardo :temIrmao   :luis .

Se sabe XML, eis uma breve comparação. Tal como a RDF, XML também foi desenhada para ser simples e com utilização universal. A XML pode ser abstraída para além da notação de sinais de menor e maior que em algo mais abstracto, uma estrutura em árvore designada por DOM. De modo análogo RDF não é só o como se escreve. Trata-se de representação de informação em rede e em grafos. Pode escrever RDF em XML e muitas pessoas fazem-no. Nesse caso é similar a isto:

&tl;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
 xmlns:ns="http://www.exemplo.org/#">
  &tl;ns:Pessoa rdf:about="http://www.exemplo.org/#joao">
    &tl;ns:temMae rdf:resource="http://www.exemplo.org/#susana" />
    &tl;ns:temPai>
      &tl;rdf:Description rdf:about="http://www.exemplo.org/#ricardo">
        &tl;ns:temIrmao rdf:resource="http://www.exemplo.org/#luis" />
      &tl;/rdf:Description>
    &tl;/ns:temPai>
  &tl;/ns:Pessoa>
&tl;/rdf:RDF>

Mas no caso de não usar XML, eu não o uso, o primeiro formato designado por N3 é tão bom como a representação em XML.

O que distingue a RDF da XML é que a RDF foi concebida para representar conhecimento num mundo distribuido. Isto significa que a RDF está particularmente preocupada com significado. Tudo o que é mencionado em RDF significa algo, seja uma referência para algo de concreto no mundo, seja um conceito abstracto ou seja um facto. Normas concebidas sobre a RDF descrevem inferências lógicas entre factos e como pesquisar por factos em grandes bases de dados de conhecimentos em RDF.

O que torna a RDF adequada ao conhecimento distribuido é que as aplicações RDF podem unir ficheiros colocados por pessoas diferentes na Internet e aprenderem facilmente a partir deles coisas novas que nenhum documento por si só afirme. Fá-lo de duas maneiras, primeiro associando os documentos através do vocabulário comum usado e em segundo lugar permitindo a qualquer documento usar qualquer vocabulário. Esta flexibilidade é única para a RDF.

Tenha em conta este segundo documento de RDF:

@prefix : <http://www.exemplo.org/> .
:ricardo :temIrma :rebeca
{ ?a :temPai ?b . ?b :temIrma ?c . } => { ?a :temTia ?c } .

Este documento RDF define o que significa ser tia, em termos de duas outras relações. Pode imaginar uma aplicação que coloque este documento em conjunto com o primeiro documento RDF para determinar que :rebeca é tia de :joao. O que faz isto funcionar é os nomes das entidades serem globais. Assim quando :joao e :temPai são usados num documento, as aplicações podem presumir que têm o mesmo significado noutro documento RDF com o mesmo @prefix.

Então porque usar RDF? Eis casos de utilização como descritos por Richard Cyganiak na lista de correio da Web Semântica do W3C:

  • Deseja integrar dados de origens diferentes sem programação à medida;
  • Deseja providenciar dados para reutilização por outras entidades;
  • Deseja descentralizar os dados de modo a que nenhuma parte seja "dona" de todos os dados;
  • Deseja fazer algo interessante com grandes quantidades de dados (navegar, inquirir, fazer corresponder, inserir e extrair...), e assim desenvolve (ou reutiliza) uma ferramenta genérica que permite que se instale sobre um modelo de dados RDF (com a vantagem de não ficar preso a uma tecnologia de armazenamento/representação de dados tal como um dialecto de base de dados).

Definição de RDF

RDF pode ser definido com três regras simples:

  1. Um facto é expresso como um tripleto na forma de (Assunto, Predicado, Objecto). Como numa frase em linguagem natural.
  2. Assunto, predicado e objectos são nomes de entidades quer concretas quer abstractas no mundo real. Nomes são 1) globais e referem-se à mesma entidade em qualquer documento RDF em que apareçam ou 2) locais e a entidade a que se referem não pode ser referida directamente fora do documento RDF.
  3. Os objectos podem ser valores textuais, designados por valores literais.

Já viu factos. Cada linha abaixo era um facto:

:joao    a           :Pessoa .
:joao    :temMae  :susana .
  ...

Os nomes podem ter dois tipos, nomes glonais, os quais têm o mesmo significado em qualquer lado, são sempre Uniform Resource Identifiers (URI). As URI podem ter a mesma sintaxe ou formato dos endereços de um sítio na web, assim irá ver ficheiros RDF que contém URI semelhantes a http://www.w3.org/1999/02/22-rdf-syntax-ns#tipo, onde a URI é um nome global de alguma entidade. O facto de parecer um endereço web é incidental. Pode ou não haver um sítio web nesse endereço e tal não é importante. Há outros tipos de uri para além do tipo http. As URN são um subtipo de URI usadas para coisas como a identificação de livros pelo seu ISBN, isto é urn:isbn:0143934650. As TAG são um tipo de URI de utilização genérica. Elas são semelhantes a tag:govtrack.us,2005:congress/senators/first. As URI são usadas como nomes globais porque dão um modo de repartir o espaço de todos os nomes possíveis em unidades que têm proprietários óbvios. Uma URI começada por http://www.rdfabout.net/ é implicitamente controlada por Joshua Tauberer.

É importante e é necessário repetir: independentemente da forma as URI que vê em documentos RDF são meramente nomes algo verbosos para entidades nada mais. Esqueça que tenham algo a haver com a web.

Visto as URI poderem ser extensas, em várias notações RDF é normalmente possível abreviar as mesmas usando o conceito de espaços de nomeação da XML. É aí que entram os dois pontos em: :joao, :temMae, e outras entidades no exemplo. Os dois ponto indicam o nome na sua forma abreviada. No casos os nomes seriam http://www.exemplo.org/#joao, http://www.exemplo.org/#temMae.

Quando escritas as URI são normalmente envolvidas em sinais de menor e maior que para as distinguir das formas abreviadas usando espaços de nomeação.

Os valores literais permitem que texto possa ser incluido em RDF. Isto é particularmente usado quando a RDF é usada para metadados:

&tl;http://www.rdfabout.net/> a :Website .
&tl;http://www.rdfabout.net/> dc:title "rdf:about" .
&tl;http://www.rdfabout.net/> dc:description "A website about
 Resource Description Framework." .

E isto é basicamente RDF.

RDF como Grafo

Há dois modos complementares de vermos a informação RDF. O primeiro é um conjunto de afirmações como acima. Cada afirmação representa um facto. O segundo modo é como grafo.

Um grafo é basicamente uma rede. Os grafos consistem nos nodos ligados por arestas. Na internet, por exemplo, os nodos são os computadores e as arestas são os fios que os ligam. Em RDF os nós são os nomes (não as entidades de facto) e as arestas as afirmações. Eis um exemplo:

Cada seta ou aresta é uma afirmação RDF. O nome do início da seta é o assunto da afirmação, o nome no final da seta é o objecto da afirmação e o nome nas legendas da seta é o predicado. RDF como grafo exprime exactamente a mesma informação de RDF escrita como tripletos, mas o grafo torna mais fácil a nós humanos para ver a estrutura nos dados.

Exemplo rápido

Assim como é que a RDF é útil? É a tecnologia para a tarefa em mãos quando quer criar uma rede a partir de informação distribuida.

Eis um cenário onde a informação distribuida faz sentido: uma base de dados de produtos de vários fornecedores e críticas a esses produtos a partir de vários críticos. Nenhum fornecedor irá querer a responsabilidade de manutenção de uma base de dados central para este projecto, em especial podendo conter informação sobre produtos concorrentes e críticas muito negativas. Também nenhum crítico terá recursos para manter tal base de dados actualizada.

RDF é particularmente adequada para este projecto. Cada fornecedor e crítico poderá publicar um ficheiro em RDF no seu próprio sítio web. Os fornecedores irão escolher as URI dos seus produtos, e os críticos irão usar essas URI quando façam as suas críticas. Os fornecedores não necessitam de concordar com um esquema comum de nomeação de produtos e os críticos não estão presos a um formato de dados controlado por um fornecedor. A RDF permite que fornecedores e críticos concordem com aquilo que necessitem de concordam ser forçar ninguém a usar determinado vocabulário.

Eis os ficheiros RDF que publicam:

  
Fornecedor 1:
Fornecedor1:produtoX dc:title "Cool-O-Matic" .
Fornecedor1:produtoX prvp:preco "50.75" .
Fornecedor1:produtoX Fornecedor1:refno "TTK583" .
Fornecedor1:produtoY dc:title "Fluffertron" .
Fornecedor1:produtoY prvp:preco "26.50" .
Fornecedor1:produtoY Fornecedor1:refno "AAL132" .

Fornecedor 2:
Fornecedor2:produto1  dc:title "Fechador de Latas" .
Fornecedor2:produto2  dc:title "Espalhador de pó" .

Critico 1:
Fornecedor1:produtoX dc:description "Este produto é bom!" .

Critico 2:
Fornecedor2:produto2  dc:description  "Quem necessita de algo para espalhar o pó? 
                                  Algo que apanhe o pó seria melhor
                                  e gostaria que indicassem o preço." .
Fornecedor2:produto2  critica:classificacao   critica: Excelente .

É uma questão em aberto como é que uma aplicação irá recuperar estes ficheiros, mas foi deixar isso de lado. Uma vez a aplicação tendo estes ficheiros, tem informação suficiente para relacionar produtos às críticas aos preços e mesmo a informação específica do fornecedor como Fornecedor1:refno. O que deve tomar deste exemplo é a ausência de contrangimentos da RDF, continuando esta a permitir às aplicações a capacidade de relacionamento imediato da informação em conjunto.

Os fornecedores e críticos não têm que concordam com muito para fazer isto funcionar. Têm que concordar em usar RDF, mas não têm que concordam com formato específico de dados ou mesmo URI específicas. Crucialmente não têm que enumerar tudo o que cada fornecedor deseja incluir sobre os seus produtos e não podem bloquear os críticos na colocação de informação relacionada.

Outro modo de ver isto é de um ponto de vista de interoperabilidade. O formato do Fornecedor 1 é inteiramente interoperável com qualquer formato dos restantes intervenientes embora o Fornecedor 1 tenha um formato que não seja comum com mais ninguém. Quando alguém aparece e deseja ser interoperável com a informação do Fornecedor 1 não necessita de um novo formato mas sim de escolher o assunto, predicado e objecto correctos.

Conclusão

Se julgava a RDF complicada espero ter-lhe mostrado que tal não é necessáriamente o caso. A RDF é fácil de escrever, flexível e sem constrangimentos. É fácil modelar conhecimento e misturar origens de conhecimento distribuídas.

03 junho, 2007

Hackety hack

Hackety hack é um projecto de Why the lucky stiff para se poder aprender a programar (já agora em ruby). Na primeira lição vamos descobrindo como programar. Como interagir com o utilizador (para lhe pedir algo e para lhe indicar algo). O sumário da lição é apresentado no seu final.

Na primeira lição aprende-se o seguinte:

  • Comandos fazem coisas tal como os cães fazem coisas;
  • Variáveis guardamcoisas;
  • Cria-se uma variável com um sinal de igual. É assim que a Ruby sabe -- através desse sinal de igual!
  • Os comandos pertencem à coisa do lado esquerdo do ponto;
  • Os comandos comem coisas entre parêntesis como se fossem biscoitos;

29 maio, 2007

Ditadura - Loucura - Delírio

Parece que Hugo Chavez sofre dos males apontados por Santana Lopes (Nunca pensei dizer algo de positivo sobre ele só apontou a pessoa errada 50% certo o que nele é bom) ao supergilberto (sobrinho do superpateta)(marques mendes). Agora pensa fechar uma segunda cadeia de televisão pois esta preparava o seu assassinato. O bitaites já tinha chamado a atenção para esta nova besta.

28 maio, 2007

Google developer day 2007

No próximo dia 31 de Maio vai decorrer o Google Developer Day 2007 com uma agenda, com uma agenda dividida em 3 áreas, desenvolvimento com geo(dados), misturas e melhores ferramentas para desenvolvimento web.

22 maio, 2007

Guerra dos mundos

Atenção e foco são os recursos mais escassos de um projecto; pessoas infecciosas podem distrair-nos dos objectivos do projecto, uma comunidade exausta emocionalmente pode causar lutas intestinas sem fim. O desenvolvimento pode descarrilar devido a perfeccionistas e pessoas obcecadas pelo processo de discussão sem fim.

Estas palavras não são minhas mas sim dos autores do svn.

17 maio, 2007

Anuncios Rails vs. Resto do Mundo (Java, PHP,...)

O railsenvy.com produziu quatro vídeos (o quarto ainda não está publicado) análogos aos anúncios Apple vs. microsoft. Só coloco esta entrada aqui e não nos osmeusponteiros.blogspot.com pois este tema, Rails, é um dos tópicos a tratar aqui. Os meus apontadores é um local onde coloco ligações comentadas para coisas que me interessam mas não fazem parte dos temas a tratar aqui no ainda a pensar. Cuidado para não ter muitas visitas sou um chato nele, logo à cabeça, depois não digam que não avisei.

14 maio, 2007

Dobras

Há cerca de 17 dias vi, e resolvi inscrever-me, num dos planetas, claro que foi o planetgeek.org uma entrada sobre o folding@home. Devo admitir que conhecia um projecto concorrente, quanto à computação em grelha, o boinc (seti), mas que vai muito para além de aplicações em medicina.

Quer o primeiro quer o segundo projecto têm mensagens importantes de dádiva e partilha.

Tive um primo que era dador de sangue quando jovem (foi lapidado aos 23/24 anos), anos mais tarde eu próprio me tornei dador de sangue, algo que não faço há já 4 anos (fui operado duas vezes com transfusões - já agora sou dos que fazem disparar os alarmes dos pórticos dos aeroportos). Como só dentro de uns meses voltarei a poder dar sangue esta foi uma forma de participar.

Hoje ao fim de 17 dias alcancei os 10.000 pontos (essencialmente obtidos com um portátil.) Aguardo que a minha mama acorde após a sesta da manha e já agora a da tarde também

09 maio, 2007

As diferenças entre =, ==, equal? e eql?

Em ruby um sinal de igual (=) significa que se atribui à identificação da esquerda o que está à direita.

saudacao1 = "Viva Catarina."
saudacao2 = "Adeus."
saudacao3 = "Viva Catarina."

Se quisermos perguntar se o conteúdo de saudacao1 é igual ou não a saudação3 exprimimos tal usando a segunda expressão == (dois sinais de igual como sucede com várias outras linguagens de programação). Neste caso o valor devolvido é verdade. Se usarmos a expressão equals? aquilo que estamos a perguntar é se duas referências para objectos apontam para o mesmo objecto (não se esqueçam que em ruby tudo é um objecto), o que no caso de saudacao1 e saudacao3 é falso. Finalmente eql? responderá verdade pois compara valores.

07 maio, 2007

Soluções simples

Por vezes as soluções mais simples são as mais apropriadas. Recentemente na lista de correio comp.lang.ruby surgiu algumém a perguntar se havia um modo de passar o nome equivalente de um modelo (exemplo: tenho um modelo designado por dept_alimentar e desejo passar a string "dept_alimentar" e depois converte-lo (ou molda-lo [cast]) no modelo original equivalente e assim posso usar o seu objecto no método chamado, estou a tentar fazer isto pois quero evitar passar um objecto o que se tornará muito pesado).

David Chelimsky respondeu no seu tom extra humilde (que caso não estivesse a entender a questão o que sucede com frequência) é que quando se passa o dept_alimentar ou DeptAlimentar para outro método, não há a passagem do objecto propriamente dita mas sim a de uma variável que detem uma referência para o objecto. O que é sugerido de facto torna-se mais caro tem termos de cálculo do que usar uma variável.

03 maio, 2007

Joost-II

Quem deseja um convite agora pode convidar-se a si mesmo, para isso basta ir à página do joost.

Balázio seguiu o teu convite como não seu o teu nome nem o teu apelido ficas-te com um nome de utilizador deverás aborrecido.

FilipeEstou com dificuldades para me ligar ao Joost, logo que possível trato do teu caso.Filipe o seu convite seguiu. Pedro continuo sem o teu mail, sem isso nada posso fazer.

Pedro Moreira não tenho o teu e-mail não te posso convidar excepto se mo fizeres chegar. Julgo já teres percebido que não publicorecuso os e-mail que venham nos comentários desta entrada.

A Joost está quase quase a lançar-se comercialmente. Os actuais subscritores irão puder enviar convites num número não limitado, de acordo com GigaOm.

Já agora tenho convites para quem quizer. Basta deixar nos comentários nome, apelido e email (estes comentários não necessitam de ter mais nada e não serão publicados no blog). Joost™ the best of tv and the internet.

Nelson, Hugo e Marco os vossos convites seguiram. Quem quiser é só pedir. Fernando seguiu o seu e o do Paulo (13-05-2007).

Vitor e Tiago os vossos convites seguiram.

João segui um convite para ti e outro para o zeca. Como te tentei explicar quantas mais pessoas de um ISP usarem mais útil é para todos os seus utilizadores.

30 abril, 2007

REST explicado à minha mulher (Tradução)

Ryan Tomayko escreveu um ensaio onde explica de forma clara o que é REST à sua mulher.

http://tomayko.com/articles/2004/12/12/rest-to-my-wife

A minha mulher: quem é Roy Fielding?

Eu: Um tipo. Brilhante.

A minha mulher: O que é que ele fez?

Eu: Ajudou a desenvolver os primeiros servidores de web e de seguida efectuou um número de investigações sobre o porquê do funcionamento da Web. O seu nome aparece no documento técnico que define o protocolo usado para recuperar as páginas de um servidor para o teu navegador.

A minha mulher: Como é que isso funciona?

Eu: A Web?

A minha mulher: Sim.

Eu: Bem, é espantoso. O caso é amusant é que é verdadeiramente subestimado. O protocolo de que falamos chama-se HTTP pode fazer muitas coisas verdadeiramente geniais que um bom número de pessoas ignora por uma ou outra razão.

A minha mulher: Queres dizer que o http como no início de uma linha que escrevo no navegador?

Eu: Sim. Essa primeira parte que diz ao navegador qual o protocolo a utilizar. Aquilo que escrever é um dos mais importantes desenvolvimentos na história da informática.

A minha mulher: Porquê?

Eu: Porque descreve a localização de qualquer coisa não importando aonde no mundo e a partir de que ponto no mundo é pedido. É o princípio fundador da Web. Uma maneira de o imaginar será as coordenadas GPS para o conhecimento e a informação.

A minha mulher: Para as páginas Web?

Eu: Não importa para quê. Verdadeiramente. Este tipo, Roy Fielding, fala disso muito nos seus trabalhos de investigação. A Web foi construída sobre um estilo de arquitectura designado por REST. REST fornece a definição de um recurso, que é aquilo que vemos na ponta.

A minha mulher: Uma página Web é um recurso?

Eu: De algum modo. Uma página Web é a representação de um recurso. Os recursos são justamente conceitos. Os URL essas coisas que escrever no navegador...

A minha mulher: Eu sei o que é um URL...

Eu: Bem. Eles dizem ao navegador que há um conceito nalgum local. Um navegador pode então pedir uma representação particular do conceito. De maneira específica, o navegador pede a representação página Web do conceito.

A minha mulherQuais são os outros tipos de representação disponíveis?

Eu: De facto, as representações são uma das coisas que são raramente usadas. Na maior parte dos casos, um recurso só tem uma única representação. Mas há a esperança que as representações seam utilizadas mais no futuro pois há um número de formatos importantes que estão a aparecer um pouco por todo o lado.

A minha mulher: Como por exemplo?

Eu: Bem, há o conceito que as pessoas designam por "serviços Web". Isto cobre coisas diferentes para pessoas diferentes mas o conceito elementar é que as máquinas poderiam utilizar a Web do mesmo modo que as pessoas o fazem.

A minha mulher: Ainda algo do género do robot?

Eu: Não propriamente. Não penso que as máquinas se sentem a uma mesa e naveguem na Web. Mas os computadores podem usar os mesmos protocolos para enviar mensagens uns aos outros. Fizemos isto há muito tempo mas nenhuma das técnicas que usamos hoje funciona muito bem devido à necessidade de termos que falar a todas as máquinas no mundo inteiro.

A minha mulher: Porquê?

Eu: Porque ainda não são concebidas para funcionarem deste modo. Quando Fielding e os seus colegas começaram a construir a Web, ser capaz de falar com todas as máquinas não importando onde no mundo era uma exigência primeira. A maior parte das técnicas que utlizamos no trabalho para fazer comunicar os computadores entre eles tinham essa exigência. Nós tinhamos só a necessidade de falar com um pequenos grupo de máquinas.

A minha mulher: E agora, temos necessidade de falar com todas as máquinas?

Eu: Sim e mais. Necessitamos de falar com todas as máquinas a propósito de todas as coisas contidas nas outras. Necessitamos de um meio pela qual uma máquina fala com outra a propósito de um recurso que poderá estar eventualmente disponível numa terceira máquina.

A minha mulher: O quê?

Eu: Digamos que falas com a tua irmã e ela te pede emprestada a bicicleta, mas que quem a tem é a vossa mãe. Donde dizes à tua irmã para falar directamente com a tua mãe. Isto sucede actualmente permanentemente na via actual e o mesmo sucede a todo o momento quando as máquinas começam a falar entre elas.

A minha mulher: Como é que as máquinas dizem umas às outras onde se encontram as coisas?

Eu: Através do URL, está claro. Se todas as coisas de que as máquinas tenham necessidade de falar possuirem um URL correspondente, criamos o equivalente máquina de um nome comum. Que tu, eu o resto do mundo tenhamos optado por falar dos nomes do mesmo modo é verdadeiramente importante, não?

A minha mulher: Sim.

Eu: As máquinas não têm nomes universais - é por isso que são nulos. Cada linguagem de programação, cada base de dados, ou um outro sistema têm uma forma diferente de falar de nomes. É por isso que os URL são tão importantes. Tal permite a todos os sistemas trocar com todos os outros a propósito dos seus nomes.

A minha mulher: Mas quando vejo uma página Web não penso desse modo.

Eu: Ninguém. Só Fielding e muito poucas outras pessoas. É por isso que as máquinas hoje continuam a ser nulas.

A minha mulher: e a propósito de verbos, pronomes e adjectivos?

Eu: Tem piada que fales disso, pois trata-se de outro aspecto importante do REST. Em todo o caso os verbos são outro aspecto do REST.

A minha mulher: Só estava a brincar.

Eu: É uma piada interessante, mas de facto não é uma piada. Os verbos são importantes. Existe um conceito poderoso em programação que a teoria de informática designa por polimorfismo. É uma maneira técnica de dizer que os diferentes nomes podem ver-se aplicados ao mesmo verbo.

A minha mulher: Já não brinco.

Eu: Bom... Vê a mesa do café. Quais são os nomes comuns? Chavena, Tabuleiro, Jornal, Controlo remoto. Agora, quais são as coisas que podes fazer com todas estas coisas?

A minha mulher: Já não brinco.

Eu: Posso apanha-las (get) certo. Podes apanhá-las. Podes bater-lhes, Podes queimá-los. Podes aplicar estes verbos exactamente a quaisquer objectos que se encontrem aí.

A minha mulher:Sim e?

Eu: Bem, isso é importante. Se em vez de te poder dizer apanha a chavena, apanha o jornal ou apanha o controlo remoto o que sucederia se tivessemos que usar verbos diferentes com cada um dos nomes? Não podia usar a palavra "apanhar" de modo universal, mas teria que pensar numa nova palavra para cada combinação verbo/nome.

A minha mulher: Oh! É estranho.

Eu: Sim. é. Os nossos cérebros são de algum modo suficientemente inteligentes para saberem que esses mesmos verbos podem ser aplicados a vários nomes diferentes. Alguns verbos são mais específicos que outros e só se aplicam a um conjunto pequeno de nomes. Por exemplo, não posso conduzir uma chavena ou beber um automóvel. Mas alguns verbos são praticamente universais como: apanhar (GET), colocar (PUT) e apagar (DELETE).

A minha mulher: Não podemos APAGAR uma chavena.

Eu: bem realmente. Mas podes atirá-la fora. Isso era outra piada. Certo?

A minha mulher: Sim.

Eu: Enfim, o protocolo HTTP que Fielding e amigos criaram é inteiramente consagrado à aplicação dos verbos sobre nomes comuns. Por exemplo, quando vais a uma página Web o navegador faz um HTTP GET do URL que escreves e de volta obtém uma página Web.

As páginas Web normalmente têm imagens, sim? Elas são recursos separados. A página Web só específica os URL para as imagens e o navegador efectua HTTP GETs suplementares de modo a que todos os recursos sejam obtidos e a página mostrada. Mas a coisa importante é que os nomes comuns de natureza muito diferente podem ser tratados do mesmo modo. Que o nome seja uma imagem, um texto, um vidéo, um mp3, um diaporama, seja o que fort. Posso obtê-los do mesmo modo com um URL.

A minha mulher: Parece que o GET é um verbo muito importante.

Eu: Sim. Particularmente quando usas um navegador Web porque os navigadores não fazer praticamente nada a não ser apanhar (GET) as xoisas. Não fazem grande coisa para além disso, poucos outros tipos de interacção com os recursos. É um problema pois tal incita numerosas pessoas a crer que o HTTP não serve para mais nada a não ser apanhar (GET) coisas. Mas o HTTP verdadeiramente é um protocolo geral para aplicar verbos sobre nomes comuns.

A minha mulher: Bom. Mas não percebo como é que isto altera algo. Que tipo de nomes e verbos queres?

Eu: Bem os nomes estão lá mas não no bom formato.

Por exemplo pensa o que sucede quando navegas num sítio como a fnac.pt para procurares coisas para me comprares pelo Natal. Imagina cada produto como sendo nomes. Agora, se estiverem disponíveis numa representação que a máquina possa compreender, poderias efectuar várias coisas interessantes.

A minha mulher: Porque é que uma máquina não pode compreender uma simples página Web ?

Eu: Porque as página Web foram escritas para serem compreendidas pelas pessoas. Uma máquina não se interesse pela apresentação e estilo. Praticamente, as máquinas só necessitam de dados. Idealmente cada URL teria uma versão legível por humanos e uma representação para máquinas. Quando a máquina apanha um recurso ela pedirá a versão apropriada legível pela máquina. Quando um navegador apanha o recurso para um humando pedirá a representação legível por um humano.

A minha mulher: Então as pessoas terão que reproduzir todas as suas páginas de modo legível pelas máquinas.

Eu: se tal foi útil. Vê, falá-mos disto com numerosas abstracções. Passemos a um exemplo concreto. És professora - na escola aposto que têm um sistema de computador grande ou três ou quatro sistemas, mais provável, que vos deixam gerir os estudantes: em que turmas se encontram, em que níveis estão, contactos de emergência, informação sobre bibliografia, etc. Se os sistemas forem baseados na Web, então é provável que haja um URL para cada um dos nomes aqui envolvidos: estudante, docente, turma, livro, sala, etc. De imediato, obter o URL através do navegador dá-te uma página Web. Se houvesse uma representação legível pela máquina de cada URL, então seria trivial encavalitar novas ferramentas no sistema porque toda a informação seria consumível de um modo padrão. Seria também fácil a cada um dos sistema falar uns com os outros. Ou poderia ser possível construir um sistema que abarcasse todo o país que fosse capaz de falar com cada um dos sistemas escolares individuais para coligir os resultados de um exame. As possibilidades não acabam.

Cada sistema iria obter informação de cada um dos outros usando simples HTTP GET. Se um sistema necessitar de adicionar algo a outro sistema, utilizaria um HTTP POST. Se um sistema quizer actualizar algo noutro sistema usa HTTP POST. A única coisa que falta e perceber como é que os dados devem parecer.

A minha mulher: Então é nisso que tu e toda a gente dos computadores está a trabalhar agora? Decidir como é que os dados devem parecer?

Eu: Infelizmente não. Em vez disso a grande maioria está ocupada a escrever camadas de especificações complexas para fazer isto de um modo diferente que não é nem tão útil nem tão inteligente. Os nomes não são universais e os verbos não são polimórficos. Estamos a deitar para o lixo décadas de utilização real em campo e técnica testadas e a começar tudo de novo com algo que se parece muito com outros sistemas que falharam no passado. Estamos a usar HTTP porque nos ajuda a falar na nossa rede. Estamos a trocar simplicidade com ferramentas espanpanantes.

A minha mulher: Porquê?

Eu: Não tenho a mínima ideia.

A minha mulher: Porque é que não dizes algo?

Eu: pode ser que diga.

O perfeito é inimigo do bom

Paul Buchheit escreveu há tempos que todos já sabemos que o óptimo é inimigo do bom. Ele acrescentou uma voltinha e diz que o bom pode ser uma barreira à criatividade.

Que não nos devemos preocupar em demasia com a nossa falta de talento, capacidades, tempo ou qualquer outro recurso que seja necessário para alcançar o bom (excepto claro em campos críticos como por exemplo a neurocirurgia onde podem acreditar em mim queremos que os médicos sejam óptimos e que a cirurgia decorra nas melhores condições).

Ele advoga que as pessoas comecem por criar um blogue, mesmo que mau (inane nas suas palavras), que se tirem más fotografias, se carreguem para o YouTube vídeos aborrecidos, que se toque má música e se faça arte horrível. Que não nos preocupemos com o bom mas que simplesmente gozemos com a alegria da criação.

O seu sonho é deixarmos o consumo passivo de entretenimento velho e aborrecido. E alegre criação do entretenimento do futuro!

Ele diz que pode suceder que após vencermos a fricção provocada pela qualidade (a que aspiramos) poderá suceder que seja criado algo realmente bom.

Mostra um exemplo do que quer dizer usando como exemplo o blogue do xkcd.

26 abril, 2007

Recomendações TAC 2006

Isto é uma tradução inacabada, faltando por exemplo todas as referências

Recomendações e conclusões

  1. Panorama: Os formatos abertos de comunicação de documentos para administrações públicas
  2. Objectivo: Actualizar as Recomendações TAC de 2004
  3. Progresso Efectuado: O que foi alcançado em termos de normalização
  4. Progresso Efectuado: Actividades nas Administrações Públicas
  5. Recomendações
  1. Panorama: Os formatos abertos de comunicação de documentos para administrações públicas

    As comunicações entre o sector público e os cidadãos e negócios e outras administrações são frequentemente baseadas em documentos. Ser capaz de trocar documentos electronicamente entre parceiros de comunicação independentes é assim de extrema importância para as administrações públicas europeias. Devido ao seu papel social especial na sociedade o sector público deve evitar impor aos seus parceiros de comunicações o uso de produtos específicos, permitindo assim a esses parceiros a liberdade de escolha.

    As administrações públicas também têm a obrigação de manter arquivos para uso futuro, o acesso, à informação contida nos documentos, deve ser assegurado durante longos períodos de tempo.

    Assim, há um entendimento comum entre as administrações públicas na Europa de que a troca e armazenamento de documentos electrónicos deve depender de formatos abertos de documentos. Tais formatos devem ser definidos num processo aberto a todas as partes interessadas e deve estar disponível para todos os actores interessados e competentes para o implementarem sem restrições. Usar tais formatos oferece às administrações públicas, negócios e cidadãos uma gama alargada de produtos capazes de ler, escrever e manipular documentos enquanto se estimula a competição e inovação na área de tratamento de documentos.

    Preferencialmente, estes formatos abertos de troca e armazenamento de documentos devem ser sujeitos a normalização formal via procedimentos de normalização internacionais.

  2. Objectivo: Actualizar as Recomendações TAC de 2004

    O programa IDABC é um programa da Comunidade Europeia cujo objectivo é identificar, auxiliar e promover o desenvolvimento e estabelecimento de serviços de eGov pã-europeus e redes que suportem os Estados Membros e a Comunidade na implementação, nas respectivas áreas de competência, de orientações e actividades da Comunidade, alcançando vantagens substanciais para as administrações públicas, negócios e cidadãos. O programa IDABC é o sucessor dos programas IDA e IDA II.

    Na sua reunião de 25 de Maio de 2004, o comité de gestão do IDA II, composto por representantes dos Estados Membros e aconselhando a Comissão sobre a implementação do programa, apoiou um conjunto de “Conclusões e Recomendações sobre Formatos Abertos de Documentos”, adiante referidos como “Recomendações TAC”.

    As Recomendações TAC aconselham o sector público a evitar impor produtos específicos aos seus parceiros de comunicação e recomenda o uso de formatos abertos de troca de documentos. Para documentos que possam ser revistos os formatos baseados em XML foram recomendados visto permitirem separação de conteúdo, estrutura, semântica e apresentação e visto poderem ser tratados por uma gama alargada de aplicações.

    As Recomendações TAC pediram à indústria que providenciassem aplicações baseadas em formatos abertos de troca de documentos que permitissem que os documentos electrónicos fossem trocados sem restrições entre autoridades e entre autoridades, cidadãos e negócios. Elas deram as boas vindas ao trabalho da OASIS sobre a normalização de formatos de documento Open Office e convidaram a indústria a juntar-se à iniciativa. As Recomendações TAC também apoiaram a submissão do OASIS Open Document Format emergente a uma organização de normalização oficial tal como a ISO. Além disso a TAC pediu à Microsoft para publicar e providenciar um acesso não discriminatório a futuras versões das especificações dos seus documentos Office e para pensar na submissão dessas especificações a um corpo internacional de normalização à sua escolha.

    Finalmente, as recomendações encorajaram o sector público a providenciar a sua informação em vários formatos. Onde por escolha ou circunstâncias só um único formato de documento alterável pudesse ser usada, este deveria ser um formato sobre o qual houvesse consenso na indústria, como demonstrado pela adopção do formato como norma.

  3. Progresso Efectuado: O que foi alcançado em termos de normalização

    Recentes desenvolvimentos estão a encorajar a indústria a levar a cabo grandes esforços para alcançar os requisitos instituídos nas Recomendações TAC (e instituídas por outras organizações do sector público).

    1. Em Maio de 2005 a OASIS adoptou a especificação de documento aberto baseada em XML. A OASIS ofereceu esta especificação para normalização internacional via procedimento “fast track” da ISO em Novembro de 2005. Em 30 de Novembro de 2006 foi publicado o ISO/IEC 26300 “Open Document Format for Office Applications”. Um número crescente de produtos que suporta a norma têm vindo a ficar disponíveis.
    2. A Microsoft adoptou um formato XML “puro” para ser usado no conjunto Office 12 e submeteu a especificação OpenXML ao ECMA em Dezembro de 2005. O trabalho do grupo técnico terminou e a Assembleia Geral Internacional da ECMA aprovou o resultado do seu trabalho. A ECMA irá oferecer a especificação para normalização internacional via procedimento “fast track” da ISO. Esta normalização oferece aos concorrentes da Microsoft a possibilidade de incluírem suporte para o formato OpenXML nos seus produtos.
    3. Tantas as especificações ODF (OASIS) como as OpenXML (ECMA) estão livremente disponíveis na web e os principais contribuintes de ambas as especificações (SUN e Microsoft) asseguraram que as especificações podem ser implementadas pelas partes interessadas, incluindo programadores de open-source sem obrigações e ou custos adicionais.
    4. Tanto as especificações, de formatos de documentos das ODF como das OpenXML, são baseadas em XML, prometendo maiores oportunidades para explorar a informação contida nos documentos via ferramentas que não os tradicionais conjuntos de aplicações de escritório. Exemplos de exploração incluem a indexação de colecções de documentos, extracção de metadados dos documentos, motores de busca, extracção de informação específica para reutilização, etc…
    5. Várias equipas, incluindo uma da Microsoft anunciaram que estão a desenvolver extras open-source para o conjunto Microsoft Office facilitando a interoperabilidade entre os formatos OpenXML e ODF.
    6. Outro desenvolvimento é a adoptçãi pelo ISO/TC171-SC2 (Aplicações de gestão documental – Temas relativos a aplicações) do ISO 19005: “Gestão documental – Formato de ficheiro para documento electrónico para conservação de longo prazo parte 1, Uso de PDF 1.4 (PDF/A1)”. O PDF/A é um formato de documento não alterável que pode ser usado para documentos que não necessitem de processamento ou alteração adicionais. Embora haja muitos produtos capazes de mostrarem produtos PDF/A, só há uns poucos capazes de gerar documentos no formato PDF/A.
  4. Progresso efectuado: Actividades nas Administrações Públicas

    1. Os formatos dos documentos continuam a ser importantes na agenda de orientações do sector público. Seguindo a publicação das Recomendações TAC, os directores gerais responsáveis pela administração pública da EU afirmaram nas suas recomendações de Novembro de 2004 que “Os Directores Gerais em particular dão as boas vindas à iniciativa da Comissão relativamente ao formato aberto de documento e concordam em estimular o uso do formato aberto de documento nos estados membros, uma vez tendo ele sido mais desenvolvido.”
    2. Um relatório de 2005 da Unidade Conjunta de Inspecção das Nações Unidas propôs como princípio que “Todos os Estados Membros e outros parceiros devem ter o direito de acesso público à informação tornado disponível em formato electrónico por organizações e que ninguém deva ser obrigado a adquirir um software determinado de modo a exercer tal direito.”
    3. Vários Estados Membros embeberam o uso de normas de formatos abertos para troca de documentos nas suas estratégias nacionais de tecnologias de informação ou infraestruturas de interoperabilidade.
    4. Algumas organizações deram mais um passo, reagindo ao processo de finalização da normalização da OASIS ao obrigarem ao uso do formato OASISODF. O Concelho de Ministros Belga aprovou um memorando em Junho de 2006 indicando que a partir de Setembro de 2008 todas as trocas documentais entre serviços públicos federais belgas se teria que usar uma norma de formato aberto. ODF – preferencialmente ISO 26300—é até agora a única proposta de norma aceite. O governo da região da Estremadura anunciou a migração de todos os equipamentos de secretária na sua administração para a norma ODF em Agosto de 2006. Na Dinamarca, o parlamento adoptou uma resolução em 2 de Junho de 2006 para uso de normas abertas na qual o “Parlamento pede ao governo para assegurar o uso de tecnologia de informação, incluindo software, no seio das autoridades públicas, baseada em normas abertas com início em 1 Janeiro de 2008 ou quando a tecnologia for adequada”. Um relatório com a interpretação detalhada da resolução do parlamento foi publicada em Agosto de 2006.
    5. A atenção mundial mais alargada foi atraída pela decisão (em Setembro de 2005) da Comunidade de Massachusetts (USA) para tornar o uso da OASIS ODF e PDF obrigatória na sua administração pública.
    6. A existência de normas internacionais irá claramente facilitar a aquisição de produtos que usem formatos abertos de troca e armazenamento de documentos. Alguns Estados Membros já anunciaram as suas intenções de implementar a norma ISO 26300 quando esta se tornar disponível.
  5. Problemas a resolver

    Mesmo tendo em conta estes desenvolvimentos favoráveis a situação mantêm-se preocupante do ponto de vista das administrações públicas Europeias.

    Os peritos dos Estados Membros identificaram os problemas de compatibilidade esperáveis entre produtos baseados na ISO 26300 (ODF) e as aplicações comerciais que dominam os escritórios das administrações hoje como a principal barreira ao uso de formatos abertos de troca e armazenamento de documentos. A chegada potencial de uma segunda norma internacional para documentos que sejam alteráveis conduz a mais complexidade e custo acrescido. Embora filtros, tradutores e extras possam teoricamente permitir a interoperabilidade, a experiência mostra que transformações múltiplas de formatos podem conduzir a problemas em especial onde não haja uma completa correspondência entre características de cada uma das diferentes normas.

  6. Recomendações

    Tendo em conta a presente situação as administrações públicas são convidadas a:

    1. Maximizar o uso de formatos abertos, normalizados internacionalmente, de troca e armazenamento de documentos nas suas comunicações internas e externas.
    2. Usar só formatos que possam ser tratados por uma variedade de produtos, evitando deste modo o uso de produtos específicos aos seus correspondentes. Quando o uso de formatos proprietários for absolutamente inevitável, formatos abertos normalizados internacionalmente devem ser providenciados como alternativa aos formatos proprietários.
    3. Adaptar, onde apropriado, directrizes e regulamentos nacionais, tendo em conta a chegada de normas internacionais nesta área;
    4. Ter em conta a definição de requisitos mínimos em relação a funcionalidades dos formatos abertos de troca de documentos com vista a alcançar a compatibilidade de aplicações;
    5. Criar directrizes para uso de formatos de documentos alteráveis e não alteráveis (com possibilidade de serem ou não revistos) de troca e armazenamento para diferentes finalidades.

    A indústria, consórcios industriais e corpos de normalização internacionais são convidados a:

    1. Trabalhar em conjunto no sentido de criarem uma só norma internacional aceite por todos para respectivamente documentos abertos alteráveis ou não-alteráveis.
    2. Desenvolver aplicações que possam tratar todas as normas internacionais relevantes deixando ao critério dos seus clientes o formato a ser usado “por omissão”;
    3. Evitar invalidar a finalidade dos formatos abertos de troca e armazenamento de documentos ao oferecerem extensões às normas internacionais relevantes como formatos por omissão.
    4. Propor testes de conformidade e desenvolver ferramentas adequadas à salvaguarda da interoperabilidade entre aplicações;
    5. Continuar a melhorar as normas existentes, também tendo em conta as necessidades adicionais tais como a assinatura electrónica de documentos.

25 abril, 2007

Boas práticas - Ligações externas

Uma excelente fonte de informação sobre o uso de UTF-8 e rails pode encontrar-se em Segurar Entradas em UTF-8 em Rails.

No eigenclass encontra-se um artigo sobre tabelas fracas de chaves, versão corrigida pois havia da parte do autor um falha nos pressupostos quanto ao (momento do) funcionamento do almeida (gargabe colector) e dos finalizadores.

Teste com frequência, verifique os seus pressupostos, codifique com cuidado, leia-a os originais! (cópia descarada do eigenclass)

10 abril, 2007

O Futuro da Web - Comparativo

A Digital Web Magazine desta semana apresenta uma comparação entre o HTML5 e o XHTML5 e o XHTML2 e o futuro da rede feita por David Andersson. A principal vantagem do XML de para quando seja detectado um erro na web, na sua opinião e na minha por uma visão pragmática da rede é também o seu calcanhar de Aquiles. Ele lembra que xhtml servido como text/html na prática significa ser interpretado por um navegador como uma sopa de marcação.

O segundo artigo desta semana é uma crítica do livro de Jeremy Keith "Bulletproof Ajax".

A List Apart 235

No número 235 do A List Apart Martin Kliehm fala de Aplicações Web 2.0 Acessíveis com WAI-ARIA.

Para quem não saiba ele explica muito bem as implicações das WAI-ARIA.

As nossas aplicações podem sofrer de problemas de acessibilidade devido às limitações de marcação existentes. Martin ajuda a percebermos as especificações WAI para Aplicações de Internet Ricas e Acessíveis (ARIA) para melhorar a usabilidade.

Wilson Miner apresenta um artigo para o tipógrafo que há em nós.

Código de Conduta a Resposta Burocrática

Hoje de manhã coloquei um comentário sobre o código de conduta inspirado por Tim O'Reilly. Aquilo que penso dele é que se trata de um documento sem qualquer utilidade, feito por quem tem demasiado tempo disponível, um burocrata na minha linguagem.

Recentemente Jeremy Shoemaker (n. t. sapateiro) foi indiciado sobre comentários deixados no seu blogue.

A responsabilidade acerca de um comentário deve ser imputada à primeira pessoa que se possa identificar com a afirmação em causa. Devo acrescentar que o nome indicado aquando do comentário é fácil de falsificar, o endereço de IP registado no momento do gravação do comentário idem, o endereço de correio electrónico idem, pelo que de facto os blogues não têm algo que nos permita assegurar a identidade de quem lá coloca um comentário, pelo que em último caso, a responsabilidade do conteúdo do blogue é do autor do mesmo independentemente da autoria do comentário.

Por esta razão retiro qualquer comentário que considere ofensivo ou completamente fora do tópico ou da entrada ou do próprio blogue.

Há ainda uma outra razão para retirar comentários quando tal me é solicitado pelo autor do comentário. Foi o que fiz em relação a um comentário importante que retirei a pedido do autor dos comentários de um artigo meu sobre semântica que inexplicavelmente continua a ser um dos mais lidos. Omito intencionalmente uma ligação para o artigo pois fico envergonhado sempre que vejo as estatísticas (embora estas fiquem muito bem colocadas na escala da mentira) de acesso (um dos três artigos mais lidos deste blogue).

Já agora, para terminar, ao meu comentário acima houve uma pessoa de quem gosto do blogue que me dizia que a minha observação era demasiado (para ser simpático comigo) simplista. Pois é, os valores têm mesmo que ser algo simples senão uma pessoa não consegue viver com eles, e talvez seja verdade eu ter exagerado na simplicidade.

07 abril, 2007

RFC1 Faz aninhos - 38

Hoje faz aninhos o primeiro RFC 38. Este RFC este na origem da ARPANET que veio a transformar-se na Internet que hoje conhecemos.