HTML5: 10 duras verdades

O momento é propício para admitir que existem limitações sérias com o modelo.

Por Peter Wayner, InfoWorld

Para muitos profissionais de TI, o HTML5 representa a chegada de algumas novas características interessantes, com potencial para provocar uma mudança de paradigma na programação Web. Polvilhe um pouco de HTML5 em seu código e seus sites serão mais rápidos e mais extravagantes. Mas a realidade do que HTML5 pode fazer por aqueles que procuram APPs na Web está aquém do hype.

O momento é propício para admitir que existem limitações sérias com o modelo. Não só há razões para lamentar sobre o fato de o HTML5 não realizar todos os nossos sonhos de atingir o nirvana na Web, como até mesmo razões para abster-se de usar o HTML5, em alguns casos.

A verdade é que, apesar de suas capacidades poderosas, o HTML5 não é a solução para todos os nossos problemas. Suas características adicionais são convincentes e ajudam a tornar aplicativos Web concorrentes formidáveis para aplicativos nativos, mas questões com segurança, limitações para armazenamento local de dados, os desafios de sincronização e as políticas de uso, deveriam ser suficientes para frear todas as expectativas. Afinal, cada tecnologia tem suas limitações.

Listamos dez duras verdades que os desenvolvedores Web devem considerar para tirar o máximo do HTML5.

1:: Segurança é um pesadelo
Na ponta cliente, o problema fundamental é que o usuário final tem controle sobre o código executado na máquina. No caso de aplicações Web, quando o seu browser vem com uma ferramenta de depuração, é mais fácil do que nunca abusar desse controle.

Com um depurador JavaScript como o Firebug, quem tem alguma curiosidade sobre o que o Facebook, o Google, ou qualquer outro site está fazendo pode simplesmente começar a inserir breakpoints e ver o código. Isso é ótimo para depurar e aprender como operar sites, mas também é um pesadelo para a segurança.

Suponha que você tenha o interesse em mudar o valor de uma variável. O Firebug ou qualquer um dos depuradores presentes em outros navegadores pode ajudá-lo a ajustar as variáveis como você desejar. Quer enganar seus amigos e fazê-los crer que você está em determinado local, longe do local onde você de fato está? É fácil editar as variáveis latitude e longitude para colocar seu browser em qualquer lugar do mundo. Todas as características puras do seu aplicativo Web podem ser modificados, e o browser torna mais fácil essa modificação do que um APP de código nativo.

Isso significa que os aplicativos baseados em clientes HTML5 podem não ser confiáveis para a coleta dos dados, e é melhor para que todos tenham consciência de suas capacidades.

2 :: O armazenamento local de dados é limitado
A permissão para o armazenamento de até 4GB de dados estruturados pelo banco de dados presente no browser, no lado do cliente – de forma parecida a como vinha ocorrendo com o uso de cookies, mas tentando eliminar as limitações impostas, como o tamanho de 4Kb – é uma das funcionalidades mais badaladas do HTML5.

O desenvolvedor deve lembrar, no entanto, que o armazenamento local é por site e estará disponível para seus scripts toda vez que o site que originalmente armazenou os dados for acessado, de modo a poupar largura de banda e melhorar o desempenho.

E também que os banco de dados dos browsers não dão aos usuários o mesmo poder sobre seus dados que eles teriam em outros aplicativos.

Por exemplo: o usuário não pode mover os dados armazenados para outra máquina, fazer cópias, fazer um backup, ou abri-lo com um aplicativo diferente do navegador. Os arquivos não são projetados para se mover facilmente, embora seja possível fazê-lo se o usuário souber onde e como localizá-los. Até porque, não são como planilhas ou documentos de texto, fáceis de abrir com qualquer editor.

3:: Dados locais podem ser manipulados
O usuário não pode ter controle sobre os dados armazenados localmente, mas o site central também pode ter problemas por causa com a sincronização e até mesmo com a segurança desses dados.

Não há como o desenvolvedor garantir que o banco de dados local nunca será manipulado pelo usuário. Embora não existam ferramentas que tornem a edição dos dados locais e/ou a atualização de privilégios, tarefas fáceis para os usuários, ainda assim elas podem vir a ocorrer. Brechas de segurança do código JavaScript, por exemplo, são apenas um dos caminhos possíveis para tal.

