Este código é um oferecimento da XPDEV para você que gosta de ficar o dia todo no Twitter.

Com ele, você vai evitar de ficar clicando no link para ver os novos tweets.

Para adicionar este recurso, arraste este LINK para a sua barra de favoritos.
Ele está configurado para fazer a atualização de 5 em 5 segundos.

Fica a dica para seguir @XPDEVBRASIL também.

 

Até a próxima.

fzmaster

 

 

Uma situação bem inusitada que pode ocorrer durante o desenvolvimento de uma aplicação é precisar atrelar o seu sistema de login à uma página externa à aplicação.

Vou mostrar como pode-se fazer isso usando CakePHP.

No CakePHP nós temos o conceito de herança aplicado aos controllers. Neste caso, nosso controller de usuários herda da app_controller métodos e atributos. Quando se tem o sistema de login em CakePHP, deve-se habilitar o componente Auth. Vamos também fazer umas modificações em nosso método AppController::before_filter(). No final teremos algo como isso.

<?php
class AppController extends Controller {

	var $components = array('Auth');

	function beforeFilter(){
		$this->Auth->userModel = 'Usuario'; # mudamos o padrao de User para Usuario

       }

}
?>

Agora nosso arquivo usuarios_controller.php. Ele deve ter os métodos login() e logout() para funcionar corretamente com o components Auth. Neste caso, devemos apenas implementar algumas pequenas mudanças no método login() como mostrado abaixo:

<?php
class UsuariosController extends AppController {

	var $name = 'Usuarios';

	function login() {
	   $this->redirect('http://www.outro.dominio.com.br/pagina.html');
	}

	function logout() {
		$this->redirect($this->Auth->logout());
	}

}
?>

Por isso é hoje. Essa dica é muito quando sua aplicação fica em outra parte do domínio que vai passar o formulário de login. ;)

Tags: , , ,

Essa dica é muito boa para pegar referências nativas automaticamente sem precisar ficar dando Ctrl+C, Ctrl+V.

Primeiro, vamos escolher um página da wikipedia para obtermos o conteúdo.

Por exemplo: Tropa de Elite 2

Vamos ver o código fonte da página a fim de encontrar algum padrão:

Hum… note que encontramos o seguinte. Todo artigo está envolvido nas tags de comentário <!– content –> e <!– /content –>

<!-- content -->
		<div id="content">
			<a id="top"></a> 

............CONTEUDO SUPRIMIDO ...........
	<!-- /bodyContent -->
		</div>
		<!-- /content -->
		<!-- header -->

Ótimo. Então vamos trabalhar em cima disso.

A dica para pegar o conteúdo ENTRE essas tags é usando expressões regulares.

Nós precisamos pegar: TAG DE ENTRADAS + CONTEÚDO + TAG DE SAÍDA.

Assim, podemos usar a própria tag literalmente e o operador qualquer coisa (.) repetido infinitas vezes.

Assim, teremos:

<!-- content -->.*<!-- /content -->

Para integrar no nosso sistema, vamos usar a função PHP chamada preg_match_all que vai casar a expressão regular com o conteúdo inserido. O conteúdo será provido pela variável $informação que  foi carregada com a string do código fonte da página. O código foi capturado com a função file_get_contents().

Veja como ficou o código

<?php
$informacao = file_get_contents('http://pt.wikipedia.org/wiki/Tropa_de_Elite_2:_O_Inimigo_agora_%C3%89_Outro');
preg_match_all('%<!-- content -->.*<!-- /content -->%s', $informacao, $resultado, PREG_PATTERN_ORDER);
$resultado = $resultado[0][0];

echo $resultado;
?>

Pronto, agora podemos usar o conteúdo da variável para salvar no banco de dados, ou fazer um carregamento em Ajax.

Use a imaginação.

Post feito com base na dúvida de MSS.

Pois é. Hoje meu servidor ficou fora do ar. O motivo foi o servidor de banco de dados que caiu, assim nenhum site que usasse banco de dados, estava travado. Não abria. Retomando essa discussão, e se o servidor tivesse crashado geral e tivesse perdido tudo? Já era, né? Não é bem assim.
Abaixo estou compartilhando o meu código de backup que criei há um tempo atrás.
Nele é possível montar o backup do banco de dados e mandar por e-mail.
No meu caso, o mesmo executa 1 vez por dia. Mas fica a seu critério ao rodar o cron.
Dependências: phpmailer. Baixe aqui.
<?php
// aumenta a memoria e importa o mailer
ini_set("memory_limit","64M");
require 'class.phpmailer.php';
// gera backup
$nome = '/tmp/' . date('Ymd-Hi') . '.sql';
exec("mysqldump -u usuario --password='senha' --all-databases > {$nome}");
exec("gzip $nome");
$nome .= ".gz";
$tamanho = number_format(filesize($nome) / 1048576, 0);
$data = date('d/m/Y');
$m = new PHPMailer();
$m->SetFrom('emaildofrom@dominio.com', 'Backup do BD');
$m->AddAddress('destinatario@dominio.com', 'Nome do Destinatario');
$m->AddAttachment($nome);
$m->Subject = 'Backup de Banco de Dados Diario '.$data;
$m->MsgHTML(nl2br("Backup dos Bancos de Dados. \n Dia: {$data} \n Tipo: ANEXO \n Tamanho: {$tamanho}MB."));
// envio backup
if ($m->Send()) {
unlink($filename);
}
?>

Então é isso.
Fica a dica e até mais. Qualquer dúvida, podem comentar aqui abaixo.

Tags: , , ,

No donut for me!

Pois é. Hoje o servidor de banco de dados saiu do ar o que ocasionou a queda de todos os clientes que usam banco de dados no meu servidor. Desde ontem (04/01/2011 às 21:00 Horário de Brasília) todos os sistemas ficaram fora do ar. Agora voltou e está tudo ok. Fica a dica para o próximo post do meu gerador de backup automático.

Tags: ,