h1

Padrões de Projeto: Implementação de um Singleton em Java

24/11/2009

Padrões de Projetos – Introdução

Padrões de Projeto (Design Patterns) são soluções para problemas comuns encontrados no design de softwares orientados à objetos.

Livro Design Patterns: Elements of Reusable Object-Oriented Software

Livro Design Patterns: Elements of Reusable Object-Oriented Software

Existem vários livros à respeito do assunto entre os quais, destaca-se, o “Design Patterns: Elements of Reusable Object-Oriented Software“, livro lançado em 1995 cujos autores são de Erich Gamma, Richard Helm, Ralph Johnson e John Vlissides. Este livro descreve cada problema comumente encontrado durante o design de softwares, descreve a solução (padrão de projeto) para o  problema, indica quando esta solução deve ser utilizada e quais as consequências do seu uso. A leitura dos originais, em inglês, é tarefa obrigatória para estudantes de Ciência da Computação e todos aqueles que visem ser bons desenvolvimento de software.
Neste post vamos exemplificar o padrão Singleton, e possíveis implementações do mesmo em linguagem Java.

O Padrão de Projeto Singleton

O padrão Singleton deve ser utilizado quando desejarmos que exista apenas uma instância para uma classe específica. Isto significa que todos os outros objetos do sistema irão utilizar a mesma instância da classe, disponível em um ponto de acesso conhecido, sempre que necessitarem chamar algum de seus métodos.

Implementação de um Singleton em Java

A implementação tradicional de uma classe Singleton em linguagem Java é feita mantendo-se uma variável estática referenciando a única instância da classe, bem como definindo-se o construtor desta classe como sendo privado para impedir que outros objetos criem outras instâncias da mesma. Um exemplo de implementação:

public class Singleton {

   // única instância da classe
   private static final Singleton INSTANCIA = new Singleton();

   // construtor privado evita a instanciação por outros objetos
   private Singleton() {}

   // retorna a única instância da classe
   public static Singleton getInstancia() {
      return INSTANCIA;
   }

   // outros métodos podem ser declarados normalmente
   public void meuMetodo(String paramentro) {
      return;
   }
}

Esta é uma implementação tradicional completa de um Singleton em Java, para realizar chamadas à métodos contidos em uma classe Singleton implementada desta maneira, basta utilizar a forma:

Singleton.getInstancia().meuMetodo(meuParametro);

Apesar de ser bastante funcional e ser, inclusive, thread-safe (ou seja, ser de uso seguro em programas concorrentes, onde tentativas de acesso ao seu Singleton podem ser feitas simultâneamente por várias threads ao mesmo tempo) esta implementação tradicional sofre de um problema de desempenho: uma vez que sua variável de instância é estática, uma chamada ao construtor da classe será efetuada logo no início da executação do seu aplicativo. Isto significa que você terá este objeto carregado na memória desde o início da execução do seu programa, mesmo que uma chamada ao método getInstancia() só ocorra muito tarde ou, até mesmo, caso esta chamada nunca ocorra.

Implementação de um Singleton em Java – Solução de Bill Pugh

Para resolver este problema, um pesquisador da Universidade de Maryland, Bill Pugh, propôs uma nova implementação padrão para um Singleton em Java, a implementação de Bill implementa uma solução Lazy loading para o problema do Singleton em Java, ou seja, uma solução que adia, o quanto for possível, a alocação de recursos para o objeto que instância a sua classe Singleton. Na prática, usando esta implementação, o objeto da nossa classe só será carregado na memória na primeira chamada ao método getInstancia() ou no primeiro acesso à constante que guarda a referencia da instância da classe. Veja abaixo a solução de Bill Pugh:

public class Singleton {
   // construtor privado evita a instanciação por outros objetos
   private Singleton() {}

   /**
    * SingletonHolder é carregado na primeira chamada ao método Singleton.getInstance()
    * ou no primeiro acesso ao campo SingletonHolder.INSTANCIA
    */
   private static class SingletonHolder {
      private static final Singleton INSTANCIA = new Singleton();
   }

   // retorna a única instância da classe
   public static Singleton getInstance() {
      return SingletonHolder.INSTANCIA;
   }

   // outros métodos podem ser declarados normalmente
   public void meuMetodo(String paramentro) {
      return;
   }
}

Isto evita que seu objeto seja carregado na memória desnecessariamente. A chamada aos seus métodos aqui pode ser feita da mesma maneira do exemplo anterior.

Conclusões

O padrão de projeto Singleton é um dos mais utilizados e mais conhecidos na indústria de software atualmente. Tanta visibilidade acabou por revelar alguns aspectos negativos do seu uso, listamos os três principais à seguir, cabe ao desenvolvedor avaliar se o seu uso será benéfico no sistema:

1- Este padrão dificulta o teste de unidade (unit test) por introduzir um estado global ao sistema.
2- Alguns adeptos da técnica de injeção de dependências consideram o Singleton um anti-padrão, principalmente pelo uso de métodos privados e estáticos.
3- A segurança de um método Singleton em garantir uma única instância para a classe pode ser facilmente quebrada lançando-se mão da API de reflexão (Reflection) da linguagem Java.

É isso, em breve novos posts à respeito de Design Patterns.

h1

Instalando e Configurando o PostgreSQL no Ubuntu Linux

24/11/2009

PostgreSQL

Logo do PostgreSQL O PostgreSQL é um Sistema Gerenciador de Bancos de Dados Objeto Relacional (SGBD ou SGBDOR) gratuito e de código-fonte aberto que é considerado por muitos o mais avançado SGBD de código-fonte aberto existente na atualidade. Neste post, veremos como instalar e configurar o servidor PostgreSQL e também como instalar e configurar as ferramentas de administração de bancos de dados phpPgAdmin e pgAdmin (pdAdmin3) que podem ser utilizados para acessar um servidor rodando na sua máquina local ou em qualquer outra máquina na sua rede (ou na internet). Em nosso exemplo usaremos um sistema Ubuntu Linux (ou, para ser mais específico, um Kubuntu 9.10), mas os mesmos princípios podem ser utilizadas para a configuração de uma instalação do PostgreSQL em outras distribuições Linux e até mesmo em outros sistemas operacionais.

Instalação e Configuração do PostgreSQL

A maneira mais fácil de se instalar o PostgreSQL no Ubuntu, ou qualquer outra distribuição baseada no Debian, é através dos repositórios de pacotes. Para isso, você pode usar o seu gerenciador de pacotes gráfico (tal como o Adept ou o Synaptic) ou usar o apt-get na linha de comando:
usuario@notebook:~$ sudo apt-get install postgresql

Serão baixados da internet os pacotes necessários e suas dependências e, em pouco tempo, você já terá a última versão do PostgreSQL (atualmente, versão 8.4) instalada em sua máquina. A primeira coisa a fazer após a instalação é configurar a senha do usuário “padrão” do sistema, o usuário “postgres” que é criado com a instalação do PostgreSQL. Para isso, basta usar o cliente de linha de comando “psql” que foi instalado junto com servidor:
usuario@notebook:~$ sudo su postgres -c psql postgres
psql (8.4.1)
Digite “help” para ajuda.
postgres=# ALTER USER postgres WITH PASSWORD ‘123′;
ALTER ROLE
postgres=# \q

Observe que entre os apóstrofos, no lugar de “123″, você deve utilizar a senha que você deseja configurar. Para sair do console do psql pressione simultâneamente Ctrl+D, será ecoado “\q” na tela e você retornará ao prompt do sistema.

Se seu objetivo é apenas usar o usuário padrão do sistema para testar localmente aplicativos que se conectem ao PostgreSQL vocẽ pode parar a leitura desta sessão aqui e pular para a sessão de configuração dos clientes phpPgAdmin e pgAdmin.
Mas, se você está configurando um servidor para uma rede local, talvez seja útil fazer também as configurações que seguem.
Uma outra configuração interessante pode ser liberar o acesso ao SGBD para os usuários comuns da máquina, para isso, localize e edite como super-usuário o arquivo “pg_hba.conf” (no Ubuntu, localizado na pasta “/etc/postgresql/8.4/main” , mas isto pode variar conforme o sistema operacional ou versão do SGBD instalada na sua máquina):
usuario@notebook:~$ sudo kate /etc/postgresql/8.4/main/pg_hba.conf
No lugar do editor “kate” você pode utilizar qualquer outro de sua preferência como o “gedit” ou o “nano”.

Com o arquivo aberto, localize as linhas:
# Database administrative login by UNIX sockets
local all postgres ident sameuser

e substitua a segunda, ficando assim:
# Database administrative login by UNIX sockets
local all all trust

Isso irá liberar a administração local das bases de dados para os usuários comuns da sua máquina.

Se você deseja também liberar o acesso para conexões via rede basta substituir as seguintes linhas (no mesmo arquivo):
# IPv4 local connections:
host all all 127.0.0.1/32 md5

por:
# IPv4 local connections:
host all all 0.0.0.0/0 trust

Note que estas foram configurações bastante genéricas que você talvez precise revisar para aumentar o grau de segurança ou otimização do seu servidor.

