<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	>

<channel>
	<title>Cristiano Sanchez</title>
	<atom:link href="http://cristianosanchez.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://cristianosanchez.com/blog</link>
	<description>Programando...</description>
	<pubDate>Fri, 03 Jul 2009 19:40:08 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Docs do Glassfish</title>
		<link>http://cristianosanchez.com/blog/2009/07/02/docs-do-glassfish/</link>
		<comments>http://cristianosanchez.com/blog/2009/07/02/docs-do-glassfish/#comments</comments>
		<pubDate>Thu, 02 Jul 2009 20:42:14 +0000</pubDate>
		<dc:creator>Cristiano Sanchez</dc:creator>
		
		<category><![CDATA[javaEE]]></category>

		<category><![CDATA[lembretes]]></category>

		<category><![CDATA[programação]]></category>

		<category><![CDATA[root]]></category>

		<category><![CDATA[acc]]></category>

		<category><![CDATA[ejb]]></category>

		<category><![CDATA[glassfish]]></category>

		<guid isPermaLink="false">http://cristianosanchez.com/blog/?p=193</guid>
		<description><![CDATA[Documentações do Glassfish V2 pode ser encontrada online em:
http://docs.sun.com/app/docs/coll/1343.6
Para o pessoal do curso que pediu os passos até gerar um app-client-jar, segue links da documentação (apesar da doc ser da GFV3, serve pra V2):
http://docs.sun.com/app/docs/doc/820-7701/package-appclient-1m?a=view
http://docs.sun.com/app/docs/doc/820-7701/appclient-1m?a=view
Mas o básico é:
Gerar o arquivo appclient.jar via comando package-client. Este comando se encontra no diretório $GLASSFISH_HOME/bin e irá criar um arquivo [...]]]></description>
			<content:encoded><![CDATA[<p>Documentações do Glassfish V2 pode ser encontrada online em:</p>
<p><a href="http://docs.sun.com/app/docs/coll/1343.6">http://docs.sun.com/app/docs/coll/1343.6</a></p>
<p>Para o pessoal do curso que pediu os passos até gerar um app-client-jar, segue links da documentação (apesar da doc ser da GFV3, serve pra V2):</p>
<p><a href="http://docs.sun.com/app/docs/doc/820-7701/package-appclient-1m?a=view">http://docs.sun.com/app/docs/doc/820-7701/package-appclient-1m?a=view</a></p>
<p><a href="http://docs.sun.com/app/docs/doc/820-7701/appclient-1m?a=view">http://docs.sun.com/app/docs/doc/820-7701/appclient-1m?a=view</a></p>
<p>Mas o básico é:</p>
<p>Gerar o arquivo appclient.jar via comando package-client. Este comando se encontra no diretório $GLASSFISH_HOME/bin e irá criar um arquivo no próprio diretório.</p>
<p>Este arquivo deverá ser enviado para o cliente e pode ser descompactado junto ao JAR de sua aplicação. Contém, entre outros, os seguintes diretórios:</p>
<ul>
<li>/bin o comando appclient será encontrado aqui e deve ser executado para iniciar o cliente.</li>
<li>/lib bibliotecas diversas necessárias para ativar os serviços do appserver no cliente
</li>
<li>/conf arquivos de configuração. Indique o caminho e porta do servidor em sun-acc.xml e outros caminhos em asenv.conf.</li>
</ul>
<p>Agora basta executar o seu client: </p>
<p><code>bin/appclient -client MinhaApp.jar</code></p>
<p>E assim temos mais um cliente feliz e contente diante a beleza do IIOP!</p>
]]></content:encoded>
			<wfw:commentRss>http://cristianosanchez.com/blog/2009/07/02/docs-do-glassfish/feed/</wfw:commentRss>
		</item>
		<item>
		<title>IntelliJ IDEA: onde está o cache?</title>
		<link>http://cristianosanchez.com/blog/2009/07/01/intellij-idea-onde-esta-o-cache/</link>
		<comments>http://cristianosanchez.com/blog/2009/07/01/intellij-idea-onde-esta-o-cache/#comments</comments>
		<pubDate>Wed, 01 Jul 2009 23:32:38 +0000</pubDate>
		<dc:creator>Cristiano Sanchez</dc:creator>
		
		<category><![CDATA[ide]]></category>

		<category><![CDATA[lembretes]]></category>

		<category><![CDATA[IntelliJ IDEA]]></category>

		<guid isPermaLink="false">http://cristianosanchez.com/blog/?p=191</guid>
		<description><![CDATA[O IntelliJ IDEA 8, no Mac OSX, cria o diretório $home/Library/Caches/IntelliJIDEA8x/ e neste diretório se encontrar o diretório tomcat (base) além de tomcat/work.
Você também encontrará outros diretórios com configurações utilizadas pelo IDEA.
]]></description>
			<content:encoded><![CDATA[<p>O IntelliJ IDEA 8, no Mac OSX, cria o diretório $home/Library/Caches/IntelliJIDEA8x/ e neste diretório se encontrar o diretório tomcat (base) além de tomcat/work.</p>
<p>Você também encontrará outros diretórios com configurações utilizadas pelo IDEA.</p>
]]></content:encoded>
			<wfw:commentRss>http://cristianosanchez.com/blog/2009/07/01/intellij-idea-onde-esta-o-cache/feed/</wfw:commentRss>
		</item>
		<item>
		<title>O que andei lendo</title>
		<link>http://cristianosanchez.com/blog/2009/05/29/o-que-andei-lendo/</link>
		<comments>http://cristianosanchez.com/blog/2009/05/29/o-que-andei-lendo/#comments</comments>
		<pubDate>Fri, 29 May 2009 11:26:19 +0000</pubDate>
		<dc:creator>Cristiano Sanchez</dc:creator>
		
		<category><![CDATA[livros]]></category>

		<category><![CDATA[opinião]]></category>

		<category><![CDATA[root]]></category>

		<category><![CDATA[leitura]]></category>

		<guid isPermaLink="false">http://cristianosanchez.com/blog/?p=165</guid>
		<description><![CDATA[
Minha biblioteca particular é um pouco maior já que todo mês chega um novo pacote, geralmente da Amazon, eventualmente da Livraria Cultura. Este livros, juntamente com tudo o que se pode encontrar disponível na web, de tutoriais a blogs, formam minha base de aprendizado constante, além dos amigos programadores e eventos.
Vou relacionar aqui algumas das [...]]]></description>
			<content:encoded><![CDATA[<div style="float: right; margin-left: 10px; margin-bottom: 10px;"><img style="border: 1px solid #000000;" src="http://cristianosanchez.com/img/livros_162x222.jpg" alt="Cristiano Sanchez" /></div>
<p>Minha biblioteca particular é um pouco maior já que todo mês chega um novo pacote, geralmente da Amazon, eventualmente da Livraria Cultura. Este livros, juntamente com tudo o que se pode encontrar disponível na web, de tutoriais a blogs, formam minha base de aprendizado constante, além dos amigos programadores e eventos.</p>
<p>Vou relacionar aqui algumas das leitura (técnicas) interessantes que tive. Quase todo material que leio é inglês. Livros técnicos traduzidos são uma tijolada na cabeça. Quase todos contém erros graves de tradução. O maior problema sñao as traduções de termons técnicos que ouvimos todo dia. Esbarrar com uma tradução como &#8220;arranjos&#8221; para arrays, ou &#8220;classes internas&#8221; para inner classes torna a leitura desagradável. O cérebro tem que parar de seguir o conteúdo do livro para fazer o de-para dos termos. Além disso, dado que um livro técnico muitas vezes fica desatualizado em pouquíssimo tempo, esperar por uma tradução pode ser uma péssima idéia.</p>
<p>Estou relacionando os clássicos. Livros sobre framework não contam pois a lista não teria fim (EJB, Spring, Hibernate, JQuery, Struts, WebWork, JSF etc). </p>
<ul>
<li><a href="http://www.pragprog.com/titles/ruby3/programming-ruby-1-9">Programming Ruby</a> de Dave Thomas sem dúvida é &#8220;o&#8221; livro pra aprender Ruby.</li>
<li><a href="http://www.livrariacultura.com.br/scripts/cultura/resenha/resenha.asp?nitem=1836354&amp;sid=18962962910423393267331060&amp;k5=19DE06EC&amp;uid=">Agile Web Development with Rails</a> de Dave Thomas e David Heinemeier. Ótimo início para conhecer e programar usando o framework Rails. Sugiro que pratique um pouco de Ruby antes o que tornará a leitura e programação fácil, fácil.</li>
<li><a href="http://www.livrariacultura.com.br/scripts/cultura/resenha/resenha.asp?nitem=9957&amp;sid=18962962910423393267331060&amp;k5=3936C2D6&amp;uid=">The Mythical Man-Month</a> de Frederick Brooks. Conta a estória do desenvolvimento do OS360 da IBM e como foi gerenciar o projeto. Muito interessante, um clássico.</li>
<li><a href="http://www.livrariacultura.com.br/scripts/cultura/resenha/resenha.asp?nitem=267575&amp;sid=18962962910423393267331060&amp;k5=20A6F122&amp;uid=">Refactoring</a> de Martin Fowler. Apresenta técnicas de refactoring para deixar seu código sempre atualizado, limpo, daqueles que dá orgulho de mostrar pra mãe.</li>
<li><a href="http://www.livrariacultura.com.br/scripts/cultura/resenha/resenha.asp?nitem=311252&amp;sid=18962962910423393267331060&amp;k5=6681D9C&amp;uid=">C++ Effective Object-Oriented Software Construction</a> de Kayshav Dattatri. Ah, bons tempos. Eu realmente gosto de C++ já que foi uma das primeiras que trabalhei e na época este livro ajudou muito. Aconselho a todos que estão iniciando sua carreira em C++.</li>
<li><a href="http://www.livrariacultura.com.br/scripts/cultura/resenha/resenha.asp?nitem=754477&amp;sid=18962962910423393267331060&amp;k5=C840A5F&amp;uid=">Code Complete</a> de Steve McConnell. Leitura pesada. Aborda detalhes na codificação que vão desde a melhor forma de criar seus if/elses até como realizar testes unitários e documentar seu sistema.</li>
<li><a href="http://www.livrariacultura.com.br/scripts/cultura/resenha/resenha.asp?nitem=9861&amp;sid=18962962910423393267331060&amp;k5=14C71783&amp;uid=">Design Patterns</a> de Erich Gamma e amigos (GoF). Sem dúvida um dos que constam na lista dos de leitura obrigatória. Os exemplos são em C++/Smalltalk e se preferir outra alternativa sugiro o livro <a href="http://www.livrariacultura.com.br/scripts/cultura/resenha/resenha.asp?nitem=779829&amp;sid=18962962910423393267331060&amp;k5=1F98D837&amp;uid=">Head First Design Patterns</a>, da Katy Sierra e Bert Bates. Fácil, didático e divertido (sim, livros de TI podem ser divertidos, seu pessimista!)</li>
<li><a href="http://www.livrariacultura.com.br/scripts/cultura/resenha/resenha.asp?nitem=721650&amp;sid=18962962910423393267331060&amp;k5=21E14210&amp;uid=">Domain Driven Design</a> de Eric Evans. Aborda a análise e o desenvolvimento do projeto OO através dos objetos de domínio além de patterns e boas práticas. Excelente.</li>
<li><a href="http://www.livrariacultura.com.br/scripts/cultura/resenha/resenha.asp?nitem=588328&amp;sid=18962962910423393267331060&amp;k5=4E656E5&amp;uid=">Effective Java</a> de Joshua Bloch. Acha que sabe programar em Java? Leia este livro e depois conversamos.</li>
<li><a href="http://www.livrariacultura.com.br/scripts/cultura/resenha/resenha.asp?nitem=782554&amp;sid=18962962910423393267331060&amp;k5=188AC5B9&amp;uid=">Extreme Programming Explained</a> de Kent Beck. Fazer propaganda de metodologias Ágeis em pleno 2009 é como falar que a internet é uma &#8220;rede mundial de computadores&#8221;. Escrito pelo próprio criador da metodologia este material é o clássico sobre o assunto.</li>
<li><a href="http://www.livrariacultura.com.br/scripts/cultura/resenha/resenha.asp?nitem=743677&amp;sid=18962962910423393267331060&amp;k5=15F2BDAD&amp;uid=">Agile Project Management With Scrum</a> de Ken Schwaber. Outro livro da série <span style="font-weight: bold;">obrigatório</span>, Scrum traz práticas para o desenvolvimento e gerenciamenteo de projetos (qualquer projeto).</li>
<li><a href="http://www.livrariacultura.com.br/scripts/cultura/resenha/resenha.asp?nitem=1275257&amp;sid=18962962910423393267331060&amp;k5=2930BA30&amp;uid=">Joel On Software</a> de Joel Spolsky. Coletânea dos melhores textos de um dos blogs pioneiros e mais lidos de TI desde 2000. Se não quiser ler o livro, acompanhe o <a href="http://www.joelonsoftware.com/Archive.html">blog</a>.</li>
<li><a href="http://www.livrariacultura.com.br/scripts/cultura/resenha/resenha.asp?nitem=559929&amp;sid=18962962910423393267331060&amp;k5=165F36B5&amp;uid=">Só Por Prazer - Linux</a> de Linus Torvalds. Há muito tempo esbarrei com este livro mas não tive curiosidade de lê-lo até 2006 quando um amigo voltou a sugerí-lo. Este livro conta a estória da criação do SO; um livro de leitura fácil e divertida para nós nerds.</li>
<li><a href="http://www.livrariacultura.com.br/scripts/cultura/resenha/resenha.asp?nitem=384009&amp;sid=18962962910423393267331060&amp;k5=F4338DF&amp;uid=">The Pragmatic Programmer</a> de Andrew Hunt e David Thomas. Este livro é <span style="font-weight: bold;">obrigatório</span> para qualquer desenvolvedor. Espero que leiam este livro já nos primeiros contatos com progamação pois terão dicas que vão desde código, organização, metorologias, testes etc.</li>
<li><a href="http://www.mindview.net/Books">Thinking in Java</a> de Bruce Eckel, considero um dos melhores livros sobre Fundamentos Java e OO. Além de didático, o livro pode ser encontrado gratuitamente no site do autor.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://cristianosanchez.com/blog/2009/05/29/o-que-andei-lendo/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Entrevistas &#8220;Evil&#8221;</title>
		<link>http://cristianosanchez.com/blog/2009/05/27/entrevistas-evil/</link>
		<comments>http://cristianosanchez.com/blog/2009/05/27/entrevistas-evil/#comments</comments>
		<pubDate>Wed, 27 May 2009 20:54:24 +0000</pubDate>
		<dc:creator>Cristiano Sanchez</dc:creator>
		
		<category><![CDATA[comunidade]]></category>

		<category><![CDATA[negócios]]></category>

		<category><![CDATA[programação]]></category>

		<category><![CDATA[entrevistas]]></category>

		<category><![CDATA[opinião]]></category>

		<category><![CDATA[trabalho]]></category>

		<guid isPermaLink="false">http://cristianosanchez.com/blog/?p=149</guid>
		<description><![CDATA[Hoje participei de uma entrevista &#8220;evil&#8221;. Aquela onde você perde tempo, se estressa e ninguém ganha nada com isso. Entrevista mal elaborada, mal feita, mal aplicada.
Tudo começou quando cheguei até a consultoria. Procuro filtrar antes onde faço meu CV correr para não cair nas empresas fundo-de-quintal-zona-leste-com-pagode. Mas enfim, nem sempre o filtro funciona. Um site [...]]]></description>
			<content:encoded><![CDATA[<p>Hoje participei de uma entrevista &#8220;evil&#8221;. Aquela onde você perde tempo, se estressa e ninguém ganha nada com isso. Entrevista mal elaborada, mal feita, mal aplicada.</p>
<p>Tudo começou quando cheguei até a consultoria. Procuro filtrar antes onde faço meu CV correr para não cair nas empresas fundo-de-quintal-zona-leste-com-pagode. Mas enfim, nem sempre o filtro funciona. Um site bonitinho engana muita gente!</p>
<p>Ao chegar, primeira decepção: um formulário em papel questinando dados pessoais (que estão no meu CV), últimos empregos (que estão no meu CV), idiomas (no CV), skill (no CV) e&#8230; vocês entenderam! Considerando que, apesar de eu ser uma pessoa muito calma, em São Paulo, por causa do trânsito, você sempre chega estressado nos lugares, receber um formulário destes é o começo de uma longa lista de erros. Mas já que eu estava por lá e já tinha pago R$10,00 num estacionamento só pela primeira hora, vamos adiante.</p>
<p>Desta vez a pessoa que me recebeu foi até que muito simpática. Não vou mencionar outros momentos &#8220;evil&#8221; como  nas muitas vezes em que fiquei esperando quase uma hora para ser &#8220;entrevistado&#8221;, uma outra vez que a &#8220;menina do RH&#8221; me pediu explicações sobre a diferença entre &#8220;servidor de aplicação e Java&#8221; pois ela achava que era tudo a mesma coisa e ainda outra onde a entrevista foi &#8220;coletiva&#8221; com pelo menos 12 programadores na mesma sala de reunião com direito a falar 5 minutos; a empresa precisava agilizar o processo de contratação.</p>
<p>Queridas meninas que trabalham no RH, façam testes bizarros como continuar o desenho inacabado, ligar os pontos, grifar adjetivos ou questione sobre &#8220;qual nosso maior defeito&#8221;. Mas por favor, coloque alguém da área técnica cara-a-cara, frente-a-frente para nos entrevistar.</p>
<p>E é por isto que o post veio ao blog. Entrevistas que não sabem avaliar técnicamente o candidato, especificamente, pedidos pra que você codifique em papel.</p>
<p><strong>Programação SIM; Perder tempo NÃO!</strong></p>
<p>Vou classificar as entrevistas de duas formas daqui pra frente: as que respeitam e as que não respeitam os programadores.</p>
<p>Respeito com os programadores é pedir para que codifiquem um programa e entreguem uma solução válida, compilada e executável como aparentemente é o que encontramos por aí no trabalho. Ou alguém anda commitando código em papel, talvez num arquivo morto pixado em vermelho CVS? E código em planilha Excel? E no Word? Alguém aí é privado de consultar APIs enquanto trabalha? Livros? Internet? Algum chefe como lema &#8220;ou programa sem consultar nada ou furo seu olho esquerdo&#8221;?</p>
<p>Nas últimas 5 entrevistas que realizei ao longo deste ano somente 2 me pediram pra codificar. O que é lamentável, já que estava fazendo testes para programar! Porém os dois testes de programação foram feitos de forma errada: um em papel, outro em Excel.</p>
<p>Programar em papel já é um velho conhecido de todos os que passaram por testes em consultorias de bodyshop que não tem o mínimo interesse no profissional a não ser limar os que realmente não tem capacidade nem de escrever <code>public static void main... </code>. Programar em papel é tão &#8220;evil&#8221; quanto tomar chá de boldo do Chile. Simplesmente porquê programação não é a arte de decorar&#8230; programação é a arte do saber fazer (e fazer bonito). </p>
<p>Como mostram exames de Raio-X em quadros de artistas famosos, quando pintam um quadro, começam com um esboço a lápis. Um fundo branco. Testes com alguma côr, testes com outra, e desta forma, constroem pouco a pouco uma peça de arte perfeita. Tudo leva dias, meses, anos. A obra está pronta na cabeça do pintor mas não na tela. </p>
<p>Quando me pedem pra programar algum código, minha cabeça começa a pensar rápido e a juntar peças e conhecimentos que adquiri no passado e novas idéias até formar a solução para o problema proposto. Porém na prática a construção é bem diferente.<br />
Apesar de digitar código frenéticamente toda a construção é refeita a todo momento até que o código vire uma obra de arte. Código grande? Extract Method. Construção confusa? Simplifique. Classe comprida? Componentes. Esqueceu um método? Consulte a API. Existe uma classe pronta pra isto? API. Que biblioteca faria isso? Google! Qual o melhor design para este problema? Conversa com amigos durante o almoço. Chegando em casa e ainda querendo aprimorar? Livros, blogs, conversa com amigos nerds no barzinho mais próximo!</p>
<p>Bem, voltando as entrevistas, a gota d&#8217;agua foi pedirem novamente pra codificar em papel (ok, era pra codificar num WordPad e depois colar tudo numa célula no Excel (oque dá na mesma)). Além disto, questões mal formuladas e respostas ambíguas as quais você não tem o direito de reclamar e questionar e discutir porquê está sozinho em uma sala minúscula e mesmo porquê a menina simpática que lhe entregou o teste é do RH e não sabe a diferença entre um HD e um cooler.</p>
<p>O que me deixa muito irritado é saber que estes testes são criados por programadores e serão avaliados por programadores. Então, você está sendo avaliado por um programador ruim! Isto é triste. E o resultado final é um cara ruim dando uma nota pra um teste mal feito dizendo que você não tem competência para programar um sistema que usa Struts 1.x, DAO e zilhões de código Java no JSP. Lamentável.</p>
<p><strong>Como se faz uma entrevista</strong></p>
<p>Eu não sou expert em contratação. Não estudei psicologia e quase tudo que li em &#8220;O Corpo Fala&#8221; eu já esqueci. Mas tem coisas que são óbvias na avaliação de alguém que irá programar.</p>
<p>Primeiramente, o curriculum diz muita coisa sim. Candidatos que mencionam algo como &#8220;Conhecimento avançado em Word, Excel e HTML&#8221; ou &#8220;Curso Data Byte&#8221; estão automaticamente eliminados a não ser para a vaga de trocador de galão de 20L de água. Particularmente eu olho apenas 4 coisas num CV: onde trabalhou, idiomas, palavras chaves e a organização do texto. Palavras chaves mudam de tempos em tempos. Nesta época por exemplo, 2009, palavras chaves são por exemplo Ruby, Rails, XP, Scrum, Python, Scala, Haskel, meu usuário no twitter é x, o endereço do meu blog é y. Mostram interesse pela área e um perfil atualizado, que pode ser conferido numa entrevista posterior. Onde estudaram e se estudaram em uma faculdade realmente não me diz nada. Certificações? Se foi por motivação pessoal, aplausos. Se foi esperando uma melhor colocação, perdeu tempo!</p>
<p>Feito o primeiro corte, existem pelo menos 3 coisas a avaliar num candidato: avalie seu código, avalie sua redação e avalie a pessoa.</p>
<p><strong>Código</strong></p>
<p>Mas é claro que um candidato a programador deverá programar. Show me the code! Ofereça condições de avaliar o que ele fará quando estiver trabalhando. Caso o código seja feito durante a entrevista isto inclui deixá-lo a vontade, servir um café, ter acesso a internet para consulta, uma estante cheia de livros atrás, um editor de texto e um compilador. No final, o código tem que executar, óbvio. E SE executar, aí vamos ver a estética, a lógica, a criatividade, a simplicidade, enfim, se o código é ou não de fazer orgulho pra  mãe. Sente com o programador e discuta o código. Questione os pontos que podem melhorar e veja se ele dá outras soluções.</p>
<p>Numa das melhores entrevistas que já fiz a empresa me enviou algumas propostas de código por email. Eu poderia escolher qualquer uma, codificar em casa, enviar por email e durante uma entrevista como pessoal técnico discutir meu código! Simples e brilhante!</p>
<p><strong>Redação</strong></p>
<p>É incrível a quantidade de pessoas que NAUM sabem mais escrever. Obrigado Orkut e escolas públicas. Me critiquem se for apenas preconceito mas todos bons programadores que eu conheço sabem escrever corretamente. Como é possível contratar alguém que sabe escrever um código de forma simples e legível e não sabe escrever um português com a mesma elegância? Faça o candidato escrever. Sugira por exemplo para que ele escreva uma crítica sobre o último livro técnico que leu. Aí você já matou dois coelhos! <img src='http://cristianosanchez.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>Pessoa</strong></p>
<p>Por último avalie a pessoa. Como eu já disse, não sou mestre em avaliar questões subjetivas como, candidato desenhou a linha pra esquerda? É psicopata. Linha pra direita? Matou a mãe! O que eu converso com o programador é o que eu converso com meus amigos programadores. Converso sobre tecnologia específica sim, seja Java ou C# mas converso a maior parte do tempo sobre livros, blogs, linguagens de programação, frameworks, eventos, open-source, web, twitter, etc. Eu converso para saber se a pessoa gosta da área, se ela está atualizada e se vai saber o que procurar e o que fazer no dia-a-dia.</p>
<p><strong>Concluíndo</strong></p>
<p>Entrevistar é uma arte e fazer uma entrevista efetiva é trabalhoso. Custa muito caro pra empresa contratar alguém que não retorne todo o tempo e investimento. Por mais criterioso que seja o processo eu não conheço nenhuma empresa que acerte 100%. Só o trabalho lado-a-lado mostra como uma pessoa reage a pressão, a prazos, a demanda por inovação, a criativadade necessária para as soluções mais complexas. Contudo, fazer da entrevista um processo agradável e avaliar com critérios é o começo para encontrar bons profissionais e criar desde o início uma imagem boa da empresa e das pessoas.</p>
]]></content:encoded>
			<wfw:commentRss>http://cristianosanchez.com/blog/2009/05/27/entrevistas-evil/feed/</wfw:commentRss>
		</item>
		<item>
		<title>JSF, mais uma chance pra você!!</title>
		<link>http://cristianosanchez.com/blog/2009/04/26/jsf-mais-uma-chance-pra-voce/</link>
		<comments>http://cristianosanchez.com/blog/2009/04/26/jsf-mais-uma-chance-pra-voce/#comments</comments>
		<pubDate>Sun, 26 Apr 2009 13:43:48 +0000</pubDate>
		<dc:creator>Cristiano Sanchez</dc:creator>
		
		<category><![CDATA[ide]]></category>

		<category><![CDATA[javaEE]]></category>

		<category><![CDATA[jsf]]></category>

		<category><![CDATA[netbeans]]></category>

		<category><![CDATA[programação]]></category>

		<category><![CDATA[web]]></category>

		<category><![CDATA[icefaces]]></category>

		<category><![CDATA[JSF]]></category>

		<category><![CDATA[projeto]]></category>

		<guid isPermaLink="false">http://cristianosanchez.com/blog/?p=129</guid>
		<description><![CDATA[Mês passado iniciei um projeto usando JSF, com a implementação ICEFaces. Após 1 ano sem mexer com JSF resolvi apostar no framework, não por capricho, como nenhuma escolha deve ser, mas pelas seguintes razões:

O projeto é composto por 80% de operações CRUD (create, read, update e delete). Já temos o modelo de domínio pronto e [...]]]></description>
			<content:encoded><![CDATA[<p>Mês passado iniciei um projeto usando JSF, com a implementação <a href="http://www.icefaces.org">ICEFaces</a>. Após 1 ano sem mexer com JSF resolvi apostar no framework, não por capricho, como nenhuma escolha deve ser, mas pelas seguintes razões:</p>
<ul>
<li>O projeto é composto por 80% de operações CRUD (create, read, update e delete). Já temos o modelo de domínio pronto e alguns testes via IDE (netbeans e eclipse) mostraram que a criação de telas e operações seriam automatizadas;</li>
<li>Outro ponto chave do projeto é a criação de um painel com a responsabilidade de apresentar de forma gráfica (estrutura de organograma) os dados cadastrados. Aparentemente a criação de um componente JSF é bastante atraente;</li>
<li>A equipe é pequena, composta de 3 pessoas, e com níveis diferentes de conhecimento.  Mas o fato de estarem juntas no mesmo projeto e ambiente facilitará a comunicação e transferência de conhecimento. A aposta deveria ser em um framework produtivo e de fácil absorção. Minha impressão sobre Struts2 e SpringMVC, apesar do modelo Action/Command já bastante difundido, é de que trazem uma curva de aprendizado maior que JSF;</li>
<li>Existe muito material sobre JSF disponível em português, inglês; livros, blogs, apresentações e exemplos não seriam um problema;</li>
<li>Alguns projetos em que a equipe é responsável por suporte e manutenção utilizam JSF;</li>
<li>Escalabilidade não será um problema já que o projeto será utilizado por pouco mais de uma centena de usuários.</li>
</ul>
<p>Resolvemos utilizar o Netbeans, apesar deste ainda utilizar a implementação Woodstock de JSF, a qual aparentemente será descontinuada dando lugar ao ICEFaces. Desta forma, os CRUDs gerados necessitaram de migração de Woodstock para ICEFaces, nada muito complicado, mas trabalhoso. Este não foi o único problema. Vários CRUDs mais complexos, onde existiam relacionamentos entre domínios, foram gerados com erro. Muita correção manual foi necessária e a tão desejada, tranquila e rápida geração de CRUDs baseada em domínio não aconteceu. Sem o auxílio de um IDE para auxiliar a programação JSF o framework perde muito de sua magia. As criação de views, managed beans, xml, etc traz lentidão ao trabalho.</p>
<p>Mesmo com problemas de produtividade o  aprendizado do JSF se mostrou rápido entre a equipe mesmo entre os que não tem conhecimento avançado de JavaEE, especificamente, componentes web. O JSF abstrai bastante toda a iteração entre cliente, container e código. A criação de métodos-evento, o mapeamento das views, a criação de conversores e validadores, tudo é realmente fácil.</p>
<p>Configuramos o <a href="http://www.opensymphony.com/sitemesh/">SiteMesh</a> para gerenciar e compor as views, mesmo com todos avisos sobre a integração problemática entre JSF e SiteMesh. Está funcionando e não tivemos problemas.</p>
<p>Alguns acoplamentos do bean com o framework tornam testes unitários mais difíceis de realizar do que no SpringMVC, por exemplo. Contudo, pasmem os que acharem isto uma heresia, não teremos testes unitários na camada de apresentação por vários, vários motivos, que darão outro post sobre o assunto. De qualquer forma, a deficiência do JSF quanto a isto não será um problema.</p>
<p>Ainda é cedo para dizer como ficará o resultado final. O prazo é apertado e pode-se dizer que mesmo com todos as dificuldades de usar o JSF, estamos caminhando para uma entrega dentro do esperado, com uma boa curva de aprendizado pela equipe e com a promessa de que o IDE, Netbeans, melhore cada vez mais a integração com JSF.</p>
]]></content:encoded>
			<wfw:commentRss>http://cristianosanchez.com/blog/2009/04/26/jsf-mais-uma-chance-pra-voce/feed/</wfw:commentRss>
		</item>
		<item>
		<title>O que fazer após o curso SL-351</title>
		<link>http://cristianosanchez.com/blog/2009/02/08/o-que-fazer-apos-o-curso-sl-351/</link>
		<comments>http://cristianosanchez.com/blog/2009/02/08/o-que-fazer-apos-o-curso-sl-351/#comments</comments>
		<pubDate>Mon, 09 Feb 2009 02:44:43 +0000</pubDate>
		<dc:creator>Cristiano Sanchez</dc:creator>
		
		<category><![CDATA[javaEE]]></category>

		<category><![CDATA[sun microsystems]]></category>

		<category><![CDATA[treinamentos]]></category>

		<category><![CDATA[ejb]]></category>

		<category><![CDATA[jpa]]></category>

		<category><![CDATA[sl-351]]></category>

		<guid isPermaLink="false">http://blog.cristianosanchez.com/?p=75</guid>
		<description><![CDATA[Estude Serialização e RMI se atropelou estes assuntos e fez um treinamento sem pré-requisito.
A especificação é o caminho para a iluminação
Quer fazer a prova de certificação de EJB e ter sucesso de primeira? Baixe a especificação do EJB 3.0 e estude por lá. Infalível!!
Outros livros?
Um dos melhores livros de EJB é o Head First EJB, [...]]]></description>
			<content:encoded><![CDATA[<p>Estude Serialização e RMI se atropelou estes assuntos e fez um treinamento sem pré-requisito.</p>
<p><strong>A especificação é o caminho para a iluminação</strong></p>
<p>Quer fazer a prova de certificação de <a href="http://www.jcp.org/en/jsr/detail?id=220">EJB</a> e ter sucesso de primeira? Baixe a especificação do EJB 3.0 e estude por lá. Infalível!!</p>
<p><strong>Outros livros?</strong></p>
<p>Um dos melhores livros de EJB é o <a href="http://www.livrariacultura.com.br/scripts/cultura/resenha/resenha.asp?nitem=798846&#038;sid=12020214391220455364570546&#038;k5=296752C5&#038;uid=">Head First EJB</a>, da Kathy Sierra e Bert Bates. Daquele jeito meio brincalhão, com muitos desenhos e diagramas, você pode levar seu livro e estudar EJB até na praia. Infelizmente até este momento o livro não foi atualizado para a versão EJB 3!!</p>
<p><strong>Certificação</strong></p>
<p>Um ótimo guia de estudo pode ser encontrado no site <a href="http://java.boot.by/scbcd5-guide/">http://java.boot.by/scbcd5-guide/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://cristianosanchez.com/blog/2009/02/08/o-que-fazer-apos-o-curso-sl-351/feed/</wfw:commentRss>
		</item>
		<item>
		<title>O que fazer após o curso OO-226</title>
		<link>http://cristianosanchez.com/blog/2009/02/08/o-que-fazer-apos-o-curso-oo-226/</link>
		<comments>http://cristianosanchez.com/blog/2009/02/08/o-que-fazer-apos-o-curso-oo-226/#comments</comments>
		<pubDate>Mon, 09 Feb 2009 02:43:22 +0000</pubDate>
		<dc:creator>Cristiano Sanchez</dc:creator>
		
		<category><![CDATA[UML]]></category>

		<category><![CDATA[análise]]></category>

		<category><![CDATA[sun microsystems]]></category>

		<category><![CDATA[treinamentos]]></category>

		<category><![CDATA[curso]]></category>

		<category><![CDATA[OO]]></category>

		<category><![CDATA[oo-226]]></category>

		<category><![CDATA[treinamento]]></category>

		<guid isPermaLink="false">http://blog.cristianosanchez.com/?p=73</guid>
		<description><![CDATA[Muito bem, Sr. analista, agora que você já viu e praticou levantar requisitos e documentá-los usando UML, é hora de aprimorar alguns pontos importantes.
Agile Manifesto
Metodologias Ágeis!! Na prática, um conjunto de ações e princípios técnicos e gerenciais que tornam seu desenvolvimento menos arriscado e com certeza mais divertido. Um ótimo começo é o Agile Manifesto [...]]]></description>
			<content:encoded><![CDATA[<p>Muito bem, Sr. analista, agora que você já viu e praticou levantar requisitos e documentá-los usando UML, é hora de aprimorar alguns pontos importantes.</p>
<p><strong>Agile Manifesto</strong></p>
<p>Metodologias Ágeis!! Na prática, um conjunto de ações e princípios técnicos e gerenciais que tornam seu desenvolvimento menos arriscado e com certeza mais divertido. Um ótimo começo é o <a href="http://agilemanifesto.org/">Agile Manifesto</a> que foi escrito por um grupo expert de programadores que num dia chuvoso resolveram se reunir para beber e discutir as boas práticas que cada um usava em seus projetos. No link <a href="http://agilemanifesto.org/authors.html">About the Authors</a> você encontrará o site de cada um dos participantes com mais informações sobre metodologias além de diversos outros temas importantes.</p>
<p><strong>UML Tools</strong></p>
<p>Se quer começar a desenhar UML neste exato momento use a ferramenta <a href="http://jude.change-vision.com/jude-web/product/community.html">JUDE UML</a>, que não é open-source mas tem uma versão community (gratuita!!).</p>
<p><strong>Spec UML</strong></p>
<p>A <a href="http://www.uml.org/">UML</a> é especificada e mantida pela <a href="http://www.omg.org/">OMG</a>. No site você poderá baixar a especificação da última versão da UML. Mas aviso: não é dos documentos mais didáticos. Sugiro algum livro escrito em linguagem para humanos.</p>
<p><strong>Outros livros?</strong></p>
<p>O livro <a href="http://www.livrariacultura.com.br/scripts/cultura/resenha/resenha.asp?nitem=1316436&#038;sid=1522152181044636025792874&#038;k5=368C0073&#038;uid=">Head First Object Oriented Analysis and Design</a> aborda os assuntos discutidos no curso OO-226 de uma forma divertida - diferente das piadas sem graça do seu instrutor!</p>
<p>Uma ótima abordagem sobre UM pode ser encontrado no livro <a href="http://www.livrariacultura.com.br/scripts/cultura/resenha/resenha.asp?nitem=721464&#038;sid=15221521810329264793346353&#038;k5=21E1FD34&#038;uid=">UML Distilled</a>, do Martin Fowler.</p>
<p>Outro livro fantástico é <a href="http://www.livrariacultura.com.br/scripts/cultura/resenha/resenha.asp?nitem=782554&#038;sid=15221521810329264793346353&#038;k5=DD9E584&#038;uid=">Extreme Programming Explained</a> de Kent Beck. Fala sobre metodologia XP. É a referência obrigatória no assunto.</p>
<p>Por último o livro <a href="http://www.livrariacultura.com.br/scripts/cultura/resenha/resenha.asp?nitem=743677&#038;sid=15221521810329264793346353&#038;k5=1897DC77&#038;uid=">Agile Project Management With Scrum</a> de Ken Schwaber explica a metodologia Scrum e sua aplicação no gerenciamento de projetos.</p>
]]></content:encoded>
			<wfw:commentRss>http://cristianosanchez.com/blog/2009/02/08/o-que-fazer-apos-o-curso-oo-226/feed/</wfw:commentRss>
		</item>
		<item>
		<title>O que fazer após o curso DTJ-365</title>
		<link>http://cristianosanchez.com/blog/2009/02/08/o-que-fazer-apos-o-curso-dtj-310/</link>
		<comments>http://cristianosanchez.com/blog/2009/02/08/o-que-fazer-apos-o-curso-dtj-310/#comments</comments>
		<pubDate>Sun, 08 Feb 2009 23:42:12 +0000</pubDate>
		<dc:creator>Cristiano Sanchez</dc:creator>
		
		<category><![CDATA[java]]></category>

		<category><![CDATA[javame]]></category>

		<category><![CDATA[sun microsystems]]></category>

		<category><![CDATA[treinamentos]]></category>

		<category><![CDATA[cursos]]></category>

		<category><![CDATA[dtj-365]]></category>

		<category><![CDATA[sun]]></category>

		<guid isPermaLink="false">http://blog.cristianosanchez.com/?p=71</guid>
		<description><![CDATA[API e especificação
As várias APIs da J2ME podem ser encontradas on-line. Confira também todas as especificações no site da JCP. Você deverá ter as principais:
185 - JavaTM Technology for the Wireless Industry
139 - Connected Limited Device Configuration 1.1
118 - Mobile Information Device Profile 2.0
120 - Wireless Messaging API
Esses indianos&#8230;
 Sathya Srinivasan  organizou resumos das [...]]]></description>
			<content:encoded><![CDATA[<p><strong>API e especificação</strong></p>
<p>As várias <a href="http://java.sun.com/javame/reference/apis.jsp#api">APIs da J2ME</a> podem ser encontradas on-line. Confira também todas as especificações no site da <a href="http://www.jcp.org/en/jsr/all">JCP</a>. Você deverá ter as principais:</p>
<p>185 - JavaTM Technology for the Wireless Industry<br />
139 - Connected Limited Device Configuration 1.1<br />
118 - Mobile Information Device Profile 2.0<br />
120 - Wireless Messaging API</p>
<p><strong>Esses indianos&#8230;</strong></p>
<p><a href="http://www.cssathya.com/confluence/display/SOFT/Software+Tutorials"> Sathya Srinivasan </a> organizou resumos das especificações para certificação J2ME (além de outras certificações).</p>
<p><strong>Outros livros?</strong></p>
<p>O livro <a href="http://www.livrariacultura.com.br/scripts/cultura/resenha/resenha.asp?nitem=812480&#038;sid=1522301381024388393092418&#038;k5=2A36351D">Beginning J2ME From Novice to Professional</a> é um ótimo complemento ao curso. Você poderá utilizá-lo como reforço para sua certificação.</p>
]]></content:encoded>
			<wfw:commentRss>http://cristianosanchez.com/blog/2009/02/08/o-que-fazer-apos-o-curso-dtj-310/feed/</wfw:commentRss>
		</item>
		<item>
		<title>O que fazer após o curso SL-275</title>
		<link>http://cristianosanchez.com/blog/2009/02/08/o-que-fazer-apos-o-curso-sl-275/</link>
		<comments>http://cristianosanchez.com/blog/2009/02/08/o-que-fazer-apos-o-curso-sl-275/#comments</comments>
		<pubDate>Mon, 09 Feb 2009 02:38:38 +0000</pubDate>
		<dc:creator>Cristiano Sanchez</dc:creator>
		
		<category><![CDATA[java]]></category>

		<category><![CDATA[sun microsystems]]></category>

		<category><![CDATA[treinamentos]]></category>

		<category><![CDATA[javaSE]]></category>

		<category><![CDATA[linguagem]]></category>

		<category><![CDATA[programação]]></category>

		<category><![CDATA[sl-275]]></category>

		<guid isPermaLink="false">http://blog.cristianosanchez.com/?p=66</guid>
		<description><![CDATA[Se você está se sentindo perdido após tanto esforço, não desanime!! Aqui vão algumas dicas e alguns links para materiais de leitura obrigatória. Você se sentirá muito melhor após estas informações!
Convenção de Código Java
Neste documento está descrito qual o padrão que os programadores Java utilizam ao codificar, desde nome de variáveis, classes e métodos, até [...]]]></description>
			<content:encoded><![CDATA[<p>Se você está se sentindo perdido após tanto esforço, não desanime!! Aqui vão algumas dicas e alguns links para materiais de leitura obrigatória. Você se sentirá muito melhor após estas informações!</p>
<p><strong>Convenção de Código Java</strong></p>
<p>Neste documento está descrito qual o padrão que os programadores Java utilizam ao codificar, desde nome de variáveis, classes e métodos, até nomes de packages e comentários. Veja o documento <a href="http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html">aqui</a>.</p>
<p><strong>API da linguagem Java</strong></p>
<p>Se você passou o curso inteiro fugindo do <a href="http://java.sun.com/javase/6/docs/api/">JavaDoc (v6)</a> é hora de criar vergonha na cara e abrir a documentação das classes da API. Se quiser ser um programador de verdade e não perder tempo (e gerar bugs) tentando &#8220;adivinhar&#8221; os métodos existentes, consulte sempre!!</p>
<p><strong>Investigue o código dos outros</strong></p>
<p>Uma boa fonte de inspiração são os milhares de código open-source que você encontra em sites como <a href="http://java.net/">java.net</a> ou então <a href="http://sf.net/">Sourceforge</a>. Um boa alternativa é baixar e brincar um pouco com um projeto antigo mas ainda bem didático e atual: o <a href="http://robocode.sourceforge.net/">Robocode</a>.</p>
<p><strong>Persista!</strong></p>
<p>Persista&#8230; não, você não&#8230; suas informações!! Aprenda a conectar e persistir seus dados utilizando um banco de dados relacional. Você pode baixar o MySQL ou usar o JavaDB que já vem com a J2SE. É fácil, rápido e indolor&#8230; mas você terá que ler um pequeno tutorial em <a href="http://java.sun.com/docs/books/tutorial/jdbc/">http://java.sun.com/docs/books/tutorial/jdbc/</a>.</p>
<p><strong>Outros livros?</strong></p>
<p>Se Java ainda é uma nuvem negra e pesada e sufocante e amarga e feia&#8230; bem, sugiro que corra até a livraria mais próxima e adquira o livro <a href="http://www.livrariacultura.com.br/scripts/cultura/resenha/resenha.asp?nitem=798846&#038;sid=12020214391220455364570546&#038;k5=296752C5">Head First Java</a>, da Kathy Sierra. Caso você esteja interessado em fazer a prova de certificação (Certified Programmer), sugiro o livro <a href="http://www.livrariacultura.com.br/scripts/cultura/resenha/resenha.asp?nitem=766261&#038;sid=12020214391220455364570546&#038;k5=30499FE1&#038;uid=">SCJP</a>, também da Kathy&#8230; essa mulher não é demais?! E por último, sugiro o livro <a href="http://www.sun.com/books/catalog/horstmann_corejava2v2.xml">Core Java 2 Advanced</a> com capítulos sobre multithreading, JDBC, RMI, XML entre outros.</p>
<p><strong>Object Serialization</strong></p>
<p>Serializar objetos é da-hora!! Você pega um objeto e transforma ele em bytes chamando o método writeObject() que então&#8230; bom&#8230; melhor você ler com calma este documento.</p>
<p><strong>RMI</strong></p>
<p>Java Remote Method Invocation (RMI) é o mecanismo que permite que um objeto executando em uma Java Virtual Machine chame métodos de um objeto executando em uma Java Virtual Machine remota. RMI permite a comunicação entre programas escritos em Java. Saiba mais aqui.</p>
]]></content:encoded>
			<wfw:commentRss>http://cristianosanchez.com/blog/2009/02/08/o-que-fazer-apos-o-curso-sl-275/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Subversion: integração com Ant</title>
		<link>http://cristianosanchez.com/blog/2009/02/06/subversion-integracao-com-ant/</link>
		<comments>http://cristianosanchez.com/blog/2009/02/06/subversion-integracao-com-ant/#comments</comments>
		<pubDate>Fri, 06 Feb 2009 15:00:21 +0000</pubDate>
		<dc:creator>Cristiano Sanchez</dc:creator>
		
		<category><![CDATA[ant]]></category>

		<category><![CDATA[subversion]]></category>

		<category><![CDATA[builder]]></category>

		<category><![CDATA[sourcecontrol]]></category>

		<guid isPermaLink="false">http://blog.cristianosanchez.com/?p=36</guid>
		<description><![CDATA[Para usar o ANT e manipular seu repositório SVN, será necessário adicionar uma extensão ao Ant:
1) Baixar o SVNAnt (http://subclipse.tigris.org/svnant.html)
2) Copiar *.jar de svnant_home/lib para o diretório ant_home/lib
3) Indicar no arquivo build.xml a taskdef: 
&#60;taskdef name=&#8221;svn&#8221; classname=&#8221;org.tigris.subversion.svnant.SvnTask&#8221; /&#62;
4) Ver documentação das tags em http://subclipse.tigris.org/svnant/svn.html
 
]]></description>
			<content:encoded><![CDATA[<p>Para usar o ANT e manipular seu repositório SVN, será necessário adicionar uma extensão ao Ant:</p>
<p>1) Baixar o SVNAnt (<a href="http://subclipse.tigris.org/svnant.html">http://subclipse.tigris.org/svnant.html</a>)</p>
<p>2) Copiar *.jar de svnant_home/lib para o diretório ant_home/lib</p>
<p>3) Indicar no arquivo build.xml a taskdef: </p>
<p><em>&lt;taskdef name=&#8221;svn&#8221; classname=&#8221;org.tigris.subversion.svnant.SvnTask&#8221; /&gt;</em></p>
<p>4) Ver documentação das tags em <a href="http://subclipse.tigris.org/svnant/svn.html">http://subclipse.tigris.org/svnant/svn.html</a></p>
<p> </p>
]]></content:encoded>
			<wfw:commentRss>http://cristianosanchez.com/blog/2009/02/06/subversion-integracao-com-ant/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