4:: A sincronização dos aplicativos offline é um pesadelo
A possibilidade de armazenamento local de dados local do HTML5 melhora imensamente a capacidade de usar aplicativos Web no modo offline. O único problema é a sincronização de dados.

Se um aplicativo Web está conectado à Internet, pode sempre salvar os dados para a nuvem. Quando está offline, as alterações não são sempre armazenados na nuvem. Quando alguém muda de navegador ou usa uma máquina diferente, cópias começam a proliferar e as dificuldades de sincronização também.

Os desenvolvedores devem se preocupar em fornecer a interface para que o usuário possa lidar com a sincronização. A especificação HTML5 não oferece qualquer ajuda.

Programadores gerenciar essas dores de cabeça utilizando sistemas de controle de versão, que se tornaram cada vez mais sofisticados para lidar com esse problema. No entanto, apenas ter a tecnologia não significa que ela seja de fácil uso. A fusão de vários repositórios GIT pode levar tempo.

5:: A nuvem lhe deve nada
Não é justo culpar HTML5 por todos os problemas estruturais com o armazenamento de dados na nuvem, mas a nuvem é uma parte essencial do modelo, que tira proveito dela para corrigir todas as dores de cabeça da instalação de software e backup de dados.

Dadas as limitações de armazenamento local de dados do HTML5, a maior parte do armazenamento de dados das APPs Web continuará nos servidores, e há momentos em que esta abordagem poderá ser devastadora.

Recentemente o Facebook decidiu que não gostava de um plug-in baseado em Linux para fazer upload de fotos. O plug-in foi removido, juntamente com todas as fotos que foram enviadas ao usá-lo.

Essas histórias não são comuns, mas estão se tornando cada vez mais frequentes, por muitas razões. E podem vir a ser um problema ainda maior se considerarmos que muitos termos de serviço de aplicações Web não responsabilizam os fornecedores por perdas de dados, deixando o usuário sem nenhum recurso legal para recuperá-los. Alguns dos acordos de serviço mais ultrajantes insistem que os dados podem até mesmo serem excluído sem “nenhuma razão” para tal.

A estrutura do HTML5 praticamente garante que qualquer do dado em cache local no navegador do usuário será armazenado na nuvem, fora de seu alcance e controle. O hype HTML5 diz que esta é uma característica fantástica, mas esquece que ele pode se voltar facilmente contra o modelo.

6:: Upgrades forçados não são para todos

Uma história, apócrifa, circula na rede. Consta que determinada pessoa usou uma conta de Gmail para conexões casuais com pessoas em bares. Quando o Google+ foi lançado, todas as lembranças dessas pessoas vieram à tona, porque endereços antigos para os fóruns de discussão voltaram à superfície. Todos os dias, velhos conhecidos reaparecem lá pedindo para serem incluídos em círculos de discussão.

Quando as empresas Web necessitam fazer o upgrade de seus serviços, normalmente o fazem de uma vez, contemplando todos os usuários ao mesmo tempo. Se, por um lado, isso livra os usuários de terem que gerenciar a instalação do upgrade, por outro acaba virando um pesadelo para qualquer um que não queira usar os novos recursos.

E este não é apenas um problema para a privacidade das pessoas, como no caso acima.

7:: Web Workers não oferecem priorização

eb Workers estão entre os recursos mais intrigantes do HTML5. Ele acelera o carregamento de páginas web cheias de código javascript, por ser capaz de executá-los em processos separados do restante da página web. Em outras palavras, o HTML5, com o Web Workers permite que o navegador se comporte como um sistema operacional, ainda que parcialmente.

Infelizmente, não há maneira de gerenciar a carga de trabalho de forma eficaz ou de definir prioridades.

8:: Incompatibilidades de formato abundam

Não culpe os comitês do HTML5 pelo fato de os desenvolvedores de browsers não tenham decidido implementar todos os vários formatos áudio e vídeo. São os desenvolvedores que têm que lidar com as consequências quando um arquivo que funciona perfeitamente em um browser não faz nada em outro. Há um teste para isso? Desenvolvedores de API foram espertos o suficiente para incluir a função canPlayType, mesmo que ela não seja suportada por todos os navegadores.

