Pretty Code Blog

Just another weblog about development

Receita para programar feliz

  • Seleção de 25h de músicas, em ordem aleatória no Media Player
  • Som a um nível que não permita ouvir nenhum ruído além da música.
  • The best IDE
  • Ambiente mega blaster plus plus (processador supimpa + mega power memória)
  • Frutas e àgua à disposição
  • café, café, café, café
  • e… manda bala!

Share/Save

IndexOutOfBoundsException

A exceção  IndexOutOfBoundsException é obtida quando você tenta acessar uma posição de um Array, List, Collection, ou qualquer outro tipo da família, que não existe. Lembre-se de que os índices em Java começam em 0 e vão até a quantidade de elementos menos 1. Por exemplo, temos uma lista com 4 elementos, iniciando na posição zero e tentamos acessar a posição 4.

List<Coisas> lista = new ArrayList<Coisas>();
lista.add(new Coisa("cachorro"));
lista.add(new Coisa("gato"));
lista.add(new Coisa("sapato"));
lista.add(new Coisa("livro"));

Coisa coisinha = lista.get(4);
System.out.println("Tipo da coisinha: "+coisinha.getTipo());

Ao executar o código acima, temos a exceção

java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 4

Como a lista por default inicia-se em [0] zero!, para acessar o tipo livro devemos

Coisa coisinha = lista.get(3);

Isso pode parecer bobagem… Mas no meio de um projeto gigante pode dar muita dor de cabeça…

Para array, a exceção lançada é ArrayIndexOutOfBoundsException. Para String a exceção é StringIndexOutOfBoundsException e no caso do ArrayList tem-se IndexOutOfBoundsException. Essas excessões são bem parecidas, leia um pouco mais sobre isso no artigo abaixo.

:helpbook Entenda a exceção IndexOutOfBoundsException

Share/Save

Tutorial JSF - Parte 2

Table of contents for Tutorial_JSF

  1. Tutorial JSF - parte 1
  2. Tutorial JSF - Parte 2

Para começar, você precisa instalar o java. Faça o download na página da SUN escolhendo o seu sistema operacional. Para instalar no Windows é next-next-next. Não esqueça de ler a licença de uso antes de concondar com ela.

Para instalar o java em alguma distribuição do linux, tente esse  :helpbook manual aqui.

A segunda coisa a fazer é escolher uma IDE para ser seu ambiente de desenvolvimento. Tem gente que indica que iniciantes comecem com o NetBeans, pois tem uma interface mais simplificada, não deixa o programador fazer tanta bobagem.

Eu prefiro o Eclipse. Eu não gosto que uma IDE cuide de mim. Eu gosto de mandar e exijo que ela obedeça! O ser pensante sou eu, e se quero fazer bobagem, problema meu! hehehe

Brincadeiras à parte, a escolha da IDE é um passo importante, mas não é religião. Escolha a que mais te agradar, a que melhor suprir suas necessidades.

Se você preferir compilar na unha, acho que este tutorial não é para você… Escreva o seu e mande que eu posto aqui, amigo nerd! :nerd

Share/Save

Como perder um amigo programador

tirinhado nerdson

Share/Save

If you liked that post, then try these...

Receita para programar feliz on November 17th, 2008
Seleção de 25h de músicas, em ordem aleatória no .

Como programadores e analistas matam dragões on July 14th, 2008
Java Chega, encontra o dragão.

Tutorial JSF - parte 1

Table of contents for Tutorial_JSF

  1. Tutorial JSF - parte 1
  2. Tutorial JSF - Parte 2

Recebi alguns pedidos de “um exemplo de aplicação Faces rodando” . Resolvi montar aqui um “tutorial” sobre uma aplicação Java utilizando o framework JSF.

Trabalho com JSF há um ano e meio. Não sei tudo e este tutorial é uma chance para que eu aprenda um pouco mais. Afinal, sempre se aprende mais quando se ensina. Eu acredito muito na filosofia do “compartilhar o conhecimento” então, let’s share! [;)]

