java


Olá pessoal acontecerá dias 11 e 12 de Dezembro (terça e quarta da próxima semana) no CEFET-SE o primeiro encontro de software livre do CEFET-SE. Estão todos convidados a participar das oficinas e palestras. A entrada é GRATUITA (FREE as in Free Beer) Bastando apenas se inscrever no site : http://ecsl.linux-se.org.br/

O evento é apoiado pelo Linux-SE (www.linux-se.org.br) e eu estarei com os amigos do Linux-SE dando palestras lá. A minha palestra será sobre programação para celulares com Java.

O Netbeans 6.0 final saiu hoje vamos ver se dá tempo de preparar algo no novo Netbeans, para mostrar lá.

Update: Acabei de saber que o evento foi cancelado acessem o site do evento para mais informações.

Olá como prometido aqui vão os slides da minha palestra: “Usando o Netbeans e Java para desenvolvimento de aplicações para celulares em um ambiente livre”

Palestra J2ME Netbeans 5.5

Essa palestra tem pouco texto e mais imagens mas no final tem um passo a passo da instalação e criação do primeiro Hello World usando o Netbeans 5.5

Já estão abertas as inscrições para o II Encontro Nordestino de Software Livre – ENSL, que será realizado de 28 a 30 de setembro de 2007, no Centro de Convenções de Sergipe, em Aracaju, SE, Brasil. Até o dia 31 de agosto o valor da inscrição para estudante, é de R$ 40,00 e profissional, R$60,00. Aproveite o desconto e inscreva-se antecipadamente.

Vários palestrantes já confirmados, alguns internacionais, como o Nathan Wilson, que é o responsável na DreamWorks Studio pela transição dos sistemas para o Linux e para o GNOME, utilizados na produção de filmes como: “O Príncipe do Egito”, “Madagascar”, “Shrek 2″, “Shrek Terceiro”, dentre outros. Teremos também a presença de Henri Bergius responsável pelo projeto Midgard, e tambem grandes nomes nacionais como Rubens Queiroz, Júlio Neves, Sergio Amadeu, entre outros.

Em sua primeira edição, na cidade de João Pessoa – PB, o ENSL contou com 1932 inscritos e um total de 42 palestras, então não fique de fora, acesse o site http://www.ensl.org.br e inscreva-se.

Olá pessoal hoje tem mais Java Micro Edtion com título grande. Aqui segue um exemplo de como acessar os arquivos existentes no celular. Muitos celulares hoje tem capacidade de aramazenamento de vários Megabytes e com os cartões de memória SD chegando aos GigaBytes, então segue um exemplo de como ver o conteúdo do sistema de arquivos do aparelho.

Este exemplo exibe a lista de drives existentes no dispositivo. O comando listar exibe os arquivos e diretórios dentro do drive selecionado, Não tem navegação para voltar ou para entrar em outras pastas, afinal é só um exemplo.

Fiquem a vontade para estudar o exemplo e implementar o seu gerenciador de arquivos no celular.

No emulador da Sun pede autorização para listar os drives, no celular siemens pede autorização apenas na hora de acessar os arquivos.

Pra variar peguem o exemplo em: Exemplo Java File System

Testado no emulador da Sun e no Siemens SL75

Eita que o título ficou longo viu? Diga aí se não parece título de monografia? Mas não dava pra colocar “J2ME : Exemplo usando RMS” ninguém entenderia não é?
Bom pessoal, mas esse é um exemplo simples de como se pode gravar dados em uma aplicação JavaME.
Neste exemplo temos duas caixas de texto uma para informar o nome e outra para informar um telefone:

Então você três comandos na tela:

Gravar - Adivinha? Grava os dados exibidos na tela para o RMS Limpar - Esse você acerta! Chuta! É evidentemente apaga o banco de dados RMS atua
Sair - Cai fora sem fazer nada

Detalhe interessante nessa implementação é que eu estou usando o ByteArrayInputStream e ByteArrayOutputStream para realizar a gravação dos dados no RMS.Observe que para usar estes dois também uso DataInputStream e DataOutputStream para poder usar métodos mais amigáveis como o writeUTF() ao invés de ter que lidar com o tamanho de cada campo os DataInputStream fazem isso pra mim.

Abaixo tem o trecho de código que faz isso:

ByteArrayOutputStream dados;//array onde ficará o registro
dados = new ByteArrayOutputStream();//interface de gravação de dados no array
//ajuda a trabalhar mais facilmente com o byteArrayDataOutputStream
gravador = new DataOutputStream(dados);
try {
gravador.writeUTF(nome);
gravador.writeUTF(fone);
gravador.flush();
} catch (IOException ex) {
ex.printStackTrace();
rs.closeRecordStore();
return false;
}
//gravando o registro no RMS
rs.setRecord(id,dados.toByteArray(),0,dados.size());
rs.closeRecordStore();

Para baixar o exemplo clique em Exemplo Java ME Record Management System está compactado em formato zip e é um projeto do Netbeans dê uma olhada na pasta dist/docs para maiores explicações do código.

Obs.: esse código foi testado no emulador da Sun e nos celulares Motorola V360 e Siemens SL75, acredito que deverá funcionar em qualquer dispositivo com suporte a JavaME, mas se você encontrar dificuldades avise aí pelos comentários.Opa! agradecimento ao meu brother Timeu por liberar o Motorola V360 dele como cobaia hihihih aí vai o link pro blog sobre photoshop dele que ele não atualiza desde janeiro! , e Tércio por liberar o Siemens SL75 dele.

É aí está a primeira versão da monografia entitulada “DESENVOLVIMENTO DE APLICAÇÕES PARA SISTEMAS EMBUTIDOS: UM ESTUDO DA PLATAFORMA J2ME. E na verdade é um teste de post através do box.net hhiihih.

Geral.pdf

Aqui você verá uma descrição breve da teoria envolvida no funcionamento das Remote method Invocation do JAVA definidos no pacto java.rmi. No próximo artigo enviarei um exemplo simples Ok? Vamos lá.

Resumo
Este artigo trata do pacote java.rmi da API Java que define classes e métodos para acesso a objetos distribuídos. Aqui estão uma descrição breve da API e os métodos mais comuns, além da descrição dos aspectos teóricos envolvidos no acesso remoto a objetos em JAVA.

1. Introdução
O pacote RMI está disponível no JDK (Java development kit) desde a versão 1.1 o formato como os objetos são acessados a partir de aplicações locais é semelhante ao formato usado pela arquitetura CORBA a Ilustração 1 representa o formato usado pelas requisições RMI.

Para que os objetos possam se comunicar usando o pacote RMI é necessário definir uma interface que estenda a interface Remote, assim o objeto que deseja ser executado e acessado remotamente deve implementar essa interface.

Segue o exemplo de uma definição da interface Remote:

Assim basta que a classe que tem a implementação dos métodos implemente esta interface para que esteja disponível para ser chamada remotamente.

2. Arquitetura RMI
A arquitetura RMI é composta das classes e interfaces de acesso a métodos remotos, o funcionamento interno deste recurso é possível graças a dois mecanismos Stubs e Skeletons. Iremos definir estes mecanismos neste item.

Um Stub fica localizado localmente e para o objeto que acessa métodos remotos age como o
objeto remoto, ele implementa a mesma interface antes publicada e registrada no servidor RMI. A função do Stub é portanto, encapsular uma série de operação necessárias ao acesso a objetos
remotos.

As atividades deste mecanismo estão descritas a seguir:
● Iniciar a conexão com a máquina virtual Java remotamente;
● Serializar e transmitir os objetos para a máquina virtual remota;
● Aguardar o resultado à chamada do método remoto;
● Desserializar os objetos ou exceções recebidos pela requisição;
● Retornar o valor ao objeto que o pediu.

Já no lado do servidor onde os objetos remotos estão sendo armazenados a forma de tratar as
chamadas remotas é utilizando um Skeleton. Este Skeleton assim como no Stub é responsável por encapsular a série de atividades necessárias para a decodificação, execução e o envio dos resultados de uma chamada.

As atividades executadas pelo Skeleton são as seguintes:
● Desserializar os objetos da requisição atual;
● Invocar o método do objeto correspondente;
● Serializar e enviar o resultado do método como resposta.

A partir da versão 2 do Java um novo protocolo de comunicação foi escrito de modo que as
ações executadas pelo Skeleton agora são executadas por um código genérico, assim não é necessário criar uma classe Skeleton.

3. Um Exemplo simples

Aguarde o próximo capítulo… ;)