SEO – Múltiplos sites no mesmo endereço IP

O assunto de hoje é SEO! depois de meses sem postar algo ^^

Há algum tempo, compartilho de um servidor com mais um amigo, e tenho um site “pornô“, digo “pornô” porque ele não é exatamente isso, ele é sobre Peitos, e Peito é natureza.

Vamos ao um site hospedado junto com outro, pode interferir no ranking dos sites ‘vizinhos de IP’?

Reposta muito curta:

NÃO.

Resposta curta:

Depende da troca de links entre os sites envolvidos.

Resposta:

Supondo que um site A, com o domínio www.site1.com.br, está hospedado no mesmo local (não importa se é o mesmo servidor físico, detalhes em abaixo) do site B, cujo domínio é www.segundo.com.br. Ambos os sites estão no IP 187.10.200.15.

Continue reading

Posted in programas, web | Tagged , , | Leave a comment

Postgres – Campos arrays, perl, hash e … pog

Primeiros, a definição: POG: Postgres Oriented Gambis!

Brincadeiras a parte, vamos lá: eu tenho certeza que você já quis colocar uma array no banco
(por exemplo, todos os telefones de uma pessoa) sem ter que criar outra tabela para criar a relação.

Agora que você esta ciente dos riscos, da quantidade de POG [dessa vez programação orientada a gambi mesmo] que você irá fazer, continuaremos.

Adicionar um novo campo com os telefones seria fácil demais:

create table blabla (
	id_blabla bigiserial,
	telefones text[]
);

Porém, você só poderia ter os telefones assim:

{
    '1234-2222', 123342123, 23212
}

Mas aí surgem necessidades como, separar o DDD, saber se é FAX, se tem ramal, etc…

Então, na mais pura maldade pensei:
“pow, seria muito legal ter um HASH ai nesse campo…”

Como a preguiça também é grande, não quis criar um TYPE do postgres, pois seria dispersão de tempo,
afinal este campo não precisa de search, é so um lugar pra jogar esta informação antes dela ser mais refinada.

Aí pensei, “Hmm, uma array de array resolveria o problema, ‘bora fazê’”:

Deixe assim:

create table blabla (
	id_blabla bigiserial,
	telefones text[][]
);

Pronto, agora você pode fazer isto:

{
    {tel,'1234-2222'},
    {tel,123342123},
    {tel,23212}
}

Assim, você salva chave, valor, chave, valor….

Em perl, é bem simples transformar um HASH em Array [tem várias formas também]:
A que eu utilizei foi esta:

        # Array de HASH
        my $array_de_hash = [{tel => 123, ddd => 11}, ... ];
        # array que vc vai colocar enviar ao banco
        my @as_array;
        foreach my $i (@$array_de_hash ) {
	        if (ref $i eq 'HASH') {
	                my @sub_array;
                        foreach my $k (keys %$i){
                                push(@sub_array, $k, $i->{$k});
                        }
                        push(@as_array, @sub_array);
                }else{
                        push(@as_array, $i);
                }
        }
        $array_de_hash = $database->quote( @as_array );

Este é um exemplo muito básico, e não tem recursividade, mas funciona para casos simples.

Falta o código perl pra montar o $array_de_hash novamente, mas acho que é só você fazer um foreach seguido de %hash = @valores;

 

{
    {matchkey,6868465D6A6E5660,telephone,11111111,extension,"",
      other,"",status,000000000000001,ddd,11}
}

Cheers

Posted in Databases | Leave a comment

II São Paulo Perl Workshop: Larry Wall e Brad Fitzpatrick no Brasil

Este mês teremos um grande evento em São Paulo.

Continue reading

Posted in geral | Leave a comment

Mínimo e Máximo no postgres dentro de arrays

Estava procurando na internet e achei várias soluções, porém, a melhor foi esta:

Menor valor

create function minimum(anyarray)
returns anyelement as $$
   SELECT min($1[i])
   FROM generate_series(array_lower($1,1), array_upper($1,1)) g(i);
$$ language sql immutable strict;

Maior valor

create function maximum(anyarray)
returns anyelement as $$
   SELECT max($1[i])
   FROM generate_series(array_lower($1,1), array_upper($1,1)) g(i);
$$ language sql immutable strict;

Testando:

SELECT *, minimum(abc), maximum(abc)
FROM qualquer_tabela;

Legal eim? Porém, diga-se de passagem, não é aconselhável usar campos arrays para fazer pesquisas de dados. Para isso, existem as FKs, que usam indexes.

Consultas:

  • procurar array o Máximo e Mínimo postgres
  • consultar o mínimo e máximo numa array no postgres
Posted in geral | Leave a comment

Salvar quantas pessoas acessaram uma página com php *

Olá!

Pediram-me para fazer, apenas um arquivo com todos os acessos do site usando PHP.
atividades do usuário

Outra regra e que se retorna uma imagem transparente com 1px/1px.

Continue reading

Posted in geral | Leave a comment

FMU – Ciência da computação – Segundo dia

Olá,

