Reverter a exclusão por svn de um arquivo

Rodou svn delete arquivo.ext e se arrependeu? O Subversion permite desfazer essa ação. Você pode voltar o arquivo do repositório rodando svn revert arquivo.txt.

O comando find é recursivo

O find do Linux já procura recursivamente nos diretórios especificados. Eu já sabia mas lembrei hoje (pouco café, dores no estômago), então fica eternizada essa lembrança.

Aconteceu porque precisei achar arquivos de backup em um diretório, que é feito assim:

find -name “*~”

Pré-carregar imagem

O pré-carregamento de imagens em Javascript ajuda com troca de imagens, por exemplo nos eventos de clique ou passagem do mouse (onmousedown e onmouseover), pois o visitante não precisará esperar ser carregada a imagem apenas quando o navegador disparar o evento.

O pré-carregamento é feito com o seguinte código (lembre-se de colocar isso dentro de <script> e/ou <head>:

1
2
var imagem = new Image();
imagem.src = "caminho/arquivo.gif";

O código inicia um novo objeto do tipo Image e especifica o atributo scr com o caminho da imagem. Para os mais espertinhos da platéia, sim, isso é o mesmo que:

1
<img src="caminho/arquivo.gif" />

Para cada imagem a ser pré-carregada, você deve iniciar um objeto e especificar o src, duas, três, quatro vezes e assim por diante.

Para facilitar, vale a pena colocar numa matriz todas as imagens que você deseja carregar e apenas dar um laço nela.

1
2
3
4
5
6
7
// Lista do caminho e nome dos arquivos de imagem. Pode ter quantas você quiser :)
imagem_lista = Array('arquivo.gif', 'arquivo2.gif', 'arquivo3.gif');
imagem_qtd = imagem_lista.length;
for (i = 0; i < imagem_qtd; i++) {
    var preload = new Image();
    preload.src = imagem_lista[i];
}

E pronto :) Todas as imagens da matriz imagem_lista serão carregadas pelo navegador quando o script acima rodar.

Esticar uma caixa verticalmente com CSS

Quando você quer esticar uma caixa via CSS para ocupar todo um espaço vertical, a solução mais óbvia é fazer:

[css].classe {
width:100%;
}[/css]

E funciona na maioria das vezes. Entretanto, quando o doctype está em modo strict, a caixa não esticará para preencher todo o espaço.

Isso acontece porque no modo strict, uma caixa tem o tamanho do conteúdo dela. Para deixá-la ocupar todo o espaço disponível, a “caixa-pai”, ou a que contém a caixa que precisamos esticar, também deve ter height:100%.

Quando nossa caixa está dentro de um <td>, ou <div>, é fácil, basta colocar na caixa-pai o estilo. Mas quando ela está dentro do <body>, é essa tag que deve receber o height:100%, pois o <body> é também uma “caixa”.

[css]body {
height:100%;
}[/css]

E pronto! Esteja dentro do <body> ou dos tipos mais comuns de caixas, você pode esticá-la para ocupar todo o espaço disponível na tela.

Posições vertical e horizontal de um elemento

Depois de penar por uma hora para descobrir uma maneira multi-plataforma de recuperar as posições vertical e horizontal de um objeto na tela, achei uma solução.

Multi-plataforma no sentido que testei no Firefox 1.0.7, IE 6 e Opera 8.5 :)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function pegarPosicaoX(objeto)
{
    var atual_left = 0;
    if (objeto.offsetParent) {
        while (objeto.offsetParent) {
            atual_left += objeto.offsetLeft
            objeto = objeto.offsetParent;
        }
    }
    return atual_left;
}
 
function pegarPosicaoY(objeto)
{
    var atual_top = 0;
    if (objeto.offsetParent) {
        while (objeto.offsetParent) {
            atual_top += objeto.offsetTop
            objeto = objeto.offsetParent;
        }
    }
    return atual_top;
}

Para usar, supondo que temos um objeto com um id=”exemplo” na página, descobrimos a posição dele fazendo:

1
2
3
elemento = document.getElementById('exemplo');
x = pegarPosicaoX(elemento);
y = pegarPosicaoY(elemento);

Em um próximo post mostrarei porque cargas-da-água precisei descobrir a posição de um elemento (no meu caso, foi uma imagem).

Como usar saquinho de gasolina

Pois hoje acabou a gasolina, e quando fui dar a partida no carro, apenas um leve ronco do motor e nada dele sair do lugar.

Com o Rafael, I(g)nácio, Thiago e o Fi, fui até o posto. Oito reais por três litros de gasolina, mais um real pelo saquinho, voltamos ao carro. Virei o saquinho e comecei a despejar o combustível. Estava indo tão devagar… Foi aí que o Rafael teve a idéia de usar uma revista como funil.

E oh! Funcionou… uma Veja São Paulo dobrada e a gasolina pode fluir rapidamente ao tanque. O que demoraria 20 minutos foi feito em 3! Fica aí a dica :)

svn cleanup “No such file or directory”

Deu esse erro quando você rodou “svn cleanup”? Talvez porquê tenha dado erro no “svn checkout”? Então apenas apague o diretório da sua cópia de trabalho que o Subversion está reclamando e rode novamente “svn cleanup”.

Também não entendi o motivo, mas funciona :)

Faça sua empresa Uébi Dois Ponto Zero

Prometi que não falaria essa palavra de novo e espero que da maneira como está no título, não conte :)

Create your own Web 2.0 Company

Arranjei algumas idéias, como tag-based photos via ajax, geotag-based news via api mashups, cellphone-based wiki on the desktop (adorei essa!), social television via XML e opml-based dating via Ruby on Rails. Ficarei trilhardário!!1!11!!

Budismo no ocidente

Ao mesmo tempo que minha velhice traz serenidade para encarar os problemas, ela cria outros. Não consegui ler o artigo Por que o Budismo encanta o Ocidente? sem achar os erros da argumentação do escritor.

Primeiro, a justificação que o Budismo só faz “sucesso” no Ocidente devido à condições temporais. Se vamos usar um método de divisão tão arcaico como lado esquerdo e direito do mundo, tanto deveria importar em qual época estamos. Quer dizer que o budismo ou qualquer outra “religião” tem méritos por causa das tendências da pós-modernidade neoliberal. Bem, isso é novidade para mim… O Budismo tem lá feito seu sucesso em outros lugares do mundo, e não precisava de uma maneira de visão do mundo para encontrar seu lugar.

Quer dizer, nos lugares em que ele tem raiz, esses “problemas” não existem, certo? E da última vez que eu vi, não existe necessariamente muita diferença entre eu aqui no Brasil e um monge na Mongólia. Não pode ser razão de sucesso, aliás, deixa eu parar por aqui….

Read More »

Monstros em obras de arte

Concurso de Photoshop misturando monstros e obras de arte.

Não sou fã de “Halloween”, ou Dia das Bruxas, quando essa brincadeira chegou eu já era velho demais para pedir doces ou travessuras, e tinha descoberto que o melhor da vida são as travessuras. Um chocolate pode ser bom para te deixar feliz por cinco minutos, mas uma boa tirada ou brincadeira é motivo para risadas a vida inteira.

Menos jogar ovo. Nada mais estúpido que jogar ovo na casa dos outros.

Alien