Jogo da Memória em Java Swing (Refatorado)

Desde que comecei a escrever neste blog um dos posts mais acessados é, sem dúvida, o do Jogo da Memória.

Como explicado lá no post original, o código foi baseado em um trabalho desenvolvido na faculdade. Na ocasião havia desenvolvido o projeto no JCreator, de forma bem simples. O código não estava lá muito bom, e os ícones não estavam adequadamente referenciando os autores (peguei da internet a esmo), mas mesmo assim era uma boa referência para se aprender a usar alguns dos recursos do Swing.

Uma das minhas primeiras tarefas ao voltar a escrever aqui depois de algum tempo é passar os códigos dos posts para o github, para facilitar o acesso aos mesmos, mas ao fazer isto para o post do Jogo da Memória achei melhor dar uma repaginada no projeto.

A primeira coisa foi colocar o código em um projeto Mavem, desenvolvido no Eclipse. Depois fiz uma refatoração no código, para deixá-lo um pouco melhor, removendo coisas desnecessárias e simplificando um pouco a interface inicial.

Por fim utilizei conjuntos de ícones identificados e com os autores devidamente referenciados. Claro que se você quiser poderá alterar o conjunto de ícones conforme sua necessidade.

Como agora o código está no github não há necessidade de colocá-lo aqui na íntegra, e você pode ter acesso ao mesmo através deste repositório.

Abaixo seguem algumas imagens da nova versão:

1

2

4

3

5

 

Espero que esta nova versão possa ajudar ainda mais pessoas em seus estudos.

Abraços!

 

 

De volta à ativa!

Olá!

Depois de muito tempo afastado do blog decidi voltar à  ativa. Foram anos sem escrever aqui, mas a vontade sempre estava presente.

Minha primeira tarefa, antes de escrever novos artigos será refatorar alguns dos códigos já postados, e incluir os mesmos no github para facilitar o acesso aos projetos.

Espero que você, que já acompanha o blog, continue acessando os artigos e dicas, e que as novidades possam lhe ajudar de alguma forma.

Pra você que está acessando pela primeira vez, seja bem-vindo!

 

 

2013 in review

The WordPress.com stats helper monkeys prepared a 2013 annual report for this blog.

Here’s an excerpt:

The concert hall at the Sydney Opera House holds 2,700 people. This blog was viewed about 44,000 times in 2013. If it were a concert at Sydney Opera House, it would take about 16 sold-out performances for that many people to see it.

Click here to see the complete report.

Habilitando o Módulo de Mensageria no JBoss 7

Se você já tentou utilizar recursos de mensageria (API JMS) no JBoss 7, deve ter percebido que este módulo não está habilitado na configuração padrão. Ao executar o servidor em sua configuração standalone e observar o console web de administração não encontraremos nenhuma referência a recursos como filas e tópicos:

 

jboss7_messaging1

 

A primeira vista isto pode ser estranho, pois em versões anteriores do servidor este serviço estava disponível na configuração padrão (default), mas o comportamento é realmente diferente no JBoss 7. Neste pequeno post vamos ver como habilitar este módulo para que seja possível utilizar o JBoss 7, através do serviço HornetQ, como um provedor JMS. Estarei utilizando a versão 7.1.2 do JBoss 7 nos exemplos.

 

Mãos a Obra

Ao executarmos o JBoss 7 em sua configuração standalone, através do arquivo de inicialização jboss-as-7.1.2.Final\bin\standalone.bat (para Windows, ou standalone.sh para linux), a configuração utilizada é a do arquivo jboss-as-7.1.2.Final\standalone\configuration\standalone.xml. Isto pode ser constatado através do arquivo de configurações de inicialização jboss-as-7.1.2.Final\bin\standalone.conf.bat (para Windows, ou jboss-as-7.1.2.Final\bin\standalone.conf para linux), que é utilizado pelo arquivo de inicialização. Nele encontraremos a seguinte linha indicando o arquivo de configurações do servidor utilizado por padrão:

jboss7_messaging2

No arquivo standalone.xml estão as configurações dos serviços (ou módulos) disponibilizados pelo servidor, e nele não encontraremos referências aos serviços de mensageria. Por outro lado, o arquivo standalone-full.xml possui alguns serviços a mais, dentre eles o serviço de mensageria.

Então, para habilitar o serviço de mensageria, temos duas opções: 1) copiar do arquivo standalone-full.xml os trechos de configuração referentes à mensageria e replicar no arquivo standalone.xml; 2) referenciar o arquivo standalone-full.xml no arquivo jboss-as-7.1.2.Final\bin\standalone.conf.bat. Se você possuir restrições quanto aos outros módulos habilitados no arquivo standalone-full.xml, além do serviço de mensagem, escolha a primeira opção.  No entanto se a habilitação de todos os módulos não for um problema escolha a segunda opção. É esta que escolherei. No final, o mesmo trecho de configuração do arquivo jboss-as-7.1.2.Final\bin\standalone.conf.bat estará assim:

jboss7_messaging3

Se agora observarmos o console web de administração encontraremos referências ao serviço de mensageria:

jboss7_messaging4

Incluindo Destinos Personalizados

Se observarmos as configurações de destinos (menu JMS Destinations) não encontraremos nenhum destino (fila ou tópico) previamente configurado:

jboss7_messaging5

Para o modo standalone de execução podemos incluir novos destinos JMS através do arquivo de configurações standalone-full.xml, que estamos utilizando (ou do arquivo standalone.xml, caso você tenha optado pela primeira forma de configuração ).

Inclua o seguinte trecho de código no arquivo de configurações, entre as tags <hornetq-server>…</hornetq-server>:

jboss7_messaging6

No exemplo acima foram incluídos uma fila (queue) e um tópico (topic). Se agora reiniciarmos o servidor e observarmos o console web de administração encontraremos as referências a estes destinos, que poderão ser utilizados para troca de mensagens:

jboss7_messaging7

É isto! Num próximo post vou mostrar como fazer conexões JMS com o servidor a partir de uma aplicação desktop.

Dual Boot: Windows 7 e Ubuntu 12.04 em um Particionamento GPT

Recentemente adquiri um novo notebook cujo disco veio particionado com a arquitetura GPT (GUID Partition Table). Como é de costume, optei por deixar tanto o Windows quanto o Linux instalados (Dual Boot). Esta tarefa costumava ser simples nas máquinas que tive antes, particionadas com MBR, mas tive certa dificuldade para conseguir criar o Dual boot com o GPT.

Apesar de todo o particionamento manual estar aparentemente certo, depois de instalar o Windows, e na sequência o Ubuntu, como geralmente faço, o GRUB não era apresentado no momento do boot para a escolha do SO a ser utilizado, sendo o Ubuntu inicializado automaticamente.

Depois de procurar um pouco encontrei um post que me ajudou a fazer a instalação com Dual Boot com sucesso. Este post me levou a outro, em cujos comentários estão os passos fundamentais para o sucesso.

Antes de comentar estes passos, vale lembrar que eu já havia criado as partições e já tinha realizado a instalação do Windows 7 e do Ubuntu, em suas devidas partições. O único ponto que ainda faltava era fazer o Ubuntu reconhecer a partição do Windows e apresentar as opções no GRUB. Inclusive ao realizar a inicialização pelo Ubuntu, era possível acessar as partições do Windows.

Eis o ponto fundamental a partir daqui (conforme comentário no post citado acima):

The GRUB menu can be unhidden by commenting out the two lines regarding GRUB_HIDDEN in /etc/defaults/grub and running update-grub as root.

Next, the entry for windows can be manually added by appending the following lines to /etc/grub.d/40_custom:
menuentry “Windows” {
    search –fs-uuid –no-floppy –set=root YOUR-EFI-PARTITIONS-UUID-HERE
    chainloader (${root})/efi/Microsoft/Boot/bootmgfw.efi
}

