segunda-feira, 26 de julho de 2010

Trabalho Final - Previsão do Tempo

Bom, chegamos ao trabalho final que era montar um sistema WEB em Java que gera aleatoriamente os climas (Sol, Chuva, Neblina, Neve, 2012) de segunda até sexta e caso gerasse 2012, os proximos dias não irão aparecer.

Abaixo seguem uma apresentação no slideshare do codigo/tela final:



O trabalho foi muito interessante de fazer porque muda bastante a questão de trabalhar em cima da WEB e me agradou bastante como funcionam as coisas. Tive alguns problemas pra conseguir instalar o Jetty (servidor HTTP e Servlet Container) pois não sabia de algumas incompatibilidade das versões com o plugin do Eclipse.
Fiquei bastante tempo tentando descobrir a causa de uns picos de memoria do java.exe, e depois de quase um dia descobri que existem uns problemas com a classe Random() utilizando o Jetty (e também o TomCat no NetBeans) e até a Math.random(), que ambas são para gerar numeros aleatórios, dão algum conflito que ainda não consegui concluir se tem alguma relação com o Windows 7 ou alguma outra coisa.
Consegui criar uma lógica para gerar os dados aleatórios e com os valores pré-definidos de temperatura máxima e mínima para cada clima diretamente nas classes pois o Diego nos chamou bastante atenção durante o treinamento sobre a questão do encapsulamento, então fui progredindo com o código mais sujo e procurando encontrar formas de 'esconder' dados de quem não precisaria saber, digamos assim, dentro do programa.
Depois de o sistema estar funcionando bem, procurei focar bastante na parte visual, pesquisei bastante sobre CSS e peguei alguns modelos na net para conseguir criar o resultado final.
Os links para o projeto zipado, screenshots e o PDF com os slides do slideshare estão abaixo (todos iguais mas em hosts diferentes):

Agradeço primeiramente ao Diego por todo conhecimento compartilhado, também a todos da ilegra com quem tive contato e a todos os colegas.
E espero poder fazer parte dessa equipe :)
Grande abraço!!


sexta-feira, 23 de julho de 2010

Collections

Hoje (ontem hehehe) aprendemos um pouco de List, Set, Queue e Map das Collections. Também um pouco sobre as Exceções.
Foi muito produtiva a aula mas ficaram alguns exercicios pendentes e foi solicitado uma apresentação de slides para os grupos.

O meu grupo nesse trabalho foi:
Rodrigo PRATES
Rodrigo Dobler
Anderson Ferreira

Segue abaixo a apresentação:


Caso queira baixar código fonte das aplicações e/ou a apresentação seguem os links:
http://www.megaupload.com/?d=364RYT3Y - Código Fonte JAVA dos Exercícios
http://www.megaupload.com/?d=J98GNXAZ - Apresentação do PowerPoint

Se algum link quebrar, deixa um comentário no post :o)

Grande abraço!

quinta-feira, 22 de julho de 2010

O que é e para que serve o Garbage Collector?

Vamos imaginar uma sala bem grande, onde nela possuem diversas prateleiras e locais para se guardarem malas de diferentes tamanhos e tipos.

Essas malas possuem uma etiqueta, que indica o seu respectivo local de origem.

Em qualquer momento essas etiquetas podem ser retiradas e serem colocadas outras em seu lugar ou, como freqüentemente ocorre, as malas ficarem sem etiqueta.

De tempos em tempos, um homem de boné laranja vai até essa sala e recolhe as malas que não possuem suas respectivas etiquetas, para liberar o espaço dessa sala aonde novas malas poderão chegar.



Garbage Collector no Java, faz o papel desse homem de boné laranja citado acima. Ele é exatamente isso, o Coletor de Lixo que cuida da memória. Verifica os espaços de memória sem referencia e os limpa para um melhor aproveitamento. Ele faz tudo isso sozinho e não precisamos nos preocupar com essa tarefa.

Também podemos chamar manualmente o Coletor de Lixo através do método System.gc(), mas isso não significa que ele fará a coleta. Seria mais como um pedido do tipo “Por favor, seu lixeiro, quando tiver um tempinho, faça essa limpeza para mim.”

