Adicionando Curtir Compartilhar Facebook Twitter

Para adicionar botão de compartilhar do twitter no seu site, basta acessar:

http://twitter.com/about/resources/tweetbutton

Lá você encontrará as opções para criar seu botão, de maneira bastante fácil, no final ele gera um código pra adicionar no seu site tipo este:



E o resultado será algo assim:

Para colocar botão de Curtir do Facebook pode usar o seguinte código PHP:


Perceba a função curPageURL() concatenada no código do iframe do facebook. Encontrei este código na Internet, neste endereço http://www.webcheatsheet.com/PHP/get_current_page_url.php

O resultado do Like Facebook será algo assim:

Encoding Codificação Retorno PagSeguro

O pagSeguro é um dos sistemas de pagamentos mais conhecidos e utilizados em e-commerces, mas sua documentação deixa a desejar um pouco, ainda assim, existem muitas boas pessoas na Web com diversos tutoriais, espero poder contribuir um pouco também. Este post já havia sido publicado no phpoo.com.br, mas estou desativando aquele e salvando aqui.

Um problema bem comum (eu imagino) é problema com codificação, que precisa ser ISO-8859-1.

Até no exemplo de página de retorno a primeira coisa que é feita no PHP é:

header('Content-Type: text/html; charset=ISO-8859-1');

Mas se você estiver com seu banco de dados em UTF-8, por exemplo, e suas páginas todas são UTF-8, primeiro você vai ter que dizer ao pagSeguro isso, o que pode ser feito adicionando essa informação na função de inicialização do pagSeguro em PHP que está disponível nos exemplos do site mesmo, a função ficá assim:

function pgs($args = array()) 
{
    if ('array'!=gettype($args)) $args=array();
    $default = array(
      'email_cobranca'  => 'seuemail@pagseguro.com.br',
      'tipo'            => 'CP',
      'moeda'           => 'BRL',
      'encoding'        => 'UTF-8',
    );
    $this->_config = $args+$default;
}

Com isso o pagSeguro sabe que você está enviando as informações no carrinho, dados do cliente e do produto em formato UTF-8, mas, quando ele te responder na página de retorno as informações virão em ISO-8859-1 igual... como resolver, depois de muita pesquisa, uma solução simples encontrei, basta fazer o seguinte:

mb_convert_encoding($_POST['CliNome'], 'UTF-8', 'ISO-8859-1,ASCII,UTF-8');

Faça isso para todos os campos String que vierem no post do pagSeguro e pronto. Campos com acentos e outros tantos serão salvos no banco de dados corretamente, sem isso, quando vinha uma cidade com nome 'Três de Maio', por exemplo, na minha base dedados MySQL estava salvando apenas 'Tr', os dados depois de qualquer acento eram perdidos.

Tem mais algumas informações úteis sobre este retorno que são abordadas pelo Dourado no site dele: http://dourado.net/2011/06/09/retorno-automatico-de-dados-do-pagseguro-em-phpmysql-com-produtos-versao-2-0/

Boa sorte pra quem for implementar!  Aproveitando o post, se você ainda não é cadastrado no PagSeguro, clique aqui ou na imagem abaixo para se cadastrar.

Agendar Backups Linux: crontab tar date

Comando tar: serve basicamente para compactar arquivos, criar backups etc.

tar -c
serve pra criar um arquivo novo

tar -p
serve para listar o conteudo

tar -x

serve para extrair um arquivo

Normalmente uma destas 3 letras é acompanhado de:
v para mostrar na tela o que esta sendo feito
f para jogar o conteudo do arquivo para um novo
j para compactar igual ao 7zip, mais nova, GZ2, muito bom
z tambem serve para compactar, mas nao tao bom...

Então, para criar arquivo novo + ver + compactar + dizer que o resultado eh um file (arquivo)

tar -cvjf nome_novo_arquivo o_q_vai_ser_compactado


Ex.: fazer um bkp de todos os dados do usuario bolivar

