O jornal o Público pública hoje uma notícia com o título "Governo terá perdoado uma multa...", na notícia propriamente dita aparece um chico esperto (não se trata do Chico Esperto que prezo)que de forma simples vem dizer que os tripulantes de aeronaves que combatem fogos não necessitam saber português, basta-lhes saber falar português. O que é que lhes parece isto. A ser verdade que a pessoa disse isto o que é que pensam sobre o assunto?
Web,ruby, Ajax ou qualquer outra coisa que me venha a cabeça (com prioridade para esta última)
12 fevereiro, 2007
Palestra de Tim Berners-Lee em Espanha
O Tim Berner-Lee está aqui ao lado (em Espanha) na sua palestra no congresso mundial do GSM.
Isto hoje está complicado esta entrada devia pertencer ao meu outro blogue e nele figura uma entrada que devia estar aqui. Porcaria de confusão. Totalmente culpa minha. Acho que vou duplicar as entradas.
11 fevereiro, 2007
web 2.0 e respostas
A transcrição abaixo é uma tradução da Transcrição feita por Tonya Witherspoon.
Web 2.0 ... A Máquina Somos Nós/Está a Usar Nos
O texto é linear
O Texto é não linear
Diz-se que o texto é não linear
O texto é frequentemente dito como não sendo linear
O texto é não linear quando escrito em papel
O texto digital é diferente.
O texto digital é mais flexível.
O texto digital pode ser mudado.
O texto digital é acima de tudo ... hiper.
O hipertexto digital é acima de tudo...
O hipertexto é acima de tudo...
O hipertexto pode ligar
O hipertexto pode ligar
aqui
aqui
ou aqui...
virtualmente a qualquer sítio
virtualmente a qualquer sítio
a qualquer sítio virtual
A Máquina do TempoPassado
http://yahoo.com
Leva-me de Volta
17 de Outubro 1996
Yahoo
Ver Fonte
A maior parte dos sítios web eram escritos em HTML
<html>
HTML foi concebida para definir a estrutura de um documento web.
<p>
<p> é um elemento estrutural para nos referirmos a um "parágrafo"
<li>
<li> também é um elemento estrutural para nos referirmos a "Item de Lista"
À medida que o html foi expandida, foram adicionados mais elementos.
Incluindo elementos estilísticos como <b> para negrito e <i> para itálico
Esses elementos definiam como é que o conteúdo seria formatado.
Dito de outra forma, forma e conteúdo tornaram-se inseparáveis em html
O texto digital pode fazer melhor.
A forma e o conteúdo podem ser separados.
http://www.cnn.com
RSS XML
Ver Fonte
XML foi concebido para fazer exactamente isso.
<title>CNN.com</title>
<title> não define a forma, define o conteúdo.
<link>http://www.cnn.com/?eref=rss_topstories</link>
o mesmo com <link>
<description>CNN.com
e <description>
e virtualmente todos os outros elementos neste documento.
Eles descrevem o conteúdo não a forma.
Assim os dados podem ser exportados,
livres de constrangimentos de formatação.
Últimas Notícias
Blogues de Antropologia(124)
Mentes Crueis
8apps: Rede Social para Pessoas Produtivas
MUNDO EM MUDANÇA EIS OUTRO MUNDO AQUI
Jornais de Antropologia (124)
University of California Press
Journals Digital Publishing
Current Anthropology
AESonline.org
Com a forma separada do conteúdo, os utilizadores não necessitam de usar código complicado para carregar conteúdo na web,
Sinto-me com sorte
Criar um Blog
Crie um nome para o blog
Para além do etexto (Beyond Etext)
http://beyondetext.blogspot.com
Escolha um modelo
O seu blogue está pronto!
Segunda-feira, 29 de Janeiro de 2007
Olá Mundo!
Colocado por PROFESSOR WESCH às 8:14 PM 0 COMMENTS
nasce um blogue a cada meio segundo
e não se trata só de texto...Busca
YouTube
Difunda-se A Si Mesmo
Esta é uma resposta em vídeo a A Beleza de Ser Humano
flickr
Ahoy mwesch!
Carregar fotos
Clube de Antropologia
Criado por si.
KSU Anthropology club
Club Photos
XML facilita a troca automatizada de dados
dois sítios podem misturar dados em conjunto
flickr maps
Sinto-me com sorte
Limelight
Fluffy and white
Brushy Creek
Tokyo Delve's Sushi B..
Quem irá organizar todos estes dados?
TAG
del.icio.us
etnografia digital antropologia hipermedia
guardar
Quem irá organizar todos estes dados?
Tu.
Tu irás.
XML + TU & EU iremos criar a web suportada na base de dados
a web suportada na base de dados é diferente
a web é diferente
a web
nós somos a web
Sinto-me com sorte
WIRED
ós somos a Web
Quando colocamos e depois etiquetamos as imagens estamos a ensinar a Máquina a dar nomes, estamos a ensinar a Máquina.
Sempre que forjamos uma ligação, estamos a ensinar-lhe uma ideia.
Pense nos 100 milhares de milhão de vezes por dia que os humanos diariamente clicam numa página da Web ensinando a Máquina
A Máquina
Diigo
Realce
Realce e Folha de Bloco Amarela
Misturar nota privada
a máquina é nós
O texto digital já não liga só informação...
O hipertexto já não liga só informação...
A Web já não liga só informação...
A Web liga pessoas...
Web 2.0 está a ligar pessoas...
...pessoas partilham, acompanham e colaboram...
Wikipedia
Web 2.0
alterar esta página
Temos que repensar algumas coisas...
Temos que repensar os direitos de autor
Temos que repensar a autoria
Temos que repensar a identidade
Temos que repensar a ética
Temos que repensar a estética
Temos que repensar a retórica
Temos que repensar a governance
Temos que repensar a privacidade
Temos que repensar o comércio
Temos que repensar o amor
Temos que repensar a família
Temos que nos repensar
por
Michael Wesch
Assistant Professor of Cultural Anthropology
Kansas State University
Etnografia digital
@ Kansas State University
música por DEUS "There's Nothing impossible"
Este trabalho é licensiado sob Creative Commons Attribution-NonCommercial-ShareAlike 2.5
A estes pensamentos há algumas respostas as abaixo e ainda outras.
09 fevereiro, 2007
CSS Fácil de Manter
Pistas e ligações a artigos para criação de folhas de estilo devem ser aqui coligidas. Para introdução do problema que estamos a tentar resolver ver [entrada no blogue do Simon]. Para ferramentas que ajudem na manutenção de folhas de estilo, ver TheToolsWillSaveUs.
- [Arquitectar CSS], por Garrett Dimon, é uma boa revisão do problema com ideias fortes sobre como repartir as regras de CSS em diversos ficheiros.
- [Redundância versus Dependência] por, Dave Shea, onde explora o equilíbrio entre dois extremos de desenvolvimento de CSS.
- [CSS Modular], por Mike Stenhouse, descreve um esquema simples onde as regras são agrupadas em diferentes ficheiros baseadas em assuntos: tipografia, formulários, arranjos e cor.
- [Organização de CSS], por Doug Bowman, pistas sobre agrupamento e indicação de grupos. (Por acaso acho que a separação do CSS em vários ficheiros é contraprodutivo em termos de manutenção, mas pode ser só minha opinião.)
- [CSS que Pode Ser Facilmente Mantido], por Nathan Steiner, as suas pistas pessoais em resposta à chamada do Simon.
- [Inclusão PHP em CSS], por Nick Bair, descreve o uso dos mecanismo de inclusão do PHP de modo a oferecer uma solução de ficheiro único para um CSS com facilidade de ser mantido.
- [Técnicas de Ramificação] por Thierry Koblentz.
- [Jogar de foma justa com o CSS das outras crianças], por Mike Stenhouse, tenta criar directrizes para fazer manutenção de CSS e codificação em equipa mais fáceis.
Segregar os seus estilos
Limitar especificamente o "alcance" das declarações de estilo. Por exemplo, tenho um certo estilo aplicado a conteúdo prefixo isso com um #conteudo, mesmo que não seja necessário. Especificar a parte da estrutura semântica a que o estilo se aplica irá essencialmente segregar o estilo de modo a que a cascata não afecte mais nada por acidente.
De forma similar separo o posicionamento da tipografia.
Desenvolver "conceitos" para o sítio/aplicação ajuda a manter as coisas sãs. Toda a decoração para cada conceito vai para o(s) seu(s) próprio(s) ficheiro(s). Exemplos de conceitos:
- Carrinho de compras (carrinho-ecra.css / carrinho-impresso.css)
- Tabelas de doces coloridas
- Formulários de entrada de dados
Estes ficheiros podem depois ser ligados a tantas folhas de estilo quantas as necessárias.
CSS Fácil de Manter
As minhas recomendações para CSS Fácil de Manter. Admito que possa haver aqui alguma repetição mas estou a tentar ser mais conciso aqui.
- Repartir o seu CSS no conceito coerente mais pequeno possível
estrutura.css carrinhodecompras.css basesdedados.css descricoesdeprodutos.css ...
- Organizar ficheiros num conjunto de pastas que lhe permitam perceber a finalidade de cada ficheiro. Mantenha aquelas coisas que tenham elevada probabilidade de alteração como (cor, tipografia, gráficos, etc) projecto a projecto, ou semana a semana em localizações diferentes
ecra/estrutura.css ecra/carrinhodecompras.css ... impresso/estrutura.css impresso/carrinhodecompras.css ... brand/estrutura.css brand/carrinhodecompras.css...
- Use ID raramente: ID tem que ser única numa página e assim sendo ao usarmos id em elementos estruturais significa que só iremos ter por exemplo um bloco conteudo numa página. Se for cuidadoso, #conteudo p é tão específico como .content p e <div class="conteudo">...</div> pode ser largado em tantos lugares quantos os necessários. Pode usar ID para algo como <div class="produto" id="produto00121">...</div> mas deve ter muito cuidado para se assegurar que só se refere uma vez numa página a produto00121.
- Evite usar o mesmo nome de classe para diferentes finalidades: A cascata pode ser muito poderosa mas, por vezes, há a tentação de usar o mesmo nome de classe genérico em vários sítios. Se não segregar o seu CSS bem, pode correr perigo.
- Usar sempre o mesmo nome de classe para finalidade similar: Visto a cascata ser tão poderosa deve reutilizar o mesmo nome de classe em diferentes classes quando representam o mesmo conceito.
- Usar nomes de classes que revelem intencionalidade: Pode ser tentador usar nomes de classes breves mas demasiado cifrados (.s, .lbl) que no caso de não manter um glossário actualizado de nomes de classes irá esquecer o que querem dizer. Pode também correr perigo com navegadores desactualizados que podem ocasionalmente ser confundidos por nomes de classes breves que comecem da mesma forma (i.e. .err e .erros são, por vezes, confundidos.)
- Colocar o seu nome de classe no elemento mais exterior onde faça sentido e Não Se Repita a Sí Mesmo (DRY): Por vezes irá ver coisas como:
<div class="tituloproduto">...</div> <div class="descricaoproduto">...</div> <div class="ligacoesproduto">...</div>
É melhor escrever:
<div class="produto"> <h3>...</h3> <div class="descricao">...</div> <div class="ligacoes">...</div> </div>
- Usar vários nomes de classes em todo o lado: As an example, if you have a form, fields are typically either required or optional and have an error or not. Without using multiple classnames you often end up with the following:
.exigido {...}
.opcional {...}
.erroexigido{...}
.erroropcional{...}
Isto frequentemente leva a muita duplicação de CSS visto a diferença entre exigido e opcional é normalmente um asterísco para indicar que determinado campo tem que ser preenchido. De forma similar campos onde haja erros são normalmente coloridos a vermelho ou são de algum outro modo realçados. Uma solução melhor é usar vários nomes de classes:
.campo {... propriedades comuns a campos, posicionamento, etc ...}
.exigido {... adicionar imagem de fundo ...}
.erro{... cor de texto diferente ...}
<div class="campo">...</div>
<div class="campo exigido"> ... </div>
<div class="campo erro"> ... </div>
A única vez que isto lhe poderá trazer problemas sucede quando nos campos exigidos quando com erros o IE não compreender .exigido.erro correctamente.
Esta entrada é uma tradução de http://css-discuss.incutio.com/?page=MaintainableCss.
Abriu o ILG - da WaSP
A 5 de Fevereiro a Molly apresentou ao mundo o novo grupo do WaSP para divulgação de técnicas standard na produção de sítios web. Este grupo de ligação internacional deverá funcionar como uma alavanca na introdução/divulgação de técnicas standard de produção de sítios web a nível mundial com diversos especialistas em vários pontos do globo.
Um fulano muito mais inteligente que eu
Sergey. Algo que é muito frequente, demasiado para o meu próprio gosto.
Excerto de Entrevista a Eric Meyer
Numa recente entrevista a Eric Meyer quando perguntado por Todd Austin: Como é que as empresas podem ajudar as universidades a ensinar web standards, visto ter notado que muitos curricula ainda estão cheios de ensino de html com tabelas (para fins de arranjo)? Ao que Eric respondeu:
Deixem de empregar as pessoas que esses curricula produzem. É a única coisa que julgo iria funcionar, e isso não seria justo para as pessoas que não fossem empregues, visto não ser uma falha delas mas sim uma grande desajuda por parte dos seus instrutores. Mesmo assim, e mesmo sabendo que possa provavelmente parecer duro, será que as firmas de engenharia iriam empregar engenheiros que fosse treinados em engenharia do século XVIII? Será que uma firma de software iria empregar novos engenheiros formados em COBOL? Será que contrataria um contabilista que tivesse aprendido o Código de Impostos de 1950 e não tivesse aprendido nada desde essa data?
Porque é que será que as firmas da web devem fazer algo de modo diferente?
acronym-free environment
Substantial Experience with Ruby on Rails, XHTML, CSS, PHP and mySQL Comprehensive Understanding of XML and AJAX ability to work in an acronym-free environment
Não resisti acronym-free environment figura num anúncio para suporte a Mac.
Já agora aquele mySQL será que quer dizer MySQL.
Parece-me que ler este anúncio restaurou-me a boa disposição...
Indexed
As imagens valem muitas palavras. Estas imagens têm palavras. O blogue de «quase gráficos» da Jessica Hagy é um daqueles que tem que ser visitado, ideia simples e muito bem conseguida.
O Novo Lixo do O Jogo
Vi anunciado que O Jogo tinha uma nova página na web, fui ver. Meu deus (é um deus muito pequenino) quem serão os tecnólogos/decisores por detrás deste sítio. Estou a tentar manter-me objectivo mas o que produziram, no século XXI parece-se muito com o que se produzia há já 10 anos. Não queria acreditar quando vi o conteúdo original em formato de texto um documento que começa por <style>, não entendo. Uso de iframe com margens nulas e largura e altura a 100% sem esquadria para o iframe, isto claro como único elemento do corpo. Claro que não existe elemento head embora exista um elemento title. Isto é mesmo novo ou estou a delirar e a ver mal. Tenho que ir buscar o termómetro e ter cuidado para ver se ele não rebenta. Bolas, é digital, já não tem mercúrio.
Quando é que alguém entende que quantos mais elementos estiverem a passear pelos ecrãs das pessoas menos atenção as pessoas lhes prestam. 2 anúncios a piscarem e depois aquela linha com notícias é um pouco demais. Bom já chega de publicidade gratuita.
O próprio documento no iframe é uma verdadeira manta de retalhos, mas estou com tão pouca paciência que não me vou estender mais.
Claro que os autores desse sítios podiam-me responder na mesma moeda. Hoje ao finalmente deixar o blogger convencer-me a actualizar os meus blogues para a nova plataforma deles, criei-me um problema deixei de ter páginas válidas para passar a ter em média 50 erros (claro que os mesmo) e vou ver como poderei remediar isto.
Mais uma actualização: o que é que Eric Meyer pensa de pessoas como as acima descritas.
08 fevereiro, 2007
A List Apart 232
Saiu o número 232 da A List Apart. Os dois artigos deste número são:
- Arranjo Multi-colunas Directamente da Caixa, por Alan Pearce. Neste artigo Pearce mostra como criar um arranjo elástico e líquido com três colunas com barras laterais de largura fixa e colunas com a mesma altura. É óbvio que se refere a técnicas já conhecidas mostrando as suas limitações.
- Neste artigo Bobby Sluis fala dos vários métodos sobre como integrar um elemento com flash numa página. Fala dos métodos que estão e dos que não estão em conformidade com as recomendações do W3C, fala das limitações destes devido a excesso de abertura dessas mesmas recomendações, fala de constrangimentos devidos à instalação cliente e fala de uma tentativa de solução que está a preparar.
29 janeiro, 2007
PDF vai tornar-se norma ISO
A Adobe vai propor a passagem a norma internacional ISO o formato PDF 1.7. O que está a ser anunciado em: http://www.adobe.com/aboutadobe/pressroom/pressreleases/200701/012907OpenPDFAIIM.html.
26 janeiro, 2007
A List Apart 231
O A List Apart nº. 231 apresenta dois artigos:
- O primeiro é de Shawn Medero e trata de prototipagem em papel tema a que me referi ao citar o artigo Prototipagem em Papel do Ivo Gomes. Tanto num como no outro se salienta a adequação de prototipagem em papel para os casos em que aquilo que se desenvolva seja complexo.
- O segundo de Casper Voogt e apresenta um interessante artigo de como criar de forma rápida uma simulação de página web com o Photoshp (CSS+HTML). É um artigo que se lê de uma penada e que se pode pôr em prática de imediato. O ganho de produtividade pode ser relevante.
8 novos standards na familia XML
O W3C publicou 8 novos standards na familia XML para data mining, transformação de documentos e computação empresarial de serviços web a bases de dados. "Mais de 1000 comentários de pessoas que desenvolvem ajudaram a assegurar a resiliência e a implementabilidade do conjunto de tecnologias de bases de dados", disse Jim Melton da Oracle. O XSLT tranforma documento em diferentes marcações ou formatos. O XML Query pode efectuar buscas, inquéritos e junções sobre coleções de documentos. Usando expressões XPath, XSLT 2 e XQuery podem operar sobre documentos XML, bases de dados XML, bases de dados relacionais, motores de busca e repositórios de objectos.
15 janeiro, 2007
Diferenças HTML vs. XHTML
Por favor note que a informação aqui presente se baseia na actual especificação para (X)HTML5. alguns dos detalhes não são aplicáveis tecnicamente a anteriores versões de HTML.
Embora o HTML e o XHTML possam parecer serem similares na sua sintaxe, são bastante diferentes de várias formas.
Nota: Como o actual documento WHATWG ainda é um rascunho esta secção necessita de ser acompanhada como um alvo em movimento.
As diferenças marcadas com @@@ são diferenças que podem teoricamente ser alteradas sem afectar a retrocompatibilidade
Tipos MIME
- O XHTML tem que ser servido como um tipo MIME XML tal como application/xml ou application/xhtml+xml.
- O HTML tem que ser servido como text/html.
É este tipo MIME que determina que tipo de documento está a usar. Se tentar enviar XHTML como text/html de facto está a usar HTML, eventualmente com erros sintáticos.
Tecnicamente, de acordo com a especificação é permitido enviar XHTML 1.0 como text/html. Mas devido à razão anteriormente apresentada tal documento é considerado como documento em HTML e não em XHTML.
Análise
O XHTML usa requisitos de análise/interpretação XML. O HTML usa os seus próprios requisitos que estão definidos de uma forma que se apresenta muito mais próxima da forma de tratamento que os navegadores dão ao HTML actualmente.
- Em XHTML, a má formação é um erro fatal. Em HTML, as regras de tratamento de erros são muito mais simpáticas. Os erros de má formação, que também são erros sintáticos em HTML, incluem os seguintes:
- E comercial não codificado (& em vez de &), e sinais de menor que (< em vez de <) (Isto não se aplica a CDATA).
- Comentários contendo um par extra de hifens ou terminando num hífen, isto é:
- <!-- erro –– sintáctico --> ou
- <!-- erro sintáctico --->.
- Fechos de marcadores a que não correspondem a respectiva abertura de marcadores (não se aplica a elementos com marcadores opcionais)
- Ausência de marcadores de fecho.
- Ocorrência de caracteres inesperados em ou antes de nomes de atributos.
- Ocorrência inesperada de EOF (Fim de ficheiro).
- Caracteres inesperados antes do nome DOCTYPE.
- Ausência de nome DOCTYPE.
- Um identificador PUBLIC num DOCTYPE sem identificador de SYSTEM (Nota: incluir qualquer um destes é um erro sintáctico em HTML5, mas em XML só o identificador SYSTEM pode ocorrer por si.)
- Fecho de marcadores com atributos.
- Fechos de marcadores inesperados (em HTML, um </br> ou </p> pode fazer implicar (mesmo que não seja claro explicito) uma abertura de marcador antes do respectivo fecho).
- O subconjunto interno é permitido em XML, mas não tem significado (e é proibido) em HTML.
- Em alguns casos um subconjunto interno em HTML terminará por ser parcialmente reproduzido em linha.
- A sequência de caracteres "]]>" quando não assinala o final da secção CDATA é um erro de má formação em XHTML, mas é válido em HTML.
- Em XHTML: <![CDATA[...]]> é uma secção CDATA section. Em HTML, é um falso comentário.
- Em XHTML, é uma instrução de processamento. Em HTML é um falso comentário.
- Em HTML, o traço de fracção usado na sintaxe de um elemento vazio é um erro de análise para elementos não vazios (ver abaixo), mas ignorado em todos os casos.
- Em HTML, os elementos script e style são analisados como CDATA. (Nota: a definição de CDATA é diferente da encontrada em XML). Em XML, são interpretados como elementos normais (o que significa que os comentários são tratados como comentários reais e coisas que se parecem com abertura de marcadores são de facto aberturas de marcadores).
- Em HTML, os elementos title e textarea são interpretados como RCDATA. (Nota: A definição de RCDATA é diferente da dada no SGML e não há RCDATA em XML).
- Em HTML, se estiver activado o scripting o elemento noscript é interpretado como CDATA. Se o scripting estiver desactivado (ou indisponível) é interpretado como PCDATA. Em XHTML, o elemento não tem efeito e não pode ser de facto usado para evitar que conteúdo seja mostrado quando o script não estiver disponível.
- Em HTML, os elementos iframe, noembed e noframes são interpretados como CDATA. Em XHTML, são interpretados como elementos normais e sendo assim não impedem o uso de conteúdo.
- Os caracteres de espaço em branco em valores de atributos são normalizados para espaços em XHTML.
- Sob determinadas condições tornam-se implícitos elementos com marcadores opcionais.
- Em HTML, elementos base, link, meta, style e title com marcadores que ocorram em body são movidos e inseridos em head. Em XHTML, ficam onde tenham sido especificados.
- Em HTML, marcadores de certos elementos que aparecem fora de contexto são ignorados. Estes marcadores incluem caption, col, colgroup, frame, frameset, head, option, optgroup, tbody, td, tfoot, th, thead, tr.
- O elemento plaintext tem um requisito especial de interpretação em HTML. (é contudo proibido).
- Há ainda outros casos de interpretação especial de casos de fronteira e condições de erro que não foram aqui listados e que ocorrem em HTML.
Análise
O XHTML usa requisitos de análise/interpretação XML. O HTML usa os seus próprios requisitos que estão definidos de uma forma que se apresenta muito mais próxima da forma de tratamento que os navegadores dão ao HTML actualmente.
- Em XHTML, a má formação é um erro fatal. Em HTML, as regras de tratamento de erros são muito mais simpáticas. Os erros de má formação, que também são erros sintáticos em HTML, incluem os seguintes:
- E comercial não codificado (& em vez de &), e sinais de menor que (< em vez de <) (Isto não se aplica a CDATA).
- Comentários contendo um par extra de hifens ou terminando num hífen, isto é:
- ou
- .
- Fechos de marcadores a que não correspondem a respectiva abertura de marcadores (não se aplica a elementos com marcadores opcionais)
- Ausência de marcadores de fecho.
- Ocorrência de caracteres inesperados em ou antes de nomes de atributos.
- Ocorrência inesperada de EOF (Fim de ficheiro).
- Caracteres inesperados antes do nome DOCTYPE.
- Ausência de nome DOCTYPE.
- Um identificador PUBLIC num DOCTYPE sem identificador de SYSTEM (Nota: incluir qualquer um destes é um erro sintáctico em HTML5, mas em XML só o identificador SYSTEM pode ocorrer por si.)
- Fecho de marcadores com atributos.
- Fechos de marcadores inesperados (em HTML, um </br> ou </p> pode fazer implicar (mesmo que não seja claro explicito) uma abertura de marcador antes do respectivo fecho).
- O subconjunto interno é permitido em XML, mas não tem significado (e é proibido) em HTML.
- Em alguns casos um subconjunto interno em HTML terminará por ser parcialmente reproduzido em linha.
- A sequência de caracteres "]]>" quando não assinala o final da secção CDATA é um erro de má formação em XHTML, mas é válido em HTML.
- Em XHTML: <![CDATA[...]]> é uma secção CDATA section. Em HTML, é um falso comentário.
- Em XHTML, é uma instrução de processamento. Em HTML é um falso comentário.
- Em HTML, o traço de fracção usado na sintaxe de um elemento vazio é um erro de análise para elementos não vazios (ver abaixo), mas ignorado em todos os casos.
- Em HTML, os elementos script e style são analisados como CDATA. (Nota: a definição de CDATA é diferente da encontrada em XML). Em XML, são interpretados como elementos normais (o que significa que os comentários são tratados como comentários reais e coisas que se parecem com abertura de marcadores são de facto aberturas de marcadores).
- Em HTML, os elementos title e textarea são interpretados como RCDATA. (Nota: A definição de RCDATA é diferente da dada no SGML e não há RCDATA em XML).
- Em HTML, se estiver activado o scripting o elemento noscript é interpretado como CDATA. Se o scripting estiver desactivado (ou indisponível) é interpretado como PCDATA. Em XHTML, o elemento não tem efeito e não pode ser de facto usado para evitar que conteúdo seja mostrado quando o script não estiver disponível.
- Em HTML, os elementos iframe, noembed e noframes são interpretados como CDATA. Em XHTML, são interpretados como elementos normais e sendo assim não impedem o uso de conteúdo.
- Os caracteres de espaço em branco em valores de atributos são normalizados para espaços em XHTML.
- Sob determinadas condições tornam-se implícitos elementos com marcadores opcionais.
- Em HTML, elementos base, link, meta, style e title com marcadores que ocorram em body são movidos e inseridos em head. Em XHTML, ficam onde tenham sido especificados.
- Em HTML, marcadores de certos elementos que aparecem fora de contexto são ignorados. Estes marcadores incluem caption, col, colgroup, frame, frameset, head, option, optgroup, tbody, td, tfoot, th, thead, tr.
- O elemento plaintext tem um requisito especial de interpretação em HTML. (é contudo proibido).
- Há ainda outros casos de interpretação especial de casos de fronteira e condições de erro que não foram aqui listados e que ocorrem em HTML.
Sintaxe
- Em HTML, o doctype é obrigatório em XHTML é opcional.
- Em XHTML, os nomes dos marcadores e dos atributos são sensíveis ao corpo da letra (maísculas e minúsculas têm significados diferentes) em HTML tal não sucede.
- Em XHTML, elementos não vazios exigem tanto a abertura do marcador como o fecho do marcador. Em HTML pode omitir-se um deles ou até ambos:
- html (ambos)
- head (ambos)
- body (ambos)
- li (fecho do marcador)
- dt (fecho do marcador)
- dd (fecho do marcador)
- p (fecho do marcador)
- colgroup (ambos)
- thead (fecho do marcador)
- tbody (ambos)
- tfoot (fecho do marcador)
- tr (fecho do marcador)
- td (fecho do marcador)
- th (fecho do marcador)
- Em XHTML, os elementos vazios podem usar quer a sintaxe de elemento vazio (<br/>) ou fazer o fecho imediatamente a seguir à abertura do marcado (<br></br>). Em HTML, a sintaxe de elemento vazio (<br/>) é permitida em elementos vazios mas proibida noutros elementos. Contudo não serve para nada e pode ser omitida. Não é permitido o fecho de um marcador para elementos vazios.
- base, link, meta, hr, br, img, embed, param, area, col e input
- Nota: os seguintes são tratados como elementos vazios para finalidades de requisitos de interpretação, mas, como são obsoletos e não-standard a sintaxe do traço de fracção final não é permitida: basefont, bgsound, spacer, wbr. (embora visto estes elementos não serem permitidos tal não faça nenhuma diferença).
- O HTML autoriza a minimização de atributos (isto é, a omissão do valor) mas o XHTML não.
- O HTML autoriza a utilização de valores de atributos sem estarem entre pelicas o XHTML não.
- O XHTML autoriza o uso de secções CDATA o HTML não.
- O XHTML autoriza o uso de instruções de processamento o HTML não.
- Em HTML, todas as referências a entidades estão pré-definidas e não requerem um DTD. Mas como não há DTD para XHTML5, as referências de identidades não pode ser usadas em XHTML. (excluindo as 5 pré-definidas: &, <, >, " e ')
- Pode fornecer o seu próprio DTD para uso com o seu próprio interpretador de validação, mas tenha em mente que os navegadores não usam interpretadores de validação e que não irão ler o DTD.
- O conjunto de caracteres unicode válido em XML 1.0 é mais limitado do que em HTML.
- Prefixos de espaço de nomeação são permitidos em XHTML. São proibidos em HTML.
Marcação
- A declaração de espaço de nomeação (atributo xmlns) é obrigatório em XHTML. O atributo xmlns também é autorizado a figurar no elemento html em HTML sob a condição de o seu valor ser "http://www.w3.org/1999/xhtml".
- <html xmlns="http://www.w3.org/1999/xhtml">
- Em HTML, o atributo xmlns não tem absolutamente nenhum efeito, É basicamente um talismã. Só é autorizado para fazer a migração de e para XHTML ligeiramente mais fácil. Quando interpretado por um interpretador HTML o atributo acaba no espaço de nomeação null.
- Em XML (com um interpretador que saiba interpretar espaços de nomeação XML), um atributo xmlns faz parte do mecanismo de declaração de espaços de nomeação e um elemento não pode ter de facto um atributo xmlns em espaço de nomeação null. Em implementações DOM o atributo termina no espaço de nomeação "http://www.w3.org/2000/xmlns/".
- O XHTML autoriza o uso de elementos e atributos que não sejam elementos e atributos XHTML (em espaços de nomeação diferentes), o HTML não.
- O XHTML usa o atributo xml:lang, o HTML usa o atributo lang em seu lugar,
- O XML ID introduz xml:id,que pode ser usado em XHTML. Em HTML não tem qualquer efeito.
- Em HTML, pode-se usar o elemento noscript. Em XHTML, é proibido.
- O HTML usa o elemento base, o XHTML usa em seu lugar o elemento xml:base.
- Em XHTML, os elementos p podem conter elementos estruturais de nível em linha incluindo blockquote, dl, menu, ol, ul, pre e table. Na serialização de HTML devido a constrangimentos de retrocompatibilidade isto não é possível (embora possa ser feito por manipulação do DOM).
- Em XHTML, os elementos table podem conter elementos tr. Em serialização de HTML, devido a constrangimentos de retrocompatibilidade tal não é possível (embora possa ser feito através de manipulação do DOM).
Codificação de Caracteres
- Em XHTML, a declaração XML pode ser usada para especificar a codificação de caracteres. Em HTML a declaração xml é proibida
- Em HTML, pode ser usado o elemento meta em seu lugar. O atributo http-equiv no elemento meta é proibido em XHTML e ignorado se incluído.
- A codificação de caracteres por omissão para XHTML é de acordo com as regras de XML: UTF-8 ou UTF-16. Se a codificação não for especificada em HTML, deve ser determinada de acordo com uma heurística especifica da implementação ou ter um valor por omissão (Nota: esta secção da especificação ainda não está terminada).
Scripts/Guiões
- não se pode usar document.write() e document.writeln() em XHTML, mas pode-se em HTML.
- em XHTML, o uso da propriedade innerHTML obriga a que a string seja um fragmento de XML bem formado.
- As API do DOM são sensíveis à caixa (maísculas vs. minúsculas) em XHTML e em alguns casos não são sensíveis em HTML. (Isto não se aplica a elementos que não se encontrem no espaço de nomeação HTML)
- Element.tagName, Node.nodeName, e Node.localName retornam o valor em maísculas.
- Document.createElement() não é sensível à caixa (a forma canónica é minúsculas).
- Element.setAttributeNode() muda o nome do atributo para minúsculas.
- Element.setAttribute() não é sensível à caixa (a forma canónica é minúsculas).
- Document.getElementsByTagName() e Element.getElementsByTagName() são não sensíveis à caixa.
- Document.renameNode(). Se o novo espaço de nomeação é o espaço HTML, então o novo nome qualificado deve ser em minúsculas antes de a renomeação ter lugar.
- Em HTML, Document.createElement() criará um elemento no espaço de nomeação HTML. Em XML (incluindo XHTML), o espaço de nomeação está definido tanto pelo DOM2 como pelo DOM3 como sendo null.
- Em XHTML, os navegadores não têm interoperabilidade nesta área. Em Firefox, o espaço de nomeação depende do tipo MIME. Em Opera depende do elemento raiz e em Safari é sempre null.
Folhas de estilo
- Os selectores, como usados em CSS criam correspondência sensível à caixa no XHTML mas são insensíveis à caixa em HTML.
- O CSS requer tratamento especial do elemento body em HTML para pintura de fundos no canvas, o que não se aplica ao XHTML.
Diferenças entre HTML 4.01 e HTML 5
Tipo MIME
Tanto o HTML 4.01 como o HTML 5 usam text/html.
Content-Type: text/html; charset=UTF-8
Interpretação de HTML
- Desde o HTML 2.0 até ao HTML 4.01 são formalmente baseados em SGML, mas os navegadores não implementaram interpretadores SGML. Notas de implementação 4.2 SGML e B.3 SGML, HTML 4.01. Esta é uma secção não normativa da especificação HTML 4.01. Ela faz já a diferença entre agentes utilizadores HTML e agentes utilizadores SGML.
- HTML 5 define os seus próprios requisitos de interpretação baseados na forma como os navegadores interpretam o HTML de facto.
Sintaxe
* A FAZER
Marcação
- Lista de elementos HTML 4.01
- Lista de atributos HTML 4.01
- Ainda não há lista de elementos e atributos para Web Apps 1.0
Atributos Obsoletos
Alguns atributos definidos em HTML4 não foram incluídos em HTML5. Eis a lista actual (sujeita a alterações, ver especificação):
- html@version
- head@profile
- a@rev, link@rev
- a@target, area@target, base@target, form@target (é mencionado em WF2...), link@target
- a@charset, link@charset, script@charset
- table@summary
- td@headers, th@headers
- td@axis, th@axis
- param@valuetype
- object@standby
- meta@scheme
- object@archive
Além disso o HTML5 não tem nenhum dos atributos de apresentação que figuram em HTML4 (incluindo aqueles que figuram em <table>). Quaisquer atributos definidos em elementos que não figurem em HTML4 obviamente também não figuram em HTML5.
Elementos Obsoletos
Os seguinte elementos estão presentes em HTML4 mas não se encontram definidos em HTML5:
- acronym (usar <abbr> em seu lugar)
- applet (usar <object> em seu lugar)
- basefont
- big
- center
- dir
- font
- frame
- frameset
- isindex
- noframes
- noscript (só em XHTML)
- s
- strike
- tt
- u
Codificação de Caracteres
Algoritmo HTML 4
Fonte 5.2.2 Especificação de codificação de caracteres na especificação HTML 4.01.
- Um parâmetro de HTTP "charset" num campo "Content-Type".
- Uma declaração META com um atributo "http-equiv" apontando para o "Content-Type" e com um valor para "charset".
- Um atributo charset num elemento que designa um recurso externo.
Algoritmo HTML 5
Isto ainda está indefinido na especificação. Ver Detecção de Codificação de Caracteres para documentação.
Diferenças entre DOM Level 2.0, 3.0 e HTML 5 DOM APIs
Esta secção poderá pertencer a uma página diferente.
- A FAZER (é necessário falar sobre as mudanças do DOM API que o HTML5 está a fazer em comparação com DOM2 e DOM3)
10 janeiro, 2007
Variáveis de instância de classe - Ruby
Isto é uma tradução de um artigo de Martin Fowler sobre ClassInstanceVariable (uma variável de instância de classe).
Quando se aprende algo sobre objectos normalmente aprendemos que esses objectos capturam dois tipos de dados: instância (exemplar) e classe. As variáveis de instância são as mais comuns, os dados variam de instância para instância do objecto. As variáveis de classe, também conhecidas por variávies estáticas, são partilhadas por todas as instâncias (exemplares) da classe. Cada instância aponta para o mesmo valor e qualquer alteração é vista por todas as instâncias. As variáveis de classe são muito menos comuns do que as variáveis de instância especialmente variáveis de classe que sejam mutáveis.
Um dos aspectos complexos das variáveis de classe é como é que elas interagem com uma hierárquia de herança. Consideremos uma variável de classe que é usada para guardar a própria instância.
class Empregado@@exemplares = []def self.exemplaresreturn @@exemplaresenddef guardar@@exemplares << selfenddef initialize nome@nome = nomeendendEmpregado.new("Martins").guardarEmpregado.new("Roberta").guardarEmpregado.new("Eurico").guardarputs Empregado.exemplares.size
Não há aqui nenhuma surpresa, há três empregados. Agora experimentemos isto:
class Empregado@@exemplares = []def self.exemplares@@exemplaresenddef guardar@@exemplares << selfenddef initialize nome@nome = nomeendendclass Programador < Empregado; endclass Restodopessoal < Empregado; endRestodopessoal.new('Martins').guardarRestodopessoal.new('Roberta').guardarProgramador.new('Eurico').guardarputs Restodopessoal.exemplares.sizeputs Programador.exemplares.size
O resultado é 3 e 3, enquanto preferiamos obter 2 e 1. A razão por que isto se passa é que a variável de classe é partilhada ao longo de todas as instâncias da classe e essas incluem todas as subclasses. Há duas classes mas só uma variável.
Por vezes esta variável que perpassa a totalidade da hieráquia é o que necessitamos, mas por vezes, como neste caso, preferiamos ter uma variável diferente em cada classe. Podemo-nos referir a uma variável de instância de classe do mesmo modo que a uma variável de classe, mas teremos um valor diferente por classe.
O suporte para variáveis de instâncias de classe não é comum nas linguagens OO, mas não é difícil de criarmos um nós próprios. O modo óbvio de o criar seria o de usar um dicionários de chaves por nome de classe.
class Empregado@@exemplares = {}def self.exemplares@@exemplares[self]enddef guardar@@exemplares[self.class] || = []@@exemplares[self.class] || = << selfenddef initialize nome@nome = nomeendendclass Programador < Empregado; endclass Restodopessoal < Empregado; endRestodopessoal.new('Martins').guardarRestodopessoal.new('Roberta').guardarProgramador.new('Eurico').guardarputs Restodopessoal.exemplares.sizeputs Programador.exemplares.size
Pode usar esta técnica em qualquer linguagem OO. Ruby contudo tem de facto variáveis de instância de classe.
class Empregadoclass << self; attr_accessor :exemplares; enddef guardarself.class.exemplares || = []self.class.exemplares << selfenddef initialize nome@nome = nomeendendclass Programador < Empregado; endclass Restodopessoal < Empregado; endRestodopessoal.new('Martins').guardarRestodopessoal.new('Roberta').guardarProgramador.new('Eurico').guardarputs Restodopessoal.exemplares.sizeputs Programador.exemplares.size
A definição da variável de instância de classe é o fragmento class << self; attr_accessor :exemplares; end.
02 janeiro, 2007
Mais Exigente
Mais exigente com a linguagem
Alguém me sabe dizer se há estudos similares a este sobre pobreza de linguagem em português?
Uma das coisas que me tem preocupado neste sítio é que a linguagem não seja excessivamente hermética, mas tenho dado demasiados erros (e não me estou a referir só a erros ortográficos) pois, normalmente, quando faço uma nova entrada, faço-o de forma apressada. O meu tempo livre realmente tem escasseado e isso leva a alguns facilitismos. Por essa razão este ano 2007 irão ver menos entradas mas entradas mais elaboradas (espero).
Mais exigente com os marcadores
Num esforço para alinhar este espaço com essa maior exigência estou a tentar que este sítio fique tão conforme quanto o possível dentro dos meus conhecimentos e uma das coisas já alcançadas é conformidade com o HTML 4.01. A conformidade com o CSS 2.1 está a caminho mas vai demorar algum tempo. Poderá ainda haver uma alteração profunda do HTML de modo a poder alcançar numa terceira fase WAI-A ou mesmo um WAI-AA. Isto não é muito fácil quando se trabalha num ambiente que não se estudou previamente (blogger). É sempre mais difícil começar com uma paleta já preenchida do que com uma paleta em branco excepto se a paleta preenchida for de muito boa qualidade.
Não consigo por exemplo perceber que no novo bloguer um blogue criado de raiz tenha mais do que 700 erros e avisos por parte do validador do W3C. No WordPress isso não sucede.
Ainda não explorei a via da instalação do site noutro local e apontar para lá a partir do actual URL, mas só o farei se de todo me for impossível fazer o que pretendo.
Mais exigente com o conteúdo
O conteúdo irá obedecer a algumas regras de estilo que estou a esboçar de forma a poder manter um padrão de qualidade. Tenho que admitir que aqui gosto particularmente da forma de escrita de um conjunto de pessoas que englobam a Amy Hoy (rails e companhia), a Kathy Sierra (Creating Passionate Users), o Ivo Gomes, o João Craveiro e noutro tipo de conteúdo o Pacheco Pereira. Claro está esta lista não é exaustiva posso dizer que leio irregularmente algumas centenas de sítios/blogues e subscrevi algumas dezenas de feed.
Essa exigência leva-me a ter que informar os leitores deste sítio que o texto sobre semântica é demasiado pobre para poder sequer ser considerado como ponto de partida. Infelizmente vejo que continua a ser uma das entradas mais lidas deste sítio (cerca de 400 leitores, em média mensal, no último ano, com ligeira tendência para a baixa) e que não o retiro de linha só para poder lembrar-me das barbaridades ditas nele.
Para intróito de bom ano já deve chegar. Bom Ano para todos.
21 dezembro, 2006
A List Apart 229
Acaba de sair o último número (229) do A List Apart de 2006. Neste número são apresentados dois novos artigos:
- O primeiro trata de uma técnica para adaptar o arranjo de uma página ao tamanho do ecrã (como podem verificar nos comentários apresenta demasiados problemas para ser aplicada independentemente de outras técnicas, mas é inspirador.)
- O segundo apresenta uma técnica para manter a acessibilidade de formulários compactos.
Actividade do W3C na semana que acaba em 2006-12-22
O dia de ontém 20 de Dezembro foi particularmente activo no sítio do W3C. Notas de grupos sobre assinatura digital, o WAI a tentar disciplinar os conteúdos dinâmicos para que sejam acessíveis e ainda alguma soap.
- Usar Assinatura Digital em XML num Ambiente XML (Anotação técnica).
- Caminho para Aplicações da Internet Ricas e Acessíveis (WAI-ARIA Roadmap). O futuro será criar uma extensão para XHTML 1.x porque este suporta espaços de nomeação. Há ainda 2 outros documentos neste projecto que devem ser consultados.
- O primeiro rascunho de trabalho da Linguagem de Integração de Multimedia Sincronizada (SMIL 3.0) foi publicado e aguarda comentários construtivos.
20 dezembro, 2006
Melhores Práticas Móveis 1.0
O Grupo de Trabalho de Melhores Práticas Móveis acaba de publicar o segundo Rascunho de Trabalho dos W3C mobileOK Basic Tests 1.0. Este documento define os testes que oferecem fundamento para declarar que determinado conteúdo é conforme o W3C mobileOK Basic que são baseados sobre as Melhores Práticas Móveis do W3C.