Blog

Série NZ:Processo Intercâmbio

nz 090

Hoje vou falar sobre o processo do intercambio e como foi que tudo ocorreu. Primeiro ponto de que o intercambista  precisa é saber para onde ele quer ir e pq ir?! Planeje, descubra o motivo de sua viagem e o qual pais está mais próximo do que vc pretende, e tb  com o seu capital para investimento, não adianta querer ir para EUA se vc não tem o capital suficiente, não da viagem, mas a renda que o consulado e outros fatores que são exigidos para o visto. Um ponto  importante é que não adianta ter uma conta bancaria  gorda se sua renda mensal é pequena ,pois os consuls eles olham mais para renda aqui no pais e soma com o quanto vc tem na conta bancaria ambos são importante porem a renda mensal é o que vai definir se vc pode ou não ir para o país, antes de fazer qualquer contrato, estude as regras de aquisição de visto e traga para sua realidade. Mas o não é o cara que define, tem outro fator que não está nos requisitos e que é apenas especulação da população sem provas nenhuma. A questão de discriminação por região no país de origem, com base no numero de imigrantes que vão e não voltam. Concerteza os consulados sabem quem da região tal do país BZ está indo com objetivo que realmente este apresente e outros que estão dizendo que vão com objetivo X porem por trás é outro, ou seja, de ir  tentar ganhar a vida lá e ficar rico no país desenvolvido. Após todo esse preparado e analise, ai sim busque a agencia de intercambio e já passe pra ela seu objetivo e qual país pensou em ir e o por que, pergunte também opinião deles, com base no seu perfil e objetivo, assim eles podem ate formar um curso bem especifico e ti falar vá pra tal local que será melhor. Eu escolhi agencia Bil intercâmbios, por referencias da escola que idiomas aqui no Brasil e não me arrependi um minuto, realmente eles são excelentes desde atendimento ate o suporte, tudo dentro do prazo e ainda dão dicas em outros processos que não é de responsabilidades da agencia. Cuidou de todos os transmite e precisei fazer a menor parte mesmo e sem falar que tem um preço dentro do mercado e até mais em conta que algumas agencias de intercambio como STB(cito ela pq foi aonde pesquisei primeiramente por ser bem famosa). Eu faria outro intercambio com s Bil tranquilamente e aproveitando o espaço a minha atende de vendas que teve um atendimento excelente, paciência etc. foi a Fernanda Cristina. Fica ai minha indicação. É so falar que foi indicado e pedir um desconto quem sabe não pode rolar?! Agencia eles cuidaram de tudo, desde a familia, escola, curso, manuais importantes, passagem aérea com um valor mais em conta, facilidade de pagamento etc.  A bil de fato se preocupa com seus “estudante”  e não tem aquele relacionamento somente de vender o curso e vc que se vire. Eles estavam todo tempo preocupado que tipo de curso que eu queria e qual era meu perfil pra indicar qual melhor país e cidade.

Bom, vou ficando por aqui, pois vou escrever cada dia uma coisa, sobre o processo, uma vez que vou documentar desde pré-viagem ate durante a viagem so para documentar escrevi este ponto no vôo 3296 A320 da TAM. So um questionamento, a TAM ta precisando de um avião mais moderno hehe. Já peguei aeronaves melhores deles. Alias até dizem que tem novas aeronaves, mas devem ser poucas, porque já é o segundo vôo que pego deles, que são antigas.

Abraços, see you next post.

P.S:pessoal, nao tive tempo de revisar os erros de portugues. está sendo um sacrificio e grande fazer esses posts, mas tentarei manter vcs atualizados 😀

JPA com Hibernate + JSF + MySQL

olá Pessoal,

Neste post, vou mostrar como usar JPA para seus projetos JEE tendo como provider o nosso Hibernate e para o view usaremos JSF. Alguns adoram o TopLink da Oracle, eu tive serios problemas com ele na parte de config, e cansei de me stressar com coisas operacionais e mantenho meu querido Hibernate como provider.

Aplicação será bem simples, apenas cadastrar um cliente. Limitamos os dados do form, pois o objetivo é mostrar como criar um ambiente para development tendo JPA nos seus projetos. Já mostrei em outros posts, como criar um projeto JPA para Java Básico. Então, recebi alguns emails e para JEE?