9:: Implementações são browser-dependentes

A visão idílica do HTML5 é uma coisa, a realidade grungy de suas implementações é outra. Verdade. Os programadores estão tentando fazer o seu melhor para construir os sonhos dos arquitetos, mas algumas tags e objetos não funcionam corretamente.

Por exemplo, há muitos desejos sobre a API de geolocalização do HTML5. Ela oferece alguma proteção para a privacidade e um pouco de controle sobre a precisão. Mas em determinado browser, sempre dá time out.

Em última instância, esta é mais uma reclamação sobre como os navegadores não conseguem implementar recursos HTML5 de forma consistente, ao contrário de um ser que visa a estrutura da API em si.

10:: Idiossincrasias de hardware impõem novos desafios

Também parece injusto reclamar sobre como alguns desenvolvedores de browser vão além do dever de proporcionar um desempenho muito melhor. Mas nenhuma boa ação fica impune.

A Microsoft tem feito um grande trabalho de melhorar o desempenho de objetos Canvas no IE, integrando-os com os drivers de baixo nível de hardware. A empresa encomendou jogos simples, como pirateslovedaisies.com, para demonstrar o recurso.

Mas agora os programadores devem prestar atenção para saber se esse recurso adicional está disponível ou não, e se seu código está sendo executado.

Fonte: idgnow.uol.com.br

******************************************

CONHEÇA AS VANTAGENS DO  MICROSOFT SHAREPOINT

tela SharePoint

A Plataforma de Colaboração Corporativa para a Empresa e a Internet.

Consulte a DANRESA e saiba mais.

Anúncios

União Europeia alerta para problemas de segurança do HTML5

Bloco econômico encontrou 51 vulnerabilidades, mas algumas são inerentes ao padrão. Usuários terão de tomar cuidado para não cair em armadilhas.

A agência de segurança digital da União Europeia (ENISA, na sigla em inglês) alerta que os padrões sobre os quais o HTML5 está sendo desenvolvido negligenciam importantes questões quanto à proteção contra ataques. Nesta segunda-feira (1/08) ela divulgou um documento de 61 páginas, no qual analisa as especificações da tecnologia.

O HTML5 é de responsabilidade do Consórcio World Wide Web (W3C). A organização aceita comentários a respeito da última prévia do HTML5 – liberada há dez dias – até essa terça-feira (2/08), ou seja, a União Europeia enviou suas sugestões pouco antes do término do prazo.

“Penso que é importante que, logo no primeiro rascunho, já se observe as especificações tendo a segurança como uma das prioridades”, afirmou Giles Hogben, diretor da agência. Ele destaca a importância dessas diretrizes, pois serão usadas como referências por muitos anos – tal qual o que ocorreu com o HTML4, cujas especificações foram liberadas em 1999.

Se, por exemplo, os códigos quanto ao uso da tecnologia em navegadores não forem bem estudados, usuários finais e corporativos estarão em risco. “Todos utilizam browsers nos dias de hoje”, disse Hogben. “É uma questão crucial”.

A ENISA encontrou 51 vulnerabilidades. Alguns dos problemas podem ser corrigidos a partir de simples mudanças, outras são inerentes aos próprios recursos, de modo que os usuários devem ser alertados para se protegerem. Uma das funções que chamaram a atenção da agência corresponde aos novos tipos de formulários a serem usados.

Com o HTML5 será possível inserir um botão em uma página com formulários, posicionando-o em qualquer lugar. Segundo os especialistas, crackers poderão tirar proveito do recurso, colocando seu próprio ícone no portal, e levando usuários a clicarem onde não deveriam, enviando dados confidenciais aos criminosos.

“Não estamos recomendado que o recurso seja retirado, apenas queremos que os usuários tenham acesso às informações necessárias para que não caiam em golpes”, ressaltou Hogben.

A agência também fez recomendações quanto ao modo como os internautas devem se comportar na hora de fazer transações financeiras. Eles devem usar diferentes navegadores ou, pelo menos, ativar o sand boxing, quanto abrirem múltiplas abas. Isso evitará com que o invasor, ao comprometer uma página, espalhe sua praga para outros locais que não a própria aba infectada.

