segunda-feira, 26 de julho de 2010

Final Round


...O desafio...

Desenvolver uma aplicação em java que rode através de um webserver, em que esta apresente a previsão do tempo referente a uma semana. A previsão do tempo será escolhida pelo usuário, que deverá escolher entre Viamão, Gravataí ou Porto Alegre.

...Tarefa final...

Como tudo bom na vida, aqui também temos dificuldades e desafios para transpor, para que possamos aprender e dar valor ao que temos e vivemos, e agora e está é a hora, hora de transpor a ultima barreira no treinamento para seleção Jovens Talentos, e infelizmente não consegui terminar esta tarefa.
Mas mesmo não conseguindo Finalizar a tarefa final, tenho muito o que me orgulhar de ter chegado até aqui, até este momento, onde posso refletir sobre essa semana, sobre o que eu aprendi, sobre tecnologia, sobre questões de empresa, mas principalmente, sobre pessoas, escolhas, desafios e como encarar cada desafio de uma vez.
De que cada pessoa tem uma reação e essa reação deve ser vista, assimilada e respeitada, e de que a transparência em nossas ações de fato é vista pelas pessoas e de certa forma sempre é recompensads, e com certeza a maior recompensa que um homem pode receber é o respeito.

Muito Obrigado Ilegra...pela oportunidade...

Muito Obrigado Diego...pelo conhecimento...pela semana de superação e diversão...

Muito Obrigado Colegas...pelo conhecimento compartilhado...pela parceria...e por dividir este momento especial tanto de crescimento profissional, como Pessoa...




Segue abaixo o código inacabado da tarefa final:

http://www.4shared.com/file/P20asJKV/TrabalhoFinal.html


sexta-feira, 23 de julho de 2010

Dia de treinamento (quinta-feira) - Estamos quse lá...

A quinta-feira...

Mais um dia construtivo e divertido de treinamento, em que gerou bons frutos e alguns homeWorks...



Apresentações de Slide sobre o programa Criado para Exercicio 3 bloco 2:

http://www.4shared.com/document/TCQn-BP6/Projeto_SiCIE.html

Arquivo jar com os Exercicios da aula:
- Exercicio 3 do bloco 1
- Exercicio 3 e 2 do bloco 2

http://www.4shared.com/get/7dOFk6TD/EntregasQuinta.html

fontes e manual do programa criado para o Exercicio 3 do bloco 2 :

http://www.4shared.com/file/fGmsLGAe/JovensTalentos5a.html
A quinta-feira...

Mais um dia construtivo e divertido de treinamento, em que gerou bons frutos e alguns homeWorks...


Apresentações de Slide sobre o programa Criado para Exercicio 3 bloco 2:

http://www.4shared.com/document/TCQn-BP6/Projeto_SiCIE.html


Arquivo jar com os Exercicios da aula: - Exercicio 3 do bloco 1 - Exercicio 3 e 2 do bloco 2

http://www.4shared.com/get/7dOFk6TD/EntregasQuinta.html


fontes e manual do programa criado para o Exercicio 3 do bloco 2 :

http://www.4shared.com/file/fGmsLGAe/JovensTalentos5a.html

Muito Obrigado...\o/

quinta-feira, 22 de julho de 2010

Gerenciamento de memória e garbage Collector

O gerencimaneto de memória

Podemos definir o gerenciamento de memória como um conjunto de algoritmos que gerenciam a memória de forma que esta seja utilizada da melhor forma possível, permitindo que todos os programas executados tenham a quantidade de memória necessária para a sua perfeita execução. Antigamente ao se desenvolver sistemas os programadores eram obrigados a programar pensando neste gerenciamento, na alocação e liberação da memória manualmente, o que dificultava o desenvolvimento de softwares de qualidade e acabava gerando muitos erros. Felizmente na maioria das plataformas de desenvolvimento atuais temos este gerenciamento automático, fazendo com que o programador não precise se preocupar com isso, mas sim com fatores mais importantes, como questões mais especificas sistema a ser desenvolvido.