Lets go…

Oportunidade Java:

Estamos disponibilizando uma vaga para desenvolvedor Senior Web
. Carga horária será de 8 horas diárias. Os requisitos técnicos para esta contratação são:

- Conhecimentos nas APIs: JSF, Hibernate;
- Conhecimentos nos patterns MVC, DAO, VO;
- Desejável conhecimento em RichFaces

Regime De trabalho é CLT. O salário será de 4.000 mais benefícios. 

Interessados enviar currículos para atendimento@leiria.com.br

Obrigado.

Posts relacionados

Requisitos

Iniciando

Na imagem a seguir você tem toda a estrutura do projeto, observe que já criei as bibliotecas para o projeto e estas foram adicionadas. Se não quiser adicioanr as bibliotecas ao projeto, copie os .jars para a pasta lib e pronto. Lembre-se que ao adicionar uma biblioteca ao projeto, o stupid Eclipse não copia os .jars para a pasta lib. (ao contrário do netbeans 🙂 ).

Não esqueça também de criar um schema e uma table no MySQL, aqui chamaremos de sistemas e clientes respectivamente.

estrutura

1.monte uma estrutura conforme a imagem acima.

Para os arquivos em .jsp e .xml tive que colocar no formato imagem. Infelizmente o plugin para code no wordpress, esse é estressante quando envolve xml, html etc. preciso ficar dando um espaco para cada par de < > senão ele bagunça todo código ou até converte para qualquer outra coisa. Já gastei 1 hora somente para tentar configurar isso. Em função disso, coloquei no formato img o code bem organizado. O lado bom, é que você poderá praticar sem dar ctrl + c e ctrl + v. 🙂

E como sempre boa parte das explanações estão dentro do code no formato de comentário, lado-lado para facilar a compreensão.

Desenvolvimento

2.primeiro passo é criar o bean e fazer as devidas anotações, então veja abaixo o nosso cliente bean como está:

package br.com.bean;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name="cliente")//caso o nome da tabela seja diferente informe aqui
public class Cliente {
	@Column(name="nome")
	private String nome;

	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	//anotação acima indica que o campo será gerado automaticamente pelo BD
	@Column(name="id")
	private int id;
	@Column(name="sobrenome")
	private String sobrenome;
	@Column(name="cidade")
	private String cidade; 

	public Cliente() {
		// TODO Auto-generated constructor stub
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getSobrenome() {
		return sobrenome;
	}

	public void setSobrenome(String sobrenome) {
		this.sobrenome = sobrenome;
	}

	public String getCidade() {
		return cidade;
	}

	public void setCidade(String cidade) {
		this.cidade = cidade;
	}

}

Agora vamos partir para criar o nosso DAO, que nele teremos a nossa fábrica de conexão. E poderiamos ter métodos genéricos como salvar, deletar, atualizar etc.Mas, não vamos implementar todos.

package br.com.dao;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

public class DAO {

	private EntityManagerFactory emf; 

	/* se vc já está acostumado com Hibernate
	 * a ideia é a mesma do método de fabrica que
	 * criamos para os Session que vem do SessionFactory
	 * Aqui temos apenas nomeclatura diferente, pense assim.
	 */
	public EntityManager getEntityManager(){

		//responsavel pela persistencia
		return emf.createEntityManager();
	}
	public DAO() {
		//chamo ele de reprodutor da instância
		emf = Persistence.createEntityManagerFactory("sistemas");

		/* o nome passado vem do arquivo persistence.xml que contém as configs
		 * para conexão com o BD.
		 */
	}}

Agora vamos criar a classe que vai fazer a persistencia com os dados do cliente. É a ClienteDAO.java esta classe extends a classe DAO, para conseguirmos pegar um objeto objeto EntityManager que é responsável pelas inclusões, exclusões e atualizações.

package br.com.dao;

import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.Query;

import br.com.bean.Cliente;

public class ClienteDAO extends DAO {