A ENISA continuará enviando suas conclusões aos grupos envolvidos com o W3C. Em janeiro de 2012, novas especificações deverão ser liberadas, tendo em conta as sugestões recebidas.

(Jeremy Kirk)
 
*********************************
Conheça o WEBTITAN

Poderosa solução de “Web Filtering” que provê ricas funcionalidades e permite o gerenciamento e a proteção dos usuários quando estão navegando na internet.

IBM lança o Maqetta – Editor de interfaces em HTML5

A IBM anunciou recentemente o lançamento de uma versão preview do Maqetta, que possibilita a autoração WYSIWYG (what you see is what you get) de interfaces de usuário em HTML5 usando recursos como arrastar/soltar e outros.

O Maqetta suporta tanto a criação de interfaces para desktops como para dispositivos móveis.

O Maqetta Preview já está disponível gratuitamente no site http://maqetta.org. Como alternativa, os usuários podem fazer o download de compilações que podem ser instaladas em seus próprios servidores.

Fonte: http://www.baboo.com.br

Padrões

O código do projeto é construído usando 100% de tecnologias de padrões abertos.  Algumas das principais normas apoiadas pelo projeto:

  • HTML5
  • CSS3
  • JavaScript
  • OpenAjax Widgets

Open Source

Maqetta está disponível sob uma licença de código aberto. Você pode baixar o código fonte e instalá-lo em seu próprio servidor, personalize o código para atender às suas necessidades e / ou contribuir com melhorias para o projeto de código aberto.

Suporte

 As páginas HTML criadas pelo Maqetta normalmente trabalham em todos os navegadores mais populares, incluindo o IE (ressalva: isso depende do conjunto de ferramentas que você usa JavaScript e codificação de dados).  Mas se você deseja executar o aplicativo Maqetta, você vai precisar usar uma versão recente de um dos seguintes navegadores, que suporta as funcionalidades que o HTML5 Maqetta exige.

Fonte: http://maqetta.org/

Você está pronto para o HTML 5 ?

 

Quem acompanhou o começo da web deve lembrar do quanto as primeiras páginas eram feias. O design de páginas com HTML puro era cinza, quadradão, feito na base de frames e tabelas, as animações eram arquivos GIF toscos e restava ao webmaster fazer graça com scripts inúteis. Nesses últimos anos, vários padrões e tecnologias surgiram para ajudar a linguagem, como o CSS, o Flash e o XHTML. Mesmo assim, chegou a hora de mais mudança. A nova versão do padrão HTML está mais sólida, com os principais navegadores suportando suas inovações e facilitando assim a vida do designer, que poderá dispensar bibliotecas e pacotes auxiliares.

Vale lembrar que nem tudo funciona em todos os browsers, já que, na falta de uma especificação definitiva (que está prevista para 2012), os empresas adicionam os recursos do HTML 5 nos navegadores a conta-gotas. Conheça, a seguir, as principais mudanças que já estão aprovadas pela W3C e pelo WHATWG, as entidades que decidem o futuro da linguagem HTML.

Multimídia sem plug-in

O conteúdo em áudio e vídeo na web é refém dos plug-ins, como o Flash, para ser exibido. O HTML 5 prevê uma forma de contornar isso com as tags <video> e <:audio>. Falta ainda definir os tipos de codecs a ser utilizados universalmente com essas tags. Hoje, Chrome e Safari conseguem exibir filmes em H.264 e tocar áudio AAC, encapsulados num arquivo MP4. Já o Firefox, fiel aos padrões abertos, mostra só vídeos Theora e som Vorbis, dentro de um arquivo Ogg. O impasse não preocupa tanto, pois as tags <video> e <:audio> podem receber mais de um arquivo, com o browser selecionando qual é a opção compatível. Para adicionar um vídeo à página, basta usar o código:

<video src="meuvideo.mp4 width="320" height="240" controls></video>

CSS arrumadinho

