Muito fácil:
pg_dump -U <usuario> –inserts -t <tabela> <banco> > dump.sql
Um exemplo real:
pg_dump -U postgres –inserts -t municipio geral > municipios.sql
Aprender é Bom Demais!!!
19.01.12 às 13:47 por Jonas
Muito fácil:
pg_dump -U <usuario> –inserts -t <tabela> <banco> > dump.sql
Um exemplo real:
pg_dump -U postgres –inserts -t municipio geral > municipios.sql
12.12.11 às 14:41 por Jonas
Google fez a estréia oficial de seu Youtube para Escolas – Youtube for Schools.
Trata-se de uma espécie de Youtube “especial” sem as distrações habituais do portal normal (como os vídeos mais populares, por exemplo) cujo conteúdo é abastecido através do Youtube EDU (é o Youtube Educacional). Os professores podem escolher o material para enriquecer suas aulas, dentre os 120 milhões de vídeos educativos, criados por Smithsonian, TED, Steve Spangler Science, e Numberphile.
Sem dúvida, os professores estão muitos ocupados, e por isso existem mais de 300 playlists perfeitamente categorizadas (Matemática, Ciências Sociais, Artes, etc…), prontas para se usar. Pode-se encontrar uma lista dessa coletânea em youtube.com/teachers e provavelmente poderá colaborar com sugestões neste link.
Muito boa iniciativa da Google, em contribuir com a arte de ensinar.
Así pues una muy buena iniciativa de la mano de Google que quiere realizar su pequeña contribución al mundo de la enseñanza. La imagen del profe peleando con el VHS del aula de vídeo ya ha pasado a la historia…
16.11.11 às 19:25 por Jonas
Howto: Gerando Dump do Postgresql e transferindo o arquivo para uma máquina com Windows Server
O objetivo deste howto não é discutir qual é a melhor forma de realizar um backup PostgreSQL, mas sim propor uma forma de realizar um Dump da base de dados em um servidor Linux e transferir para um servidor de arquivos que rode Windows, isso é muito comum em empresas e instituições, onde muitas vezes no servidor Windows encontra-se instalada algumas ferramentas de terceiro para gerenciar fitas, robôs e etc.
Não custa citar o ótimo artigo do Fábio Telles Rodriguez, onde o mesmo deixa claro que Dump não é considerado a melhor forma de realizar um backup. Vamos lá.
Imaginemos o seguinte cenário:
A idéia é o seguinte:
Mãos a massa:
Instalando os requisitos:
# apt-get install samba samba-common smbfs smbclient
Criando a pasta que servirá de montagem:
# mkdir /mnt/ntserver
No servidor de domínio, Windows Server – Active Directory, você deve ter um usuário com privilégio de escrita na pasta compartilhada. Basta executar a linha abaixo para testar a montagem:
# mount -t smbfs //192.168.0.10/pasta_compartilhada /mnt/ntserver -o username=usuario_de_dominio,password=senha_de_dominio
Claro trocando os termos em negrito para os da sua rede.
# ls /mnt/ntserver
Com este comando deve listar o conteudo da pasta campartilhada lá do servidor de arquivos Windows. Ok, agora, vamos desmontar:
# umount /mnt/ntserver
Criando o script de backup do PostgreSQL
Criando a pasta onde ficará armazenado localmente os Dumps
# mkdir /home/bkp_pg
Crie o arquivo chamado bkp.sh
# vim /etc/init.d/bkp.sh
Insira o seguinte conteúdo:
#!/bin/sh # script que gera backup de bases de dados PostGreSQL # Referencia: http://www.htmlstaff.org/postgresqlmanual/app-pgdump.html # Jonas Ferreira - jonas.ferreira@gmail.com - http://jf.eti.br # C 2010 03 19 # # VARIAVEIS ################## export PGPASSWORD=postgres # Exportando a senha do PostGreSQL para o ambiente (Ubuntu) vU="postgres" # Usuario no PostGreSQL vP="postgres" # Senha vB=nome_base # Base De dados vBI="/usr/lib/postgresql/8.3/bin/" # Diretorio raiz dos binarios do PostGreSQL vR="/home/" # Diretorio raiz vD="bkp_pg/" # Destino do Backup vPre="basePG" # Prefixo no nome do arquivo de saida vE=".dmp" # extencao do arquivo de saida vH="localhost" # Host do servidor vAno=`date +%Y` #Ano vMes=`date +%m` #Mes vDia=`date +%d` #Dia vHor=`date +%H` #Hora vMin=`date +%M` #Min vCod=`date +%N` #date [date (GNU coreutils) 5.3.0] vDat="$vAno$vMes$vDia-$vHor$vMin-$vCod" vA=$vPre"-"$vB"-"$vDat$vE # VALIDACAO ################## if [ -z $vU ]; then echo "Sem usuario"; exit 0; fi if [ -z $vP ]; then echo "sem senha"; exit 0; fi if [ -z $vB ]; then echo "informe o nome da base de dados"; exit 0; fi # BACKUP ##################### echo "# Gerando backup. Aguarde..." echo "# Destino: $vR$vD" echo "# Nome do arquivo: $vA" echo "#################################" echo "# Compactando backup. Aguarde..." # Caso queira gerar com inserts (arquivo fica maior) #$vBI""pg_dump -U $vU -h $vH --inserts $vB | gzip -c &amp;amp;amp;amp;amp;amp;amp;gt; $vR$vD$vA.out.gz # Caso queira gerar com copy (arquivo fica menor) $vBI""pg_dump -U $vU -h $vH $vB | gzip -c &amp;amp;amp;amp;amp;amp;amp;gt; $vR$vD$vA.out.gz echo "#################################" echo "# Transferindo o o arquivo para o servidor Windows..." # Montando a pasta mount -t smbfs //192.168.0.10/pasta_compartilhada /mnt/ntserver -o username=usuario_de_dominio,password=senha_de_dominio # copiando o arquivo cp $vR$vD$vA.out.gz /mnt/ntserver # desmontando a pasta umount /mnt/ntserver # limpando a variavel de ambiente export PGPASSWORD= exit
Setando permissão de execução no script:
# chmod +x /etc/init.d/bkp.sh
Colocando o script na Crontab:
# crontab -e
Adicione a seguinte linha:
#Realizando Backup do PostgreSQL – Todos os dias a meia noite
00 00 * * * /etc/init.d/bkp.sh
Salve o arquivo e pronto, já pode testar:
# /etc/init.d/bkp.sh
Como saída, você verá algo como:
# Gerando backup. Aguarde…
# Destino: /home/bkp_pg/
# Nome do arquivo: basePG-nome_base-20111116-2012-048760000.dmp
#################################
# Compactando backup. Aguarde…
#################################
# Transferindo o o arquivo para o servidor Windows…
Verifique na pasta de destino se foi criado o arquivo:
# ls /home/bkp_pg
Deve listar o arquivo compactado:
basePG-nome_base-20111116-2012-048760000.dmp.out.gz
Verifique também lá no servidor de arquivo do Windows, na pasta compartilhada, se este mesmo arquivo existi por lá.
Pronto, você acabou de implementar uma solução de Dump de uma base PostgreSQL e transferiu para um servidor de arquivos Windows. Espero que seja útil para você.
01.11.11 às 11:09 por Jonas