Para que estas configurações relativas à rede tenham efeito, você precisa também alterar o arquivo “postgresql.conf”, presente na mesma pasta, para configurar seu servidor para aceitar conexões vindas da rede local. Abra este arquivo, novamente usando o “kate” ou o seu editor de texto preferido:
usuario@notebook:~$ sudo kate /etc/postgresql/8.4/main/postgresql.conf
Localize e substitua a linha:
# listen_addresses = ‘localhost’
por:
listen_addresses = ‘*’
Após alteradas estas configurações é preciso reiniciar o servidor PostgreSQL para que as novas configurações tenham efeito:
usuario@notebook:~$ sudo /etc/init.d/postgresql-8.4 restart
* Restarting PostgreSQL 8.4 database server

Note que a versão do seu servidor instalado pode ser diferente, necessitando que você altere o “8.4″ no final do comando.

Instalação e Configuração do phpPgAdmin

Tela inicial do phpPgAdmin.

Tela inicial do phpPgAdmin.

O phpPgAdmin é uma ferramenta de administração de banco de dados para a web, por ser escrito em PHP, requer um servidor de páginas web instalado localmente. Ele é bastante popular em servidores de hospedagem, permitindo aos usuários acessar e editar suas bases de dados através do navegador, sem a necessidade de instalar um software localmente. Se você não deseja ter um servidor web completo instalado na sua máquina você pode pular esta etapa e ler sobre a instalação do cliente pgAdmin à seguir. Se você é um desenvolvedor de páginas web é provável que você já tenha o Apache instalado em sua máquina para testes.
Para instalar o phpPgAdmin basta utilizar novamente o apt-get (ou o seu cliente gráfico de instalação de pacotes):
usuario@notebook:~$ sudo apt-get install phppgadmin
Ele irá instalar o phpPgAdmin e as dependências necessárias (incluindo o servidor Apache e o suporte a PHP).
Feito isso, você deve iniciar o servidor Apache:
usuario@notebook:~$ sudo /etc/init.d/apache2 start
* Starting web server apache2
apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName

Erro no phpPgAdmin: Login desabilitado.

Erro no phpPgAdmin: Login desabilitado.

Após, basta abrir o seu navegador e acessar o seu servidor local em http://localhost/phppgadmin
É possível que você receba a mensagem “Login disallowed for security reasons.” (“Login desabilitado por razões de segurança.”) ao tentar realizar login com o usuário “postgres”. Esta mensagem é exibida por uma configuração padrão do phpPgAdmin que desabilita o login de usuários administrativos. Para alterar esta configuração basta editar o arquivo “config.inc.phplocalizado no diretório de configurações do phpPgAdmin na sua máquina (no Ubuntu, o arquivo está em “/etc/phppgadmin/config.inc.php”):
usuario@notebook:~$ sudo kate /etc/phppgadmin/config.inc.php
Com o arquivo aberto, localize a linha:
$conf['extra_login_security'] = true;
e altere para:
$conf['extra_login_security'] = false;
Neste arquivo também estão disponíveis outras opções de configuração, como alterar a porta padrão na qual o PostgreSQL irá receber conexões (por padrão, a porta configurada é a 5432).
Alterações feitas, basta recarregar (F5) a página web aberta no seu navegador e fazer login com o seu usuário (ou com o usuário “postgres”).

Instalação do pgAdmin

Tela inicial do pgAdmin3.

Tela inicial do pgAdmin3.

O pgAdmin é outra opção de cliente para administrar a sua base de dados, diferente do phpPgAdmin ele é um software desktop que não necessita que um servidor web, como o Apache, esteja instalado na sua máquina. Para instalá-lo no Ubuntu usando o apt-get, digitamos:
usuario@notebook:~$ sudo apt-get install pgadmin3
Após a instalação, basta localizar o atalho do pgAdmin no menu do seu sistema ou usar o comando “pgadmin3” no terminal de comandos para abrir a interface gráfica do mesmo. Nenhuma configuração extra é necessária, basta clicar no ícone com a imagem de um “plug” na barra de ferramentas do programa para configurar a sua nova conexão.

PostgreSQL x MySQL