Bom, vou começar com links para sites interessantes sobre o assunto, e o mais importante: DOCUMENTAÇÃO. Acredite, a maior parte dos seus problemas existem porque não se lê a documentação.

JavaServer Faces é uma tecnologia para simplificar a construção de interfaces para aplicações J2EE. É tão simples que pode ser usada por programadores de diversos níveis, do básico ao avançado. Isso pode ser feito por meio do reuso de componentes em uma página, integrando esses componentes com um aplicação e descrevendo eventos gerados pela interface cliente para o lado servidor.

[8|] Abordagem cliente-servidor: Cada instância de um cliente pode enviar requisições de dado para algum dos servidores conectados e esperar pela resposta. Por sua vez, algum dos servidores disponíveis pode aceitar tais requisições, processá-las e retornar o resultado para o cliente.

Aguarde o resto… :yeh

Share/Save

Por que devo contratá-lo?

Virando consultor

Por: Flávia Furlan Nunes
artigo: InfoMoney

“Por que eu deveria contratá-lo?”. Esta é uma pergunta simples, que deveria estar na ponta da língua de muitos candidatos a uma vaga de emprego, mas que, ao contrário disso, acaba por eliminá-los.

De acordo com a consultora de RH da Catho Online, Gláucia Santos, quando o selecionar faz esta pergunta, é chegado o momento de o profissional se vender. “Ele deve mostrar conhecimento e suas qualidades”, afirmou.

Por que eu deveria contratá-lo? “Responda: porque já tenho experiência na área, formação suficiente para ocupá-la, sou criativo e posso ajudar com a vivência que possuo. Foque no conhecimento teórico e prático”. Agora, quando for citar uma característica pessoal, a embase com exemplos, o que significa falar de experiências para comprová-la. Caso contrário, o discurso fica vazio.

E quando não há experiência?
No caso de um estagiário, por exemplo, fica difícil falar de experiências passadas, uma vez que esta pode ser a primeira oportunidade de emprego da vida do jovem profissional. Por isso, foque em seus conhecimentos e características típicos de um estudante.

Por que devo contratá-lo? “Diga: porque tenho criatividade e posso trazer coisas novas para a empresa; tenho interesse em aprender, adquirir conhecimento; e contribuir para a empresa“, explicou Gláucia.

O que não falar
Sempre selecione suas características de acordo com o que a vaga precisa, para não se perder em seu discurso. “Precisa ser direto”, ressaltou a consultora.

Questionada sobre o que uma pessoa não deve dizer, de maneira alguma, a consultora citou uma dificuldade financeira ou um problema pessoal.

Pergunta é um bom sinal
Quando faz este tipo de pergunta, Gláucia explicou que o selecionar tem como objetivo analisar como o profissional se vende, se enxerga e como coloca para os outros as suas qualidades. “Ele quer saber se a pessoa tem persuasão, como se qualifica e se tem desenvoltura”. Se a pessoa se mostrar receosa, pode ser eliminada.

Isso porque, de acordo com a consultora, a pergunta, muitas vezes, é usada como critério de desempate e, por isso, o profissional deve saber qual o seu diferencial. “Se o selecionador faz a entrevista e vê que a pessoa não atingiu os requisitos, dificilmente esta pergunta será feita. Ela é xeque mate. Aparece para quem teve um bom desempenho. É um bom sinal”, finalizou.

Share/Save

nativeQuery

Um dos propósitos que tive ao iniciar mais um blog (este aqui [:D] ) foi ter onde registrar algumas dicas e sacadas que descobri depois de penar por aí.

Bom, o primeiro caso é o uso de nativeQuery da JPA. Eu uso a biblioteca da Oracle, a Toplink.

Ah, eu sou um tanto ansiosa e imediatista, não vou perder tempo com tutoriais, até porque acho que serei a única pessoa a consultar isso aqui. Mas se você leitor tiver alguma dúvida, pergunte, quem sabe sou boazinha? ;)