O novo HTML promete aposentar frames e tabelas das páginas, com o CSS efetivado como responsável para esse fim. Além disso, a versão 5 conta com tags para definir seções dos sites, facilitando a integração com as folhas de estilo. Atualmente, o normal é usar um elemento <div>, com seu nome indicando o tipo de seção. As novas tags são <header>, <footer>, <article>, <section>, <nav> e <aside>. Elas definem o cabeçalho, o rodapé, um artigo, uma seção (de um artigo), a barra de navegação e anotações sobre o conteúdo. Com esses elementos, é criada uma padronização que facilita a localização de conteúdo pelos buscadores e o reaproveitamento dos arquivos CSS.

Gráficos nascidos na web

O elemento <canvas> permite criar desenhos usando JavaScript. Assim é possível, por exemplo, transformar dados do site em gráficos dinâmicos. A tag também serve para usar um texto ou imagem como substituto do desenho, caso o browser não tenha suporte aos gráficos dinâmicos. Nesse caso, o conteúdo alternativo fica entre e <canvas> e </canvas>.

Calendários sem erro

Qual é a data definida por 10/2/2010? Pode ser 10 de fevereiro, no padrão usado no Brasil, e, ao mesmo tempo, 2 de outubro, no modelo americano. O HTML 5 pode contornar essas situações com tags que definem o tipo de dados e sua formatação no texto da página web. A tag <time> marca hora e data e evitaria o problema descrito acima usando o código <timedatetime=”2010-02-10″> </time>, que poderia identificar as informações do navegador e decidir qual seria a data correta, para que ela possa ser exibida no padrão do usuário.

Versão offline

Já ouviu falar no Google Gears? Ele transforma aplicativos web em programas que rodam no browser mesmo em máquinas sem conexão com a web. Essa mágica é feita pelo recurso DOM Storage, que poderá ser usado por qualquer site em HTML 5. Um ponto essencial dessa forma de armazenamento local é que o servidor remoto não pode acessar diretamente o conteúdo (diferentemente dos cookies). Somente o browser e os scripts da página acessada podem modificar o conteúdo offline. Hoje, cada browser usa um limite de espaço. O Firefox aloca no máximo 5 MB por domínio web acessado. Já o Internet Explorer libera 10 MB por base de dados criada, independentemente do domínio.

Muito além dos cliques

Existem várias bibliotecas para habilitar o suporte ao recurso de arrastar e soltar objetos em sites. Mas no HTML 5 a coisa fica bem mais fácil. Basta definir valores para três eventos em JavaScript: dragenter, dragover e drop. Eles indicam, respectivamente, a entrada e a passagem de um elemento sobre outro, além do evento para o momento em que um item é solto. Definir um elemento da página como item que pode ser arrastado é mais fácil ainda. Basta adicionar a definição draggable=”true” a ele.

Fonte: Info

Comentário: O HTML 5 vem pra reorganizar o festival de TAGs que são utilizadas hoje para exibir vídeos, animações ou personalizar nosso layout, criadas a partir da evolução da Internet. Creio que a nova linguagem vai ajudar e muito os desenvolvedores e novatos a criarem seus sites mais facilmente e ao mesmo tempo compatível com a maioria dos navegadores (isto se os usuários atualizarem suas máquinas). 

Você está pronto para o HTML 5 ?

Quem acompanhou o começo da web deve lembrar do quanto as primeiras páginas eram feias. O design de páginas com HTML puro era cinza, quadradão, feito na base de frames e tabelas, as animações eram arquivos GIF toscos e restava ao webmaster fazer graça com scripts inúteis. Nesses últimos anos, vários padrões e tecnologias surgiram para ajudar a linguagem, como o CSS, o Flash e o XHTML. Mesmo assim, chegou a hora de mais mudança. A nova versão do padrão HTML está mais sólida, com os principais navegadores suportando suas inovações e facilitando assim a vida do designer, que poderá dispensar bibliotecas e pacotes auxiliares.

Vale lembrar que nem tudo funciona em todos os browsers, já que, na falta de uma especificação definitiva (que está prevista para 2012), os empresas adicionam os recursos do HTML 5 nos navegadores a conta-gotas. Conheça, a seguir, as principais mudanças que já estão aprovadas pela W3C e pelo WHATWG, as entidades que decidem o futuro da linguagem HTML.