	public void salvar(Cliente cliente){
		//obtendo o EntityManager
		EntityManager em = getEntityManager();
		try{
			//inicia o processo de transacao
			em.getTransaction().begin();
			//faz a persistencia
			em.persist(cliente);
			//manda bala para o BD
			em.getTransaction().commit();
		}catch (Exception e) {
			//se der algo de errado vem parar aqui, onde eh cancelado
			em.getTransaction().rollback();
		}
	}

	public List exibir(){
		EntityManager em = getEntityManager();
		try{
			Query q = em.createQuery("select object(c) from Cliente as c");

		return q.getResultList();}
		finally{
			em.close();
		}
	}
}

Agora criaremos a classe ClienteController quer terá a responsabilidade de direcionar a comunicação do JSF e pegar o foi digitado no form e persistir.

package br.com.controller;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;
import br.com.bean.Cliente;
import br.com.dao.ClienteDAO;
public class ClienteController {
	private Cliente cliente;
	private DataModel model;
	public ClienteController() {
		cliente = new Cliente();
	}

	public Cliente getCliente() {
		return cliente;
	}
	public void setCliente(Cliente cliente) {
		this.cliente = cliente;
	}

	public String salvar(){
		ClienteDAO clientedao = new ClienteDAO();
			clientedao.salvar(cliente);
		return "salvar";
	}
	public DataModel getTodos(){
			ClienteDAO clientedao = new ClienteDAO();
			model = new ListDataModel(clientedao.exibir());
		return model;
	}
}

Vamos configurar o no velho e querido face-config.xml

faceconfigdesign

Criando arquivo persistence.xml

o arquivo que vamos precisar para conectar ao banco de dados, parecido como hibernate.cfg.xml, em respeito de ter a mesma função, conectar ao BD.

Observe o name da persistence-unit pois, eh ele que usamos no nosso DAO.java

persistence

Não esqueça que terá que criar um folder META-INF em JavaSource e colocar o persistence.xml neste folder e não coloca-lo dentro do META-INF de WebContent. Alguns programadores acabam confundido e dai recebe as velhas exceções e ficam stressado. Take care easy!

Criando as pages JSF

1.Agora criamos três páginas .jsp com JSF, uma será index que redireciona para cadastro.jsf e a outra é somente uma mensagem dizendo que foi cadastrado com sucesso.

Index.jsp

Coloque o código abaixo na página index.jsp

cadastrojsf

Testando

Mande executar seu projeto. Clique nele e vá em Run ==> Run as ==> Run on Server

  • Cadastre um cliente

E depois verifique se ele está realmente no BD. Veja abaixo meus prints:

testecad

testesucessocad

testemysqlcad

Pessoal, vou ficando por aqui, espero que tenham gostado do post, o objetivo era dar o “ABC Prático” de JPA com JEE usando o framework JSF.

Abracos, see you later.! 🙂

Despedida da IBM

Olá Pessoal,

Bem, como alguns já ficaram sabendo nos bastidores, estou deixando a IBM, após quase dois anos de trabalho na companhia, e onde em 2008 escrevi este post. Quem lembra? Hoje, venho postar que não faço mais do time IBMer, os motivos nao posso mencionar aqui, pois envolve desde pessoal,profissional e informacoes confidenciais do projeto que participei.Apesar de ter  surgido oportunidades para trabalhar em outros projetos na IBM, mas por agora optei em viajar e me desligar da empresa, uma vez que não poderia fazer os dois.

Acredito que em nossa vida, vivemos fases e cada uma tem uma missão para nós. E acredito que tive uma boa fase na empresa. Aprendi muito tanto na parte técnica, mas desenvolvi bastante algumas habilidades comportamentais, sendo assim não posso dizer que sou o mesmo profissional que era à 2 anos atras.

Adotei a cultura da empresa,aprimorei meu perfil profissional, aprendi novas regras corporativas. Enfim, foi uma experiência que recomendo à todos que tiverem uma oportunidade de trabalhar nessa empresa. No meu caso que fui para um projeto internacional, meu inglês teve um avanço bem significativo em todos os skills da lingua, comparado com o tempo que venho estudando (jan/2008).Uma vez que o inglês era full time e com os nativos, então o que eu via na escola de idiomas poderia ir colocando em pratica e cada dia descobria um ponto a ser melhorado que as vezes por falta de pratica nao conseguia identificar de imediato. Enfim, Work for IBM, it was very good!!. Mas, cada um tem seu objetivo profissional e temos que ir atras deles e uma coisa que aprendi é que : “podemos mudar o caminho, mas nao desistir dos  objetivos”.

Quem lembra na época que entrei na companhia estava no finalzinho da minha graduação(bacharelado) e foi um presente que acabei ganhando foi ir para uma empresa como a IBM. Fiz amigos tanto dentro da empresa, quanto fora através dos programas que participei como Embaixador do AI/Mentorização. E acredito que esse relacionamento vai se manter, mesmo não fazendo da equipe.

Sentirei falta e saudades dos momentos stressante do trabalho, já que trabalhava em um projeto internacional com pessoas de culturas diferentes e fisicamente longe(Canada, New York, India etc), as discussões, o controle da situação era tudo diferente de quando estamos com a equipe fisicamente perto.E saber lidar com essa situação nem sempre é uma tarefa fácil.

E as palestras pelo AI? E os mini-cursos? Pow, esses farão falta tb, abaixo limpando o note aqui, achei uns momentos legais. Hehe. Acho que foi um dos momentos mais legais que experimentei na minha vida profissional até hoje. Claro que não vou parar de palestrar, é so mandar o convite que estarei presente :).