Howto: Como utilizar a base de usuários do JOOMLA 1.5.x para se logar externamente com PHP.
Sério, você ainda pode precisar disso.
Imagine a seguinte situação:
Você tem um portal Joomla funcionando normalmente e necessita criar um sistema externo que necessita de autenticação, então você se lembra que no Joomla existe uma base de usuários completa e o que precisa fazer é somente utilizar essa base para se logar, maravilha, então confira no script abaixo como fazer isso, não requer prática nem habilidade:
< ?php
session_start();
// Fazer conexão com o banco de dados
$db = mysql_connect("localhost", "usuarioBD", "senhaBD");
mysql_select_db("baseDeDados", $db);
// Pegar nome de usuário e senha do formulário
$usuario = $_POST['usuario'];
$senha = $_POST['senha'];
// Obter senha cifrada do usuário
$sql = "SELECT name, password FROM jos_users WHERE username='$usuario'";
$resultado = mysql_query($sql);
// Extrair os dados do resultado da query
$pega = mysql_fetch_array($resultado);
$senhaCripto = $pega['password'];
// Separar a senha do sal
if($senhaCripto)
{
$partes = explode( ':', $senhaCripto );
$cripto = $partes[0];
$sal = $partes[1];
// Criar hash com a senha fornecida com o sal (se houver)
$novoHash = ($sal) ? md5($senha.$sal) : md5($senha);
// USUÁRIO E SENHA VÁLIDOS:
if( $novoHash == $cripto ) {
// Jogando na sessão o nome do usuário, para poder utilizar posteriormente
$_SESSION['nome'] = $pega["name"];
// Pode-se simplesmente exibir uma mensagem, ou redirecionar para uma página restrita.
echo "Acesso autorizado";
// redirecionando para a pagina restrita.
header("location:pagina_restrita.php");
// USUÁRIO EXISTE, MAS A SENHA NÃO BATE:
} else {
// Pode-se exibir uma mensagem.
echo "Acesso negado. A senha não confere!";
// Ou é dar um alert pro usuário:
echo "<SCRIPT LANGUAGE='JAVASCRIPT'>";
echo "alert('Acesso negado, a senha não confere');";
echo "window.location.replace('index.php');";
echo "";
}
// USUÁRIO INFORMADO NÃO EXISTE:
} else {
// Exibindo uma mensagem.
echo "Este usuário não está cadastrado";
// Ou alertando o usuário:
echo "<script LANGUAGE='JAVASCRIPT'>";
echo "alert('Este usuário não esta cadastrado');";
echo "window.location.replace('index.php');";
echo "</script>";
}
// Fechando a conexão
mysql_close($db);
?>
06.10.11 às 23:46 por Jonas

