borda_esquerda
borda_direita

Adicionar sitemap no blogger

  Neste post mostro como adicionar de forma útil um sitemap nos blogs feitos com o blogger.
  Para estar bem posicionado nos resultados do Google, é muito importante ter um sitemap (mapa do site), mas como para isso você precisa enviar para o seu servidor o arquivo do sitemap isto se torna algo totalmente inviável nos blogs do blogger.com.

  A primeira coisa a fazer é cadastrar o seu blog nas Ferramentas do Google para webmasters.   Depois de cadastrado, clique no menu do lado esquerdo "Configuração do site" e na aba "Sitemaps" que abrirá abaixo. Na página que aparecer, escolha "Enviar um Sitemap".   Vai abrir um campo com o endereço do blog que você cadastrou, exemplo "http://seublog.blogspot.com/", no campo em branco logo após o endereço digite :
atom.xml?redirect=false&start-index=1&max-results=200   Clique no botão "Enviar Sitemap" e pronto seu blog já tem um sitemap relacionado. Se você fez tudo corretamente, em alguns minutos os relatórios serão atualizados e o Google checará o arquivo regularmente para manter-se atualizado sobre seus posts.

Leia Mais...

Consulta no postgres com acentos

  Vou mostrar neste post como utilizar uma função em pl sql que retira acentos, para os casos em que a codificação do seu banco for utf-8.
  Um grande problema que encontrei quando comecei a desenvolver sistemas para web, foi o fato de ter que realizar consultas com palavras acentuadas em bancos de dados com codificação utf-8, e vi que isso era a dúvida e um grande problema para muitos outros desenvolvedores tambem.
  Então segue abaixo uma função em pl sql para postgres que retira os acentos, para facilitar na hora da consulta.

Obs: Esta função foi achada em fóruns sobre postgres, por isso não creditei a ninguem, caso alguém conheça o criador do código, deixa como comentário que eu atualizo o post dando o devido crédito.
CREATE OR REPLACE FUNCTION sem_acento(text)
RETURNS text AS
$BODY$
select
translate($1,'áàâãäéèêëíìïóòôõöúùûüÁÀÂÃÄÉÈÊËÍÌÏÓÒÔÕÖÚÙÛÜçÇ',
'aaaaaeeeeiiiooooouuuuAAAAAEEEEIIIOOOOOUUUUcC'); $BODY$
LANGUAGE 'sql' IMMUTABLE STRICT;
E depois de criado a função no postgres é só realizar as consultas como no exemplo abaixo: SELECT * FROM Tabela WHERE UPPER(sem_acento(campo_que_deseja_retirar_os_acentos))
LIKE UPPER(sem_acento('%cão%'));
-- Retorna CAO, CÃO, cao, etc.

Leia Mais...

Transactions com Cakephp e Mysql

 A algum tempo precisei utilizar transactions em um projeto grande desenvolvido em Cakephp e Mysql, e depois de muito esforço e pesquisa em fórums e grupos de discussão consegui fazer funcionar, como mostro a seguir.

Primeiro o tipo das tabelas tem que ser "InnoDB". ALTER TABLE table_name type=InnoDB;
  Por padrão o MySQL é executado em modo autocommit. Isto significa que assim que você
executa uma instrução que atualiza (modifica) uma tabela, o MySQL armazena a atualização
no disco. Se você estiver usando tabelas com segurança a transação (como InnoDB \ ou BDB), você pode colocar o MySQL em modo não autocommit com o seguinte comando:

$this->Model1->query('SET AUTOCOMMIT = 0');
  Para iniciar uma transação usa-se o código abaixo: (Note que só usaremos os códigos de transação apenas em um dos models).
$this->Model1->query('START TRANSACTION');
 O código abaixo mostra dois Models(Model1 e Model2) que não tem relacionamento explicito, sendo gravados no banco unicamente quando os dois são validados e retornam como verdade.  Tentaremos salvar os Model1 e Model2 com os dados vindos de algum formulário e passaremos a ambos o parâmetro atomic com o valor false, para que o CakePHP entenda que ele não deve salvar os modelos relacionados a esses Models(Model1 e Model2) deixando isso a cargo do código que estamos inserindo.
 E depois utilizamos duas variáveis(model1 e model2), para saber se podemos enviar um COMMIT ou um ROLLBACK nas alterações feitas no banco. $this->Model1->saveAll($this->data['Model1'],array('atomic'=>false)); $model1=$this->Model1->getLastInsertId();
$this->Model2->saveAll($this->data['Model2'],array('atomic'=>false)); $model2=$this->Model2->getLastInsertId();

  Por fim testamos as variáveis e se as duas não forem nulas, confirmamos no banco com o comando COMMIT e se por acaso acontecer algum problema com a inserção desses dados o ROLLBACK.
if($model1 != null && $model2 != null){
$this->Model1->query('commit');
echo "Inserção realizado com sucesso!";
}else{
$this->Model1->query('rollback');
echo "Operação não realizada!";
}

 Espero ter ajuda aqueles que estiverem com as mesmas dificuldades que eu tive e gostaria de frisar que essa não é a melhor nem a pior maneira de se fazer transactions utilizando CakePHP e Mysql é só a forma que eu encontrei de fazê-las funcionar sem problemas.
 Qualquer dúvida, reclamação ou sugestão sobre o código é só postar um comentário que eu responderei o mais breve possível.

Leia Mais...