O gerenciamento de memória em Java(JVM) - garbage Collector


Na JVM o Garbage Collector(GC) é um dos principais componentes, pois ele faz a liberação de memória que não esta sendo utilizada.
Quando a aplicação libera as referências para algum objeto, esse objeto passa a ser considerado
lixo e poderá ser coletado pelo GC a qualquer momento. Mas não conseguimos determinar o momento em que essa coleta irá ocorrer, isso depende totalmente do algoritmo do garbage collector. E em geral, o GC não fará coletas para cada objeto liberado: ele
vai deixar o lixo acumular um pouco para fazer coletas maiores, de maneira a otimizar
o tempo gasto. Isso é inclusive considerado muito melhor em performance e não fragmentação da memória que um programa que faz gerenciamento manual de memória e acaba liberando os espaços assim que ficam disponíveis.
Esta coleta é feita de tempos em tempos coletando vários de uma vez. Normalmente,
a primeira ideia que aparece ao se pensar em GC, é que ele fica varrendo a memória de
tempos em tempos e libera aqueles objetos que estão sem referência. Um pensamento
desse tipo é a base de um algoritmo famoso de GC chamado de Mark-And-Sweep. Esse algoritmo é constituído de duas fases: na primeira, o GC percorre a memória
e marca todos os objetos acessíveis; na segunda, ele varre novamente a memória coletando os objetos não marcados.

Existem uma série de algoritmos que o Garbage Collector utiliza, e alguns que podem ser utilizados especificamente com aplicações utilizando threads entre outras aplicação. Para maiores detalhes, segue abaixo alguns links, que serviram de base para esta muito breve explicação.

Link com a Comparação de Estratégias de Alocação de Memória:
http://www.ibm.com/developerworks/br/library/l-memory/

PDF que explica um pouco mais afundo o Garbage Collector e o gerenciamento de memória
Gerenciamento_de_memoria_nao_e_Simples.PDF

Um breve ensaio sobre herança e Polimorfimos

Exercicio:

//package com.ilegra.jt3ed.class2.Automovel;

//public abstract class Automovel {
//////public abstract String andar();
//////public abstract int getVelocidade();
}

////////////////////////////////////////////////////
package com.ilegra.jt3ed.class2.Automovel;

//public class Carro extends Automovel {
/////private int velocidade;
/////public Carro(int velocidade) {
///////this.velocidade = velocidade;
//////}

/////@Override
/////public String andar() {
///////return "Vrummm ... Vrumm";
/////}

/////public int getVelocidade() {
///////return velocidade;
/////}

/////public void setVelocidade(int velocidade) {
///////this.velocidade = velocidade;
/////}
//}

////////////////////////////////////////////////
//package com.ilegra.jt3ed.class2.Automovel;



//public class Moto extends Automovel {
/////private int velocidade;
/////public Moto(int velocidade) {
///////this.velocidade = velocidade;
//}

/////public int getVelocidade() {
///////return velocidade;
/////}



/////public void setVelocidade(int velocidade) {
///////this.velocidade = velocidade;
/////}

/////@Override
/////public String andar() {
///////return "Brééé ... Brééé";
/////}
//}


//////////////////////////////////////////////

//package com.ilegra.jt3ed.class2.Automovel;

//public class ControleVelocidade {
/////private Automovel auto[];

/////public ControleVelocidade() {
///////auto = new Automovel[3];
/////}

//comentario - usar java.util.Arrays.sort();


/////public String automovelMaisRapido() {
///////Automovel aux = null;
///////for(int i = 0; i < 3; i++) {
//////////if(auto[i].getVelocidade() > auto[i+1].getVelocidade()) {
/////////////aux = auto[i];
//////////}
//////////else {
//////////////aux = auto[i+1];
//////////}
////////}
///////return aux.andar();
/////}
//}