quarta-feira, 21 de julho de 2010

O que são Sockets?

Socket é um mecanismo que possibilita a comunicação entre aplicativos, criando um canal de conexão entre eles.

Existe também a forma de utilizar sockets sem conexão, que ocorre sobre o protocolo UDP (Protocolo de Datagrama de Usuarios).

O processo em que acontece conexão ocorre sobre o protocolo TCP (Protocolo de Controle de Transmissão) e funciona da seguinte forma:

O Servidor define uma porta, e aguarda conexões nessa porta.

O Cliente (que deve saber o host e a porta do servidor) solicita uma conexão com esse Servidor. Se não acontecer nenhum problema, o Servidor aceita esta conexão e cria um canal de comunicação entre Cliente/Servidor, esse canal é chamado socket.

No modo em que não há conexão, o Datagrama possui todas as informações necessárias para a comunicação entre dois sockets. Nesse modo, não é preciso se conectar a um socket destino. Ele precisa somente enviar o Datagrama mesmo sem garantir que ele seja entregue.

Agora iremos implementar um exemplo de sockets na linguagem Java, através de uma conexão entre Cliente/Servidor. O Servidor aguarda conexões e o Cliente se conecta através da porta 1234 e envia uma mensagem para o Servidor contendo a mensagem “Olá”.




Linha 13 ele declara o ServerSocket

14 - declara o Socket de Comunicação e linha 15 o Leitor Para Entrada de Dados

18 - Inicializa o ServerSocket passando como parâmetro a porta do Servidor

21 - O metodo accept() aguarda por uma conexão e só continua quando receber uma. O método retorna um socket na qual é atribuído ao Socket de Comunicação do Servidor

24 - cria um leitor de dados baseado no canal de entradas do socket e depois na linha 26, lê e imprime a linha com a mensagem enviada pelo Cliente

33 e 34 - fecha o Socket de Comunicação e o socket Servidor


Linha 11 declara o socket Cliente

12 - declara a stream de saída de dados

15 - conecta ao Servidor indicando o host e a porta

17 - cria a stream para poder imprimir dados para o canal de saída do socket

18 - passa o texto que será enviado através do socket para o Servidor. (converte para o formato de envio)

25 - fecha o socket Cliente



Segue abaixo o link para o código fonte das duas classes e as duas imagens do post:
http://www.filefactory.com/file/b353g33/n/RodrigoPrates-Sockets-JT.zip
http://www.easy-share.com/1911399442/RodrigoPrates-Sockets-JT.zip

terça-feira, 20 de julho de 2010

Pontos Positivos e Negativos

Ponto Fortes

Tenho foco, gosto de terminar o que comecei

Procuro me empenhar da melhor forma possível para atingir meus objetivos

Me adapto com facilidade

Gosto de ouvir opiniões diferentes, compartilhar conhecimento

Sou otimista, procuro ver as situações sempre de uma forma positiva


A Melhorar

Sou um pouco ansioso, às vezes quero tudo pronto antes do tempo

Muitas vezes detalhista em coisas que não precisariam de muita atenção imediata

Um pouco tímido
As vezes não consigo falar e expressar idéias em público da forma que gostaria
Não sei expressar sobre meus pontos negativos

Por que mereço trabalhar na ilegra?

A proposta do programa Jovens Talentos atrai por selecionar candidatos com pouca experiência, demonstrando o interesse da ilegra em formar profissionais comprometidos, que buscam crescimento pessoal e profissional.


Sempre fui
muito focado em meus objetivos, procurando sempre me manter informado sobre a melhor forma de atingí-los. Acredito que sem um objetivo definido e gosto pelos desafios, não é possível descobrir e desenvolver o nosso verdadeiro potencial.


Vejo a oportunidade de trabalhar na
ilegra como uma forma de desenvolver esse potencial e, ao mesmo tempo, gerar resultados para a empresa.

A proposta me faz querer fazer
parte dessa equipe. Sei que estou pronto para esse novo desafio.