terça-feira, 22 de junho de 2010

Google libera ferramenta de linha de comando para seus serviços

O Google liberou uma ferramenta que permite a programadores e usuários avançados terem acesso a uma grande variedade de serviços da empresa através da linha de comando do Linux.

Chamado de GoogleCL (Google Command Line), o projeto de código aberto é todo feito em Python e permite que usuários utilizem as bibliotecas gdata do Python (Google Data Python Client Library) para se conectarem aos serviços online disponibilizados pelo Google.

Por enquanto, os serviços suportados pela aplicação são Blogger, Calendar, Docs, Contacts, YouTube e Picasa.

Para auxiliar os usuários, o Google postou alguns scripts de exemplo, que demonstram como criar um novo post no Blogger, uma entrada no Calendar ou Contact, e o upload de um video para o YouTube.

O GoogleCL está hospedado no Portal Google Code e liberado sob a Apache License 2.0.

O Google também disponibilizou um manual para ajudar no uso da ferramenta. A empresa conta com o feddback dos usuários para melhorar o projeto.

Fonte: iMasters

quarta-feira, 2 de junho de 2010

Como converter MySQL para MongoDB

Baixe o MongoDB e instale-o 

Essa interface enviará, via POST, as variáveis de conexão com o banco de dados MySQL. Vamos começar criando/recebendo as variáveis de conexão com o banco de dados MySQL.

$host = isset($_REQUEST['host_mysql']) ? $_REQUEST['host_mysql'] : "localhost";
$user = isset($_REQUEST['user_mysql']) ? $_REQUEST['user_mysql'] : "usuario";
$pass = isset($_REQUEST['pass_mysql']) ? $_REQUEST['pass_mysql'] : "senha";
$db   = isset($_REQUEST['db_mysql']) ? $_REQUEST['db_mysql'] : "teste_latin";
 
Agora é hora de criar a conexão com o MongoDB utilizando uma extensão instalada no php: http://github.com/downloads/mongodb/mongo-php-driver/mongo-1.0.6-r1-php5.3vc6ts.zip

try{
    $conexao = new Mongo(); //abre conexão com o MongoDB
    $db_mongo = $conexao->$db; //cria a database com o mesmo nome do MySQL
}
catch(MongoConnectionException $e){
    die("

Erro do banco de dados MONGODB - Inicie o servidor do MongoDD!

Dica: Entre no prompt do windows         cd \         cd mongodb         cd bin         mongod "
); } 
 
Caso o seu MongoDB não esteja rodando, o script indicará o erro e mostrará a forma como iniciar seu MongoDB no Windows.
Para conseguirmos pegar o nome de todas as tabelas da nossa database no MySQL utilizamos a seguinte query:

$query_pega_tabelas= "SHOW TABLES"; 
 
O nome do
nosso campo contendo as tabelas será: 
 
$index_tabelas= "Tables_in_".$db; //nome do array com o valor do nome das tabelas via SHOW TABLES 
 
A variável $db será o nome da nossa database no MySQL.
Após pegarmos os nomes das nossas tabelas, é hora de irmos de uma a uma pegando seus dados e inserindo-os. Não será necessário pegar os metadados (nome, tipo) dos campos, pois o MongoDB não necessita dessas informações.

if($result_pega_tabelas=mysql_query($query_pega_tabelas)){    
            while($arr_pega_tabelas[] = mysql_fetch_assoc($result_pega_tabelas)){
                if(is_array($v)){
                    foreach($v as $a => $b){
                       echo "

Tabela: ".$b."

"
;                        $nome_tabela = $b;                                                $query = 'select * from '.$nome_tabela; 
 
Geramos uma collection para cada
tabela existente no MySQL. 
$collection = $db_mongo->$nome_tabela; 
 
Neste momento estamos rodando linha
por linha da nossa tabela, pegando seus dados.  

$rs_select = mysql_query($query); 
echo "

Inserindo em ".$nome_tabela."

"
; while($arr_dados = mysql_fetch_assoc($rs_select)){ foreach($arr_dados as $c => $v){ 
 
Precisamos codificar nossos valores,
assim como os campos, em utf8. Se o banco
já estiver em utf8, não será necessária
a conversão. Para fazer essa conversão, criei
um pequena função utilizando iconv. Para
converter, meu banco está codificado em latin1, que no caso
será repassado como iso-8859-1. Essa função vai ao final de script. 
function utf8_encode_suissa($s) {
return iconv('iso-8859-1', 'utf-8', $s);
} 
 
Após a conversão para utf8,
inserimos o objeto codificado na nossa collection, que terá o mesmo
nome que a tabela correspondente no MySQL. 
$obj[utf8_encode_suissa($c)] = utf8_encode_suissa($v); //converto para UTF-8 pois o MongoDB é UTF-8

                           }

                       $collection->insert($obj); //aqui inserimos o OBJ codificado em utf-8 no MongoDB

                       }//fim while

                    }//fim foreach

                }//fim if array

            }//fim while

        }//fim if      
 
 Ao término
do script, você poderá entrar no phpMoAdmin,
ferramenta para manipular as bases e as collections do MongoDB, e ver
na lista das databases sua nova base criada. 
 
O scrip 
completo com a interface para inserir os dados se encontra em http://www.nosqlbr.com.br/conversor_mysql_mongodb.zip


Adendo: Instalação MongoDB

Instalar o MongDB pode ser um pouco trabalhoso. Veja abaixo um pequeno tutorial. Se depois você ainda tiver dificuldade, basta procurar em algum fórum, como o NoSQL.com.br, que você encontrará mais ajuda.
  1. Baixe o MongoDB (versão 32 bits ou versão 64 bits)
  2. Cria as duas pastas:
    c:/mongodb
    c:/data/db
  3. Extraia todos os arquivos para a pasta mongodb
  4. Abra o prompt de comando e vá até a a pasta c:/mongodb/bin. Dentro dela, dê o comando mongod (isso mesmo, com o d no final)
