Eloquent Ruby

Olá pessoal, estou enfim retomando os trabalhos aqui no blog.

Atualmente, estou lendo o ótimo livro Eloquent Ruby do Russ Olsen (mesmo escritor do Design Patterns em Ruby). Somente pelo prefácio do livro, já dá para perceber uma grande utilidade no meu dia-a-dia como desenvolvedor Ruby on Rails.

Para ir seguindo o passo-a-passo do livro e ir fixando os pontos chaves levantados pelo autor em cada capítulo, decidi ir fazendo um resumão (estilo cheat-sheets), que acho que pode ser legal a outros interessados no assunto, mas que talvez não tenham oportunidade / tempo de ler o livro. Para isto, criei um gist na minha conta do github, que pretendo ir atualizando a cada novo capítulo lido do livro.

Espero que seja de valia a todos.

A seguir, as considerações do primeiro capítulo.

[ ]‘s

Ruby Eloquent Highlights


Restaurando arquivo backup via T-SQL no SQL Server 2005

Pela primeira vez tive a oportunidade de trabalhar com o SGBD SQL Server 2005 da Microsoft. Necessitava recuperar uma base de dados através de um arquivo de backup que me foi enviado. Muitos tutoriais e dicas encontram-se em uma breve busca na Internet, porém, encontrei dificuldade em achar algum material que correspondesse a solução desse meu caso em específico, inclusive na própria documentação do SQL Server disponibilizada na home do projeto pela Microsoft. Este tutorial serve tanto para recuperar dados de um backup gerado a partir do SQL Server 2000 e 2005.

A Linguaguem Transact-SQL (T-SQL)

A linguagem T-SQL foi desenvolvida pela Microsoft para trabalhar com base de dados do SQL Server. Baseada no padrão SQL-92 (padrão mais utilizado entre os SGBD’s), a linguagem Transact SQL adiciona alguns atributos (ou funcionalidades) que a tornam exclusiva ao SQL Server. Por exemplo, a cláusula TOP em um comando SELECT só existe no Transact-SQL. Se você pegar a instrução a seguir e executá-la no MySQL por exemplo, verá que esta irá gerar um erro de execução.

SELECT TOP 10 * FROM <tabela>

Isto acontece porque a cláusula TOP só existe na linguagem Transact-SQL, que é exclusiva do SQL Server. A instrução correspondente para o MySQL seria:

SELECT *  FROM <tabela> LIMIT 10

Você utiliza das querys do T-SQL para criar, alterar e excluir objetos, bem como para inserir ou consultar dados em um banco de dados SQL Server. Por exemplo, quando necessita-se escrever uma procedure no SQL Server, você pode utilizar dos comandos CREATE TABLE, CREATE VIEW, CREATE PROCEDURE ou ainda manipular dados das tabelas através das diretivas INSERT, SELECT, DELETE e UPDATE.

Além disto, o  SQL Server 2005 traz algumas inovações à linguagem Transact SQL. Dentre estas inovações, destacam-se as melhorias em queries para execução de procedures, triggers e funções e inserção de novas cláusulas que permitem a utilização de variáveis e expressões numéricas juntamente com as instruções INSERT, SELECT, UPDATE e DELETE.

Restaurando backup via T-SQL