tar -cvjf bkp_bolivar_2011_11_11.tar.gz2 /home/bolivar/*


Agora com data e hora automática

tar -cvjf bkp_bolivar_`date +%Y_%m_%d_%H_%M`.tar.gz2 /home/bolivar/*


Para listar o conteúdo

tar -tvf bkp_bolivar_2011_11_11.tar.gz2


Para extrair o conteúdo

tar -xvf bkp_bolivar_2011_11_11.tar.gz2





comando date: pega a data do sistema

Pode-se formatar a data em diferentes formatos, Y-m-d H-M ou d/m/Y ... mas lembre-se de em nomes de arquivo nao pode usar / entre outros...

date +%y
date +%Y
date +%m
date +%d
date +%H
date +%M



Comando crontab: faz o agendamento de tarefas

Para ver o que já está agendado para executar:

crontab -l

Para editar agendamentos:

crontab -e

Provavelmente ao editar vai pedir qual editar de texto voce deseja usar, fui com o nano, opcão 2, que é mais fácil.
Configura: m h dom mon dow command
Que significa: Minuto Hora DiaDoMes Mes DiaDaSemana Comando

Para gravar um log, como temos no comando TAR o V, ele mostraria na tela o que foi feito, podemos jogar em um arquivo o bkp semanalmente, diariamente, de 15 em 15 minutos ficaria assim:

0-15-30-45 * * * * tar -cvjf /home/bolivar/bkp_bolivar_`date +%Y_%m_%d_%H_%M`.tar.gz2 /home/bolivar/* > /home/bolivar/bkpLog.txt

Comandos Unix: ps, grep, sed, cut, awk, chmod, mysql, crontab

Anotecões aula de Sistemas Operacionais, ajustadas para virar um tutorial de como criar um script para salvar logs do uso de memória e processador por determinado processo.


Uso do VI

i para escrever
:q para sair
:wq para salvar e sair
:w <nome arquivo> para salvar como

Atividades escrever script para armazenar em arquivo a cada minuto a % de CPU e qtde de memória usada por um processo.

Ver os processos e salvar no arquivo texto o resultado:

ps -faux > arquivo.txt

ps pega os processos, grep compiz busca apenas linhas com 'compiz', sed pra apagar tudo menos a linha 1, linha 2 em diante, >> add no log.txt

ps aux | grep compiz | sed '2,$ d' | cut -b 16-24 >> log.txt

cut serve pra cortar a string, -b corta bytes, pegando apenas do caracter (cada caracter é um byte) 16 ao 24

ps aux | grep compiz | sed '2,$ d' | cut -b 16-24 | awk '{print $1,";",$2}' >> log.csv

ou pode-se mudar as colunas pelo awk, pegando diretamente as corretas sem usar o cut.

ps aux | grep compiz | sed '2,$ d' | awk '{print $3,";",$4}' >> /home/bolivar/visamples/log.csv


crontab -e para adicionar o comando, dizendo pra executar a cada minuto.

* * * * * ps aux | grep compiz | sed '2,$ d' | awk '{print $3,";",$4}' >> /home/bolivar/visamples/log.csv


Agora pra salvar em um banco MySQL, crie um banco chamado logs e uma tabela chamada log com dois campos decimais, uma pra cpu e outro pra memoria. criar um script Shel log_processo_mysql.sh com o sql insert:

ps aux | grep mysql | sed '2,$ d' | awk '{print "INSERT INTO log (cpu,mem) VALUES (",$3,",",$4,");"}' > /home/bolivar/log_insert.sql

mysql -u root --password='root' -D logs < /home/bolivar/log_insert.sql

De permissao de execucao pro script

chmod +x log_processo_mysql.sh

No crontab agora ficou assim.

* * * * * /home/bolivar/log_processo_mysql.sh

Pra verificar se está funcionando, acessa o mysql:

mysql -u root --password='suasenha'

depois selecione o banco:

use logs;

e execute o select:

select * from log;

pra ver os bancos:

show databases;

pra ver as tabelas, primeiro selecione o database e depois:

show tables;

pra sair do mysql:

quit

pra sair do prompt:

exit