Aqui abrimos parênteses para tratar de uma dúvida comum à muitos usuários iniciantes: as diferenças entre o MySQL e o PostgreSQL. Ambos são SGBDs de código fonte-aberto e disponíveis gratuitamente para diversas plataformas tais como Linux, Solaris, Windows ou Mac. Podemos dizer, superficialmente, que o MySQL é um SGBD mais “rápido” e com menos recursos avançados (se comparado ao PostgreSQL) usado tipicamente em sistemas Web, enquanto o PostgreSQL é um SGBD mais confiável e robusto, que conta com inúmeros recursos avançados inexistentes no MySQL. Esta comparação é bastante simplista e menos verdadeira a cada nova versão lançada de qualquer um dos dois SGBDs, mas ainda é válida. Uma leve conclusão a respeito do foco de cada SGBD pode ser retirada do slogan presente na página web principal de cada projeto: “PostgreSQL: The world’s most advanced open source database” (“PostgreSQL: O banco de dados de código-fonte aberto mais avançado do mundo”) e “MySQL: The world’s most popular open source database” (“MySQL: O banco de dados de código-fonte aberto mais popular do mundo”).

Finalizando

O objetivo principal aqui foi demonstrar de maneira prática como instalar o PostgreSQL e configurá-lo para funcionar com o seu Ubuntu Linux e para isso não entramos em detalhes quanto ao seu funcionamento ou ao seu uso.
Dúvidas, críticas, sugestões e correções são sempre bem-vindas nos comentários, um abraço!

h1

Sun Tech Days 2009: Você não pode perder!

08/11/2009

empower_you
Neste fim de ano um dos melhores eventos sobre desenvolvimento com tecnologias open sources de ponta estará novamente no Brasil, é o Sun Tech Days!
Vários fatores tornam esta oitava edição do evento organizado no Brasil pela Sun Microsystem imperdível. Sem dúvida, a atração mais esperada deste ano é a participação de James Gosling, mais conhecido como o pai do Java!

abertura

Abertura do evento no auditório principal.

Outros pontos que irão contribuir para um evento inesquecível este ano incluem as demonstrações sobre as novidades do JDK 7, a nova versão do Kit de Desenvolvimento Java, que trás inúmeros recursos novos à linguagem. Há também muita expectativa quanto as apresentações sobre desenvolvimento de RIAs (“Aplicações de Internet Rica”), tecnologia fundamental da “Web 2.0″, e que tem a plataforma JavaFX como uma ótima opção de desenvolvimento. Haverão também sessões dedicadas a desenvolvimento mobile (como aplicações para celulares) tanto na plataforma JavaME quanto na JavaFX. Teremos aindas as novidades dos Servlets 3.0, tópicos avançados sobre a Java Persistence API (JPA), apresentações dedicadas ao GlashFish e ao MySQL, e um track inteiro dedicado ao sistema operacional OpenSolaris e várias de suas funcionalidades avançadas.
O evento conta ainda com a sessão “Hands-On Lab” onde o participante leva seu notebook e põe em prática seus conhecimentos!
Você pode conferir a programação na agenda disponível no site do evento (note que ela ainda está incompleta e sujeita a alterações até o dia do evento).

coffeebreak

Foto do coffee-break do evento. Peguei ela no site da Sun... e eis que eu me vejo nela! (Onde está Wally?).

No ano passado o Sun Tech Days foi um sucesso de público atingindo mais de 6.000 pessoas incluíndo-se as cidades satélites do “mês do Java” e as transmissões via webcast. Apenas no local do evento foram mais de 2.000 pessoas, um público formado por executivos, desenvolvedores e estudantes, que tiveram a oportunidade única de conhecer alguns dos principais experts em tecnologias open sources do mundo. Houveram momentos de descontração como o “Show de Talentos” e os sorteios de diversos brindes como mp3 players (iPods), netbooks (Eee PCs), além de bolsas de viagens e videogames. Os horários de coffee-break serviram para a integração dos participantes: grupos se formavam ao redor dos stands dos patrocinadores e dos stands dedicados à tecnologias (como o do OpenSolaris) para conversar, se conhecer e trocarem experiências.

duke_inscricao

Duke: o mascote da tecnologia Java.

As palestras são de alto nível, sempre ministradas por experts mundiais no assunto, e recheadas com a distribuição de camisas do evento, bolas anti-stress, e outros brindes para a platéia.
Apesar de quase todos os palestrantes utilizarem o inglês em suas apresentações, aqueles que não dominam a lingua contam com fones de tradução simultânea e não falta em nenhum momento quem traduza uma dúvida, em português, para o palestrante, fazendo com que, assim, além da apresentação aconteça também a participação.

local

Amcham Business Center: local do evento.

Se você não quer perder um dos melhores eventos sobre tecnologias open sources do Brasil, e não quer perder a chance de participar, conhecer e interagir com vários desenvoldores e experts em tecnologias do Brasil e do mundo, confirme já sua inscrição através do site oficial: http://www.suntechdays.com.br/ (inscrições com desconto até o dia 20/11), e faça, você também, parte deste evento!