Utilizando-se portanto da linguagem T-SQL, vamos gerar um script para recuperação de uma base de dados a partir de um arquivo de backup. Neste exemplo, utilizaremos da ferramenta SQL Server Management Studio, um ambiente integrado que permite aos desenvolvedores acessar, configurar, gerenciar, desenvolver e administrar os components do SQL Server 2005 através de uma interface gráfica. (Maiores informações em: http://msdn.microsoft.com/pt-br/express/aa718378.aspx).

Primeiramente, no Management Studio, selecione a opção New Query. A seguir, digite o seguinte comando para restaurar os arquivos lógicos do arquivo .bak.

RESTORE FILELISTONLY FROM DISK = ‘E:\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\teste.bak

Clique em Execute para rodar o script. Após isto, você deverá recuperar os arquivos referentes aos dados lógicos e de log (.mdf e .ldf) do arquivo (algo que se assemelha com a figura a seguir).

De posse do nome dos arquivos lógicos, podemos agora efetuar o restore do backup propriamente. Primeiramente, crie uma nova consulta e digite o seguinte comando:

RESTORE DATABASE teste_1
FROM DISK = ‘
E:\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\teste.bak
WITH MOVE
‘teste’ TO ‘E:\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\teste.mdfMOVE ‘teste_log’                      TO ‘E:\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\teste_log.ldf

Clicando novamente em Execute para rodar o script, deverá aparecer logo abaixo no console uma mensagem de confirmação da recuperação dos dados do arquivo de backup, como mostra a figura a seguir.

Pronto, sua base de dados foi devidamente recuperada. Após isto, dando um refresh no Objetct Explorer, podemos observar a inserção de nossa nova base de dados (circulado em vermelho na figura à seguir).

Referências:

SQL Server 2005 – Restaurando um backup via T-SQL


Backup Automático do PostgreSQL no Windows XP

Um tópico de suma importância na implantação de sistemas é como manter um backup da base de dados destes sistemas. No caso da plataforma Linux, esta tarefa pode ser facilmente realizada através do cron. Já no caso do Windows, esta tarefa depende da configuração de um arquivo do sistema (*.bat) com a rotina para execução da exportação do banco, juntamente com o Agendador de Tarefas do Windows, para garantir a automatização do processo.

Neste post, iremos descrever o passo a passo desde a configuração da rotina de backup até a forma de como criar um evento agendado no Windows para realizar o backup automático.

Configuração da rotina de backup

Vamos primeiramente configurar o arquivo *.bat que será responsável por rodar nossa rotina.

Antes de mais nada, crie uma pasta de backup para salvar o arquivo. Depois, crie o arquivo .bat dentro da raiz do diretório C: que deve conter a seguinte rotina:

#——————————————————-

@echo off

SET PGUSER=postgres
SET PGPASSWORD=postgres

C:
chdir C:\backup

del banco*.sql

echo “Aguarde, realizando o backup do Banco de Dados”

for /f “tokens=1,2,3,4 delims=/ ” %%a in (‘DATE /T’) do set Date=%%b-%%c-%%d

C:\Arquiv~1\Postgr~1\8.2\bin\pg_dump.exe -i -b -f “C:\backup\banco%Date%.sql” -h localhost -p 5432 -U postgres backup

exit

echo.

#———————————————–

Rapidamente explicando a rotina, temos primeiramente que definir o usuário e senha do banco de dados para realizar a conexão com o PostgreSQL. Isto é implementado pelos comandos SET PGUSER e SETPGPASSWORD.

Posteriormente, devemos nos posicionar para a raiz do disco para realizamos nosso próximo passo: selecionar a pasta onde será realizado o backup (no caso do exemplo acima, criamos uma pasta dentro do diretório C: chamada Backup). Este passo é realizado pelo comando chdir C:\Backup.

No caso desta rotina, iremos deletar o backup gerado no dia anterior (caso ele exista) através do comando del banco*.sql (existe também a possibilidade de você realizar o backup em dias alternados).

Já realizado todo o passo prepatório, vamos agora trabalhar propriamente com a geração de nosso backup. Primeiro, realizamos um pequeno loop responsável por guardar o dia para adicionarmos na nomeclatura de nosso arquivo.

for /f “tokens=1,2,3,4 delims=/ ” %%a in (‘DATE /T’) do set Date=%%b-%%c-%%d

Para finalmente chamarmos o comando pg_dump do PostgreSQL para realizar o export da base de dados desejada, como mostrado a seguir:

C:\Arquiv~1\Postgr~1\8.2\bin\pg_dump.exe -i -b -f “C:\backup\banco%Date%.sql” -h localhost -p 5432 -U postgres backup

Como vemos acima, devemos passar o caminho completo para execução do pg_dump. De resto, temos os parametros normais para execução do comando.

Pronto, nossa rotina está pronta. Vamos agora configurar o ambiente do Windows para agendar o backup diariamente através do Agendador de Tarefas do Windows.

Automatizando o backup com o Agendador de Tarefas do Windows

Para acessar o Agendador de Tarefas do Windows, siga os passos:  Iniciar->Programas->Acessórios->Ferramentas do Sistema->Agendador de Tarefas.

Clique no ícone Adicionar Nova Tarefa. No menu do Wizard, clique no botão Procurar e selecione o arquivo .bat referente a seu backup e defina a periodicidade da tarefa (diário, semanal,  mensal, etc.) e clique em Avançar e OK.

Pronto, nosso backup já está devidamente configurado e pronto pra rodar conforme agendado.

Referências

Guia de Referências – PostgreSQL Brasil


Utilizando Controle de Versão em Projetos Java com SVN no Eclipse

Há muito tempo tenho trabalho com o Eclipse juntamente com SVN em meus projetos profissionais e recentemente resolvi fazer o mesmo com meus projetos pessoais. O controle de versão proporcionado pelo SVN é de suma importância para qualquer projeto de um desenvolvedor que preze pela qualidade de seu serviço e principalmente por segurança.

Manter um repositório contendo os fontes de seus projetos é uma medida de extrema inteligência, pois além de manter um “backup” de seus projetos, ainda provê a possibilidade do compartilhamento do projeto com outros desenvolvedores de sua equipe e evita perdas significativas em caso de mergir informações diferentes em um mesmo fonte. Sem falar na mobilidade de possuir acesso a suas informações em qualquer computador que contenha uma conexão a Internet.

O Google entrou neste mercado há algum tempo, com a dispobilização do serviço de hospedagem de projetos do Google Code, um servidor SVN público para compartilhamento de projetos. Diversos projetos de open source colaborativos possuem um repositório de seu projeto no Google Code para qualquer um que queira ter acesso aos fontes, baixá-los e alterá-los como bem entender. Claro que respeitando as licensas de uso, que são predefinidas pelo autor para cada projeto postado no servidor.

Neste post iremos dar um pequeno tutorial passo-a-passo para que você possa compartilhar seus projetos com toda a comunidade de desenvolvedores.

Configurando sua conta no Google Code

Assim como todas as ferramentas do Google, o acesso ao Google Code (http://code.google.com) é realizado através dos dados de sua conta Google (seja no Gmail, Orkut, etc.). Faça o login e acesse a opção Project Hosting.

Postriormente, você pode escolher a opção Search Open Source Projects e buscar por projetos open source no servidor em diversas linguagens de programação diferentes, ou criar o compartilhamento de seus projetos. Para isto, clique no link Create a New Project.

O próximo passo é definir os dados de seu projeto (título do projeto, descrição, escolher o tipo do controle de versão (no nosso caso escolha a opção do SVN), o tipo da licensa para seu projeto (pré-definidas pelo próprio Google para facilitar o trabalho), a licensa para a documentação do projeto (Creative Communs) e definir tags para facilitar a busca do Google para o seu projeto). Após tudo devidamente preenchido, devemos clicar no botão Create Project.

Pronto, nosso repositório está devidamente criado. Agora vamos para a opção da configuração do Eclipse para acessar o repositório através do Subversion. Clicando na opção Source, temos as determinações do Google para configuração. Primeiramente, devemos definir uma senha mestra para acessar o servidor. Esta senha não é a mesma de sua conta Google e deve ser muito bem guardada para seus acessos a seus projetos. Para geração da senha, clique no link googlecode.com password

Após isto, estamos preparados para o próximo passo: configurar o SVN no Eclipse e finalmente compartilhar um projeto através do SVN.

Configurando o SVN no Eclipse

Partiremos neste tópico do princípio que você não possua o SVN previamente configurado em seu Eclipse.  Primeiramente, vá ao site do desenvolvedor do Plugin do SubVersion para o Eclipse (http://subclipse.tigris.org) e faça o download. Agora verifique o diretório raiz de instalação do Eclipse. Dentro deste diretório, faça a extração do arquivo .zip. Agora, abra seu Eclipse e no menu Window escolha a opção Open Perspective -> SVN.

Você será redirecionado para uma nova tela (como a que vemos abaixo).

Na aba do SVN Repository a esquerda da tela, clique com o botão direito do mouse e selecione a opção New -> Repository Location.

Voce deverá inserir no campo URL o endereço do seu repositório. Para obter tal endereço, volte ao Google Code e na aba Source, você terá o endereço correto, no formato https (utilizado para priorizar a criptografização dos dados).

De posse do endereço, copie no Eclipse e clique em Finish.

Após este passo, o Eclipse irá configurar o endereço de seu repositório para você automaticamente. Para isto, será necessário você confirmar seu usuário e senha do google code.

Pronto, nosso repositório já está devidamente configurado no Eclipse. agora, podemos partir para o passo final: compartilhar nosso projeto dentro deste repositório através da IDE.

Compartilhando um projeto Java do Eclipse

Para este passo final, devemos voltar a perspectiva do Java dentro do Eclipse. Selecione o projeto desejado no package explorer (ou crie um novo projeto). Clique sobre o projeto com o botão direito e vá até a opção Team-> Share Project.

Após este passo, devemos selecionar qual o repositório que queremos compartilhar nosso projeto. Selecione o check Use existing repository location e selecione o repositório desejado na lista que aparece e clique em Next.

Na próxima tela, selecione o nome da pasta que deverá aparecer dentro do repositório e clique em Finish para finalizar o compartilhamento.

Novamente será necessário confirmar seu usuário e senha da conta do google code (algumas vezes). O processo de compartilhamento do projeto deve demorar alguns minutos. Após isto, você deverá selecionar quais pastas de seu projeto voce gostaria de compartilhar dentro do repositório (como vemos a seguir).

Após uma nova confirmação de seu usuário e senha da conta do google code, os arquivos selecionados posteriormente serão compartilhados para dentro de seu repositório.

Pronto! Já temos nosso respositório criado e o projeto do Eclipse compartilhado dentro deste. Para atualizar seu projeto e dar commit (atualizar o projeto para a versão local de seu projeto mais recente), acesse a opção Team quando voce clicar com o botão direito sobre seu projeto no package explorer. Lá, você tem várias opções como reverter seu projeto local para a última versãodo projeto dentro do repositório e sincronizar seu projeto local com a versão mais recente do repositório.


Seguir

Obtenha todo post novo entregue na sua caixa de entrada.