Hoje, terça-feira, tivemos aula com o prof. Nilson, de Cálculo diferencial e integral I [aka: matemática].

Explicou o básico sobre funções, e passou a grade deste semestre junto com a bibliografia.

Já são quase 1 da manhã, então não vou colocar agora uma tabela aqui com a grade.

Porém, como já esta sendo dito várias vezes, eu criei um grupo no Google Grupos,

o e-mail é ciencia-da-computacao-019201a01@googlegroups.com um pouco grande, porém é bem simples: nosso curso separado por traço seguido pelo código da nossa turma. Assim não atrapalhamos mais nenhuma outra sala.

Grupos do Google
Participe do grupo FMU Ciência da Computação 2011
E-mail:

Visitar este grupo

Apenas vou deixar liberado o grupo para pessoas da sala, afinal, nem todos os documentos que ficarão em anexo no google docs (preciso testar se da pra enviar e-mail com anexo)  são públicos.

Já foi passada uma lista para um aluno (que não sei porque eu sempre fico pensando que se chama Igor, mas não é) com nome/email.

Ele é programador Python, e vai me passar um TXT com a relação para eu já enviar os convites.

Também teve outro aluno, que disse que vai criar um grupo no MSN, quem quiser, pode usar. Ele disse que ia colocar no orkut, mas a comunidade que ele disse, necessita de aprovação do moderar, ou seja => não sei qual é o e-mail do grupo do msn.

Por agora é só.

Posted in geral | Leave a comment

FMU – Ciência da computação – Primeiro dia

Olá !

Hoje teoricamente é o primeiro dia da faculdade, curso de ciencia da computação, na FMU (http://www.fmu.br).
Teoricamente, pois dependendo do horário/trânsito/tranbriques, não vou conseguir chegar a tempo lá.

Continue reading

Posted in geral, pessoal | 2 Comments

Campus party acabou

Enfim,

a campus party ja era…

sem link de 100mb (pois eh isso q vc recebe, culpa do switch) nao tem mais graca!

Acabei q voltei ontem mesmo de carona com um amigo que me deixou na penha, mas…

esqueci o teclado no carro dele, e nao to com ele em lugar nenhum (msn, face, twiter…)

o jeito e eu levantar da cama e ir comparar outro, mas nem sai do lugar ainda (serio, meu notebook dormiu aqui do lado)

Posted in geral | Leave a comment

Campus Party 2011 – Meus preparativos

E como todos sabem (rs, NÂO!) eu vou pra CP2011 e seja o que quiser.

Internet tem lá, então o pessoal do trabalho pode me chamar a vontade, exceto nestas horas das palestras de:

  • Palestra: MongoDB – um banco de dados orientado a documento, fácil e divertido
  • Palestra: Trilhando o Caminho PHP
  • Palestra: Psicologia nos jogos
  • Palestra: MongoDB – um banco de dados orientado a documento, fácil e divertido
  • Palestra: Simbolismo nos jogos
  • Palestra: Futuro da Web, HTML5 e W3C
  • Palestra: Como ganhar dinheiro criando jogos
  • Palestra: Unreal Engine
  • Palestra: O Jogo da Vida
  • Palestra: HTML 5

Estou tentando seguir o kit de sobrevivencia do estadão (http://www.estadao.com.br/especiais/kit-de-sobrevivencia-para-a-campus-party,44230.htm) mas ta complicado…
Eu tenho uma mochila, falta por as roupas/toalhas,
agora certas coisas eu não tenho: chinelos de dedo (I HATE HAVAIANAs) e muito menos vou levar dois!

Eu vou ficar com o tênis o tempo todo e so vou tirar pra tomar banho, ai eu uso meu Rider!

Já comprei 1 plug adaptador para o padrão novo das tomadas, e vou levar a regua daqui de casa também, assim, só preciso de 1 adapatador.

O notebook vai continuar com a gambi (look http://twitpic.com/399xqi) e só tiro se me pedirem.

Estou planejando de ir pro trampo, pegar minhas coisas (o meu fone de ouvido ta lá) e voltar pra casa, pra ir de carro pra CP, pois ainda preciso pensar numa foram de levar o computador e o monitor…

Quarta feira eu saio pra ir numa reunião, e sexta também, mas volto pra CP do mesmo jeito.

Estou fingido que vou dormi em cima do teclado, pois não estou nada a fim de levar cobertores, nem nada do tipo! Qualquer coisa o metro é perto (menos de 2km), e ja estou preparando minha conta do megaupload, pois comprei 2 TB só pra ir pra CP.

Tambem, em algum dia desses, vai ter apresentação do opendata (http://marciodesouzaferreira.blogspot.com/2011/01/hack-de-dados-publicos.html) e eu vou assitir!

— UPDATE 18:13

Vai ser na quarta feita, apresentada pelo Maluco (http://www.maluco.com.br/blog/)

Ah, outra coisa, minha mãe ta fazendo minha mala, rs! Ela tem uma mochila de viagem, eu uma de notebook!

Posted in geral | Leave a comment

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