Inércia Sensorial

17 de May de 2007

Imprimir com javascript

Filed under: Javascript — inerte @ 14:53

Moleza. Basta chamar window.print(). Por exemplo, para mandar a página para impressão ao clicar em um botão bastaria:

1
<input type="button" value="Imprima essa página" onclick="window.print();" />

15 de May de 2007

Procura binária no PHP

Filed under: PHP — inerte @ 22:41

Uma coisa é certa, a função in_array do PHP é devagar, lerda demais.

Existe uma alternativa para pesquisar se o elemento está na matriz chamada “procura binária”, que aliás, tanto faz a linguagem que você usa, as idéias são as mesmas. O conceito é simples, ver se o item está no meio da matriz, se não estiver, cortar ela no meio, ver se está na metade, se não estiver, cortar a metade ao meio, ad infinitum, ou até que dure.

Imagine que você tenha de procurar o nome “Julio Nobrega” na lista telefônica. Ir de item em item e ver se cada um equivale ao termo é loucura. Oras, abra a lista bem no meio e veja o nome, se ele for Julio Nobrega, pronto. Se não for, o nome que está no meio, é maior ou menor que o nosso termo? Se for maior, parta na metade a lista e procure na primeira parte. Eliminamos 50% de onde vamos procurar num piscar de olhos. Repita isso, e o espaço de procura vai diminuindo até só sobrar o termo pesquisado. Muito melhor que um por um.

Lá vai a função:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function procura_binaria($elemento, $matriz)
{
    $baixo = 0;
    $alto = sizeof($matriz) - 1;
    while ($baixo <= $alto) { 
        $meio = floor(($baixo + $alto) / 2);
        if ($elemento == $matriz[$meio]) {
            return $matriz[$meio];
        } else {
            if ($elemento < $matriz[$meio]) {
                $alto = $meio - 1;
            } else {
                $baixo = $meio + 1;
            }
        }
    }
    return false; // Não achou!
}

Usar é moleza:

1
2
3
if (!pesquisa_binaria($termo, $matriz)) {
    echo 'Não achou!';
}

Tutorial de cron e crontab

Filed under: Programação — inerte @ 22:28

O crontab é o arquivo de configuração do cron, que executa comandos em determinados intervalos de tempo.

Digita na linha de comando para editá-lo com o editor de textos padrão da sua conta de usuário na máquina:

[code]crontab -e[/code]

Coloque um comando por linha. A estrutura é a seguinte:

[code]# Jogo da velha no começo da linha é comentário
# +—————- minuto (0 – 59)
# | +————- hora (0 – 23)
# | | +———- dia do mês (1 – 31)
# | | | +——- mês (1 – 12)
# | | | | +—- dia da semana (0 – 7) (Domingo=0 or 7)
# | | | | |
# * * * * * Comando para executar[/code]

Imaginemos que você queira rodar o comando “python2.4 /home/usuario/script.py” todo dia às duas da manhã:

[code]00 2 * * * python2.4 /home/usuario/script.py[/code]

Para especificar um intervalo em qualquer campo, utilize um traço, ou sinal de subtração (esse: “-“). Por exemplo, a configuração abaixo será executada todo dia da uma às dez da manhã de minuto em minuto:

[code]* 1-10 * * * python2.4 /home/usuario/script.py[/code]

Para especificar “ou”, utilize uma vírgula. Segue um exemplo para ser executado apenas às duas da manhã e da tarde, aos Domingos e Quarta-Feiras:

[code]* 2,14 * * sun,wed python2.4 /home/usuario/script.py[/code]

Se você quer rodar o script de cinco em cinco minutos no Sábado (note a divisão dos minutos):

[code]00-59/5 * * * 6 python2.4 /home/usuario/script.py[/code]

Por padrão, o crontab enviará um email à conta que o carrega se existe alguma saída no comando. Para cancelar o email do crontab, redirecione a saída para outro lugar. Por exemplo, para /dev/null

[code]00 2 * * * python2.4 /home/usuario/script.py >/dev/null 2>&1[/code]

Para redirecionar a um arquivo:

[code]00 2 * * * python2.4 /home/usuario/script.py >/home/usuario/arquivo.log[/code]

Para ver o seu crontab:

[code]crontab -l[/code]

Para apagar o crontab:

[code]crontab -r[/code]

Quaisquer dúvidas, comentem.

10 de May de 2007

O AdSense não mostra propagandas relacionadas em um site novo?

Filed under: Geral — inerte @ 16:49

Espere mais um pouco, ou mude o domínio.

Abri recentemente dois sub-domínios aqui no Inércia com assuntos completamente distintos, que por sua vez são completamente diferentes do conteúdo normal do blog, que por sua vez é completamente diferente de duas páginas específicas por aqui.