h1

Testando o OpenSolaris em uma Máquina Virtual

06/11/2009

Introdução

OpenSolaris é um dos sistemas operacionais mais avançados e estáveis que existem na atualidade. Entre as suas características notáveis podemos citar, como exemplos, o sistema de arquivos ZFS, que provê alta integridade de dados e grande escalabilidade, e o DTrace, um framework para análise, debug e resolução de problemas no sistema em tempo real. Apesar de ser um sistema UNIX historicamente utilizado em servidores, nos últimos anos a comunidade em torno do OpenSolaris tem feito um grande esforço para oferecê-lo como uma opção de fácil utilização em desktops.

Apesar de ser possível testar o sistema dando boot através de um Live-CD, como é comum com distribuições Linux atuais, neste artigo vamos mostrar como inicializar o OpenSolaris em uma máquina virtual, utilizando para isso o VirtualBox. Faremos isto para em um próximo artigo proceguirmos com a instalação do OpenSolaris dentro da máquina virtual. As vantagens da instalação em uma máquina virtual sobre o ambiente Live-CD são a possibilidade de se instalar programas no sistema, mantê-lo em disco para uso e teste durante um longo período de tempo, não perder dados e configurações a cada boot (como ocorre em um ambiente Live-CD), além do grande ganho de velocidade que se obtém do sistema após uma instalação.
Para seguir este artigo, baixe a ISO do Live-CD do OpenSolaris 2009.06 na página de downloads do projeto, não é necessário gravá-la em CD.

O VirtualBox

VirtualBox é um software open source que nos permite instalar e testar sistemas dentro de uma “máquina virtual” no seu próprio sistema operacional. A visão que o usuário tem é de ter um sistema operacional “instalado dentro de uma janela” em seu desktop atual. Assim você pode ter, por exemplo, o OpenSolaris 2009.06 e o Windows XP instalados e totalmente funcionais dentro de máquinas virtuais rodando no seu Linux. Podendo alternar entre eles com a facilidade de se alternar entre as janelas de quaisquer aplicativos.
Na página de download do programa, podem ser baixados pacotes para várias distribuições Linux (incluindo Ubuntu e OpenSuse), além de binários para instalações em sistemas Windows, Mac Os X e Solaris. Baixe e execute o instalador apropriado para o seu sistema.
O VirtualBox não requer nenhum requisito especial do sistema. Como exemplo, neste artigo estaremos utilizando como sistema “hospedeiro” um notebook rodando Kubuntu Linux 9.10, com 1.5 Gb de memória RAM, 1Gb de memória SWAP em disco, processador Intel Celeron M à 1.86 GHz e placa de vídeo Intel X3100 com 128 Mb de memória compartilhada.

Criando a Máquina Virtual

Execute o VirtualBox (após este já estar devidamente instalado), clique no ícone “Novo” na janela principal do programa. Na janela do assistente de criação escolha “Próximo“. Dê um nome qualquer a sua máquina virtual e em “Tipo do Sistema” escolha “Sistema Operacional: Solaris” e “Versão: OpenSolaris” e clique em “Próximo“. Nesta etapa você configura o tamanho da memória RAM de seu computador que estará disponível para a máquina virtual. O recomendado para uma instalação do OpenSolaris é no mínimo 512 Mb, em nosso exemplo, usaremos “Memória Principal: 768 MB“, após configurar o valor adequado para o seu computador, clique novamente em “Próximo“.
Criando uma máquina virtual para o OpenSolaris

Criando uma máquina virtual para o OpenSolaris

Nesta etapa criamos um disco rígido virtual para o nosso sistema. Marque a opção “Criar novo disco rígido” e escolha “Próximo“. Será aberta a janela do assistente de criação de discos rígidos virtuais. Não há nenhuma opção nesta primeira janela, apenas clique em “Próximo“. Nesta etapa, em “Tipo de Armazenamento” escolha “Armazenamento dinamicamente expansível“. Aqui cabe uma explicação. A opção “dinamicamente expansível” faz com que seu dísco rígido virtual ocupe o menor espaço possível em seu HD. Utilizando esta opção, o tamanho do disco virtual vai crescendo automaticamente a medida que os dados são gravados pela sua máquina virtual. Assim, ao criar um disco deste tipo, ele irá ocupar inicialmente 0 MB de espaço em disco, a medida que você instala programas, cria documentos e instala o próprio sistema operacional dentro do disco, este vai crescendo dinamicamente até o tamanho máximo que será definido na próxima etapa.

Criando um novo disco rígido virtual

Criando um novo disco rígido virtual