Não posso deixar de agradecer aos amigos IBMer que sempre deram aquele apoio em vários momentos aonde a experiência deles que faziam toda diferença, que são eles: Juliano Martins(eng. De Soft), Josy Santos, José Damico, Miro(developer), Katia Pessanha (ex-gerente do AI), Cezar Taurion (Executivo), Ana Carolina (AI). Pessoal obrigado! Foi realmente um prazer ter trabalhado com vocês. Tem um amigo que entrou praticamente junto comigo e que sempre dar uma força de amigo, o Alberto Leal.

Sei que muitos vão perguntar para onde estou indo ne? Bem, o meu destino agora é esse. Ficarei algumas semanas, aprimorando meu inglês em um curso intensivo e tb as minhas queridas férias que venho tentando tirar desde 2005. Quando voltar eu conto pra vcs como foi o intercambio, acredito que quando estiver la, meu acesso à internet será quase zero. Primeiro que estarei bastante ocupado na escola com aula de manha/tarde e outras atividades.

Abracos!! see you next post.

P.S: Eu viajo nesta sexta-feira 20/08 (e so chego em NZ no domingo 22/08 pela manha) e a partir daí já deixei alguns posts programados aqui no blog, possivelmente não poderei responder os comentários, após esta data. Mas, podem enviar que assim que ficar ON, eu já respondo. Dia 21-22/09 estou chegando no Brasil.Mas, tentarei responder antes.

Palestras & Eventos AI IBM

ibmairh

ibmrhai2


simform

Sinform 001

Sinform 012

uesbai2

uesbai

uesbai3


Praticando JSF Facelets no Eclipse

olá Pessoal,

Nesse post vou mostrar como brincar com JSF no Eclipse criando uma simples aplicação usando JSF + facelets e armazenar os dados em um ArrayList. A ideia é mostrar o desenvolvimento simples e ágil com o framework sem Banco de Dados (já mostramos em outros posts como usar JSF + DB veja na categoria JSF).

Lets go…

Note: A versão do JSF que vamos usar aqui é a 1.2. Na versão 2.0 o uso de facelets é padrão. Mas, ainda não “instalei” a nova versão aqui.

Oportunidade Java

profissional desenvolvedor em Java, para um projeto do Banco Votorantim.
> Para adiantar, utilizamos:
> · Hibernate 3.2
> · jfreechart 1.0.12
> · spring 2.5
> · struts 1.3.9
> · quartz 1.6
> · dwr 1.59
> · displaytag 1.1.1
> · jasperreports 3.5.0..
> · Tomcat 6.0
> · Alguns relatórios estão desenvolvidos em iReports

enviar cv para:helio@wbctech.com.br

Requisitos:

  1. JSF + BD

  2. Configurando JSF no eclipse galileo

  3. Instalação TomCat 6.0

Passo 1

Crie um JSF Project.

