sysd.org
17abr/120

Extreme WYSIWYG

Essa semana, Slashdot nos contemplou com dois deliciosos eye-candies na área de interface e usabilidade:

Gliimpse

Devo confessar que, se eu tivesse como utilizar esse tipo de preview para redigir HTML, esse blog teria updates muito mais frequentes :P

Não me habituei com nenhum editor WYSIWIG, e até os meus slides faço em POD e renderizo com S5.

Realmente, me parece uma bela de uma mão na roda!

Light Table


Light Table - a new IDE from Chris Granger on Vimeo.

Demais esse conceito de IDE + REPL, que está para virar protótipo!

Só vejo um porém. Exemplificando metaforicamente: a melhor definição de uma "linguagem de programação" que conheço é "capacidade de produzir loop infinito". Por isso, falar "programador HTML", por exemplo, é meio que nonsense. Agora, apesar do loop infinito ser tão importante na teoria, não é nada bom na prática. Por exemplo, digitar :​​(){ :​​|:& };: na linha de comando do Linux ou Mac e dar ENTER leva ao suicídio do sistema operacional. Enfim, quem já programou em JavaScript e usou alert() para debugar, sabe do que estou falando :)

Agora, o cara usou um exemplo muito feliz: IDE dele é totalmente voltada para linguagens funcionais, tanto que a menor unidade de código, para ele, é a função. Por obséquio, linguagens funcionais não tem loop! Tem recursão, que até pode ser infinita, mas convenhamos: quem domina programação funcional, dificilmente vai cometer essa gafe...

Concluindo: a ideia é genial, mas daria certo para poucos. O meu palpite é que surgirá a versão dessa IDE para trabalhar com JavaScript, tanto client- quanto server-side (Node.js), pois JavaScript, surpreendentemente, é funcional (tecnicamente falando, JavaScript é quase um Domain Specific Language de Scheme, que é dialeto de Lisp).

25set/090

Heurísticas ortográficas como método de entrada de dados

Frequência das letras na lingua portuguesaUm dilema: o alfabeto tem 26 letras; as mãos, 10 dedos. Se associar uma tecla para cada letra, cada dedo fica encarregado de mais de uma tecla. Os dedos não tem habilidades iguais, portanto, indicadores e médios ficam encarregados de mais teclas, e os dedões só servem para apertar o espaço, basicamente. Porém, se reduzir o número de teclas, surgem as ambiguidades. Nos telefones celulares, o padrão T9 permite usar apenas 9 teclas para digitar. É pouco prático? Há controvérsias: pesquisa recente revelou que adolescentes estadunidenses enviam e recebem uma média de 2272 mensagens SMS por mês (fonte). Considerando o limite do tamanho da mensagem, 140 caracteres, até que é bastante texto para ser digitado essencialmente com dedões. Mais uma vez, é uma questão de repertório e costume.

Além do T9, existem muitos outros padrões do chamado texto previsível: campos auto-completáveis de todos os navegadores modernos e corretores ortográficos são os exemplos mais comuns. Por um lado, o texto previsível permite que maior quantidade de texto seja digitada em menor intervalo de tempo. Por outro, deixa a tecnologia mais acessível para as pessoas com limitações físicas/cognitivas.

O excelente filme "O Escafandro e a Borboleta" demonstra como é isso na prática, no pior caso (em termos da complexidade computacional). O personagem principal tem o corpo inteiro paralisado, e a sua única forma de emitir as mensagens para o mundo é piscando o único olho que lhe sobrou. O método utilizado foi: uma pessoa vai lendo o alfabeto na ordem da frequência de uso das letras, e, ao chegar na letra desejada, o personagem pisca o olho, confirmando. A história nos mostra que um livro inteiro pôde ser escrito desta forma.

O alfabeto ordenado pela frequência, mais conhecido pela aplicação na criptografia, também tem uma aplicação lúdica: o atalho para aumentar as chances de vitória num jogo da forca :)

É bastante intuitivo que qualquer palavra terá ao menos uma das 5 vogais. Mas qual é a probabilidade de uma palavra de, digamos, 8 letras, que contém duas ocorrências da letra "A", também contenha "I"? Aí que entram as heurísticas de busca em vizinhança. Tendo em posse os dicionários de OpenOffice, Babylon e a base de dados da Wikipédia em português, compilei um dicionário de cerca de 650 mil palavras (entre elas, as compostas) e fiz uma prova de concento do "resolvedor do jogo da forca", bastante tosco.

Como funciona?

  1. Selecione o tamanho da palavra.
  2. Aparecerá o alfabeto ordenado por frequência para todas as palavras com este tamanho.
  3. Existindo a primeira letra da lista na palavra, é só colocá-la na(s) posição(ões) corretas; não existindo, marca-se a letra para ser excluída da análise posterior.
  4. Agora, é só avançar, repetindo as iterações até que a palavra seja "adivinhada".

Repito: é apenas um teste, para verificar a viabilidade da ideia (de uma forma divertida, de preferência). Um sistema heurístico sério deve considerar não apenas a frequência das letras dentro das palavras do dicionário, mas também a frequência das palavras em si. Por outro lado, a aplicação no campo do texto previsível não requer o posicionamento arbitrário das letras conhecidas; estas são entradas numa sequência, o que permite a aplicação de melhores critérios de corte.