Após configurar, clique em “Próximo“. Nesta etapa, em “Localização” digite o nome do arquivo que será criado no seu computador contendo os dados do disco virtual. Por padrão, o disco é salvo na pasta “.VirtualBox” em seu diretório de usuário, você pode alterar este diretório clicando no ícone da pasta localizado ao lado da opção “Localização”. Em “Tamanho” escolha o tamanho do seu disco virtual, note que este será o tamanho do disco que será “enxergado” pelo seu sistema dentro da máquina virtual, mas não será o espaço em disco ocupado pelo arquivo de disco virtual (como discutido anteriormente, este é dinamicamente expansível). Em nosso exemplo, escolhemos “Tamanho: 15 GB“. Novamente, após fazer suas configurações, clique em “Próximo“. Na próxima tela, apenas clique em “Finalizar” para concluir o assistente de criação de discos rígidos.

De volta a janela de criação de máquinas virtuais, clique também em “Finalizar“.

Configurando a Máquina Virtual

Nesta etapa vamos fazer ajustes finos em sua máquina virtual recém criada. Na janela principal do VirtualBox escolha o ícone “Configurações”.

Se você tem uma placa de vídeo 3D corretamente configurada em seu sistema operacional atual pode ser uma boa idéia permitir à máquina virtual ter acesso a esta placa. Desta maneira você pode, por exemplo, habilitar os efeitos de janela 3D do OpenSolaris ou instalar jogos 3D em sua máquina virtual. Note que esta configuração de vídeo é uma etapa opcional, se você não tem uma placa de vídeo 3D pode pular esta etapa para usar os recursos de vídeo padrões da máquina virtual. Para habilitar as configurações de vídeo 3D, no menu à esquerda, escolha “Tela” e no painel à direita selecione a opção “Habilitar Aceleração 3D“, em “Memória de Vídeo” escolha a quantidade de memória de vídeo do seu computador que estará disponível para a sua máquina virtual, em nosso exemplo configuramos “Memória de Vídeo: 64 MB” e recomendamos valores maiores ou iguais a este.
O gerenciador de mídias virtuais

O gerenciador de mídias virtuais

Agora, informaremos a máquina virtual onde está o seu arquivo ISO do OpenSolaris para que ela possa dar boot no sistema adequadamente. No menu à esquerda escolha “CD/DVD” e no painel à direita escolha “Montar Drive de CD/DVD“, em seguida, escolha “Arquivo de Imagem ISO” e clique no ícone da pasta ao lado desta opção para abrir o “Gerenciador de Mídias Virtuais”. Nesta janela, clique no ícone “Acrescentar” e na janela que irá abrir, localize e selecione o seu arquivo ISO contendo a imagem ISO do CD do OpenSolaris baixada anteriormente e então clique em “Selecionar” para voltar a janela de configurações. De volta as opções de CD/DVD apenas clique em “OK” no canto direito para finalizar as configurações. Neste ponto a sua máquina virtual já está pronta para ser iniciada!

Inicializando o OpenSolares dentro do VirtualBox

Novamente na janela principal do VirtualBox, agora apenas clique no ícone “Executar” para inicializar a sua máquina virtual a partir do ISO do Live-CD do OpenSolaris 2009.06!
Uma nota relevante é que o VirtualBox neste ponto trabalha com a “captura de tecla”, o que significa que se você clicar na janela onde o sistema virtual está sendo executado o seu mouse fica “capturado” dentro da janela e você não pode retirá-lo de lá apenas tentando move-lo para fora da janela. Para libertar o mouse da janela do sistema virtual use a tecla “Ctrl” da direita do seu teclado. Na primeira vez que você clicar na janela do sistema virtual uma mensagem do Virtualbox te avisará sobre esta situação além de lhe oferecer a opção de mudar a tecla que liberta o seu mouse. Liberando o seu mouse da janela do sistema virtual você já pode, opcionalmente, fechar a janela principal do VirtualBox, basta a janela do sistema em execução aberta para operar o sistema.
Menu do Grub na inicialização do OpenSolaris

Menu do Grub na inicialização do OpenSolaris

