Inércia Sensorial

22 de August de 2006

Texto aleatório com Javascript

Filed under: Javascript — inerte @ 16:25

Pequena função em javascript para retornar uma string com caracteres aleatórios:

1
2
3
4
5
6
7
8
9
10
function textoAleatorio(tamanho)
{
    var letras = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz';
    var aleatorio = '';
    for (var i = 0; i < tamanho; i++) {
        var rnum = Math.floor(Math.random() * letras.length);
        aleatorio += letras.substring(rnum, rnum + 1);
    }
    return aleatorio;
}

Só passar como argumento da função o tamanho da string que você quer. As letras permitidas estão na variável letras. Mexa nela à vontade para remover as maiúsculas, ou remover as parecidas, afinal o pessoal se confunde com 0 e O, né mesmo?

MD5 do Dojo igual à função md5 do PHP

Filed under: Javascript — inerte @ 15:08

Estou gerando um formulário de autenticação que “encripta” (bem… faz um hash md5) a senha antes de enviar o formulário, para não transmití-la pela rede como texto plano. Não é um SSL de pobre, se você achou isso. Complementa a segurança do SSL, já que existem malwares que interceptam no navegador tudo o quê o usuário enviar.

De qualquer jeito, para gerar um hash MD5 no Dojo igual ao produzido pelo md5() do php, use o seguinte:

1
2
3
4
<script type="text/javascript">
dojo.require("dojo.crypto.MD5");
var hash = dojo.crypto.MD5.compute('string', dojo.crypto.outputTypes.Hex);
</script>

E agora, colocado em uma função:

1
2
3
4
5
6
<script type="text/javascript">
function phpmd5(string) {
    dojo.require("dojo.crypto.MD5");
    return dojo.crypto.MD5.compute(string, dojo.crypto.outputTypes.Hex);
}
</script>

Em um próximo post explico como usar em um formulário de autenticação.

Série de TV “Freedom to Choose”, de Milton Friedman

Filed under: Geral — inerte @ 13:25

O show de televisão “Free to Choose” do ganhador do Nobel de economia, Milton Friedman, está disponível no Google Video. Se liga nos vídeos que são ótimas lições de economia pros peões como a gente:

Série original, de 1980:

Volume 1: Power of the Market

Volume 2: The Tyranny of Control

Volume 3: Anatomy of a Crisis

Volume 4: From Cradle to Grave

Volume 5: Created Equal

Volume 6: What’s Wrong With Our Schools?

Volume 7: Who Protects the Consumer?

Volume 8: Who Protects the Worker?

Volume 9: How to Cure Inflation

Volume 10: How to Stay Free

Série atualizada, de 1990:

Volume 1: The Power of the Market (Introdução por A. Schwarzenegger)

Volume 2: The Tyranny of Control(Introdução por George Schultz)

Volume 3: The Failure of Socialism (Introdução por Ronald Reagan)

Volume 4: What’s Wrong With Our Schools? (Introdução por I. David Friedman)

Volume 5: Created Equal (Introdução por by Steve Allen)

09 de August de 2006

Incluindo o Dojo Editor no seu formulário

Filed under: Javascript — inerte @ 12:02

Tenho usado bastante o Dojo Toolkit nos sites que tenho feito, e hoje surgiu a necessidade de adicionar um editor de HTML amigável em um de nossos formulários.

Felizmente, o Dojo vem com um editor desses. É simplesmente facílimo de usá-lo, basta adicionar o dojo.js, chamar o widget de Editor, e colocar em um textarea. O editor é do famoso tipo WYSIWYG (What You See Is What You Get, ou O Quê Você Vê É O Que Aparece), e permite aos usuários manipularem HTML sem se preocupar com a formatação, pois o texto vai mudando e aparecendo conforme eles vão digitando e aplicando os estilos, links, cabeçalhos, etc…

Primeiro, no header do documento HTML vão essas tags:

1
2
3
4
5
<script type="text/javascript"
src="/dojo/dojo.js"></script>
<script type="text/javascript">
  dojo.require("dojo.widget.Editor");
</script>

Depois, substitua o seu textarea por esse:

1
<textarea dojoType="Editor"></textarea>

Apesar de vermos o editor, temos dois problemas:

  1. O textarea ao ser enviado, não tem nome, e não podemos processá-lo;
  2. A caixa para digitar o texto é muito pequena;

Mas nada está perdido, pois vamos resolvê-los. O nome do campo é colocando com o atributo name mesmo, comum à textareas. Já o tamanho pode ser controlado pelo atributo minHeight do editor do Dojo, ficando assim:

1
<textarea dojoType="Editor" name="conteudo" minHeight="15em"></textarea>

Existem outras opções para colocar no Editor, principalmente o atributo items, que muda os botões disponíveis para edição do texto. Para conhecê-los, confira os exemplos no site do Dojo.

02 de August de 2006

É muito difícil comprar uma televisão hoje em dia

Filed under: Geral — inerte @ 23:08

Desde um pouco antes da Copa, com a proliferação de anúncios de televisões de Plasma e LCD, eu desejo comprar uma televisão nova.

Temos um velha Sony, de uns 12 ou 13 anos, na sala de casa hoje em dia. Guerreira, sobreviveu a uma mudança e três reformas, e nunca foi pro conserto. Antigamente, quando queríamos comprar uma televisão, era só decidir o número de polegadas. Aos poucos, foram surgindo complicadores, Picture-to-Picture é o primeiro que me lembro. No máximo, se você tinha um vídeo-cassete, NTSC ou PAL-M.

Hoje em dia… só de saídas HD temos 480i/p, 720i/p, 1080i/p, e existem algumas divisões, como 1080i50 e 1080i60. Vai de Plasma ou LCD? Tem entrada HDMI? Vai ligar HD DVD ou Blu-Ray? Se tem Widescreen, qual a proporção?

Alguma hora vou ter de reservar um final de semana para pensar melhor nesse assunto. Pensando bem… a 5 conto, no mínimo, é melhor pensar alguns meses.

Preencher datas da semana anterior com Javascript

Filed under: Javascript — inerte @ 11:21

Assumindo que você tenha 6 campos de formulário, os três primeiros para representar a data inicial, (inicio_dia, inicio_mes e inicio_ano), e os outros três para representar a data final (fim_dia, fim_mes, fim_ano), usando o Dojo Toolkit é muito fácil colocar nas datas de início a segunda-feira da semana passada e na data final, o domingo da semana passada.

Aqui vai a função que eu uso:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function periodo_semana_passada()
{
    var data_atual = new Date();
 
    // Dia da semana atual (1 segunda, 7 domingo)
    var weekday = dojo.date.format(data_atual, '%u');
 
    // O dia do ano servirá para colocarmos no objeto de data um novo valor
    var dia_do_ano = dojo.date.getDayOfYear(data_atual) - 7;
    var data_inicio = dojo.date.setDayOfYear(data_atual, dia_do_ano - (weekday - 2));
    // O final é a segunda-feira mais seis dias
    var data_fim = dojo.date.add(data_inicio, 'day', 6);
 
    document.getElementById('inicio_dia').value = dojo.date.format(data_inicio, '%d');
    document.getElementById('inicio_mes').value = dojo.date.format(data_inicio, '%m');
    document.getElementById('inicio_ano').value = dojo.date.format(data_inicio, '%Y');
    document.getElementById('fim_dia').value = dojo.date.format(data_fim, '%d');
    document.getElementById('fim_mes').value = dojo.date.format(data_fim, '%m');
    document.getElementById('fim_ano').value = dojo.date.format(data_fim, '%Y');
}

Depois é só chamar a função em algum evento, por exemplo:

1
preencher com a semana <a href="#" onclick="periodo_semana_passada();">passada</a>

Powered by WordPress