Endless Pageless

Ano passado me deparei com o searchmash (leia-se Google).
Um sistema de busca e… sem paginação! Quando chega no fim da página os próximos registros aparecem magicamente (retificando, via Ajax).

Após tomar uma Heineken, me deparo com a mesma abordagem, com seu exemplo em um uso ‘comercial’. No site do experimento tem a aplicação em Ruby on Rails pra download, com o snippet responsável por botar os próximos resultados nos trilhos.

 

Validação deve funcionar com enter!

Um erro comum ao criar validações é que muitas vezes, o desenvolvedor impede que o formulário seja enviado pressionando a tecla Enter (ou return para macusers). Isso geralmente acontece por falta de um botão do tipo submit. O programador coloca um botão no formulário e uma linha de validação via Javascript. Após um amigo me perguntar sobre isso no MSN, aí vai um exemplo de como fazer uma função de validação sem atrapalhar a experiência do usuário: Read more

 

Novas janelas em Javascript não-obstrusivo

A newsletter dessa semana do SitePoint mostrou uma forma bem interessante de abrir novas janelas com javascript não-obstrusivo e validando XHTML Strict (para quem não sabe, o atributo ‘target’ da tag ‘a’ não passa na validação).

<a href="http://example.com/" onclick="
    if (confirm('Open this link in a new window?')) {
      open('http://example.com/');
      return false;
    }
">external link</a>

Basicamente, emprega-se o uso de uma caixa de diálogo. Bem simples. Uma alternativa mais sofisticada é criar uma função e ativá-la através do uso de uma classe. Veja:

<a href="http://example.com/" class="ext">external link</a>
<script type="text/javascript">
  var links = document.getElementsByTagName("a");
  for (var i = 0; i < links.length; i++) {
    var link = links&#91;i&#93;;
    if (link.className == "ext") {
      link.onclick = clickHandler;
    }
  }

  function clickHandler() {
    if (confirm("Open this link in a new window?")) {
      open(this.href);
      return false;
    }
  }
</script>

 

Crítica ao controle remoto

Apple Remote Pego o controle da TV e vejo uma infinidade de botões. Não consigo entender o por que de tantos deles. Botões para mudar o perfil da TV (otimizada para filme, show, esportes), botões com teclas numéricas, botões aqui, botões ali, botões acolá. As coisas seriam bem mais simples se as TVs tivessem um menu, algo parecido com o Frontrow. E para substituir os cruéis controles-remoto, algo parecido com o Apple Remote. É, alguém vai precisar promover uma revolução. E será televisionada.

 

Ajax a seu favor. E não contra

Usar Ajax desenfreamente por aí pode causar dependência química. O Ajaxonline é um portal sobre o assunto e apresenta uma séria falha, que muitos sites que também usam XMLHttpRequest também apresentam: links obstrusivos.

A ‘agilidade’ do uso do Ajax está em re-aproveitar camadas e iframes para substituição de conteúdo, requisitando URLs e enviando formulários, enfim, interagindo com o usuário. O problema está na hora de chamar essas requisições. Ao chamar uma dessa funções pelo atributo href da tag a do HTML (ou simplesmente setando o valor desse atributo para ‘#’), o desenvolvedor esquece que os usuários possuem diferentes formas de interação com o sites.

Eu, por exemplo, ao me deparar com um site com vários links interessantes, saio clicando nesses links com a tecla command selecionada. Isso, no meu navegador, vai fazer com que os links simplesmente se abram em novas abas. No Ajaxonline eu não consigo fazer isso, pois na nova aba, ao invés de encontrar o conteúdo da página com um assunto do link, me deparo com a home do site, novamente.

Escrevi esse post para lembrar que links não-obstrusivos são muito importantes no desenvolvimento de qualquer aplicação web. Sabem por que? Porque eu não sei prever a interação do usuário com o meu projeto!

 

Como fazer um Internet Banking

Minha experiência com o Bradesco é péssima. Primeiro pelas agências. Sempre lotadas, com ar-condicionado estragado, caixas eletrônicos que não funcionam. Enfim, ir ao banco é pior do que ir para uma guerra.

Então, penso: Vou usar o Internet Banking. Vamos lá:
No meu Mac, Internet Banking do Bradesco não funciona. Segundo o site, para Mac, requer Netscape. Mas, o que é Netscape?

Vou para o PC, com Windows (Não vou ser louco de tentar acessar pelo Linux). No Firefox, o site carregaria, senão fosse um applet Java para o teclado virtual. Instalo o Java.

Aparentemente agora funciona. Mas antes de tudo, eu tenho que adivinhar qual o formato do número da minha conta. Oras, o formato da Conta Corrente deles é assim: 12345-0, mas para a Internet você tem que enfiar alguns zeros antes, ficando assim: 0012345-0. Tudo bem.

Passada a frustação de tudo isso, vou para a parte da senha. Digito minha senha usando o teclado virtual em Java deles e aí o sistema me faz uma pergunta secreta, cuja resposta é uma frase de, no mínimo, 12 caracteres. O problema é que sempre esqueço a maldita resposta. Mas isso pode ser contornado. Basta eu usar meu CPF como resposta, ao invez da frase. Mas, além de usar meu CPF, tenho que confirmar minha data de nascimento e o nome do meu pai (ou da minha mãe, é aleatório). Se não bastasse, depois de tudo isso, ainda tenho que criar uma resposta novamente, pois eles insistem em usar a maldita frase.

Depois de uns 15 minutos perdidos, finalmente consigo ter acesso a minha conta. Numa popup minúscula para não estragar o layout deles, é claro.

Dicas para complicar a navegação
1) Campos de formulário sem explicação
2) Applets Java que poderiam ser substituidos por JS (vide o Banco Real)
3) Popups minúsculos

[update] Recebi uma resposta do Bradesco. Eles não mostraram a menor boa vontade em melhorar o sistema. Provavelmente, minhas críticas pararam no setor de comunicação.

 

Eu testei o Wallop

Nessa semana, testei o Wallop. O Wallop, para quem não sabe, é uma rede de relacionamentos powered by Microsoft Research.

O que falar? Para começar a interface é toda em Flash. Muito bonita, é um ótimo exemplo que a Macromedia poderia dar para emplacar suas Rich Internet Applications.

Possui bastante recursos interessantes, como blog, álbum de fotos e compartilhamento de músicas. Além disso, possui um painel chamado “Web References”, onde posso adicionar meus sites favoritos. Clicando nesse meu site, ele é aberto em uma janela dentro do próprio Wallop.
O defeito é que tudo isso depende de uma boa conexão. Há, e enquanto eu usei, não vi nada como um Bad, bad server. No donut for you.

[upgrade] Não tenho convites para o Wallop. O sistema cancelou minha conta, por falta de uso.