Postgres Copy e Vacuum

O assunto de hoje vai ser Postgres.

Como todos deveriam saber, o postgres usa o conceito de MVCC (see more on http://en.wikipedia.org/wiki/Multiversion_concurrency_control), ou seja, ele tem o histórico de todas as linhas que de alguma forma entraram no banco.
Isso é feito para ganhar velocidade e permitir consultas em várias transações ao mesmo tempo. Esta regra só é quebrada no truncate (TRUNCATE is transaction-safe, however: the truncation will be safely rolled back if the surrounding transaction does not commit.)

Isso basicamente quer dizer, quando você faz um UPDATE/DELETE o “valor” do registro antigo ainda está no disco, de alguma forma, guardado, que pode, ocasionalmente, ser lido por uma transação, ou ser esquecido como se fosse uma “memory leak”.

Mas calma, isso é normal.

Quando você faz um truncate, o banco remove todos os registros no disco, por isso é tão rápido, e libera também todo o espaço no disco.(após o commit).

Vacuum

O vacuum no postgres, foi criado para fazer a limpeza desses registros “mortos”, melhorando a velocidade do banco de dados, geralmente ele é utilizado junto com o comando Analyse, que já faz algumas estatísticas para melhorar o GEQO (planejador das estratégias para executar a query).

Porém, o vacuum, sem ser utilizado o parâmetro FULL, apenas analisa os dados mortos, tira dos índices e se, no não tiver ninguém usando aquela tabela, ele talvez vai tirar os dados mortos, se ele estiverem no “final” do arquivo.

There are two variants of the VACUUM command. The first form, known as “lazy vacuum” or just VACUUM, marks expired data in tables and indexes for future reuse; it does not attempt to reclaim the space used by this expired data unless the space is at the end of the table and an exclusive table lock can be easily obtained.)

O VACUUM FULL faz um lock exclusive na tabela e faz a limpa verdadeira e quando termina ele libera o espaço em disco. Continue reading

Posted in Databases | Leave a comment

Cradle of Filth – 18/12/2010

Bem,

Eu todas as músicas do show, exceto alguns pedaços, porém, meu celular não ajudou e o audio ficou uma bosta.
Mas ainda bem que tinha muito mais pessoas lá gravando, então, fica aí alguns videos que eu já achei no youtube:

Cradle of Filth – Nymphetamine

Cradle of Filth – Dusk And Her Embrace

Cradle of Filth – Dusk And Her Embrace HD

Cradle of Filth – Honey And Sulphur

Continue reading

Posted in geral, pessoal, shows | Leave a comment

Fenda Interglútea

Vamos lá!
Depois de passar alguns anos tentando provar pra todo mundo que a parte mais gostosa da mulher é a fenda interglútea, as pessoinhas ficam me zuando, pois os resultados do google images não é lá muito agradável.
Pois bem, então vou fazer minha parte pra deixar o resultado mais “agradável”.

Clique em “MORE” para continuar “lendo”

Continue reading

Posted in pessoal, unusual | Leave a comment

Dica rápida – Javascript e HTML e atributos customisáveis, carregar imagens na ordem

Tenho uma dica rápida!

Não sei se você que esta lendo já sabe, mas de sempre (bom, ie 5.5 eu não existia!) você pode utilizar atributos ao seu gosto no HTML.
Por exemplo,

<a href="www.google.com.br">Ir para o google</a>

Você pode criar um novo atributo, por exemplo, mynewattr

<a href="www.google.com.br">Ir para o google</a>

Para você acessar o valor, você deve utilizar o método do DOM Element attributes, que retorna uma array. Mas como é chato pra caramba usar, também tem o mentodo getAttribute.
Então voce pode fazer

var value = elment.getAttribute('mynewattr')

Porém! Nos dias de hoje você pode utilizar a jQuery, com a função attr.

var values = $('element').attr('mynewattr');

e para atribuir

$('element').attr('mynewattr', 'value');

Portanto, isso facilita muito as coisas.

(sem fontes) No HTML 5 foi dito que tais atributos devem vir com o prefixo “data-”, portanto, você pode utilizar qualquer nome, desde que comece com data-,
por exemplo:

<a href="www.google.com.br">Ir para o google</a>