Aspire One é um Netbook da Acer de grande sucesso.
Baixe aqui o manual de serviço, pois nunca se sabe quando você vai precisar abri-lo
Opções de Download:
04.10.11 às 13:56 por Jonas

Mais uma implementação de segurança fácil de habilitar no WordPress.
Caso queira evitar que usuários de determinado perfil não tenha acesso ao Painel de Controle, ou ainda, permitir acesso ao Painel de Controle somente a partir de um IP, ideal quando se quer amarrar que as publicações sempre ocorram dentro de seu ambiente de Intranet.
Existe diversas maneiras de fazer isso, seja com código PHP ou por meio de plugins, vejamos:
1. Restringir o acceso ao wp-admin com plugins:
Embora existam muitos plugins para esta finalidade, o que oferece mais possibilidade customização é o WP-Secure, que permite limitar o acesso ao Painel de Controle tanto por IP ou por determinado usuário. Muito bom.
2. Restringir o acceso ao wp-admin por IP:
Para este método, precisaremos editar/criar o arquivo .htaccess.
a. Encontre o arquivo .htaccess na raiz de seu site, utilizando um cliente de FTP, caso não exista este arquivo, você pode criar o mesmo, e inserir o seguinte conteúdo:
Order Deny, Allow Deny from all Allow from xx.xx.xx.xx Allow from xx.xx.xx.xx
Onde xx.xx.xx.xx é o IP que pode acessar. Caso não saiba teu IP, pode utilizar este link.
Ainda não terminamos.
b. Agora vá até a pasta wp-admin de sua instalação WordPress e crie um outro .htaccess, e em seu interior, coloque essas linhas:
Order Deny,Allow Deny from all Allow from xx.xx.xx.xx Allow from xx.xx.xx.xx
Novamente, o xx.xx.xx.xx representa o IP autorizado a acessar o Painel de Controle.
3. Restringir o acesso ao wp-admin por código PHP.
Esta é outra forma simples de conseguir os mesmos resultados, sem utilizar .htaccess ou plugins.
Edite o arquivo functions.php de seu tema, caso não tenha este arquivo, basta criar e colocar dentro da pasta de seu tema.
< ?php
function restringir_login(){
global $current_user;
get_currentuserinfo();
if ($current_user->user_level < 4) { //se não é admin, não entra.
wp_redirect( get_bloginfo(‘url’) );
exit;
}
}
add_action(‘admin_init’, ‘restringir_login’, 1);
?>
Com este exemplo, todo usuário que não seja Administrador não poderá acessar o Painel de Controle, fácil assim.
Fontes e maiores informações:
29.09.11 às 00:57 por Jonas
Certamente muitos gostariam de usar aplicações para Android, porém pode ser que não tenham um dispositivo móvel com este S.O. Bem, agora já é possível rodar esses APP’s diretamente do Windows.
YouWave é um programa gratuito para Windows (trial 4 dias, depois tem que pagar U$ 14.00 ou ir atrás de uma versão “genérica”), que permite executar qualquer aplicação criada para Android. Uma vez instalado, ele simula um telefone com Android e permite acessar o Android Market para baixar qualquer aplicativo disponível. Com isso é possível provar apps sem a necessidade de instalar diretamente no dispositivo.
Veja o vídeo abaixo para entender melhor como funciona:

Link: YouWave
Download:
29.09.11 às 00:13 por Jonas
Howto: Script Shel para eliminar as regras do Firewall Iptable local.
É algo útil para economizar tempo, sem a necessidade de ter que digitar cada linha na console, toda vezes que se deseja limpar as regras.
Sistema Operacional: Debian e derivados.
Dentro do diretório /scripts cremos um arquivo chamado limpa_iptables.sh com o seguinte conteúdo:
#!/bin/sh echo "Limpando todas as regras e liberando todo o tráfego..." /sbin/iptables -P INPUT ACCEPT /sbin/iptables -P FORWARD ACCEPT /sbin/iptables -P OUTPUT ACCEPT /sbin/iptables -F /sbin/iptables -X /sbin/iptables -t nat -F /sbin/iptables -t nat -X /sbin/iptables -t mangle -F /sbin/iptables -t mangle -X /sbin/iptables -L -n
Agora é só tornar o script executável e pronto, já poderemos rapidamente dar um flush nas regras de iptable, com apenas um comando:
root@srv:~# chmod +x /scripts/limpa_iptables.sh root@srv:~# ./scripts/limpa_iptables.sh Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination
27.09.11 às 14:57 por Jonas
Essa é bem velha, mas vou deixar aqui para eu não esquecer mesmo.
Para você conseguir personalizar a formatação do CNPJ ou CPF você utilizar a formatação de células com números personalizados. Esta formatação completará com zeros à equerda, isso é importante para o caso de CPF e/ou CNPJ que começam com zero, e quando você converte o valor para numérico esse zero a esquerda desaparece. Visualmente aparecerá com pontos e zeros, mas o valor da célula será o número digitado.
Ex: CPF: 555.555.555-55 -> Valor da célula será 55555555555
COMO FAZER:
1-) Clique na célula ou coluna onde deseja inserir a formatação.
2-) Selecione FORMATAR – CÉLULAS
3-) Selecione NÚMERO
4-) Selecione PERSONALIZADO
5-) Na caixa de texto “TIPO” digite:
p/ CPF: 000″.”000″.”000″-”00
p/ CNPJ: 00″.”000″.”000″/”0000″-”00
29.08.11 às 10:26 por Jonas
Uma das novidades mais legais da versão 3.0 do WordPress é a possibilidade de criar formulários de entrada de dados com campos personalizados. É uma funcionalidade que tem muito a crescer, pois com este recurso pode-se transformar o WordPress em praticamente qualquer coisa que imaginar.
Pois bem, provavelmente você esta ansioso para começar a criar suas entradas de dados personalizados, e para “floriar” um pouco, você pode conferir esta lista com nada menos de 3.000 ícones.
Caso não se lembre do procedimento para utilizar ícones para seus formulários personalizados, aqui tem o código, mais abaixo um vídeo explicativo, para que não tenha mais dúvida.
< ?php
add_action( 'admin_head', 'cpt_icons' );
function cpt_icons() {
?>
<style type="text/css" media="screen">
#menu-posts-POSTTYPE .wp-menu-image {
background: url(< ?php bloginfo('template_url') ?>/images/TUICONO.png) no-repeat 6px -17px !important;
}
#menu-posts-POSTTYPE:hover .wp-menu-image, #menu-posts-POSTTYPE.wp-has-current-submenu .wp-menu-image {
background-position:6px 7px!important;
}
</style>
< ?php } ?>