Em poucos instantes você estará no menu de seleção do sistema operacional (menu do Grub). Você pode esperar 30 segundos para o sistema inicializar automaticamente ou apenas teclar “enter” para pular este tempo e iniciar imediatamente o boot do sistema. O inicio do boot do sistema é gráfico com um background bem acabado. Pode ser que o boot demore alguns minutos pelo fato de estarmos rodando o sistema em uma sessão “Live” a partir de uma máquina virtual, o que reduz drasticamente o desempenho (NOTA: quando formos instalar o sistema em disco na máquina virtual, este problema de performance e outras situações como a “captura de tecla” poderão ser eliminados). Prosseguindo o boot, em pouco tempo você estará sendo perguntado pelo sistema à respeito do layout do teclado, clique na janela do sistema em execução, se isto ainda não foi feito, e digite “30” que é o código para teclados adequados para o português. Esta e outras configurações durante o boot só são necessárias durante a inicialização de um sistema “Live”, após instalar o sistema no disco as configurações já são carregadas automaticamente. Na próxima etapa, digite “17” para configurar o idioma do sistema para o português do Brasil.
Desktop padrão com Gnome do OpenSolaris

Desktop padrão com Gnome do OpenSolaris

Após mais algum tempo você estará diante do desktop do OpenSolaris 2009.06, o gerenciador de janelas padrão é o Gnome o mesmo adotado pelo Ubuntu por exemplo, embora o “tema” e o acabamento dados pelo OpenSolaris sejam visivelmente mais refinados que aqueles apresentados pelo Ubuntu. Você pode utilizar as opções “Máquina -> Tela Cheia” e “Máquina -> Ajustar Tamanho da Janela” para melhor ver o seu novo sistema rodando. Ao colocar a janela em modo “Tela Cheia” novamente você receberá um aviso do VirtualBox, agora, te avisando que você pode sair do modo “Tela Cheia” apertando simultaneamente as teclas “Ctrl“, do lado direito do teclado, +F“. Talvez você precise também alterar a resolução da tela do OpenSolaris para melhor ajusta-lo ao tamanho do seu monitor, para fazer isto, clique com o botão direito do mouse no desktop do seu OpenSolaris e escolha a opção “Resolução da Tela” ajustando na nova janela a “Resolução:” adequada para você, uma boa dica é “800×600” caso você deseje testar o sistema em modo janela ou a resolução do seu monitor caso você deseje testar o sistema em modo “Tela Cheia“. Algumas resoluções (como algumas variações do formato widescreen) só estarão disponíveis após a instalação em disco do sistema na máquina virtual.

Navegando no Firefox do OpenSolaris

Navegando no Firefox do OpenSolaris

Neste ponto, você já pode navegar na internet usando o Firefox ou trocar mensagens instantâneas (MSN, GTalk, etc) com o Pidgin por exemplo. existe um conjunto básico de aplicações que já vem no CD e não é recomendado instalar novos aplicativos neste momento pois todo o sistema está carregado na memória RAM.

Finalizando

Ao testar o OpenSolaris neste ambiente “Live” dentro do VirtualBox quaisquer configurações ou arquivos que você modifique serão “perdidos” em um próximo boot. Para evitar isto, no próximo artigo mostraremos como, a partir deste ponto, instalar o OpenSolaris de maneira definitiva dentro da sua máquina virtual, permitindo assim, que você o utilize como um sistema operacional alternativo para realizar tarefas diárias como editar documentos e planilhas, trocar mensagens instantâneas nas redes MSN e GTalk, navegar na internet no Firefox ou até mesmo desenvolver e executar seus programas em um poderoso IDE. Para isto, demonstraremos, neste próximo artigo, como “turbinar” sua máquina virtual com outras configurações extras e também como instar o “Adicionais para Convidados”, um recurso do VirtualBox que torna a utilização de sua máquina virtual mais natural e veloz. Veremos também como instalar novos programas em sua nova máquina OpenSolaris.

Dúvidas, críticas e sugestões são bem-vindas nos comentários.
E até o próximo artigo!
h1

O que é o programa Sun OSUM

31/10/2009
Cartaz do programa Sun OSUM

Cartaz do programa Sun OSUM

A Sun Microsystems é reconhecidamente uma das empresas mais inovadoras do mundo e atualmente está por trás de uma variedade de projetos open sources tais como as tecnologias Java, OpenSolaris, MySQL, OpenOffice.org, Netbeans, Glassfish, VirtualBox entre outros.

Um dos pontos fortes da empresa é o seu relacionamento com estudantes ao redor do mundo. Entre os seus programas voltados para o relacionamento com estes, podemos citar o Sun Academic Initiative (SAI), que provê treinamentos e descontos para certificações Sun, e o programa Sun Campus Ambassadors, que recruta jovens em várias universidades do Brasil e do mundo para serem divulgadores das tecnologias Sun nos seus campi.

Hoje vamos falar do programa Sun Open Source University Meetup,  ou OSUM (pronuncia-se “awesome”). Este, pode ser dividido didaticamente em duas partes: uma real e uma virtual.

