Um problema simples e muitas dores de cabeça!
Recentemente estive a trabalhar num problema no mínimo inquietante. Tratava-se de uma funcionalidade AJAX que permitia adicionar linhas a uma tabela que era refrescada dinamicamente em função dos dados inseridos num post AJAX.
O request tinha este aspecto:
new Ajax.Request('$UrlHelper.For("%{action='addRow'}")',
{
method: 'get',
parameters:Form.serialize('CFNew'),
onSuccess: RefreshTable,
onFailure: showErrorMessage
});
O pedido saía do cliente correctamente e atingia o servidor que efectuava uma operação e devolvia uma tabela HTML que era refrescada na função RefreshTable. E tudo funcionava bem até que cheguei aos testes com o IE. No Firefox, Opera, Chrome e Safari tudo corria às mil e uma maravilhas no IE, o primeiro pedido era correctamente efectuado ños seguintes não acontecia nada (caso enviasse os mesmo dados no request).
Tratava-se de um problema de cache, os pedidos HTTP circulavam correctamente em qualquer browser, mas no IE as coisas estavam completamente paradas. Uma limpeza de cache e o pedido seguia com sucesso, novamente os seguintes ficavam bloqueados. Implementadas todas as técnicas ao nível do servidor ao nível dos cabeçalhos do protocolo HTTP já não me ocorria nada até que … se fez luz!
Para garantir (pelo menos tentar) que cada pedido era distinto do anterior bastou adicionar um campo hidden no formulário e preenchê-lo com um valor dummy, por exemplo a data actual no cliente. No formulário acrescentei então um campo hidden RTP (de RequestTimeStamp) e no script que faz o request preencho-o com a data:
$('RTP').value = new Date().getTime();
new Ajax.Request('$UrlHelper.For("%{action='addRow'}")',
{
method: 'get',
parameters:Form.serialize('CFNew'),
onSuccess: RefreshTable,
onFailure: showErrorMessage
});
Agora mesmo que se façam 2 pedidos com os mesmos dados há sempre um valor que difere e a cache no IE deixa de actuar.
terça-feira, 30 de junho de 2009
quinta-feira, 25 de junho de 2009
Programa de testes de qualidade de dados em dispositivos de armazenamento ópticos
O armazenamento profissional de dados em dispositivos ópticos deve obedecer a regras e cuidados específicos. O tempo de vida de CDs e DVDs não é infinito, a escolha de tintas para anotar nesses dispositivos também é importante porque os ácidos das tintas podem corroer os discos e até a forma como são manuseados é importante, porque a transpiração também pode corroer a superfície destes discos.
De tempos a tempos os dados devem ser verificados com software específico. O programa MediaChecker (disponível em http://noeld.com/programs.asp?cat=misc#mchecker) dá uma ajuda e pode até ser executado em máquinas antigas.
(Fica prometido para breve um post mais completo sobre este assunto!)
De tempos a tempos os dados devem ser verificados com software específico. O programa MediaChecker (disponível em http://noeld.com/programs.asp?cat=misc#mchecker) dá uma ajuda e pode até ser executado em máquinas antigas.
(Fica prometido para breve um post mais completo sobre este assunto!)
Labels:
ferramentas,
software
segunda-feira, 22 de junho de 2009
Debugging JavaScript com prettyPrint
“prettyPrint” is an in-browser JavaScript “variable dumper”
Uma das coisas que acho fundamental na caixa de ferramentas de um programador são ferramentas de debugging. Sou um fã do Firefox e para fazer debug de JavaScript não há melhor que o firebug. Mas por vezes também é útil escrever no próprio código instruções que permitam a inspecção rápida de variáveis. É aí que entra o prettyPrint.
A sua utilização é muito simples, basta fazer a referência ao ficheiro prettyprint.js. Depois basta:
Consultar: http://github.com/jamespadolsey/prettyPrint.js/tree/master
Uma das coisas que acho fundamental na caixa de ferramentas de um programador são ferramentas de debugging. Sou um fã do Firefox e para fazer debug de JavaScript não há melhor que o firebug. Mas por vezes também é útil escrever no próprio código instruções que permitam a inspecção rápida de variáveis. É aí que entra o prettyPrint.
A sua utilização é muito simples, basta fazer a referência ao ficheiro prettyprint.js. Depois basta:
var tbl = prettyPrint( myObject );
document.body.insertBefore( tbl, document.body.firstChild );
A função prettyPrint devolve uma tabela que podemos imprimir em qualquer lugar da página, por exemplo no início da mesma como no exemplo.Consultar: http://github.com/jamespadolsey/prettyPrint.js/tree/master
Labels:
JavaScript,
Web
sexta-feira, 5 de junho de 2009
Porque a vida é feita de pequenas coisas ...
A atenção ao detalhe é muito importante e os icons, são grandes detalhes!
Uma forma simples e eficiente de melhorar a sensação de qualidade num site passa, por exemplo, por criar um bom icon para associar a uma página ou sistema de informação. Não vou aqui falar sobre como devemos construir o dito icon, mas sim de uma dificuldade que tenho visto muita gente sentir, onde raio se editam e gravam os ficheiros ".ICO"?
Confesso que sou fã do Photoshop e o Photoshop não permite gravar ficheiros com o formato ICO (pelo menos até onde eu o conheço!). Para tal são necessários plug-ins. Confesso que tenho tido problemas quando se trata de usar transparência em ficheiros ICO, mas acabei de encontrar um plug-in para o Photoshop muito bom que grava os ditos ICO's sem espinhas e até mesmo com a dita transparência. Consultar: http://www.telegraphics.com.au/sw/
Claro que sou fã do Photoshop, mas e o que dizer do GIMP? É ainda melhor, é barato e dá milhões! Os ICOs no GIMP também funcionam muito bem, com e sem transparências. Ah! E não esquecer que para colocar ICOs na web é preciso respeitar o tamanho correcto da imagem... mas isso fica para outro post!
Uma forma simples e eficiente de melhorar a sensação de qualidade num site passa, por exemplo, por criar um bom icon para associar a uma página ou sistema de informação. Não vou aqui falar sobre como devemos construir o dito icon, mas sim de uma dificuldade que tenho visto muita gente sentir, onde raio se editam e gravam os ficheiros ".ICO"?
Confesso que sou fã do Photoshop e o Photoshop não permite gravar ficheiros com o formato ICO (pelo menos até onde eu o conheço!). Para tal são necessários plug-ins. Confesso que tenho tido problemas quando se trata de usar transparência em ficheiros ICO, mas acabei de encontrar um plug-in para o Photoshop muito bom que grava os ditos ICO's sem espinhas e até mesmo com a dita transparência. Consultar: http://www.telegraphics.com.au/sw/
Claro que sou fã do Photoshop, mas e o que dizer do GIMP? É ainda melhor, é barato e dá milhões! Os ICOs no GIMP também funcionam muito bem, com e sem transparências. Ah! E não esquecer que para colocar ICOs na web é preciso respeitar o tamanho correcto da imagem... mas isso fica para outro post!
Labels:
design,
ferramentas,
software
segunda-feira, 1 de junho de 2009
Typing-meister!
... depois de um longo interregno e sabendo que já tenho uma legião de fãs (um forte abraço Sérgio!) aqui vai ...
Uma das coisas que me deixa mais impressionado com os geeks de filmes e séries de acção é a velocidade incrível com que eles escrevem autênticos doutoramentos em comandos no teclado de um qualquer servidor a piratear! (à parte desta fabulosa capacidade, impressionante mesmo, só a extraordinária capacidade de decifrarem qualquer password de acesso a sistemas de segurança dos mais invioláveis possíveis!). Confesso que já dei por mim várias vezes a tentar melhorar a minha performance de escrita e o que é incrível é que realmente compensa. Acreditem, se derem ao dedo mais rápido ... conseguem escrever, her... mais depressa!
É aqui que entram 2 dos meus programas favoritos (na área), o TyperShark que além de contar com uma versão grátis, nos transforma em exploradores dos mares e entre um cachalote e uma sardinha lá vamos melhorando a nossa velocidade de escrita e o TypingWeb que funciona online. Confesso que o TyperShark é um bocado chato por estar demasiado formatado para o mercado americano e as opções de texto serem pouco interessantes (mas se formos suficientemente doidos até podemos criar os nossos próprios textos para treinar), o TypingWeb é ligeiramente (e é mesmo muito ligeiramente) melhor neste aspecto e - pasmem-se! - até tem uma opção para escolher a língua e teclado, mas a tradução parece ter sido feita por um tradutor digno de um qualquer GPS traduzido a martelo para um pt-br.
Uma das coisas que me deixa mais impressionado com os geeks de filmes e séries de acção é a velocidade incrível com que eles escrevem autênticos doutoramentos em comandos no teclado de um qualquer servidor a piratear! (à parte desta fabulosa capacidade, impressionante mesmo, só a extraordinária capacidade de decifrarem qualquer password de acesso a sistemas de segurança dos mais invioláveis possíveis!). Confesso que já dei por mim várias vezes a tentar melhorar a minha performance de escrita e o que é incrível é que realmente compensa. Acreditem, se derem ao dedo mais rápido ... conseguem escrever, her... mais depressa!
É aqui que entram 2 dos meus programas favoritos (na área), o TyperShark que além de contar com uma versão grátis, nos transforma em exploradores dos mares e entre um cachalote e uma sardinha lá vamos melhorando a nossa velocidade de escrita e o TypingWeb que funciona online. Confesso que o TyperShark é um bocado chato por estar demasiado formatado para o mercado americano e as opções de texto serem pouco interessantes (mas se formos suficientemente doidos até podemos criar os nossos próprios textos para treinar), o TypingWeb é ligeiramente (e é mesmo muito ligeiramente) melhor neste aspecto e - pasmem-se! - até tem uma opção para escolher a língua e teclado, mas a tradução parece ter sido feita por um tradutor digno de um qualquer GPS traduzido a martelo para um pt-br.
Labels:
software
Subscrever:
Mensagens (Atom)