Pronto, seu servidor está rodando. Para verificar se está tudo correto, acesse a página do mongodb em http://localhost:27017.
Para unir o MongoDB com o PHP é necessário instalar as DLLs do driver PHP. Para isso usaremos o WAMP.
  1. Baixe o drive do PHP (O WAMP usa o php 5.3 vc6 ts) (add link http://github.com/downloads/mongodb/mongo-php-driver/mongo-1.0.6-r1-php5.3vc6ts.zip).
  2. Extraia a dll do MongoDB para a pasta do PHP, no WAMP instalado na minha máquina está em : C:\wamp\bin\php\php5.3.1\ext
  3. Feche o WAMP e abra-o novamente, vá em PHP > PHP extensions e habilite a extensão  php_mongo.dll .
  4. Feche e abra o WAMP novamente.
Pronto, já é pra tudo funcionar.
Se desejar utilizar o phpmoadmin, faça o download (http://www.phpmoadmin.com) e o coloque na pasta do apache.
 
 
 Fonte : iMasters
 

 
 

Gerenciamento de infraestrutura de TI: sem segredos

Empresas de todos os portes têm contratempos no gerenciamento de infraestruturas de TI: servidores lentos, ataques de vírus, softwares ilegais etc. Mas como para tudo tem uma solução, listo alguns dos problemas mais comuns e como solucioná-los. Por meio do uso de softwares de gerenciamento remoto, problemas são resolvidos num piscar de olhos.

1. "Perco muito tempo gerenciando as máquinas"
Problema: Ir de máquina em máquina é ineficiente. Uma aproximação proativa e preventiva aumenta a eficiência, a performance e a disponibilidade.
Solução: Com os softwares de gerenciamento, eliminam-se problemas antes que eles aconteçam, assegurando que todos os sistemas sejam atualizados regularmente.

2. "Não tenho idéia do que é instalado nas minhas máquinas"
Problema: Isso expõe a organização a sérios riscos. Softwares sem licença geram processos, e multas prejudicam a segurança e a performance da rede e propiciam ataques de vírus.
Solução: Alguns softwares de gerenciamento auditam automaticamente a infraestrutura de TI. Com eles, você sabe o que está sendo usado, o que não é usado, o que é seguro e o que é vulnerável, pode desinstalar componentes ilegais e atualizar os legítimos.

3. "Fazer mais com menos é possível?"
Problema: Alguns dizem que não, outros que é um mito. Mas não há dúvida quanto à pressão sentida para a redução de custos ao mesmo tempo em que as responsabilidades aumentam.
Solução: Sozinhos, os softwares de gerenciamentos melhoram a eficiência, a performance e reduzem riscos.

4. "Tenho que dizer aos usuários para irem tomar café enquanto trabalho no computador deles"
Problema: Tempo é dinheiro, e o tempo que leva para auditar o computador de um usuário é dinheiro que a companhia perde. Mas não há nada que você possa fazer. Duas pessoas não podem usar um computador ao mesmo tempo, podem?
Solução: Com os softwares de gerenciamento elas podem. A manutenção é feita remotamente, ao mesmo tempo em que o usuário trabalha no computador.

5. "Não posso deixar os novos funcionários sem computador para trabalhar"
Problema: Novos contratados precisam de um computador, nome de usuário, e-mail e acesso aos aplicativos necessários ao trabalho.
Solução: Os softwares de gerenciamento criam perfis de pré-usuários para usá-los para novos usuários, assegurando que eles tenham acesso às ferramentas e informações necessárias desde o primeiro dia de trabalho.

6. "Eles amam TI e estão no lugar certo"
Problema: Todo cara que gosta de TI e estuda Ciência da Computação acha que pode conduzir seus backups, instalar patches, atualizar softwares e passar o antivírus. Pare, por favor. Manutenção de TI é um negócio sério.
Solução: Com os softwares de gerenciamento, o administrador monitora, faz backup, bloqueia downloads ilegais, protege os sistemas e padroniza a manutenção de toda a rede remotamente.

7. "Segurança remota e backup são problemas"
Problema: Usuários estão cada vez mais espalhados pelo mundo, assim como infraestruturas de TI. Estações de trabalho remotas, servidores e dispositivos móveis precisam de backup e de segurança.
Solução: Como a arquitetura distribuída é muito vulnerável, os softwares de gerenciamento centralizam a manutenção da proteção de dados e estratégias de segurança, realizando backups segundo a demanda ou automaticamente.

8. "Meu chefe não entende nada de TI"
Problema: Os tomadores de decisão nem sempre entendem TI, o que leva a desentendimentos e perda de oportunidades. Por isso o trabalho do time deve ser sempre reportado detalhadamente.
Solução: Os softwares produzem relatórios a qualquer momento. Fáceis de serem lidos, eles informam sobre a situação atual, as necessidades futuras e a importância de TI aos negócios.

Alguns dados que comprovam os pontos levantados:

* Mais de 40% do tempo despendido na busca da resolução de problemas são gastos na análise, e não na resolução. (IDC)
* 75% de um orçamento típico de TI são gastos em problemas de simples gerenciamento. (Forrester)
* 75% de todos os PCs corporativos são infectados com algum tipo de malware. (Enterprise Networks & Servers)


Gerenciar infraestruturas de TI não tem que ser um trabalho ingrato que requeira horas extras. Adotar softwares de gerenciamento remoto permite às empresas gerenciar os ativos de TI de maneira rápida e eficiente, aumentando a produtividade e a receita anual.

Fonte: iMasters