A parte virtual inclui o site do projeto, um grande site de relacionamentos onde é possível encontrar as páginas web de grupos formados nos campi de diversas universidades do mundo, incluindo dezenas de universidades brasileiras. É possível visualizar os perfis de usuários destes grupos e de diversos outros grupos de interesses especiais como Java ou OpenSolaris. O site conta com ferramentas como fóruns de discussões nas páginas web de cada grupo, sistema de mensagens internas e um grande chat com todos os usuários online. É possível entrar em contato com usuários avançados em tecnologías como Java e MySQL e tirar dúvidas sobre problemas de difícil solução.

Cada grupo é criado e gerenciado pela figura do OSUM Leader, em geral, um estudante que voluntariamente toma a iniciativa de criar um grupo de estudo de tecnologias open sources em sua universidade e então registra o seu grupo junto à Sun a partir da página do programa OSUM. Como líder do seu grupo, o OSUM Leader tem a tarefa de reunir mensalmente seu grupo no campus de sua universidade para dar palestras e demonstrações sobre as tecnologias open sources da Sun, estabelecendo assim, a parte real do programa.

Para realizar demonstrações sobre estas tecnologias o OSUM Leader tem acesso a treinamentos em vídeo no site do projeto OSUM, onde podem interagir com o ministrante do treinamento através de chat. A Sun também apoia os encontros mensais do grupos OSUM enviando-lhes gratuitamente kits contento papers para as suas apresentações além de diversos brindes como chaveiros e DVDs para serem sorteados aos participantes do grupo.
O OSUM Leader também pode recorrer à um Sun Campus Ambassador, um estudante em sua região que trabalha como um estagiário da Sun, ele tem várias atribuições semelhantes a do OSUM Leader mas, por ser um funcionário da Sun, ele tem acesso a diversos outros recursos da Sun. Um Campus Ambassador para uma determinada região pode ajudar os OSUM Leaders nas organizações de eventos e dando palestras e demonstrações em seus campi.

Quais as vantagens para o membro participante do grupo OSUM?

Os alunos que participam de um grupo OSUM tem a oportunidade ímpar de terem acesso em seus próprios campi a demonstrações e grupos de estudos sobre tecnologias de ponta, gratuitas e open sources. Participando de um grupo OSUM eles podem se envolver na organização de eventos e terem a chance, eles mesmos, de conduzirem demonstrações e palestras sobre tecnologias que dominem. Como espectadores em tais eventos, eles sempre poderão aprender mais sobre um determinado assunto e tirar suas duvidas pessoalmente com o palestrante ou OSUM Leader de seu campus. Fazer tudo isso e ainda concorrer aos brindes gratuitos da Sun é mais do que um bom motivo para investir algumas horas do seu mês participando de um grupo OSUM.

Mas o que o OSUM Leader que trabalha voluntariamente ganha com isso?

Todo o aprendizado envolvido no processo de realizar apresentações sobre tecnologias e realizar eventos sobre tecnologias de ponta como Java, OpenSolaris e MySQL (para citar alguns…) já seria o suficiente para justificar tamanha empreitada de um OSUM Leader. Mas, além disso, a Sun oferece um Programa de Valorização aos líderes OSUM. Este programa disponibiliza para o estudante, em um primeiro momento, o “Welcome Kit”. Este kit de boas-vindas inclui um certificado de reconhecimento por sua atuação como OSUM Leader, um manual que descreve as atribuições de um líder OSUM, carta de apresentação, além de cartões de apresentação.

Além disso, o Programa de Valorização recompensa um líder OSUM, a medida que este realiza eventos em seu campus, com diversos brindes pessoais enviados gratuitamente pela Sun. Estes brindes vão desde camisas do projeto até câmeras digitais para os líderes mais veteranos na realização de eventos. Na página online do projeto, há uma área onde os líderes OSUM podem postar as fotos e vídeos dos encontros e eventos do seu grupo de maneira a documentar o sucesso do mesmo.

Finalizando, a intenção deste post era realizar uma introdução ao programa OSUM da Sun Microsystems, mostrando o que é o programa, e quais as vantagens de se filiar à ele. Se você é um estudante com vontade de aprender sobre tecnologias open sources de ponta e incrementar seu currículo assitindo à demonstrações e palestras sobre as mesmas, cadastre-se agora mesmo no programa Open Source University Meetup e procure o grupo OSUM da sua universidade.

Não existe um grupo OSUM na sua universidade? Crie um agora mesmo tornando-se um OSUM Leader e Change (Y)Our World!

(Gostou? Então após se cadastrar no programa participe também do Grupo OSUM da Universidade Federal de Viçosa: http://osum.sun.com/group/ufv – Abraços!)