Multimídia sem plug-in

O conteúdo em áudio e vídeo na web é refém dos plug-ins, como o Flash, para ser exibido. O HTML 5 prevê uma forma de contornar isso com as tags <video> e <:audio>. Falta ainda definir os tipos de codecs a ser utilizados universalmente com essas tags. Hoje, Chrome e Safari conseguem exibir filmes em H.264 e tocar áudio AAC, encapsulados num arquivo MP4. Já o Firefox, fiel aos padrões abertos, mostra só vídeos Theora e som Vorbis, dentro de um arquivo Ogg. O impasse não preocupa tanto, pois as tags <video> e <:audio> podem receber mais de um arquivo, com o browser selecionando qual é a opção compatível. Para adicionar um vídeo à página, basta usar o código:

<video src="meuvideo.mp4 width="320" height="240" controls></video>

CSS arrumadinho

O novo HTML promete aposentar frames e tabelas das páginas, com o CSS efetivado como responsável para esse fim. Além disso, a versão 5 conta com tags para definir seções dos sites, facilitando a integração com as folhas de estilo. Atualmente, o normal é usar um elemento <div>, com seu nome indicando o tipo de seção. As novas tags são <header>, <footer>, <article>, <section>, <nav> e <aside>. Elas definem o cabeçalho, o rodapé, um artigo, uma seção (de um artigo), a barra de navegação e anotações sobre o conteúdo. Com esses elementos, é criada uma padronização que facilita a localização de conteúdo pelos buscadores e o reaproveitamento dos arquivos CSS.

Gráficos nascidos na web

O elemento <canvas> permite criar desenhos usando JavaScript. Assim é possível, por exemplo, transformar dados do site em gráficos dinâmicos. A tag também serve para usar um texto ou imagem como substituto do desenho, caso o browser não tenha suporte aos gráficos dinâmicos. Nesse caso, o conteúdo alternativo fica entre e <canvas> e </canvas>.

Calendários sem erro

Qual é a data definida por 10/2/2010? Pode ser 10 de fevereiro, no padrão usado no Brasil, e, ao mesmo tempo, 2 de outubro, no modelo americano. O HTML 5 pode contornar essas situações com tags que definem o tipo de dados e sua formatação no texto da página web. A tag <time> marca hora e data e evitaria o problema descrito acima usando o código <timedatetime=”2010-02-10″> </time>, que poderia identificar as informações do navegador e decidir qual seria a data correta, para que ela possa ser exibida no padrão do usuário.

Versão offline

Já ouviu falar no Google Gears? Ele transforma aplicativos web em programas que rodam no browser mesmo em máquinas sem conexão com a web. Essa mágica é feita pelo recurso DOM Storage, que poderá ser usado por qualquer site em HTML 5. Um ponto essencial dessa forma de armazenamento local é que o servidor remoto não pode acessar diretamente o conteúdo (diferentemente dos cookies). Somente o browser e os scripts da página acessada podem modificar o conteúdo offline. Hoje, cada browser usa um limite de espaço. O Firefox aloca no máximo 5 MB por domínio web acessado. Já o Internet Explorer libera 10 MB por base de dados criada, independentemente do domínio.

Muito além dos cliques

Existem várias bibliotecas para habilitar o suporte ao recurso de arrastar e soltar objetos em sites. Mas no HTML 5 a coisa fica bem mais fácil. Basta definir valores para três eventos em JavaScript: dragenter, dragover e drop. Eles indicam, respectivamente, a entrada e a passagem de um elemento sobre outro, além do evento para o momento em que um item é solto. Definir um elemento da página como item que pode ser arrastado é mais fácil ainda. Basta adicionar a definição draggable=”true” a ele.

Fonte: Info

Comentário: O HTML 5 vem pra reorganizar o festival de TAGs que são utilizadas hoje para exibir vídeos, animações ou personalizar nosso layout, criadas a partir da evolução da Internet. Creio que a nova linguagem vai ajudar e muito os desenvolvedores e novatos a criarem seus sites mais facilmente e ao mesmo tempo compatível com a maioria dos navegadores (isto se os usuários atualizarem suas máquinas).