O Google AdSense é um pouco tosco em identificar o conteúdo de uma página específica. De domínio ou sub até vai, mas a granularidade de apenas uma página confunde ele um pouco. Neste site, por exemplo, a maioria da minha escrita é relacionada ao desenvolvimento de software, principalmente o lado web. Mas ocasionalmente eu quero falar sobre política, religião, mostrar alguma imagem ou vídeo engraçados, e nas novas páginas geradas para cada mensagem, as propagandas continuam relacionadas à computação.

Para dar melhores exemplos, existe uma página aqui no Inércia sobre cadeiras de rodas. Foi um teste que eu fiz para ver quanto dinheiro eu poderia ganhar criando uma simples página de informação. Bom, mais ou menos simples, já que ela tem milhares de palavras e até algumas imagens. Felizmente, o Google começou a exibí-la nas páginas de resultados de pesquisa.

O que aconteceu, é que pelo design da página e posicionamento das propagandas, o CTR foi às alturas. E o pagamento por clique em cadeiras de rodas é muito bom, então até que eu comecei a ganhar um dinheiro… razoável. Ao menos, por impressão de página, maior que no Inércia.

E o quê aconteceu? O Google começou a mostrar propagandas de cadeiras de rodas em diversas páginas do blog. Não sempre, mas de vez em quando… mesmo em tutoriais de javascript e css. Enquanto na página de cadeira de rodas mesmo, continuavam as mesmas propagandas.

Alguns meses passaram, e eu decidi criar uma nova página e escolhi Pilates como assunto. Infelizmente, apesar dos mecanismos de busca também terem a indexado, não há muitas visitas. Uma ou duas por dia. Nas primeiras vezes que visitei a página, logo depois de tê-la colocado no ar, as propagandas eram sobre cadeiras de rodas e desenvolvimento web. Lá pela quinta ou sexta vez que recarreguei ela, começaram a vir as propagandas corretas, de Pilates e Ioga.

Mais ou menos um mês depois disso, decidi tentar abrir um diretório de links.

Em poucas horas eu coloquei ele no ar. É realmente um site simples, e eu acho feio. Mas sei zero de design. O site mais bonitinho que eu tenho foi resultado de uma permuta com um colega do trabalho pela conta de água dele. Mas o importante é que o tema dele era completamente diferente do conteúdo achado no Inércia, incluindo cadeira de rodas e pilates, e eu criei um sub-domínio só para ele. Quando eu o carreguei pela primeira vez, vieram as mesmas propagandas que antes eu via no Inércia todo. Mais algumas páginas carregadas, e uma delas começou a exibir propagandas completamente relacionadas ao tema da página específica. Curiosamente, é o conjunto de propagandas que mais tem anunciantes, e que eles pagam melhor. Então o AdSense, ao decidir que propaganda mostrar na página, começou a trazer aquelas que melhor pagam.

Passarem-se alguns dias e no sub-domínio inteiro o quê eu via eram propagandas relacionadas ao tema dele, sem nenhuma das outras que passam no Inércia. Concluí-se daí então que dois fatores são (sem excluir outros) muito importantes para o AdSense decidir quais propagandas mostrar. O número de anunciantes e o sub-domínio.

Fica aí então minha dica para melhorar a qualidade das propagandas no seu conteúdo: Mova ele para um sub-domínio. Na verdade essa observação é mais complexa, já que o Google se interessa pela quantidade de conteúdo em uma página. Tenha bastante texto (e links de páginas relacionadas), e considere mover uma série de páginas relacionadas para algum identificados único. Não precisa ser necessariamente um sub-domínio, pode ser um diretório, desde que a estruturação do seu site clarifique isso. Mas qualquer provedor meia-tigela hoje em dia deixa criar sub-domínios, então porquê não fazer? Se o conteúdo é distinto do resto do site, eu recomendo.

Aonde ir para saber quem financiou determinado senador?

Filed under: Política — inerte @ 15:11

A porra da página oficial no Tribunal Superior Eleitoral dá erro de JSP no servidor toda vez que vou fazer uma consulta. No Transparência Brasil, que abre uma página chamada Multi Busca que abre uma outra, tal de Às Claras, não consegui achar a lista de senadores em lugar nenhum.

Na boa pessoas, alguém sabe aonde eu posso consegui essa informação? Eu estou atrás de um específico, mas não queria dizer quem é ainda pois planejo abrir todo um site sobre o assunto de uma das leis que esse determinado senador está empurrando, e quero já chegar chutando o balde.

Qualquer ajuda é bem vinda!

Powered by WordPress