Find your EFI partitions UUID by running ‘ls -la /dev/disk/by-uuid/’. As the EFI partition is a FAT32 partition, the UUID is of the form XXXX-XXXX. If you have more than one FAT partition, you can verify if one is the EFI partition by checking the partition map with gdisk (not installed by default). Run gdisk on the device, ‘sudo gdisk /dev/DEVICE’, press ‘p’ to print the partition table, and then ‘q’ to quit. DON’T make any changes to the partition table. The EFI partition will have the code type ‘EF00’ and most likely a name/label that says it is a EFI system partition.

Então, conforme citado no comentário, é necessário comentar o trecho de configuração que oculta o GRUB. Isto pode ser feito comentando as linhas que iniciam com GRUB_HIDDEN no arquivo /etc/defaults/grub:

dual_boot1

Depois disso é necessário incluir uma entrada no arquivo /etc/grub.d/40_custom para a opção de menu do GRUB para o Windows:

dual_boot2

Na imagem acima, o valor BA69-59A5 é o UUID da partição EFI, criada durante o particionamento (ver comentários no primeiro post referenciado). Para se chegar a este valor é necessário executar o comando ls -la /dev/disk/by-uuid/, que dará o UUID da partição EFI no formato XXXX-XXXX (por ser uma partição FAT32):

dual_boot3

Depois de tudo feito execute o comando sudo update-grub e reinicie o sistema. Se tudo der certo o GRUB aparecerá com as opções de boot.

É isso galera, até a próxima!

Configurando o JBoss Tools 3.3.1 no Eclipse Indigo

Bem, depois de tanto tempo volto a me dedicar um pouco ao blog. Já faz realmente muito tempo desde que escrevi o último artigo.

Pretendo voltar à ativa por aqui com vários assuntos, muitos dos quais já de conhecimento de muitos desenvolvedores, mas procurando dar uma visão diferente e mais prática, como sempre tenho procurado fazer.

Bom, este post trata de um assunto que já foi tema de outros posts. No post Preparando um Ambiente de Desenvolvimento Java EE Baseado em Eclipse eu demonstrei como preparar um ambiente de desenvolvimento baseado no Eclipse utilizando os principais plugins. Já no post Adicionando Servidor de Aplicações JBoss ao Eclipse eu mostrei como adicionar o servidor de aplicações JBoss ao Eclipse, para facilitar o desenvolvimento das aplicações e controle do servidor através da IDE.

No entanto, mesmo que esta seja uma tarefa trivial para quem já desenvolve a um certo tempo, e para muitos nem mereça um post, para muitas pessoas esta não é uma tarefa tão simples e intuitiva. Prova disso são as experiências que tenho como professor em um curso de especialização em Java, onde muitas vezes os alunos não sabem sequer como configurar o workspace adequadamente com uma JDK.

Pensando nisto, e principalmente em meus atuais e futuros alunos, é que me disponho a postar coisas simples como esta, que são de grande ajuda para quem está começando.

Neste post não vou mostrar toda a configuração de um ambiente do ZERO novamente; para isto você pode consultar o post citado anteriormente, fazendo as devidas ressalvas com relação à versão da IDE e dos plugins.

O que vou mostrar aqui é algo mais direto: como instalar uma versão adequada do JBoss Tools ao Eclipse Indigo. Para isto vou assumir que você já tenha o Eclipse Indigo instalado, e se não tem você pode baixá-lo a partir do site http://www.eclipse.org/downloads/. Eu recomendo que você baixe a versão Eclipse IDE for Java EE Developers, que já traz alguns plugins voltados ao desenvolvimento JEE. Escolha a versão adequada para seu sistema operacional e, após efetuar o download, descompacte o arquivo em seu local de escolha.

Uma vez instalado, inicie o Eclipse:

Uma vez inicializado o Eclipse, é importante escolher a perspectiva Java EE para se trabalhar com o desenvolvimento JEE, e principalmente para facilitar a configuração de um servidor de aplicações. Se você selecionou, na inicialização, um workspace novo, o IDE terá a seguinte aparência (provavelmente):

Repare que, no canto superior direito a perspectiva Java EE está selecionada, e na parte inferior a aba de servidores está selecionada.

Se quisermos, por exemplo, adicionar o servidor de aplicações JBoss 6.1 em novo ambiente, podemos clicar no link “new server wizard”. Ao fazer isso um wizard será apresentado, e nele podemos observar que a opção de adicionar o JBoss 6.1 não está disponível:

Se clicarmos no link “Download additional server adapters”, a seguinte tela será apresentada, nos dando a opção de baixar mais plugins para outros servidores, dentre ele o JBoss Tools:

Ao selecionar a opção desejada e avançar, os procedimentos seguintes levarão à instalação do plugin. Os passos seguintes são bem intuitivo.

Outra maneira de instalar o plugin do JBoss Tools é através de um arquivo local, mas eu sinceramente não gosto desta opção. As experiências que tive mostraram que esta é uma opção mais demorada e propensa a erros, mas ainda assim pode ser uma opção para quem está sem conexão no momento de fazer a configuração. Para isso será necessário baixar o arquivo do site do projeto JBoss Tools, mas por não considerar esta opção a melhor, vou ignorá-la e apresentar a forma que, assim como a primeira forma apresentada, é para mim mais adequada.

Acesse o site http://www.jboss.org/tools/download. No link de downloads é possível encontrar a versão estável do plugin para o Eclipse Indigo. Esta é a principal razão pela qual não utilizo ainda o Eclipse Juno, que é a última versão do IDE Eclipse; o plugin do JBoss Tools ainda não é estável para ele.

Bem, após clicar no link voc~e será redirecionado à uma página onde é possível ter acesso ao update site do plugin, que é um link que usaremos para a configuração do mesmo no Eclipse:

Copie o link apresentado e, voltando ao Eclipse, selecione o menu “Install New Software…”:

Na tela seguinte clique no botão “Add…” e a seguinte janela de configuração será apresentada, onde é possível inserir o link copiado da página do plugin e indicar um nome para o mesmo:

Depois disso os recursos do plugin serão apresentados para que você escolha qual deles quer instalar. Eu aconselho a instalação de todos. Sendo assim selecione todas as opções apresentadas e clique no botão “Next >”:

Dependendo da banda de sua conexão, os passos seguintes podem ser bem demorados. Basicamente você terá que confirmar as escolhas feitas, aceitar alguns termos de licença e aguardar o download dos itens. Ao final será solicitado que a IDE seja reinicializada. Simplesmente aceite.

Depois de reiniciada a IDE, tente novamente adicionar o servidor de aplicações JBoss 6.1 à IDE. Você verá que o adaptador estará disponível.

Para os passos seguintes da configuração do servidor você pode consultar o post referenciado no início deste post, pois o processo será basicamente o mesmo.

É importante ressaltar que não basta ter uma JRE configurada no Eclipse. É preciso ter uma JDK configurada. Os procedimentos para esta configuração também podem ser encontrados em um dos posts citados no início deste post, referente à criação de um ambiente de desenvolvimento completo baseado no eclipse.

Bem, é isto. Espero que esta dica seja proveitosa para muitos que estão começando.

Até o próximo post!

Os números de 2011

Os duendes de estatísticas do WordPress.com prepararam um relatório para o ano de 2011 deste blog.

Aqui está um resumo:

A sala de concertos da Ópera de Sydney tem uma capacidade de 2.700 pessoas. Este blog foi visitado cerca de 36.000 vezes em 2011. Se fosse a sala de concertos, eram precisos 13 concertos egostados para sentar essas pessoas todas.

Clique aqui para ver o relatório completo