Quinta-feira Ago 13, 2009

Certificações de MySQL por U$40


O Sun Academic Initiave (SAI) é um programa acadêmico mantido pela Sun Microsystems que visa levar treinamentos online gratuitos em tecnologias da empresa para estudantes de todo o mundo. Além disso, através do SAI, os estudantes têm acesso a descontos de até 80% em certificações, pagando apenas U$40 por qualquer exame coberto pelo programa.

Uma excelente notícia é que o SAI agora também oferece descontos em certificações de MySQL, além de Java e Solaris, que já faziam parte do programa deste sua criação. As novos exames cobertos pelos SAI são:

- Sun Certified MySQL 5.0 Database Administrator 1

- Sun Certified MySQL 5.0 Database Administrator 2

- Sun Certified MySQL 5.0 Developer Part 1

- Sun Certified MySQL 5.0 Developer Part 2

- Sun Certified MySQL Associate

Se você é estudante, ainda não é registrado no SAI e deseja participar, siga as instruções nos posts abaixo:

Como registrar-se no Sun Academic Initiave (SAI)

Como requisitar seu voucher com desconto no Sun Academic Initiave (SAI)

Bons estudos!

Terça-feira Ago 11, 2009

Seja um especialista em OpenOffice.org pela metade do preço!

Você sabia que a Sun oferece certificações para quem quer ser especialista em OpenOffice.org (ou BrOffice.org)? Existem três modalidades de certificação:

- Sun Certified OpenOffice.org Writer Specialist

- Sun Certified OpenOffice.org Calc Specialist

- Sun Certified OpenOffice.org Impress Specialist

As provas de certificação são constituídas de questões básicas e moderadamente avançadas, e não há pré-requisitos necessários para nenhuma delas.

Agora, a boa notícia: você pode tirar qualquer uma das três certificações com 50% de desconto até o dia 30 de Setembro! Clique aqui para obter mais informações.

Não perca essa chance!

Sexta-feira Ago 07, 2009

Java EE Open Source Brazilian Road Show - Fortaleza

Transcrevo abaixo o texto disponibilizado através da lista de discussão do CEJUG pela Anna Carolina Duarte para a divulgação do quinto Java EE Open Source Brazilian Road Show, que acontecerá em Fortaleza no dia 12 de Agosto:

"O Java EE Open Source Brazilian Road Show 2009 será realizado no dia 12 de agosto na capital cearense. O seminário é um guia prático e teórico para entender, produzir e governar aplicações corporativas com tecnologia Java EE, direcionado a CIO´s, Gerentes de TI, Gerentes de Desenvolvimento, Arquitetos, Desenvolvedores e Especialistas em geral, ingressando em SOA, RIA, Java EE 6 ou open source, interessados em orientações iniciais, dicas  e balizamento de informações."

O evento é gratuito, sendo necessário apenas levar 2kg de alimento não perecível para serem entregues na entrada do evento. Mais algumas informações:

Endereço: Gran Marquise Hotel - Av. Beira Mar, 3980
Horário: 8h30 à 13h

Link direto para incrição


Quarta-feira Jul 29, 2009

Sun Studio Blogging Contest

This post is available in English here.

A Sun lançou mais um concurso envolvendo blogs e uma de suas tecnologias. Desta vez a competição envolve o Sun Studio e, claro, a sua capacidade e criatividade para criar um bom post. Para quem viu e/ou participou do último concurso envolvendo JavaFx, as regras para este novo concurso são bastante semelhantes. Para participar, siga os passos abaixo:

1. Faça o download do Sun Studio.

2. Crie um post em seu blog envolvendo esta ou versões anteriores do Sun Studio.

3. Envie o link de seu post para a organização.

Tá, mas... O que eu escrevo?


Você pode falar sobre as ferramentas do Sun Studio que mais lhe atraem, e porque elas fazem a diferença para você. Faça críticas, sugestões, tutoriais, estudos de caso, proponha mudanças, enfim... O céu é o limite, meu rapaz.

E lembre-se: seu post deve ser escrito em inglês!