Eu estava tendo um erro, ao tentar usar o resultado de uma nativeQuery como se fosse uma lista. Mas na verdade o que ela retorna é uma lista de arrays do objeto.

Para resolver o problema bastou adicionar a classe do objeto que eu queria que fosse listado como parâmetro.

Veja só, assim recupero uma lista de Arrays:

List<Pessoa> resultList = null;
try {
Query query = manager.createNativeQuery(queryName);
resultList = query.getResultList();
log.debug("Size of the resultlist... " + resultList.size());
(...)

Assim recupero uma lista de objetos (no caso Pessoa)

List<Pessoa> resultList = null;
try {
Query query = manager.createNativeQuery(queryName,Pessoa.class);
resultList = query.getResultList();
log.debug("Size of the resultlist... " + resultList.size());
(...)

Share/Save

Google faz concurso no Brasil para incentivar mulheres nas carreiras de TI

mulher computera

O Google Brasil anunciou nesta semana um concurso do qual somente estudantes do sexo feminino podem participar: o objetivo, diz a empresa, é incentivá-las e inspirá-las a seguirem carreiras ligadas à engenharia e ciências da computação.

As dez vencedoras ganharão laptops e também uma visita ao escritório de engenharia do Google em Belo Horizonte.

Um leptop é um bom incentivo… Mas salários mais justos é melhor ainda. Sem contar o respeito. É de revoltar a cara de descrédulo que algumas pessoas fazem quando falo que sou “programador”.
Quando aparece visista lá na empresa e eu me apresento dizendo “Oi, eu sou o programador” já soltam um risinho de deboche. Somos minoria, e fazemos parte da elite.

Enfim, se você está a fim de passear em Belo Horizonte, siga os links abaixo pois contém mais informações.

Share/Save

Carreira em Y

Cada dia mais me convenço de que ser analista de sistemas, ou melhor, ser técnico em geral é ser o peão de obra do ano 2000. Para você “subir” na empresa tem que deixar de ser técnico e virar administrador ou vendedor. Então está certo quem faz faculdade de administração, porque aí já ganha um “diploma de chefe”.

Hoje recebi um e-mail de um amigo falando sobre a tal carreira em Y…

================

Carreira Y

Esta é para todos os Engenheiros de Sistemas, DBAs e Administradores de Redes que pensam em ganhar dinheiro na área técnica.

Nas grandes empresas (Bradesco, Votorantim, Sony, GM ou qualquer empresa que tenha um grande numero de pessoal de tecnologia) rola o que eles chamam de carreira em Y. Essa parada foi criada para que os profissionais que não quiserem passar para a área administrativa possam continuar subindo na empresa na área técnica, e ganhando melhores salários. Porém, todo mundo reclama que é dificílimo ser promovido. Então alguém criou o guia de como ser promovido na carreira em Y.

O indivíduo começa como Analista 1 e pode chegar a ser Analista 8. Os Analistas 1 são comumente conhecidos como Analistas baby, ou seja, um pouco mais que estagiários. Condições necessárias para vocês virarem Analistas 2, 3, 4, 5, 6, 7 e 8:

Analistas 2 e 3
Faça o seu dever, cumpra seus prazos, fique algumas vezes depois do horário, faça cursos de aperfeiçoamento, seja sociável e trabalhe em equipe. É necessário destruir plantações de pepinos (pepino = problema).

  • Noções de Inglês Técnico
  • Exemplo: Humanos normais

Analista 4
Idem ao anterior + Matar um leão por dia (leão = um grande problema), com uma carga horária de 12 horas diárias. Ser responsável por 30% a administração de uma rede pequena tipo 700 usuários.
Inglês, espanhol e Visual Basic obrigatórios + 1 linguagem desejável

  • Exemplo: Fodões

Analista 5
Idem ao anterior + Um dragão por semana (dragão = é uma problema enorme), com uma carga horária diária de 16 horas sem feriados. Ser responsável por 40% da administração de uma rede do tipo 1.000 usuários.

  • Inglês, francês, japonês, espanhol, VB e C++ obrigatórios.
  • Exemplo: Mister M, David Coperfield, Padre Quevedo.


Analista 6

Idem aos anteriores, só que, mata-se 1 leão por hora, um dragão por dia, um ALIEN por semana (ALIEN = é um problema do outro mundo) e mais uma área equivalente a meio globo terrestre em plantações de pepino. Carga horária diária de 20 horas. Ser responsável por 75% da administração de uma rede de 2.500 usuários e 30% de todos os projetos internos de tecnologia.

  • Inglês, francês, alemão, japonês, espanhol, aramaico, latim, mandarim, vietnamita, VB, C++, ASP, DHTML, Cobol obrigatórios.
  • Exemplo: Criaturas Mitológicas, Gnomos, NINJAS com o poder dos 9 cortes. Obs. Assim como os NINJAS, somente um Analista 6 pode matar um Analista 6.

Analista 7
Idem aos anteriores, só que, os leões e dragões fogem de você. Você terá que caçá-los em outras dimensões e planetas. Uma área equivalente a uma estrela classe 5 (Sol) em plantações de pepino e três ALIENS e um PREDADOR por dia (PREDADOR = é um problema impossível de ser resolvido, exemplo, fazer um corpo com massa m viajar com velocidade acima da velocidade da luz, tricotando um suéter de lã enquanto escova os dentes, assobia e chupa cana). Carga horária diária de 25 horas. Ser responsável por 100% da administração de uma rede de 6.000 usuários e 60% de todos os projetos internos de tecnologia.

  • Inglês, francês, alemão, japonês, italiano, espanhol, aramaico, latim, mandarim, vietnamita, BORG, Klingon, pascal, fortran, C#, ASP, JAVA, XML e todas as 13500 línguas e dialetos que o C3PO fala no filme Star Wars, obrigatórios.
  • Exemplo: Mago Merlin, JEDIs como Luke Skywalker e Obi-Wan Kenobi, Mestre Yoda (dai o nome de carreira em Y), Darth Maul, SPECTROMAN . Não desanime, conseguir você irá, um analista 7 você será. Grande poder tem o lado negro ADMINISTRATIVO da FORÇA. Você também terá que ser um HIGHLANDER, pois só com uma vida eterna você terá tempo para atingir este cargo, mas não se esqueça que só pode haver um e não deixe que nenhum outro analista 7, corte sua cabeça.

Analista 8
É o cargo máximo no UNIVERSO e você será considerado como o mestre dos elementos. Você terá o poder sobre a vida e a morte dos seres, logo você não precisa mais matá-los, você apenas deseja que os problemas se resolvam ou cria novas leis físicas no universo para que isso aconteça. E você irá perdoar a todos. Você será onisciente, onipresente e onipotente. Carga horária diária indefinida, para você o tempo e o espaço já não existem. Ser responsável por 100% dos projetos e 100% da área de tecnologia de uma empresa de 30.000 usuários, em 7 dias.

  • Exemplo: DEUS, BUDA, ALA, ZEUS, ODIM, A FORÇA.

Share/Save

If you liked that post, then try these...

Como programadores e analistas matam dragões on July 14th, 2008
Java Chega, encontra o dragão.

Como programadores e analistas matam dragões

Java
Chega, encontra o dragão. Desenvolve um framework para aniquilamento de dragões em múltiplas camadas. Escreve vários artigos sobre o framework, mas não mata o dragão.

.NET
Chega, olha a idéia do Javanês e a copia, tenta matar o dragão, mas é comido pelo réptil.

ASP
Os componentes necessários para levantar a espada são proprietários e caros. Outros tantos componentes proprietários para achar a localização do dragão, e mais outros tantos a localização da princesa. Chama então seu amigo programador de PHP.

C
Chega, olha para o dragão com olhar de desprezo, puxa seu canivete, degola o dragão. Encontra a princesa, mas a ignora para ver os últimos checkins no cvs do kernel do linux.

C++
Cria um canivete básico e vai juntando funcionalidades até ter uma espada complexa que apenas ele consegue entender … Mata o dragão, mas trava no meio da ponte por causa dos memory leaks.

COBOL
Chega, olha o dragão, pensa que tá velho demais para conseguir matar um bicho daquele tamanho e pegar a princesa e, então, vai embora de volta ao seu mundinho.

Pascal
Se prepara durante 10 anos para criar um sistema de aniquilamento de dragão… Chegando lá descobre que o programa só aceita lagartixas como entrada.

VB
Monta uma arma de destruição de dragões a partir de vários componentes, parte pro pau pra cima do dragão e, na hora H, descobre que a espada só funciona durante noites chuvosas…

PL/SQL
Coleta dados de outros matadores de dragão, cria tabelas com N relacionamentos de complexidade ternária, dados em 3 dimensões, OLAP, demora 15 anos para processar a informação. Enquanto isso a princesa virou lésbica.

PHP
Pesquisa bancos de scripts e acha as classes de construção de espada, manuseio da espada, localização da princesa e dragão. Remenda tudo e coloca umas firúlas próprias. Mata o dragão e casa com a princesa. Como tudo foi feito com gambiarras, o dragão um dia vai ressuscitar e comer os dois.

Ruby
Chega com uma p*t* fama, falando que é o melhor faz tudo, quando vai enfrentar o dragão mostra um videozinho dele matando um dragão … O dragão come ele de tédio.

Smalltalk
Chega, analisa o dragão e a princesa, vira as costas e vai embora, pois eles são muito inferiores.

ASSEMBLY
Acha que está fazendo o mais certo e enxuto, porém troca um A por um D, mata a princesa e transa com o dragão.

Shell
Cria uma arma poderosa para matar os dragões, mas na hora H, não se lembra como usá-la.

Shell (2)
O cara chega no dragão com um script de 2 linhas que mata, corta, stripa, pica em pedacinhos e empalha o bicho, mas na hora que ele roda, o script aumenta, engorda, enfurece e coloca álcool no fogo do dragão.

Fortran
Chega, desenvolve uma solução com 45000 linhas de código, mata o dragão e vai ao encontro da princesa … mas esta o chama de tiuzinho e sai correndo atrás do programador java que era elegante e ficou rico.

FOX PRO
Desenvolve um sistema para matar o dragão, por fora é bonitinho e funciona, mas por dentro está tudo remendado. Quando ele vai executar o aniquilador de dragões lembra que esqueceu de indexar os DBF’s.

CLIPPER
Monta uma rotina que carrega um array de codeblocks para insultar o dragão, cantar a princesa, carregar a espada para memória, moer o dragão, limpar a sujeira, lascar leite condensado com morangos na princesa gostosa, transar com a princesa, tomar banho, ligar o carro, colocar gasolina e voltar pra casa. Na hora de rodar recebe um “Bound Error: Array Access” e o dragão come ele com farinha.

ANALISTA DE PROCESSOS
Chega ao dragão com duas toneladas de documentação desenvolvida sobre o processo de se matar um dragão genérico, desenvolve um fluxograma super complexo para libertar a princesa e se casar com ela, convence o dragão que aquilo vai ser bom pra ele e que não será doloroso. Ao executar o processo ele estima o esforço (usando FPAs) e o tamanho do estrago que isso vai causar, consegue o aval do papa, do Buda e do Raul Seixas para o plano, e então compra 2 bombas nucleares, 45 canhões, 1 porta aviões, contrata 300 homens armados até os dentes, quando na verdade necessitaria apenas da espada que estava na sua mão o tempo todo.

Share/Save

If you liked that post, then try these...

Carreira em Y on July 17th, 2008
Cada dia mais me convenço de que ser analista de sistemas, ou melhor, ser técnico em geral é ser o peão de obra do ano 2000.