Ontem eu tive que fazer com que as imagens de uma determinada página fosse carregada uma por vez, pois ao carregar todas ao mesmo tempo o servidor perdia a sessão (RAM #fail)!

Então, no HTML, alterei todas as tags imgs de:

<img src="/src/pesado/pra/dedeu" />

para:

<img data-src="/src/pesado/pra/dedeu" />

E o javascript:

var pl = function(){
	var
	list = [],
	init = function(){
		var imgs = $('img[data-src]');
		imgs.each(function(x,m){list.push($(m))});
		imgs.load(_loadNext);
		var img = list.shift();
		if (img){
			img.fadeOut();
			img.attr('src', img.attr('data-src'));
		}
	},
	_loadNext = function(e){
		var img = list.shift();
		$(this).fadeIn('slow');
		if (img){
			img.attr('src', img.attr('data-src'));
		}
	};
	return {
		init:init
	};
}();
$(pl.init);

Este código captura todas as imagens que tem o atributo, em cada uma adiciona numa array a versão jQueryzada, e depois no onLoad das imagens carrega a próxima.
E, da um “tiro” inicial para disparar os loads.

Essa parte ta meio ruim, acho que tem alguma forma de tirar o código duplicado e chamar direto o loadNext, mas precisaria mudar o this para outra coisa.

Posted in programas, web | 1 Comment

OTSadmin – Editor de scripts Lua para OTServer

Logo do otsadminA um bom tempo atrás, quando eu fazia programas em Delphi, e estava programando scripts Lua para otservers, eu fiz esse programa para auxiliar-me.

Pois bem, o tempo passou e ele ficou para trás, desatualizado.

Então, resolvi abrir o código fonte dele para quem quiser edita-lo (ou ver como algo foi feito)

O endereço do site dele é http://otsadmin.desenvolvedoresonline.com, atualizei hoje também para o Dreamhost, assim não ficará mais caindo.

Lá no Home Page vai ter um link para o download.

Posted in programas | Tagged , , | Leave a comment

Jogos

Hello, people, if any.
Bom, como eu tenho este blog para publicar as coisas que eu gosto de fazer, deveria, teoricamente, coloca-las aqui.

Quando destrui (le-se removi) o site antigo e joguei o WordPress esqueci que iria perder as páginas do google (não, na verdade, eu sabia…)
Elas ainda estão lá, então vou usar o cache do google
A imagem ainda existem: tela do jogo a  longa corrida

Eu gosto de fazer jogos, mas não tenho muitas ideias.

Esse, a longa corrida, foi feito em Delphi.
Estou agora me aventurando com C++ e SDL, juntamente com SDL.

Estou fazendo alguma brincadeiras, mas o seriado Califonication esta gastando todo meu tempo livre no fim de semana.

Posted in geral, jogos, pessoal | Leave a comment

Primeiro post – Quem sou

Olá,

Embora a URL aponte que este é o oitavado post, é o primeiro.

Agora verdadeiramente com um Blog, estou usando o WordPress para facilitar as coisas!

Acho que vou criar uma página para contato vejá quem sou por aqui, mas vai neste primeiro post aqui também:

Provavelmente um dia vou esquecer de atualizar esta lista neste post, então é melhor visualizar pelo quem-sou mesmo.
Quem me conhece sabe que meu nome não é Renato CRON, CRON é um apelido que ganhei trabalhando na Deltax, ganhei por repetir o ato de apertar F5 para recarregar o google para ver se a conexão com a internet tinha voltado, até ai normal, porém eu fiz isso a cada segundo!

CRON é um programa para linux muito do capeta bom! Sem ele existiriam muitas pessoas tristes e infelizes com o Gerenciador de Tarefas! Nada contra o Windows, mas sem comparação!

Se quiser mesmo descobrir o que é CRON melhor passar na Wikipedia, pois já aconteceu de pessoas cairem no meu site procurando “Como configurar o CRON”, em todo caso, vou criar artigos no desenvolvedores online, assim pelo menos o Google acerta deixa o usuário feliz.

Bom, para um primeiro post sem objetivo já esta de bom tamanho!

Posted in geral, pessoal | Tagged | Leave a comment