Agora, vamos à premiação: cada um dos 10 primeiros colocados receberão um prêmio de U$500. Além disso, os 50 melhores posts receberão pendrives de 2GB do Sun Studio.

Confira abaixo os deadlines:

Início do concurso: 23 de Junho de 2009
Fim do concurso: 14 de Agosto de 2009
Período de avaliação: 14 de Agosto a 4 de Setembro de 2009
Anúncio dos ganhadores: 14 de Setembro de 2009

Boa sorte!

Segunda-feira Jul 27, 2009

Tutorial Projeto Darkstar (parte VI)

Você deve ter percebido o botão de Chat no canto inferior esquerdo da tela de jogo. Você pode inclusive utilizá-lo, mas infelizmente os outros jogadores ainda não vêem o que você está escrevendo. Estabelecer essa comunicação é nosso objetivo no último post deste tutorial. Veja como é simples:

Tudo que precisamos fazer é implementar o método chatMessage(..) na classe SnowmanPlayerImpl:



É isso. Simples, não?

Teste agora os resultados. Rode o servidor, inicie uma partida entre dois clients e tente uma comunicação. Agora seu oponente já consegue ver o que você escreve:



Bom, o tutorial vai ficando por aqui. Espero que tenha sido útil para estabelecer um primeiro contato com o Projeto Darkstar. Sei que algumas dúvidas, principalmente sobre a implementação de alguns métodos, devem surgir. Lembre-se de que uma versão bem mais completa (em inglês) deste tutorial está disponível no site oficial do projeto (http://projectdarkstar.com), pois trata-se de um Hands On Lab realizado no último JavaOne. No site você encontra também toda a documentação necessária para aprofundar seus estudos.

Até mais! 

Tutorial Projeto Darkstar (parte IV)

Nesta parte do tutorial, vamos melhorar nosso servidor adicionando funcionalidades que permitirão manter status de jogos e coordenar o início dos mesmos. Isso permitirá que o servidor aceite a conexão de novos clients e inicie uma nova partida para cada dois novos jogadores conectados.

O primeiro passo será analisar o comportamento do Project Snowman do ponto de vista do servidor. Esse comportamento é coordenado por um conjunto de interfaces encontrado em Project Snowman Server -> Source Packages -> com.sun.darkstar.example.snowman.server.interfaces. Vamos analisar cada uma dessas interfaces separadamente:

DynamicEntity: É a interface que define a base de funcionalidades para objetos em movimento no jogo. Em nosso caso, tais objetos são jogadores e bandeiras.

SnowmanFlag: Como o nome já sugere, esta interface representa uma bandeira, que pode ser movida e carregada no campo de jogo.

SnowmanPlayer: Interface que representa um jogador. Cada cliente conectado é associado a um único SnowmanPlayer.

SnowmanGame: Representa uma partida que está sendo jogada entre múltiplos SnowmanPlayer's com múltiplas SnowmanFlag's.

EntityFactory: Interface utilizada para fabricar SnowmanPlayer's e SnowmanFlag's.

GameFactory: Interface utilizada para fabricar SnowmanGame's.

No post anterior, configuramos nosso servidor para que se fosse possível iniciar uma partida, ainda que com apenas um jogador e sem bandeiras. O que queremos agora é fazer com que cada vez que dois jogadores se conectem, uma nova partida seja iniciada. Para isso, o servidor deve adicionar a uma lista o jogador que se logou mas espera um companheiro para jogar. No momento em que o segundo jogador conectar-se, o protocolo de comunicação estabelecido (veja o post anterior) é usado para dar início a uma nova partida.


Agora, quando rodarmos nosso servidor, queremos que os seguintes dados sejam inicializados:

- Um EntityFactory para criar jogadores e bandeiras.
- Um GameFactory para criar SnowmanGame's cada vez que uma partida for iniciada.
- Uma List de objetos ManagedReference que representa SnowmanPlayer's esperando uma nova partida.
- Um int que funciona como contador de partidas iniciadas.

Adicionamos então as seguintes modificações à classe SnowmanServer.java:

Atributos:

     private EntityFactory entityFactory;
     private GameFactory gameFactory;
     private List<ManagedReference<SnowmanPlayer>> waitingPlayers;
     private int gameNumber;

Método initialize(..):

     public void initialize(Properties props) {
         this.entityFactory = new EntityFactoryImpl();
         this.gameFactory = new GameFactoryImpl();
         this.waitingPlayers = new ArrayList<ManagedReference<SnowmanPlayer>>(2);
         this.gameNumber = 0;
     }

Agora, para que uma partida seja iniciada sempre que dois jogadores se conectem, modificamos o método loggedIn(..):


Até o momento, nosso servidor só consegue interpretar mensagens do tipo READY vindas do cliente. Vamos agora aprimorar nossa classe SnowmanPlayerListener para que outros tipos de mensagem possam ser interpretados. O primeiro passo é modificar o método receivedMessage(..):



Implementando o método disconnected(..), tratamos o caso em que o cliente é desconectado:



Vamos agora implementar a classe que de fato coordena e mantém o status de todas as partidas. Acesse o arquivo SnowmanGameImpl.java em Project Snowman Server -> Source Packages -> com.sun.darkstar.example.snowman.server.impl e modifique seu construtor:



Devemos também implementar o método sendMapInfo(), que envia informações de coordenadas aos clientes:



Tente agora rodar o servidor (lembre-se de limpar o projeto primeiro!) e dois clientes. Se todos os passos acima foram seguidos sem problemas, você verá agora os dois jogadores logados na partida e suas respectivas bandeiras.

Porém, ainda temos uma série de limitações. Note que o movimento de um jogador não é refletido na tela do outro cliente, uma vez que  nosso servidor ainda ignora as mensagens MOVEME. Essa é uma tarefa para o próximo post!

Quinta-feira Jul 23, 2009

Tutorial Projeto Darkstar (parte III)

Nesta parte do tutorial, vamos aprender um pouco sobre a comunicação entre servidor e cliente.

No Darkstar, as mensagens através das quais o servidor e cliente se comunicam têm a forma de um objeto java.nio.ByteBuffer. As mensagens mandadas do servidor para o cliente servem basicamente para coordenar o início e fim de sessões e enviar estados atuais (status) do jogo. Já as mensagens enviadas do cliente ao servidor são em grande parte instruções de jogo, como atacar, mover-se, etc. Há também as mensagens de chat, que estabelem a comunicação entre os jogadores dentro do jogo.

O código utilizado para implementação do protocolo de comunicação encontra-se em pacotes do módulo Project Snowman Common. São eles:


com.sun.darkstar.example.snowman.common.protocol.enumn
com.sun.darkstar.example.snowman.common.protocol.handlers
com.sun.darkstar.example.snowman.common.protocol.messages
com.sun.darkstar.example.snowman.common.protocol.processor


Vamos agora configurar as seguintes mensagens do servidor:

NEWGAME: um pacote NEWGAME é enviado pelo servidor para indicar o início do jogo. Após receber este pacote, o cliente deve visualizar o campo de batalha e esperar um pacote ADDMOB (descrito abaixo) com o status inicial do jogo. O pacote contém:
    - Um inteiro que representa o ID do cliente
    - Uma string que designa o nome do mapa em que a partida será jogada.

STARTGAME: este pacote é enviado pelo servidor para indicar que todos os clientes receberam o status inicial do jogo e que o mesmo pode ser iniciado. O pacote é composto apenas pelo OPCODE.

ADDMOB: como já descrito, este pecote é enviado após o NEWGAME com o satus inical da partida. O pacote é composto por:
    - Um inteiro que representa o ID da entidade a ser adicionada.
    - Um float representando a coordenada X da entidade no campo de batalha.
    - Um float representando a coordenada Y da entidade no campo de batalha.
    - Um inteiro representando o tipo da entidada (jogador, bandeira, etc).
    - Um inteiro representando o time da entidade (Vermelho, Azul, etc).
    - Uma string representando o nome da entidade.


Como dito acima, todas essas mensagens serão transmitidas no formato de ByteBuffer. Portanto, no caso do pacote NEWGAME, por exemplo, o ByteBuffer será composto da seguinte forma:
    - O primeiro byte sempre representará o OPCODE do pacote.
    - O inteiro que represneta o ID do cliente é incluídos nos 4 bytes subsequentes.
    - O valor do comprimento da string que representa o nome do mapa ocupará os 4 bytes subsequentes.
    - A string (convertida para uma sequencia de bytes) ocupará o resto do ByteBuffer.

É hora de por a mão na massa! Acesse o arquivo ServerMessages.java em Project Snowman Common ->  Source Packages -> com.sun.darkstar.example.snowman.common.protocol.messages -> ServerMessages.java.

Neste arquivo você encontrará os métodos createNewGamePkt(..), createStartGamePkt() e createAddMOBPkt(..) aguardando serem implementados. Eis um exemplo de como cada um deles pode ser implementado:


     public static ByteBuffer createNewGamePkt(int myID, String mapname) {
         byte[] bytes = new byte[1 + 4 + 4 + mapname.length()];
         ByteBuffer buffer = ByteBuffer.wrap(bytes);
         buffer.put((byte) EOPCODE.NEWGAME.ordinal());
         buffer.putInt(myID);
         buffer.putInt(mapname.length());
         buffer.put(mapname.getBytes());

         buffer.flip();
         return buffer;
     }


     public static ByteBuffer createStartGamePkt() {
         byte[] bytes = new byte[1];
         ByteBuffer buffer = ByteBuffer.wrap(bytes);
         buffer.put((byte) EOPCODE.STARTGAME.ordinal());

         buffer.flip();
         return buffer;
     }


     public static ByteBuffer createAddMOBPkt(int targetID,
                                              float x,
                                              float y,
                                              EMOBType mobType,
                                              ETeamColor team,
                                              String mobName) {
         byte[] bytes = new byte[1 + 20 + 4 + mobName.length()];
         ByteBuffer buffer = ByteBuffer.wrap(bytes);
         buffer.put((byte) EOPCODE.ADDMOB.ordinal());
         buffer.putInt(targetID);
         buffer.putFloat(x);
         buffer.putFloat(y);
         buffer.putInt(mobType.ordinal());
         buffer.putInt(team.ordinal());
         buffer.putInt(mobName.length());
         buffer.put(mobName.getBytes());

         buffer.flip();
         return buffer;
     }


Feito isso, construa o módulo Project Snowman Common:

Acabamos de estabelecer uma linguagem entre servidor e cliente, vamos agora entender como ela funciona:

1. O servidor envia um NEWGAME a todos os clientes conectados.
2. O servidor envia um ADDMOB para cada jogador e bandeira no jogo.
3. O servidor envia um READY para cada cliente.
4. Cada cliente envia um READY para o servidor.
5. O servidor envia um STARTGAME para cada cliente.

Precisamos agora configurar o servidor para agir de acordo com esse padrão de comunicação. Iremos utilizar a classe ServerMessages, que implementamos parcialmente acima, e o método send(..) da interface ClientSession para o envio das mensagens.


Acesse o arquivo SnowmanServer.java em Project Snowman Server ->  Source Packages -> com.sun.darkstar.example.snowman.server -> SnowmanServer.java. Antes de tudo, inclua na classe o atributo:


private EntityFactory entityFactory;

Vamos agora modificar os já conhecidos métodos loggedIn(..) e initialize(..) para:

     public void initialize(Properties props) {
         this.entityFactory = new EntityFactoryImpl();
     }

     public ClientSessionListener loggedIn(ClientSession session) {
         session.send(ServerMessages.createNewGamePkt(1, "default_map"));
         session.send(ServerMessages.createAddMOBPkt(1,
                                                     10,
                                                     10,
                                                     EMOBType.SNOWMAN,
                                                     ETeamColor.Blue,
                                                     session.getName()));
         session.send(ServerMessages.createReadyPkt());

         return new SnowmanPlayerListener(
                 entityFactory.createSnowmanPlayer(session));
     }


Após essas modificações, você deverá incluir alguns imports. O Netbeans faz isso automaticamente. Basta acessar o menu Código-fonte e clicar em Corrigir Importações (ou pressionar Ctrl+Shift+I).

Precisamos também fazer com que o servidor identifique o READY enviado pelo cliente no passo 4 da rotina de comunicação descrita anteriormente. Para isso, acesse a classe SnowmanPlayerListener em Project Snowman Server -> Source Packages -> com.sun.darkstar.example.snowman.server ->  SnowmanPlayerListener.java e modifique o método receivedMessage(..) para:


     public void receivedMessage(ByteBuffer message) {
         if (EOPCODE.READY == EOPCODE.values()[message.get()]) {
             playerRef.get().getSession().send(ServerMessages.createStartGamePkt());
         }
     }


Aqui também será necessário corrigir as importações.

Vamos testar nossas modificações. Rode o servidor, inicie um cliente e tente uma conexão. Você deve conseguir agora logar e visualizar o jogo, embora ainda sem bandeiras e com apenas um jogador:


No próximo post começaremos a lidar com partidas multi-player. Até lá!

Quarta-feira Jul 22, 2009

Tutorial Projeto Darkstar (parte II)


Vamos agora começar a configurar um servidor e um cliente do Projeto Snowball para vermos o Darkstar funcionando.
Primeiro, abra no Netbeans o projeto do servidor do Snowball baixado (ver post anterior):



Criaremos uma configuração bem básica do servidor para ver a coisa funcionando pela primeira vez. Localize o método initialize(..) no arquivo SnowmanServer.java (o caminho é Project Snowman Server -> Source Packages ->  com.sun.darkstar.example.snowman.server -> SnowmanServer.java). A idéia é fazer com que este método imprima a mensagem "Bem-vindo ao Darkstar!" quando o servidor for inicializado.
Localizado o método, inclua no corpo do mesmo:

logger.log(Level.INFO, "Bem-vindo ao Darkstar!");

Agora lozalize o método loggedIn(..). Vamos fazer com que este método imprima uma mensagem indicando que um jogador acaba de se logar no servidor. Para isso, inclua a seguinte linha no método:

logger.log(Level.INFO, "Jogador " + session.getName() + " logou");

Agora construa o projeto:



Após alguns minutos e um turbilhão de mensagens, a contrução deve funcionar (a mensagem "BUILD SUCCESSFUL" deve aparecer no console de saída).

Agora, rodemos o servidor:



Você deve obter como saída algo como:



Nosso servidor ainda não faz muito (na verdade, ele não faz quase nada... rs). Ainda assim, vamos rodar o cliente para tentar uma primeira conexão e ver o que acontece:

- Abra o terminal e acesse a pasta (snowman-client) onde você salvou o cliente do jogo.
- Digite: java -jar snowman-client.jar

Eis o nosso cliente rodando:


O cliente está configurado para se conectar ao localhost na porta 3000. As configurações do nosso servidor (que ainda está rodando) estão de acordo com essas especificações.

Você pode digitar qualquer usuário e senha e tentar uma conexão. Porém, como o nosso servidor até agora só imprime uma mensagem indicando um login e retorna um handle null, algumas mensagens de erro serão impressas no terminal.

Para encerrar o servidor, clique com o botão direito em Project Snowman Server, vá em Personalizar e clique em Stop.

Lembre-se: o servidor do Darkstar tem alta persistência, o que significa que caso o servidor seja desligado (como fizemos acima) ou sofrer algum tipo de pane, todos os estados atuais serão retidos e reiniciados da próxima vez que o servidor rodar.

Você pode verificar isso repetindo os passos acima e iniciando novamente o servidor. Desta vez, o AppListener será reiniado a partir dos dados já existentes, e nossa mensagem de boas vindas não será mais exibida.

Caso queira inicar o servidor a partir de seu estado inical, apenas limpe o Project Snowman Server antes de executá-lo novamente.

Nos próximo post, iniciaremos a comunicação entre servidor e cliente.

Segunda-feira Jul 20, 2009

Tutorial Projeto Darkstar (parte I)

Durante os próximos dias eu farei aqui no blog uma série de posts baseados no Hands On Lab do JavaOne que abordou o Projeto Darkstar. Nestes posts, vou mostrar um passo-a-passo de como instalar e configurar servidor e cliente e vou também rodar algumas aplicações.

Para acompanhar os exemplos, será necessário que você esteja utilizando o Java SE platform 6, versão 1.6.0 ou mais recente. Nos exemplos mostrados aqui, serão usados o sistema operacional OpenSolaris, o Maven versão 2.0.9 (ou mais recente) e o Netbeans 6.7. Como utilizaremos o Netbeans 6.7, não será necessária a instalação do plugin para o Maven, pois o mesmo já está incluso na instalação padrão.


- Instalando o Maven

Caso você ainda não tenha o Maven instalado, acesse o link http://maven.apache.org/download.html e faça o download da versão mais recente.
Depois, extraia o conteúdo do arquivo baixado para uma pasta de sua escolha. Neste exemplo, ele foi extraído para /export/home/thiago/Java .
O próximo passo é configurar o Netbeans corretamente para que ele reconheça a versão do Maven baixada.
Para isso, clique no menu "Ferramentas" e depois em "Opções". Em "Miscelânia", selecione a aba "Maven" e inclua no campo "Início do Maven Externo" o endereço no qual você extraiu o Maven.

Além disso, baixe o repositório do Maven que vamos utilizar nos exemplos e inclua o endereço no campo "Repositório Local", como no exemplo abaixo:




- Baixando o Projeto Snowman

Uma das aplicações que iremos utilizar é o Projeto Snowman (veja o site do projeto), um jogo estilo "Bandeira". Segue o link dos arquivos que utilizaremos em nosso exemplo:


- Instalando o Servidor do Projeto Darkstar

Baixe o servidor em http://www.projectdarkstar.com/current-distribution.html

Aqui será utilizada a versão 0.9.10. A instalação não poderia ser mais simples: apenas extraia o arquivo baixado para uma pasta de sua preferência e o servidor já está pronto para ser utilizado. Após a extração, você terá o seguinte conteúdo:




O diretório bin possui os arquivos .jar necessários para iniciar (sgs-boot.jar) e encerrar (sgs-stop.jar) o servidor.
Você deverá incluir no diretório deploy os arquivos .jar das aplicações que serão utilizadas.

Ok, vamos agora fazer nosso primeiro teste. Copie o arquivo tutorial.jar contido no diretório tutorial para o diretório deploy e execute o comando:

java -jar bin/sgs-boot.jar

A saída deve ser algo como:




Para encerrar o servidor, abra um novo terminal, aceda à pasta do servidor e digite:

java -jar bin/sgs-stop.jar

(Embora um bom e velho Ctrl-C já resolva)

No próximo post da série começaremos a utilizar o Projeto Snowman no Netbeans.

Até mais!

Domingo Jun 14, 2009

Evento O CT quer você!

This blog post is available in English here.

Mais em evento que participei na semana passada foi o chamado O CT quer você, que é organizado pelo Centro de Tecnologia da Universidade Federal do Ceará e tem como intuito a apresentação dos cursos do centro (engenharias e arquitetura e urbanismo) para os estudantes das escolas mais bem colocadas no ENEM que têm interesse em prestar vestibular para a área.

À convite do coordenador do meu curso (Engenharia de Teleinformática), falei sobre o programa embaixadores de campus da Sun aos interessados em nosso curso. Estimo que o evento contou com mais de 500 participantes.

Algumas fotos do evento:

No próximo post falo de mais um evento que participei semana passada, o último da sequência.

Até a próxima!

Terça-feira Jun 09, 2009

Semana de Tecnologia na Faculdade Christus

This post is available in english here.

Semana passada participei de três eventos e vou postar detalhes sobre cada um deles durante essa semana aqui no blog.

Um deles foi a semana de tecnologia da Faculdade Christus. À convite do professor Adail Nunes e por intermédio do Hermínio, que participou do Café com Tapioca comigo em Sobral e é aluno da Christus, fiz uma apresentação do OSUM, falei sobre os cursos gratuitos oferecidos pelo SAI e sobre cada uma das certificações oferecidas com desconto pelo programa.

A Faculdade Christus já possuía um grupo no OSUM, criado por iniciativa do próprio Hermínio, e agora já conta com mais alguns membros.

Abaixo algumas fotos do evento:

Em breve detalhes sobre os outros eventos. Até mais!

Segunda-feira Jun 08, 2009

JavaFX Blogging Contest

This post is available in english here.

No último dia 2 deu-se início a mais um concurso envolvendo JavaFx. Apesar de dessa vez os prêmios serem mais modestos (o anterior pagava U$25.000 ao vencedor), este é mais simples de participar. Veja como funciona:

Você baixa do novo JavaFx 1.2 (baixe aqui), confere as novidades envolvendo a nova versão e bloga sobre sua experiência. Os 10 primeiros colocados receberão um prêmio de U$500, e haverá mais cinquenta prêmios de U$20 em gift certificates do Amazon.

Os critérios que serão utilizados na seleção são: originalidade, utilidade, capacidade de atrair outros usuários de JavaFx, clareza, maneira como as ferramentas são demonstradas e a capacidade do blog em melhorar qualquer aspecto do JavaFx.

Após criar seu post, visite este link e preencha o formulário para participar. Você pode preenchê-lo até o dia 3 de julho.

Pronto, agora é só aguardar  resultado, que deverá sair na última semana do mês de julho.

Confira o site oficial do concurso para maiores informações. Lá você econtra todas as regras para participar (leia com atenção!).

É isso, boa sorte e até a próxima!

Segunda-feira Jun 01, 2009

Nova versão do OpenSolaris disponível!

This post is available in English here.

A nova versão do OpenSolaris foi lançada agora há pouco no Community One e já está disponível para download em seu site oficial (veja aqui). A nova versão é entitulada 2009.06 e vem com uma série de novidades. Entre elas está o suporte a plataformas SPARC, inclusão do Projeto Crossbow, aprimoramentos no ZFS e um JavaFx SDK! Aliás, o JavaFx agora está disponível em vários sistemas operacionais. Veja o vídeo da entrevista com o Stephen Hahn, engenheiro da equipe de desenvolvimento do OpenSolaris, onde ele fala sobre algumas novidades desta nova versão:


Terça-feira Mai 26, 2009

Café com Tapioca em Sobral

If you want to see this post in English, click here.

No último sábado foi realizado mais um Café com Tapioca, evento tradicional realizado mensalmente pelo grupo de usuários de Java do Ceará (CEJUG), desta vez no campus da Universidade Federal do Ceará (UFC) localizado na cidade de Sobral.

O evento contou com palestras sobre Java e como funcionam os JUGs, software Open Source, apresentação do Open Source University Meetup (OSUM) e do Sun Academic Initiative (SAI), ferramentas de ensino BlueJ e Greenfoot, e uma visão geral de Ruby e do framework Rails.

Foram realizados também minicursos de JavaFX, Ruby e programação concorrente em Java; todos realizados no período da tarde.

Algumas fotos do evento:

Abertura do evento

Palestra sobre o CEJUG e Java

Apresentação do OSUM e do SAI

Coffee Break

Palestra sobre BlueJ e Greenfoot

Palestra sobre Ruby e framework Rails

Minucurso de JavaFX

Quero registrar meus sinceros agradecimentos a todos os organizadores do evento, em especial ao professor Iális Cavalcante, que nos recepcionou em Sobral e cuidou de detalhes como nossa hospedagem, almoço e deslocamento. Foi um evento excelente!

Até a próxima!

Replays do JavaOne no OSUM

Se você perdeu alguma sessão dos Hands On Labs do JavaOne que foram transmitidos pelo OSUM na semana passada, assista aos replays de todas as sessões no link abaixo:

http://osum.sun.com/notes/OSUM_Webinar_Replays

Siga os passos descritos no último post para baixar os arquivos necessários para cada Lab.

Bons estudos!

About

Thiago Sá é estudante de graduação de Engenharia de Teleinformática na Universidade Federal do Ceará e atualmente exerce a função de Embaixador de Campus da Sun Microsystems em Fortaleza, CE.

Search

Archives
« Abril 2014
SegTerQuaQuiSexSábDom
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
    
       
Today