//////////////////////////////////////////////////////////////

//package com.ilegra.jt3ed.class2.Automovel;

//public class App {
/////public static void main(String[] args) {
///////Automovel auto = new Carro();
///////Automovel auto1 = new Moto();
///////auto.andar();
///////auto1.andar();
/////}
//}

quarta-feira, 21 de julho de 2010

Sockets

O que é um Socket?

Socket é uma interface de comunicação bidirecional entre processos através de uma rede de computadores .Essa mesma interface permite que essa comunicação utilize diversas famílias de protocolos (Unix domain , Internet domain , Xerox NS domain ).

Sockets são representados como descritores de arquivos e podem permitir a comunicação entre processos distintos na mesma máquina ou em máquinas distintas, através de uma rede. Os sockets são a base da comunicação em redes TCP/IP e também são muito usados em comunicações entre processos no interior de um mesmo computador. Essa comunicação é baseada no paradigma cliente–servidor .

Fonte: http://sites.google.com/site/thaisparmera/socket


Exemplo de Socket em java:


//cliente

//package com.ilegra.jt3ed.class2.socketclient;
//import java.io.*;
//import java.net.*;
/**
*
* @author Israel
*/
//public class Main {
////public static void main(String[] args) throws IOException {
////////Socket client = new Socket("localhost",2000);
////////DataOutputStream out = new DataOutputStream(client.getOutputStream());
////////out.writeUTF("Ola");
////////out.close();
////////client.close();
////}
//}


//servidor

//package com.ilegra.jt3ed.class2.socketserver;
//import java.io.*;
//import java.net.*;
/**
*
* @author israel
*/
//public class Main {
////public static void main(String[] args) throws IOException {
////////ServerSocket serverSocket = new ServerSocket(2000);
////////Socket socket = serverSocket.accept();
////////DataInputStream in = new DataInputStream(socket.getInputStream());
////////String s = in.readUTF();
////////System.out.println(s);
////////in.close();
////////serverSocket.close();
////}
//}

Fonte:
www.sumersoft.com/publicacoes/SocketsEmJAVA.pdf


segunda-feira, 19 de julho de 2010

Dia de Treinamento

- primeiro dia de treinamento Ilegra Jovens talentos - desenvolvedor Java



Home work


5 pontos positivos meus:

- Gosto muito de trabalhar em equipe, gosto de saber como as pessoas agem em certas circunstancias e aprender a lidar com elas da forma mais adequada.
- Gosto de ter desafios
- Gosto muito de aprender coisas novas.
- Consigo buscar motivação em coisas pequenas do dia a dia.
- Acredito que a criatividade deve ser instigada em varios aspectos da vida, e busco isso em mim e onde eu vivo, observando as coisas e pessoas, buscando absorver sempre o melhor das coisas.

5 pontos negativos meus:

- As vezes sou Ansioso.
- Algumas vezes sou exigente demais comigo.
- Sou um tanto sonhador em relação a projeto pessoais.
- As vezes sou persistente demais quando eu acredito estar fazendo a coisa correta.
- Não gosto de marasmo e com isso a rotina as vezes pode me encomodar, para isso normalmente eu busco pequenos detalhes no dia que possam me tirar por alguns instantes da rotina.

Porque devo trabalhar na Ilegra?

Acredito que eu tenho o perfil do novo profissional da TI, alguém que gosta da área técnica, conhece e trabalha bem na parte técnica, mas também trabalha e sabe lidar com pessoas, alguém que tem a devida noção de que seu softwares são desenvolvidos por pessoas para pessoas. Pois tenho um perfil empreendedor , não tenho medo de encarar desafios e viver coisas novas, e que desenvolver software não precisa ser algo massante, mas sim uma atividade séria que pode executada de uma forma que os desenvolvedores sintam prazer em fazer seu trabalho.


Muito Obrigado.