Vamos criar o JavaBeans para essa aplicação. Que será chamada de Usuário. Portanto crie uma classe Java chamada Usuario dentro do package br.com.camilo. Veja:

package br.com.camilo;
public class Usuario {
	private String nome;
	private String email;
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
}

Passo 2

Agora precisamos criar um controlador que vai ter como objetivo salvar e exibir os dados.

 package br.com.camilo.controller;
import java.util.ArrayList;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;
import br.com.camilo.Usuario;
public class Controler {
	private Usuario user;
	/*lista de objetos do tipo Usuario, assim podemos acessar os atributos javabean   */
	private ArrayList lista = new ArrayList();
	public ArrayList getLista() {
		return lista;	}

	public void setLista(ArrayList lista) {
		this.lista = lista;
	}
	public Usuario getUser() {
		return user;
	}
	public void setUser(Usuario user) {
		this.user = user;
	}
public Controler(){
	user = new Usuario(); //cria um novo objeto
}

public void adicionar(Usuario us){
	lista.add(us);
}
public void remover(Usuario us){
	lista.remove(us);
}
public String salvar(){
		this.adicionar(user);
		FacesContext context = FacesContext.getCurrentInstance(); //criando uma instancia FacesContext
		FacesMessage message = new FacesMessage("Salvo com sucesso");
		context.addMessage(null, message);
		return "salvar";
	}
	public DataModel getExibir(){//retorna os elementos na lista
		return  new ListDataModel(lista);
	}
	//cria um novo objeto, quando o botao novo for chamado
	public String novo(){
		user = new Usuario();
		return "novo";
	}
	public String remover(){
		this.remover(user);
		FacesContext context = FacesContext.getCurrentInstance();
		FacesMessage message = new FacesMessage("Removido com sucesso");
		context.addMessage(null, message);
		return "remover";
	}
}

Passo 3

Criar o formulario e a pagina de resultado. Para isso crie uma arquivo chamado formemail.xhtml e outro no chamado de resultado.xhtml.

Deixe seu arquivo conforme o code abaixo:

Cadastro

Altere o arquivo resultado.xhtml:

Novo Cadastro Remover

Passo 5

Agora precisamos configurar o arquivo faces-web.xml. Abra o faces-web.xml no modo source e adicione o code abaixo:

passo 6

Agora vamos testar aplicação clique com o botao direito sobre o arquivo formemail.xhtml e escolha a opcao abaixo:

Na próxima tela vá no diretorio apache = => e escolha TomCat 6.0 e clique em finish. Aguarde o web browser dentro do eclipse abrir e teste aplicação. Veja alguns prints.

note: Esses plugins para wordpress tem hora que stressa e bagunça todo o code. Mas, estou deixando o projeto para download, aqui.

Valeu!Pessoal, Espero que tenham gostado. Até o próximo post.

Serie2: How to say…in english?

Olá Pessoal,

Pow, muito tempo sem postar nada sobre inglês, apesar de não ser especialista no idioma, mas estudo constatemente a lingua. E sempre gosto de estar aprendendo algo novo e aprimorando o máximo possível meus skills. E neste post vou dar continuidade uma série que dei um start, mas fiquei devendo a série 2.

Lets go…

Quem lembra desse post: Serie1: How to say….english? Lá vimos algumas expressões bem legais hoje vou apresentar mais algumas para você inserir no seu vocabulário, esqueça aquela ideia de querer ter listas longas e ficar memorizando, não são tão eficientes quanto parecem.

How to say…in english?

To Give a tip = dar gorjeta

  • I gave a tip the waiter

to drop by = dar um pulo na casa de alguém

  • I am going to drop by Frank’s later.

  • She dropped by Ivete’s yesterday.

once in a while = de vez em quando

  • once in a while, I watch TV with my girlfriend

  • once in a while, I go to visit IBM

to drive someone crazy = deixar alguém doido

  • do not drive me crazy

  • do not drive Frank crazy

  • because of the homework, Mike drove Melissa crazy.

  • Dear, do not drive me crazy, please.

To make it clear = deixar claro

    • I made it very clear, I won’t work tomorrow morning

    • She mades it clear, she loves Jim.

Abraços e vou ficando por aqui. See you next post, guys!