quarta-feira, 29 de julho de 2009

Backup MySQL

#!/bin/bash
U_PASTA="/home/user/backup" # < -- substitua pelo caminho onde vai salvar o backup
U_DATA=$(/bin/date +%Y%m%d%H%M%S)
U_CAMINHO="backup-$U_DATA.sql"
U_HOST="localhost"
U_USER="root"
U_PASSWORD="********"
U_DATABASE="minha_base_mysql"
U_EMAIL="meuemail@meudominio.com.br"
#
erro=""
#
cd $U_PASTA
#
#
# Faz o backup do MySQL
#
mysqldump -h $U_HOST -u $U_USER -p$U_PASSWORD $U_DATABASE > $U_CAMINHO
if [ $? -ne 0 ]
then
erro="Erro na geracao do SQL"
fi
#
#
# Compacta o arquivo
#
if [ "$erro" == "" ]
then
gzip $U_CAMINHO
if [ $? -ne 0 ]
then
erro="Erro ao compactar o SQL"
fi
fi
#
# Apaga arquivos antigos e mantem apenas os 'n' ultimos
#
n=10
c=0
for i in *.sql.gz
do
let c=$c+1
done
if [ $c -gt $n ]
then
for i in *.sql.gz
do
if [ $c -le $n ]
then
break
fi
rm $i
let c=$c-1
done
fi
#
if [ "$erro" == "" ]
then
erro="Backup efetuado com sucesso!"
subject="[Sucesso]"
else
subject="[Erro]"
fi
echo "$erro => $U_CAMINHO.gz" | mail -s "$subject Backup em $(/bin/date +'%d/%m/%Y %H:%M:%S')" $U_EMAIL
#
# Volta para a pasta anterior
cd -


Para agendar a execução, digite:

$ crontab -e

Vai abrir um editor de texto com o arquivo de configuração da cron. Daí você pode digitar algo como:

# m h dom mon dow command 00 02 * * * /home/user/backup_bd.sh

Onde backup_bd.sh é o arquivo do script que passei acima.


Melhorando a performance do Firefox

A partir da versão 3, o Firefox guarda os favoritos, histórico e mais um punhado de coisas em sqlite. Por isso, manter essa base otimizada pode ser muito saudável ao seu Firefox.

No Ubuntu (testei no 9.04), instale o sqlite3.

Abra o terminal e digite:

sudo aptitude install sqlite3

Depois, ainda no terminal, acesse a pasta de seu perfil (profile) do Firefox:

cd ~/.mozilla/firefox/alguma_coisa_estranha.default

Varia de acordo com o computador. No meu, esse alguma_coisa_estranha.default é 73cm0ffy.default.

Você vai ver que essa pasta possui vários arquivos com a extensão .sqlite, que é o que queremos otimizar. Para isso, feche o Firefox (não antes de terminar de ler esse post ou copiá-lo :P ), depois simplesmente digite, para cada arquivo:

sqlite3 nome_do_arquivo.sqlite vacuum

Tem como fazer em todos os arquivos de uma vez? Claro. Você está mexendo em um terminal Linux! Para fazer todos de uma vez, digite:

for i in *.sqlite; do sqlite3 $i vacuum; done

Les Luthiers

TELEPATÍA: aparato de TV para la hermana de mi mamá.
BERRO: Bastor Alebán.
CAMARÓN: Aparato enorme que saca fotos.
TELÓN: Tela de 50 metros cuadrados o más.
ANÓMALO: Hemorroides.
BARBARISMO: Colección exagerada de muñecas barbie.
CHINCHILLA: Auchenchia de un objeto para chentarche.
DIADEMAS: Veintinueve de febrero.
MANIFIESTA: Juerga de cacahuetes..
MEOLLO: Me escucho.
ENDOSCOPIO: Prepararse para todos los exámenes, excepto dos.
NITRATO: Ni lo intento.
INESTABLE: Mesa norteamericana de Inés
ENVERGADURA: Lugar de la anatomía humana en dónde se colocan los condones.
ONDEANDO: Onde estoy.
DECIMAL: Pronunciar equivocadamente.
BECERRO: Que ve u observa una loma o colina.
BERMUDAS: Observar a las que no hablan.
POLINESIA: Mujer Policía que no se entera de nada.
DILEMAS: Háblale más.
MEOLLO: Me escucho.
ATIBORRARTE: Desaparecerte.
CACAREO: Excremento del preso.
CACHIVACHE: Pequeño hoyo en el pavimento que está a punto de convertirse en vache.
ELECCIÓN: Lo que expelimenta un oliental al vel una película polno.
NUEVAMENTE: Cerebro sin usar.
TALENTO: No ta rápido.
ESGUINCE: Uno más gatorce.
ESMALTE: Ni lune ni miélcole.
SORPRENDIDA: Monja en llamas

sábado, 4 de julho de 2009

TP LINK segurança

Clica no menu "Wireless" > "Wireless Settings".

Habilita a caixa "Enable Wireless Security"
Em "Security Type" escolha "WPA-PSK/WPA2-PSK"
Em "PSK Passphrase" escolha uma senha de 8 a 63 caracteres.

Clique em "SAVE"

Depois vai na sessão "System Tools" > "Password" e troca a senha 
do ADMIN (pode trocar o nome do usuário também.

quinta-feira, 25 de junho de 2009

jQuery Cycle Plugin

Show de bola, mais um plugin super util para imagens

quarta-feira, 4 de março de 2009

O que é uma classe

Uma classe é um gabarito para a definição de objetos. Através da definição de uma classe, descreve-se que propriedades -- ou atributos -- o objeto terá.

Além da especificação de atributos, a definição de uma classe descreve também qual o comportamento de objetos da classe, ou seja, que funcionalidades podem ser aplicadas a objetos da classe. Essas funcionalidades são descritas através de métodos. Um método nada mais é que o equivalente a um procedimento ou função, com a restrição que ele manipula apenas suas variáveis locais e os atributos que foram definidos para a classe.

O que é um objeto?

Um objeto é um elemento computacional que representa, no domínio da solução, alguma entidade (abstrata ou concreta) do domínio de interesse do problema sob análise. Objetos similares são agrupados em classes.

No paradigma de orientação a objetos, tudo pode ser potencialmente representado como um objeto. Sob o ponto de vista da programação, um objeto não é muito diferente de uma variável no paradigma de programação convencional. Por exemplo, quando define-se uma variável do tipo int em C ou em Java, essa variável tem:

  • um espaço em memória para registrar o seu estado atual (um valor);
  • um conjunto de operações associadas que podem ser aplicadas a ela, através dos operadores definidos na linguagem que podem ser aplicados a valores inteiros (soma, subtração, inversão de sinal, multiplicação, divisão inteira, resto da divisão inteira, incremento, decremento).

Da mesma forma, quando se cria um objeto, esse objeto adquire um espaço em memória para armazenar seu estado (os valores de seu conjunto de atributos, definidos pela classe) e um conjunto de operações que podem ser aplicadas ao objeto (o conjunto de métodos definidos pela classe).

Um programa orientado a objetos é composto por um conjunto de objetos que interagem através de "trocas de mensagens". Na prática, essa troca de mensagem traduz-se na invocação de métodos entre objetos.