<?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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Bruno Pereira &#187; java</title>
	<atom:link href="http://brunopereira.org/tag/java/feed/" rel="self" type="application/rss+xml" />
	<link>http://brunopereira.org</link>
	<description>Open source, Java, web, python, client-side e outros hobbies :)</description>
	<lastBuildDate>Thu, 20 Oct 2011 00:47:23 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>A importância do open source profissional</title>
		<link>http://brunopereira.org/2009/05/18/a-importancia-do-open-source-profissional/</link>
		<comments>http://brunopereira.org/2009/05/18/a-importancia-do-open-source-profissional/#comments</comments>
		<pubDate>Mon, 18 May 2009 05:28:23 +0000</pubDate>
		<dc:creator>blpsilva</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[posts em português]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[jboss]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[spring source]]></category>

		<guid isPermaLink="false">http://brunopereira.org/?p=340</guid>
		<description><![CDATA[Continuando o tema do meu artigo anterior, agora quero falar sobre a importância do open source profissional.
Na última quinta-feira eu fui na palestra do Bruno Borges no RioJUG, sobre Apache Camel. A palestra em si foi bem legal, pois eu já conhecia um pouco do Apache Camel e pude ver algumas coisas a mais. Mas [...]]]></description>
			<content:encoded><![CDATA[<p>Continuando o tema do <a href="http://brunopereira.org/2009/05/18/as-diferentes-culturas-open-source-ubuntu-x-debian/" target="_blank">meu artigo anterior</a>, agora quero falar sobre a importância do open source profissional.</p>
<p>Na última quinta-feira eu fui na palestra do <a href="http://blog.brunoborges.com.br/" target="_blank">Bruno Borges</a> no <a href="http://www.riojug.org" target="_blank">RioJUG</a>, <a href="http://www.riojug.org/blog/?p=79" target="_blank">sobre Apache Camel</a>. A palestra em si foi bem legal, pois eu já conhecia um pouco do <a href="http://camel.apache.org/" target="_blank">Apache Camel</a> e pude ver algumas coisas a mais. Mas o ponto específico que eu quero abordar é um comentário que o Bruno fez, que diverge da minha postura em relação a open source.</p>
<p>Ele comentou que tenta sempre utilizar produtos <a href="http://www.apache.org" target="_blank">Apache</a>, evitando produtos open source que tenham vínculo com alguma empresa, como <a href="http://www.jboss.org/" target="_blank">JBoss</a>, <a href="http://www.springsource.com/" target="_blank">SpringSource</a>, entre outras. Não me recordo do motivo exato, mas a razão principal que ele explicou é o fato da Apache Software Foundation ser uma fundação composta de pessoas, em vez de ser uma empresa com fins comerciais.</p>
<p>Eu tenho uma postura diferente da dele em relação a open source. Eu gosto muito e tenho um respeito enorme pela fundação Apache. Já usei inúmeros produtos Apache e certamente continuarei usando por muito tempo. Entretanto, já usei vários produtos <a href="http://www.jboss.org" target="_blank">JBoss</a> e vários componentes do <a href="http://www.springsource.org/" target="_blank">Spring</a>, e acho muito importante e saudável a existência dessas empresas.</p>
<p>A história do movimento open source tem vários elementos &#8220;românticos&#8221; e &#8220;filosóficos&#8221;, e essa característica ainda é muito presente em várias comunidades hoje em dia. Entretanto, com o crescimento do Linux, Java, Python, Ruby e outras tecnologias, existe hoje um mercado enorme de trabalho e negócios em torno do software livre.</p>
<p>O surgimento desse mercado naturalmente trouxe a participação de muitas empresas que vivem de software livre atualmente. Sei que há pessoas que enxergam open source e capitalismo como coisas opostas, mas na minha opinião essa visão é míope. Open source é um modelo de desenvolvimento de software e oferta de produtos e serviços. A busca do lucro é o que move nossas empresas, e isso não é diferente para quem atua com software livre.</p>
<p>O surgimento das empresas profissionais open source foi importantíssimo para o amadurecimento das tecnologias e dos profissionais. Se o movimento open source continuasse restrito ao meio acadêmico, o nível de competição no mercado de software seria muito menor, e o avanço tecnológico teria sido bem mais lento.</p>
<p>Além disso, minha postura profissional é de tentar sempre entregar os melhores resultados para os clientes e para a empresa em que trabalho. Em algumas situações pode ser mais adequado usar open source, em outras pode ser necessário usar software proprietário. Temos que nos adequar às necessidades dos clientes, em vez de esperar que eles se adeqüem às nossas preferências.</p>
<p>No meu ponto de vista, empresas como JBoss e SpringSource contribuíram e contribuem muito no processo de profissionalização do software livre. A existência delas criou um mercado fortíssimo em torno do software livre, e eu só tenho a agradecer por isso.</p>
]]></content:encoded>
			<wfw:commentRss>http://brunopereira.org/2009/05/18/a-importancia-do-open-source-profissional/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Dicas de estudo para se tornar um desenvolvedor web produtivo</title>
		<link>http://brunopereira.org/2009/04/27/dicas-de-estudo-para-se-tornar-um-desenvolvedor-web-produtivo/</link>
		<comments>http://brunopereira.org/2009/04/27/dicas-de-estudo-para-se-tornar-um-desenvolvedor-web-produtivo/#comments</comments>
		<pubDate>Tue, 28 Apr 2009 02:46:56 +0000</pubDate>
		<dc:creator>blpsilva</dc:creator>
				<category><![CDATA[carreira]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[posts em português]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[desenvolvimento web]]></category>
		<category><![CDATA[firebug]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[java server faces]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[jsf]]></category>
		<category><![CDATA[noscript]]></category>
		<category><![CDATA[spring]]></category>
		<category><![CDATA[spring mvc]]></category>
		<category><![CDATA[struts]]></category>
		<category><![CDATA[web developer]]></category>

		<guid isPermaLink="false">http://brunopereira.org/?p=318</guid>
		<description><![CDATA[Um amigo meu me pediu umas dicas de estudo para se tornar um desenvolvedor web produtivo e com boa empregabilidade. O ideal para ele é ter como base a plataforma Java, mas sem ficar restrito a Java. Talvez isso possa ser útil para outras pessoas também, então colocarei as dicas a seguir.
Framework web Java
Considerando o [...]]]></description>
			<content:encoded><![CDATA[<p>Um amigo meu me pediu umas dicas de estudo para se tornar um desenvolvedor web produtivo e com boa empregabilidade. O ideal para ele é ter como base a plataforma Java, mas sem ficar restrito a Java. Talvez isso possa ser útil para outras pessoas também, então colocarei as dicas a seguir.</p>
<h2>Framework web Java</h2>
<p>Considerando o critério empregabilidade, é fundamental conhecer razoavelmente <a href="http://struts.apache.org/1.3.10/index.html" target="_blank">Struts 1.x</a>. Eu creio que poucos projetos hoje em dia sejam iniciados usando o Struts 1.x, mas a quantidade de aplicações em produção com esse framework é enorme, e durante um bom tempo essa realidade ainda se manterá.</p>
<p>Depois do Struts 1.x, nenhum outro framework web Java conseguiu adoção semelhante, então é difícil recomendar uma opção mais moderna que garanta alguma coisa. É provável que a melhor opção &#8220;moderna&#8221; em termos de empregabilidade seja <a href="http://java.sun.com/javaee/javaserverfaces/" target="_blank">Java Server Faces</a>, mas não me sinto bem em recomendar que ninguém estude JSF. Se alguém quer seguir na linha do JSF, eu recomendaria o <a href="http://www.jboss.com/products/seam/" target="_blank">JBoss Seam</a>, do qual ouvi boas avaliações, mas nunca usei.</p>
<p>Dos frameworks web Java mais recentes, o meu preferido é o <a href="http://static.springframework.org/spring/docs/2.5.x/reference/mvc.html" target="_blank">Spring MVC 2.5.x</a>. O importante da versão 2.5 em diante é que os controllers suportam anotações para configuração, em vez dos XMLs monstros que eram a opção anterior. A maioria dos frameworks web está seguindo numa abordagem <a href="http://brunopereira.org/webservicesrest-indice/" target="_blank">RESTful</a> de arquitetura, o que me agrada também. O Spring MVC é um dos que está fazendo isso, e com uma abordagem legal.</p>
<p>Além disso, todos os componentes do Spring acabam te &#8220;seduzindo&#8221; a usar outros componentes dele, pela conveniência e pela qualidade dos mesmos. Então se você usar o Spring MVC, é muito provável que use a <a href="http://static.springframework.org/spring/docs/2.5.x/reference/beans.html" target="_blank">injeção de dependências</a>, o <a href="http://static.springframework.org/spring/docs/2.5.x/reference/transaction.html" target="_blank">controle transacional</a>, talvez o web flow, entre outras coisas.</p>
<h2>Frameworks web da &#8220;nova geração&#8221;</h2>
<p>Qualquer desenvolvedor web hoje em dia TEM OBRIGAÇÃO de olhar pelo menos um entre <a href="http://www.djangoproject.com/" target="_blank">Django</a>, <a href="http://www.grails.org/" target="_blank">Grails</a> e <a href="http://rubyonrails.org/" target="_blank">Ruby on Rails</a>. O ideal mesmo é avaliar os três e ter um deles como opção principal. Eu já conheço legal o Grails e estou evoluindo rápido com o Django. Em algum momento esse ano eu dedicarei um bom tempo avaliando e fazendo algo relevante com Ruby on Rails também.</p>
<p>Pode parecer que leva um tempo enorme para conhecer os 3, mas isso não é verdade. Os 3 são extremamente produtivos e têm muitas características semelhantes. Quando você começa a utilizar um deles já tendo experiência com outro, a curva de aprendizado fica muito rápida.</p>
<p>Um aspecto muito legal do aprendizado desses frameworks da &#8220;nova geração&#8221; é que você tem contato com outras formas de fazer software (para quem tem um background Java), outras comunidades, e várias idéias interessantes que te farão um programador melhor em qualquer linguagem ou plataforma. Se você ainda não conhece nenhum dos 3, não perca mais tempo e escolha um para começar. E de preferência conheça os outros em seguida também <img src='http://brunopereira.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h2>HTML, CSS, Web Standards</h2>
<p>Estamos em 2009. Embora ainda vejamos muitos sites bisonhos que só funcionam com o IE, se você é um desenvolvedor que se preza você precisa conhecer bem HTML, CSS e os web standards. Na verdade, fazer o site funcionar no IE 6 por exemplo é secundário. Você precisa aprender primeiro a gerar HTML e CSS válido de acordo com as normas da W3C, que garantem padrões de qualidade e interoperabilidade entre browsers. Leia de cabo a rabo todos os tutoriais referentes a essas coisas no <a href="http://www.w3schools.com/" target="_blank">W3Schools</a>. É muito rápido estudar por lá, e é uma ótima referência depois.</p>
<p>Depois que você conhecer isso, um pouco de prática na escola norueguesa de software fará suas aplicações rodarem no IE 6 também <img src='http://brunopereira.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h2>Javascript</h2>
<p>Ainda há pessoas que escrevem javascript na unha, mas acho que elas são cada vez mais raras. Temos hoje uma oferta enorme de bibliotecas javascript para resolver todos os problemas comuns dos desenvolvedores web. Eu era um fiasco em javascript antes de conhecer o <a href="http://jquery.com/" target="_blank">jQuery</a>, mas há um bom tempo eu gosto MUITO de javascript, e minha produtividade no client-side melhorou absurdamente.</p>
<p>O jQuery tem uma abordagem que eu acho excepcional. Temos 3 aspectos claramente distintos para tratar em uma página web: Estrutura (HTML), Estilo/Visual (CSS) e Comportamento (Javascript). Se você fizer tudo direitinho e usar o jQuery, essas 3 coisas ficam totalmente desamarradas.</p>
<p>Você não precisará colocar nenhuma declaração de estilo na estrutura (leia-se: sem CSS inline). A definição do comportamento fica totalmente por fora da estrutura. A beleza do jQuery está em aplicar todo o comportamento da página de uma maneira não-intrusiva, e com uma abordagem muito limpa. Ah, e o javascript funcionará em todos os browsers sem você ter que tratar disso explicitamente. Um sonho, não é mesmo? <img src='http://brunopereira.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Há várias outras opções, e não estou defendendo a idéia de que se use apenas uma. Eu uso o jQuery para tudo que posso, e até hoje não precisei de outra biblioteca, mas vá em frente e experimente algumas opções até encontrar o que lhe atender melhor.</p>
<h2>Plugins legais do Firefox</h2>
<h3>Firebug</h3>
<p>Além do jQuery, outra descoberta que mudou minha opinião e gosto por client-side foi o <a href="https://addons.mozilla.org/en-US/firefox/addon/1843" target="_blank">Firebug</a>. Ele ajuda MUUUUUITO na criação do HTML/CSS das páginas, pois você consegue inspecionar de forma fácil o conteúdo e o estilo, e aplicar mudanças imediatas sobre o que está vendo. Depois de acertar as coisas pelo Firebug, você simplesmente aplica as mudanças no HTML/CSS originais e continua implementando sua página. Além disso, ele te permite debugar javascript e analisar as requisições HTTP detalhadamente. Eu já o utilizo há pouco mais de 1 ano, e ele contribuiu muito para meu amadurecimento no client-side, e me dá muito mais produtividade.</p>
<h3>Web Developer</h3>
<p>Um companheiro freqüente do Firebug é o <a href="https://addons.mozilla.org/pt-BR/firefox/addon/60" target="_blank">Web Developer</a>. Ele te permite inspecionar detalhadamente uma porção de coisas na sua página, como informações de todas as imagens, todos os formulários, estilos, entre outras coisas. Além disso, permite a manipulação de cookies, valida HTML/CSS/Javascript, e tem muitas outras funcionalidades úteis. É indispensável para trabalhar com web, assim como o Firebug.</p>
<h3>Screengrab</h3>
<p>É muito comum termos que mostrar uma página para outras pessoas, e nem sempre elas têm acesso à nossa máquina. Para facilitar isso, podemos usar o <a href="https://addons.mozilla.org/en-US/firefox/addon/1146" target="_blank">Screengrab</a>, que é semelhante a um Print Screen, mas salva o conteúdo completo da página como uma imagem. Isso é bem melhor do que o Print Screen, pois pega apenas a área útil da página (sem pegar barras do Firefox e barra de tarefas) e pega toda a área útil. As regiões da página que precisam ser &#8220;roladas&#8221; para visualização também são incluídas na imagem, o que é certamente o desejado.</p>
<h3>NoScript</h3>
<p>O <a href="https://addons.mozilla.org/pt-BR/firefox/addon/722" target="_blank">NoScript</a> é um plugin bem incômodo para uso em geral. Ele bloqueia a maioria dos javascripts e você precisa ficar liberando a execução de scripts toda hora. Quando não estou desenvolvendo eu sempre deixo ele desligado.</p>
<p>Entretanto, para desenvolver ele ajuda em algumas situações. Por exemplo, você pode precisar desabilitar alguns scripts específicos da sua página para testar alguma coisa, ou testar se a página funciona sem scripts. Ou então você pode ter uma situação como uma recente minha.</p>
<p>Eu tive que customizar um plugin do jQuery que faz algumas animações, e aí o HTML da página ficava mudando o tempo todo. Eu precisava customizar o HTML/CSS de vários &#8220;instantes&#8221; da animação, mas era impossível fazer isso com a animação rodando. Para resolver isso, eu usei o NoScript para interromper os scripts exatamente no trecho da animação que eu precisava mudar o HTML/CSS. Com isso, eu conseguia um HTML estático que eu podia mexer pelo Firebug, e consegui trabalhar tranqüilamente nas customizações que eu precisava fazer.</p>
<h2>Conclusão</h2>
<p>Deixei algumas opiniões e dicas sobre algumas coisas de desenvolvimento web, mas é óbvio que eu também tenho muita coisa a aprender. Se alguém discordar de alguma opinião minha ou quiser acrescentar sugestões, estejam convidados a participar <img src='http://brunopereira.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />   Além disso, se alguém tiver mais dicas de extensões do Firefox para desenvolvimento web, eu sempre estou interessado.</p>
]]></content:encoded>
			<wfw:commentRss>http://brunopereira.org/2009/04/27/dicas-de-estudo-para-se-tornar-um-desenvolvedor-web-produtivo/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Oracle anuncia compra da Sun</title>
		<link>http://brunopereira.org/2009/04/20/oracle-anuncia-compra-da-sun/</link>
		<comments>http://brunopereira.org/2009/04/20/oracle-anuncia-compra-da-sun/#comments</comments>
		<pubDate>Mon, 20 Apr 2009 12:31:10 +0000</pubDate>
		<dc:creator>blpsilva</dc:creator>
				<category><![CDATA[posts em português]]></category>
		<category><![CDATA[bea]]></category>
		<category><![CDATA[cloud computing]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[oracle]]></category>
		<category><![CDATA[peoplesoft]]></category>
		<category><![CDATA[siebel]]></category>
		<category><![CDATA[Sun]]></category>
		<category><![CDATA[sun cloud]]></category>

		<guid isPermaLink="false">http://brunopereira.org/?p=311</guid>
		<description><![CDATA[Acabei de saber do anúncio da compra da Sun pela Oracle, e posso dizer que fiquei muito surpreso. A Oracle é uma empresa que vive desde o começo de venda de licenças, e todo seu histórico de aquisições foi nessa linha, comprando empresas como a Peoplesoft, Siebel e BEA.
O que me intriga é que a [...]]]></description>
			<content:encoded><![CDATA[<p>Acabei de saber do <a href="http://www.nytimes.com/2009/04/21/technology/companies/21sun.html?_r=1&amp;ref=business" target="_blank">anúncio da compra da Sun pela Oracle</a>, e posso dizer que fiquei muito surpreso. A <a href="http://www.oracle.com" target="_blank">Oracle</a> é uma empresa que vive desde o começo de venda de licenças, e todo seu histórico de aquisições foi nessa linha, comprando empresas como a <a href="http://www.oracle.com/peoplesoft/index.html" target="_blank">Peoplesoft</a>, <a href="http://www.oracle.com/siebel/index.html" target="_blank">Siebel</a> e <a href="http://www.oracle.com/bea/index.html" target="_blank">BEA</a>.</p>
<p>O que me intriga é que a Oracle não é tradicionalmente uma empresa de serviços. Ela costuma desenvolver e vender produtos, e a prestação de serviços é feita através de parceiros, como a <a href="http://www.concretesolutions.com.br" target="_blank">Concrete</a> por exemplo. Não consegui ter ainda a visão de como essa aquisição vai se encaixar dentro da estratégia da Oracle.</p>
<p>Não sei bem também como será a relação da Oracle com Open Source. A Sun não vinha tendo resultados financeiros muito bons, mas mantinha muitos projetos open source importantes, como o <a href="https://glassfish.dev.java.net/" target="_blank">Glassfish</a>, <a href="http://www.sun.com/software/solaris/" target="_blank">Solaris</a>, <a href="http://www.mysql.com/" target="_blank">MySql</a>, <a href="http://www.sun.com/products/soa/index.jsp" target="_blank">stack SOA</a> e vários projetos Java em geral. Além disso, desempenha um papel muito importante no desenvolvimento de linguagens dinâmicas para a JVM, além do desenvolvimento da própria JVM.</p>
<p>Se em termos de software tenho várias dúvidas, em relação às ofertas de hardware da Sun eu já consigo ter algumas idéias. Um dos principais concorrentes da Oracle é a IBM, que tem um braço bem forte de hardware. Não é raro a IBM ganhar concorrências com a Oracle &#8220;dando&#8221; o hardware, e vendendo o software. A Oracle não tinha condições de oferecer uma proposta equivalente, mas agora isso será possível.</p>
<p>Além disso, a Sun anunciou recentemente sua oferta de <a href="http://www.sun.com/solutions/cloudcomputing/index.jsp" target="_blank">Cloud Computing</a>, que pode ser um mercado que a Oracle quer entrar. Como ela já possui muitas aplicações críticas para empresas, ela pode querer oferecer estas aplicações como serviços, em uma estrutura de Cloud. Posso estar totalmente fora do alvo, mas não duvido que isto seja um objetivo da Oracle para diversificar seu modelo comercial.</p>
<p>Assim como em outras aquisições, muita coisa ainda não está clara, mas já temos vários aspectos para prestar atenção.</p>
]]></content:encoded>
			<wfw:commentRss>http://brunopereira.org/2009/04/20/oracle-anuncia-compra-da-sun/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Várias vagas na Concrete</title>
		<link>http://brunopereira.org/2009/04/16/varias-vagas-na-concrete/</link>
		<comments>http://brunopereira.org/2009/04/16/varias-vagas-na-concrete/#comments</comments>
		<pubDate>Fri, 17 Apr 2009 00:16:54 +0000</pubDate>
		<dc:creator>blpsilva</dc:creator>
				<category><![CDATA[carreira]]></category>
		<category><![CDATA[posts em português]]></category>
		<category><![CDATA[bea]]></category>
		<category><![CDATA[concrete solutions]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jboss]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[scala]]></category>
		<category><![CDATA[tomcat]]></category>
		<category><![CDATA[unix]]></category>
		<category><![CDATA[weblogic]]></category>

		<guid isPermaLink="false">http://brunopereira.org/?p=310</guid>
		<description><![CDATA[Pessoal, a Concrete fechou mais projetos, e estamos com várias vagas, para todos os níveis de experiência. Os principais projetos que temos feito envolvem desenvolvimento de portais colaborativos de internet/intranet, integração de aplicações e soluções móveis.
No momento atual, temos de 8 a 10 vagas, todas para início imediato e horizonte de longo prazo. Queremos profissionais [...]]]></description>
			<content:encoded><![CDATA[<p>Pessoal, a <a title="Concrete Solutions" href="http://www.concretesolutions.com.br" target="_blank">Concrete</a> fechou mais projetos, e estamos com várias vagas, para todos os níveis de experiência. Os principais projetos que temos feito envolvem desenvolvimento de portais colaborativos de internet/intranet, integração de aplicações e soluções móveis.</p>
<p>No momento atual, temos de 8 a 10 vagas, todas para início imediato e horizonte de longo prazo. Queremos profissionais que tenham paixão por software e auto-motivados, buscando evolução contínua. Profissionais deste perfil encontrarão um ambiente ótimo para seu crescimento dentro da Concrete. A descrição técnica dos perfis pode ser vista a seguir.</p>
<p>Os níveis de experiência são variados, então entre em contato se você se julgar dentro do perfil de profissional que buscamos. Quem quiser mais informações, não deixe de entrar em contato.</p>
<p><strong>Desenvolvedor Java (preferencialmente com experiência em Web e/ou Mobile)</strong></p>
<p>Java SE 5 e/ou 6. Java EE 1.4 e/ou 5.</p>
<p>JPA e/ou Hibernate são bastante desejáveis. Importante conhecer banco de dados relacionais e mapeamento objeto-relacional.</p>
<p>Experiência de uso com alguns dos seguintes application servers: BEA Weblogic 9 ou 10, Jboss AS, Jetty, Apache Tomcat  e Geronimo.</p>
<p>Struts, Spring MVC ou outro framework para web em Java. Boa experiência com Grails, Ruby on Rails ou Django também são válidos, e podem nos interessar mesmo se você não conhecer um framework web Java.</p>
<p>Inglês para leitura e estudo de material técnico.</p>
<p><strong>Desejável</strong></p>
<p>Graduação em Ciência da Computação, Engenharia da Computacão ou Informática</p>
<p>Conhecimento e interesse em outras linguagens de programação é bastante apreciado: Python, Scala, Ruby, Rhino, Javascript, Perl, OCAML, Common Lisp.</p>
<p>Bons conhecimentos de client-side (HTML, CSS, Javascript) são muito positivos.</p>
<p>Conhecimento de plataforma Linux é desejável, mas não obrigatório.</p>
<p>Conhecimento em shellscripting para Unix/ Linux é muito bem-vindo.</p>
<p>Os interessados devem enviar um e-mail com currículo para marcia.cataldi@concretesolutions.com.br com cópia para bruno.pereira@concretesolutions.com.br</p>
]]></content:encoded>
			<wfw:commentRss>http://brunopereira.org/2009/04/16/varias-vagas-na-concrete/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Estamos contratando</title>
		<link>http://brunopereira.org/2009/03/23/estamos-contratando/</link>
		<comments>http://brunopereira.org/2009/03/23/estamos-contratando/#comments</comments>
		<pubDate>Mon, 23 Mar 2009 23:42:59 +0000</pubDate>
		<dc:creator>blpsilva</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[posts em português]]></category>
		<category><![CDATA[concrete solutions]]></category>

		<guid isPermaLink="false">http://brunopereira.org/?p=300</guid>
		<description><![CDATA[Pessoal, a Concrete está novamente contratando. Estamos trabalhando com projetos muito interessantes de portais atualmente, e neste processo seletivo estamos com 2 vagas, conforme abaixo.
Desenvolvedor Java (2 vagas) 
Fundamental:
Experiência comprovada de pelo menos 4 anos de trabalho como programador/desenvolvedor de software.
Java EE 5 e 6.
JPA, Hibernate, Struts ou outro framework para web  em Java.
Experiência de [...]]]></description>
			<content:encoded><![CDATA[<p>Pessoal, a Concrete está novamente contratando. Estamos trabalhando com projetos muito interessantes de portais atualmente, e neste processo seletivo estamos com 2 vagas, conforme abaixo.</p>
<p><strong>Desenvolvedor Java (2 vagas) </strong></p>
<p><strong>Fundamental</strong>:</p>
<p>Experiência comprovada de pelo menos 4 anos de trabalho como programador/desenvolvedor de software.</p>
<p>Java EE 5 e 6.</p>
<p>JPA, Hibernate, Struts ou outro framework para web  em Java.</p>
<p>Experiência de uso com alguns dos seguintes application servers: BEA Weblogic 9 ou 10, Jboss AS, Jetty, Apache Tomcat  e Geronimo.</p>
<p>Conhecimento de banco de dados e mapeamento objeto-relacional (desejável).</p>
<p>Inglês para leitura e estudo de material técnico.</p>
<p>Comprometimento, concentração e auto-didatismo são valores extremamente importantes. Argumentação fundamentada .</p>
<p><strong>Desejável</strong></p>
<p>Graduação em Ciência da Computação, Engenharia da Computacão ou Informática</p>
<p>Conhecimento e interesse em outras linguagens de programação é bastante apreciado: Python, Scala, Ruby, Rhino, Javascript, Perl, OCAML, Common Lisp</p>
<p>Conhecimento de plataforma Linux</p>
<p>Conhecimento em shellscripting para Unix/ Linux é bastante desejável.</p>
<p>Os interessados devem enviar um e-mail com currículo para marcia.cataldi@concretesolutions.com.br com cópia para bruno.pereira@concretesolutions.com.br</p>
]]></content:encoded>
			<wfw:commentRss>http://brunopereira.org/2009/03/23/estamos-contratando/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dificuldades da Sun com o seu modelo de negócios open source</title>
		<link>http://brunopereira.org/2008/12/16/dificuldades-da-sun-com-o-seu-modelo-de-negocios-open-source/</link>
		<comments>http://brunopereira.org/2008/12/16/dificuldades-da-sun-com-o-seu-modelo-de-negocios-open-source/#comments</comments>
		<pubDate>Wed, 17 Dec 2008 02:57:57 +0000</pubDate>
		<dc:creator>blpsilva</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[posts em português]]></category>
		<category><![CDATA[bea]]></category>
		<category><![CDATA[eds]]></category>
		<category><![CDATA[glassfish]]></category>
		<category><![CDATA[hp]]></category>
		<category><![CDATA[ibm]]></category>
		<category><![CDATA[jboss]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[Sun]]></category>

		<guid isPermaLink="false">http://brunopereira.org/?p=270</guid>
		<description><![CDATA[Hoje o Sacha Labourey (CTO da JBoss) publicou um post interessante sobre as dificuldades que a Sun vem encontrando, em especial com seu modelo de negócios open source. Como eu já pensei um bocado sobre isso e conversei com algumas pessoas, vou deixar aqui algumas opiniões.
Na minha opinião, a Sun fez e vem fazendo um [...]]]></description>
			<content:encoded><![CDATA[<p>Hoje o <a href="http://sacha.labourey.com/" target="_blank">Sacha Labourey</a> (CTO da JBoss) publicou um <a href="http://sacha.labourey.com/2008/12/16/sun-sound-open-source-business-model/" target="_blank">post interessante</a> sobre as dificuldades que a <a href="http://www.sun.com" target="_blank">Sun</a> vem encontrando, em especial com seu modelo de negócios open source. Como eu já pensei um bocado sobre isso e conversei com algumas pessoas, vou deixar aqui algumas opiniões.</p>
<p>Na minha opinião, a Sun fez e vem fazendo um excepcional trabalho mantendo a plataforma Java como um todo. O problema todo está no contexto que girou em torno disso.</p>
<p>Em um determinado momento a Sun lutava bastante contra a <a href="http://www.microsoft.com" target="_blank">Microsoft</a> e suas soluções Windows/.NET, e de fato parecia que as empresas seriam adversárias. O que ocorre é que a Sun gastou tantas energias combatendo a Microsoft que não dedicou o esforço necessário para conquistar espaço dentro do próprio mercado Java.</p>
<p>O <a href="https://glassfish.dev.java.net/" target="_blank">Glassfish V2</a> foi o primeiro bom servidor de aplicações da Sun, mas ele chegou bem tarde. Muito antes a <a href="http://www.bea.com" target="_blank">BEA</a> e a <a href="http://www.ibm.com" target="_blank">IBM</a> já tinham um vasto portfólio de produtos Java Enterprise, e servidores de aplicação bem melhores do que o antigo Sun Application Server. Com isso, mesmo com o enorme sucesso da plataforma Java, a Sun não estava muito bem posicionada no mercado de software.</p>
<p>Creio que em decorrência deste primeiro problema (a falta de um bom app server), veio o problema que eu acho o mais grave. Na minha opinião o que fez mais falta à Sun é um bom modelo de serviços em torno da plataforma que ela desenvolveu tão bem. A Sun tem muitos grandes engenheiros, mas não conseguiu traduzir isso em muito lucro com Java. Penso que um modelo de serviços semelhante ao da IBM teria sido adequado à Sun, mas para isso eles precisariam de um portfólio de produtos melhor.</p>
<p>O grande (e bem-sucedido) esforço no desenvolvimento da plataforma Java consumiu energias que poderiam ter sido aplicadas na construção de uma linha de produtos mais rica, e com isso o sucesso do Java acabou drenando muito da saúde da Sun.</p>
<p>Mais recentemente a Sun tentou mudar a sua estratégia, e passou a abraçar ainda mais o modelo open-source. Embora isso tenha sido muito bem recebido pela comunidade de desenvolvedores, não podemos dizer que essa mudança tenha trazido mais sucesso para a empresa.</p>
<p>Eu tenho a clara impressão de que a Sun abraçou este modelo sem ter muita noção do que a esperava, mas talvez a sensação fosse de que não havia uma outra alternativa óbvia. A verdade é que a Sun está há anos lutando, mas sem encontrar a estratégia correta. O modelo de negócios em torno de open source foi mais uma tentativa da empresa, mas não estou vendo muitas perspectivas da Sun conseguir deste modelo as receitas necessárias para cobrir seus custos.</p>
<p>Eu fico triste por essas dificuldades da Sun, pois eles fizeram um excelente trabalho desenvolvendo a plataforma Java, mas isso custou a própria saúde da empresa.</p>
<p>E o que poderá vir em conseqüência? Difícil dizer, mas me parece inevitável que a Sun seja comprada por um player de maior porte, como a HP ou a SAP.</p>
<p>Como a Oracle agora é um concorrente direto da SAP em várias linhas, e a SAP começou a investir em Java, talvez faça sentido que a gigante alemã compre a Sun.</p>
<p>Quanto à HP, seria um movimento muito mais coerente do que a <a href="http://brunopereira.org/2008/05/14/hp-compra-eds-mas-isso-faz-algum-sentido/" target="_blank">compra da EDS</a>, que ocorreu esse ano. Comprando a Sun, a HP teria a stack completa, com hardware HP, sistema operacional e middleware da Sun, e serviços provenientes da EDS. Isto a deixaria em situação semelhante à da IBM, e acho que faria sentido nesse contexto atual.</p>
<p>Não sei qual será o futuro da Sun, mas sinceramente torço muito para que seja próspero, pois seu legado de contribuições ao cenário mundial de software é valioso demais para que a empresa tenha um final agonizante.</p>
]]></content:encoded>
			<wfw:commentRss>http://brunopereira.org/2008/12/16/dificuldades-da-sun-com-o-seu-modelo-de-negocios-open-source/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>À procura de uma maneira produtiva de trabalhar com web services SOAP</title>
		<link>http://brunopereira.org/2008/12/08/a-procura-de-uma-maneira-produtiva-de-trabalhar-com-web-services-soap/</link>
		<comments>http://brunopereira.org/2008/12/08/a-procura-de-uma-maneira-produtiva-de-trabalhar-com-web-services-soap/#comments</comments>
		<pubDate>Tue, 09 Dec 2008 00:28:03 +0000</pubDate>
		<dc:creator>blpsilva</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[posts em português]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[apache cxf]]></category>
		<category><![CDATA[aqualogic]]></category>
		<category><![CDATA[axis]]></category>
		<category><![CDATA[axis 2]]></category>
		<category><![CDATA[bea]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[glassfish]]></category>
		<category><![CDATA[jboss]]></category>
		<category><![CDATA[metro]]></category>
		<category><![CDATA[netbeans]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[rest]]></category>
		<category><![CDATA[soap]]></category>
		<category><![CDATA[Sun]]></category>
		<category><![CDATA[web services]]></category>
		<category><![CDATA[wsdl]]></category>

		<guid isPermaLink="false">http://brunopereira.org/?p=262</guid>
		<description><![CDATA[Com a minha mudança de alocação da Globo.com para a Globosat, continuo trabalhando bastante com integração de aplicações, mas agora com um ferramental e paradigmas diferentes.
Na Globo.com eu trabalhei muito com open source, e estava acostumado a montar as aplicações a partir de componentes &#8220;crus&#8221;, em vez de usar ferramentas sofisticadas. Open source faz parte [...]]]></description>
			<content:encoded><![CDATA[<p>Com a minha <a href="http://brunopereira.org/2008/11/28/adeus-globocom-foi-um-grande-prazer/" target="_blank">mudança de alocação</a> da <a href="http://www.globo.com" target="_blank">Globo.com</a> para a <a href="http://globosat.globo.com/" target="_blank">Globosat</a>, continuo trabalhando bastante com integração de aplicações, mas agora com um ferramental e paradigmas diferentes.</p>
<p>Na Globo.com eu trabalhei muito com open source, e estava acostumado a montar as aplicações a partir de componentes &#8220;crus&#8221;, em vez de usar ferramentas sofisticadas. Open source faz parte da cultura da empresa, e tínhamos uma boa liberdade de escolha de tecnologias e arquiteturas.</p>
<p>Como falei algumas vezes no passado, nós migramos boa parte da arquitetura legada com EJBs para serviços <a href="http://brunopereira.org/tag/rest/" target="_blank">REST</a> usando por baixo o <a href="https://jersey.dev.java.net/" target="_blank">Jersey</a>, <a href="http://www.springframework.org/" target="_blank">Spring</a> e <a href="http://ibatis.apache.org/" target="_blank">Ibatis</a>. A produtividade no desenvolvimento de serviços REST me agrada muito, e mesmo alguém que não conheça muito de serviços REST consegue desenvolver um serviço sem tanto esforço.</p>
<p>Agora vou trabalhar mais com serviços SOAP, mas usando ferramentas muito produtivas, como o <a href="http://www.bea.com/framework.jsp?CNT=index.htm&amp;FP=/content/products/aqualogic/service_bus/" target="_blank">Aqualogic ESB</a> e o <a href="http://www.bea.com/framework.jsp?CNT=index.htm&amp;FP=/content/products/weblogic/workshop/" target="_blank">Workshop</a>, entre outros. Essas ferramentas facilitam muito o trabalho oferecendo <a href="http://brunopereira.org/2008/12/04/abstracoes-transparentes-e-abstracoes-opacas/" target="_blank">Abstrações Opacas</a>. Como ainda estou muito ligado ao trabalho com Open Source, eu venho tentando no meu tempo vago encontrar ferramentas open source com a mesma proposta.</p>
<p>Neste momento estou tentando encontrar a maneira mais produtiva de se trabalhar com web services SOAP usando open source. No passado eu desenvolvi serviços com o <a href="http://xfire.codehaus.org/" target="_blank">XFire</a>, com o <a href="http://ws.apache.org/axis2/" target="_blank">Axis 2</a> e com o <a href="https://jax-ws.dev.java.net/" target="_blank">JAX-WS</a>, mas achei interessante reavaliar as opções existentes atualmente.</p>
<p>Nos últimos dias eu fiz testes com o Axis 2, com o <a href="http://cxf.apache.org/" target="_blank">Apache CXF</a> e com o JAX-WS.</p>
<p>Eu não gosto muito do Axis 2. Você até consegue desenvolver serviços rapidamente com ele, mas ele gera um código tão sujo que é muito triste colocar qualquer coisa em produção com ele, sabendo que você vai ter que manter depois aquele código. Além disso, para utilizá-lo você precisa levar nada menos que 51 jars para sua aplicação, o que transforma qualquer aplicação em um mastodonte. Um outro problema dessa lista massiva de dependências é que a chance de uma aplicação pré-existente ter conflitos de dependências com o Axis é grande.</p>
<p>Na prática, eu só utilizaria o Axis 2 (e mesmo assim com má vontade) para desenvolver serviços se fosse numa estrutura como o <a href="http://wso2.org/projects/wsas/java" target="_blank">WSO2 Web Services Application Server</a>, que é um servidor de aplicações &#8220;dedicado&#8221; a serviços Axis.</p>
<p>O Apache CXF oferece um &#8220;front-end&#8221; com JAX-WS (que é o mais recomendado) e um &#8220;front-end&#8221; alternativo, que usa o Aegis Databinding. Por enquanto olhei apenas o front-end com JAX-WS, mas não vi nenhuma vantagem em utilizar o CXF em vez da implementação de referência presente no <a href="https://glassfish.dev.java.net/" target="_blank">Glassfish</a>. Se pintar disposição eu darei uma olhada no front-end com Aegis Databinding, mas por enquanto não tenho grandes expectativas em relação a ele não.</p>
<p>Para finalizar, fiz muitos experimentos com a implementação de referência do JAX-WS, embutido no Glassfish V2. A forma de trabalho que achei mais produtiva nestes meus testes foi desenvolvendo com JAX-WS no <a href="http://www.netbeans.org" target="_blank">Netbeans</a> (utilizei a versão 6.5).</p>
<p>Tentei desenvolver a partir de classes Java, e a partir do <a href="http://www.w3.org/TR/wsdl" target="_blank">WSDL</a>, e esta última me trouxe melhores resultados.A melhor forma que achei foi começar desenhando os schemas XML com o editor do Netbeans:</p>
<p><a href="http://brunopereira.org/wp-content/uploads/2008/12/xml_schema_editor.jpg"><img class="alignnone size-full wp-image-263" title="xml_schema_editor" src="http://brunopereira.org/wp-content/uploads/2008/12/xml_schema_editor.jpg" alt="" width="471" height="586" /></a></p>
<p>Criei um Complex Type para cada classe de domínio, e 1 Complex Type para o Request de cada operação e 1 Complex Type para o Response de cada operação. Tendo feito isso, criei depois 1 Element para o Request de cada operação e 1 Element para o Response de cada operação. Com o schema XML criado dessa forma, criei em seguida o WSDL, com o editor do Netbeans também:</p>
<p><a href="http://brunopereira.org/wp-content/uploads/2008/12/wsdl_editor.jpg"><img class="alignnone size-full wp-image-264" title="wsdl_editor" src="http://brunopereira.org/wp-content/uploads/2008/12/wsdl_editor.jpg" alt="" width="418" height="702" /></a></p>
<p>Na criação do WSDL, coloquei nas mensagens de Request/Response das operações os <strong><em>Elementos</em></strong> declarados no schema XML anterior. É importante prestar atenção nisso. Usando Elementos nas mensagens, você está criando serviços no modelo <em><strong>Document/Literal</strong></em>. Se você colocar nas mensagens um <em><strong>Complex Type</strong></em> diretamente, em vez de colocar um <em><strong>Elemento</strong></em>, você estará criando um serviço no modelo <strong><em>RPC/Literal</em></strong>. Eu particularmente prefiro Document/Literal, e o código gerado pelo JAX-WS neste modelo me agrada mais.</p>
<p>A implementação do serviço com JAX-WS ficou parecida com isso aqui:</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">org.brunopereira.cadastro</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javax.jws.WebService</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.brunopereira.schema.cadastroclientes.CadastroClienteRequestType</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.brunopereira.schema.cadastroclientes.CadastroClienteResponseType</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.brunopereira.schema.cadastroclientes.Cliente</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.brunopereira.wsdl.cadastrocliente.CadastroClientePortType</span><span style="color: #339933;">;</span>
&nbsp;
@WebService<span style="color: #009900;">&#40;</span>serviceName <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;CadastroClienteService&quot;</span>, portName <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;CadastroClientePort&quot;</span>,
endpointInterface <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;org.brunopereira.wsdl.cadastrocliente.CadastroClientePortType&quot;</span>,
targetNamespace <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;http://brunopereira.org/wsdl/CadastroCliente&quot;</span>,
wsdlLocation <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;WEB-INF/wsdl/CadastroCliente/CadastroCliente.wsdl&quot;</span><span style="color: #009900;">&#41;</span>
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> CadastroCliente <span style="color: #000000; font-weight: bold;">implements</span> CadastroClientePortType <span style="color: #009900;">&#123;</span>
<span style="color: #000000; font-weight: bold;">public</span> CadastroClienteResponseType cadastrarCliente<span style="color: #009900;">&#40;</span>CadastroClienteRequestType request<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Cadastro de cliente foi invocado!! Será feito o roteamento para o serviço adequado!!&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
Cliente cliente <span style="color: #339933;">=</span> request.<span style="color: #006633;">getCliente</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
CadastroClienteResponseType response <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> CadastroClienteResponseType<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
response.<span style="color: #006633;">setCliente</span><span style="color: #009900;">&#40;</span>cliente<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">return</span> response<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>O código do cliente foi gerado bem facilmente a partir do WSDL também, e ficou bem limpo. O que achei bem fraco foi a parte de teste dos serviços tanto no Netbeans como no Eclipse. No Eclipse você só consegue usar os plugins de teste se você tiver desenvolvido os serviços dentro do Eclipse, o que inviabilizou o meu uso. E o Netbeans tem um suporte que só serve pra HelloWorld, pra aqueles serviços de Calculadora, que você passa uns parâmetros primitivos e recebe um resultado simples. A interface do testador do meu serviço ficou dessa forma:<br />
<a href="http://brunopereira.org/wp-content/uploads/2008/12/web_services_tester.jpg"><img class="alignnone size-full wp-image-265" title="web_services_tester" src="http://brunopereira.org/wp-content/uploads/2008/12/web_services_tester.jpg" alt="" width="800" height="500" /></a></p>
<p>Dá pra ver que não serve para nada além de um HelloWorld basicão.</p>
<p>Bom, de uma maneira geral, o suporte a Web Services no Netbeans é muito melhor do que no Eclipse, que pra piorar só suporta a criação de serviços com o Axis. Até agora a maneira mais produtiva que encontrei de trabalhar com serviços SOAP foi essa que descrevi. Nos próximos dias olharei o que tem de interessante no projeto Metro e no JBoss ESB. Se encontrar coisas interessantes falarei mais por aqui. Ah, e se alguém tiver dicas para melhorar esta forma de trabalho que descrevi, por favor me avisem, pois estou avaliando muita coisa e não dá tempo de dedicar tanto tempo a cada opção dessas.</p>
]]></content:encoded>
			<wfw:commentRss>http://brunopereira.org/2008/12/08/a-procura-de-uma-maneira-produtiva-de-trabalhar-com-web-services-soap/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>m2eclipse is the most unstable Eclipse plugin I&#8217;ve ever used</title>
		<link>http://brunopereira.org/2008/11/16/m2eclipse-is-the-most-unstable-eclipse-plugin-ive-ever-used/</link>
		<comments>http://brunopereira.org/2008/11/16/m2eclipse-is-the-most-unstable-eclipse-plugin-ive-ever-used/#comments</comments>
		<pubDate>Mon, 17 Nov 2008 01:16:05 +0000</pubDate>
		<dc:creator>blpsilva</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[eclipse europa]]></category>
		<category><![CDATA[eclipse ganymede]]></category>
		<category><![CDATA[m2eclipse]]></category>
		<category><![CDATA[maven]]></category>
		<category><![CDATA[netbeans]]></category>
		<category><![CDATA[pom]]></category>

		<guid isPermaLink="false">http://brunopereira.org/?p=257</guid>
		<description><![CDATA[I gave up using m2eclipse with Eclipse Ganymede. That&#8217;s not premature. I tried my best to figure out a way to use the plugin in a reliable way. However, that&#8217;s over now, I quit!
The plugin would be great and extremely useful if it worked. Really, I&#8217;d love to have this plugin as an everyday tool, [...]]]></description>
			<content:encoded><![CDATA[<p>I gave up using <a href="http://m2eclipse.codehaus.org/" target="_blank">m2eclipse</a> with <a href="http://www.eclipse.org/ganymede/" target="_blank">Eclipse Ganymede</a>. That&#8217;s not premature. I tried my best to figure out a way to use the plugin in a reliable way. However, that&#8217;s over now, I quit!</p>
<p>The plugin would be great and extremely useful if it worked. Really, I&#8217;d love to have this plugin as an everyday tool, helping me deliver software. It offers a very productive way to work with <a href="http://maven.apache.org" target="_blank">Maven</a> in <a href="http://www.eclipse.org" target="_blank">Eclipse</a>, except that it brakes Eclipse in such an unbearable way that I cannot afford to think about using it anymore.</p>
<p>Initially I was using m2eclipse with an external Maven installation, instead of the embedded one. With this setup, I was facing many (and I mean MANY) NullPointerExceptions doing some Maven stuff in the IDE. It was impossible to work with that much errors, so I tried using the embedded Maven installation.</p>
<p>Initially it seemed like I was gonna be able to work without problems, but I was wrong. Instead of all the NullPointerExceptions, now Eclipse itself would crash hard when I used the POM editor. Adding a dependency, adding a new build plugin. I was frequently having Eclipse crashes doing this stuff.</p>
<p>I first thought that it could be just an issue in the &#8220;graphical&#8221; POM editor, so I tried using the simple XML editor. The errors kept occuring, and I got mad.</p>
<p>I could live with this problem if my Eclipse crashed 2 or 3 times a day. I&#8217;d gladly restart it, and keep working. However, facing Eclipse crashes every 5-10 minutes can make you crazy before you deliver any piece of software.</p>
<p>I am a man of faith, so I&#8217;ll try using it with Eclipse Europa and with minimal features, to see if it hangs on. I use this setup at work, and although it doesn&#8217;t work perfectly, at least it stands a whole day without crashing.</p>
<p>Maven is such a widespread Java tool. It&#8217;s far from unanymous among developers, but it&#8217;s a very valuable tool for me. I think it deserves much better tooling support, so I hope this Ganymede mess is fixed someday. But maybe the Eclipse ecosystem got so complex that it&#8217;s becoming impossible to keep everything stable.</p>
<p>I&#8217;ve tried using Netbeans before, but I couldn&#8217;t be nearly as productive as I am with Eclipse. So please Eclipse, please don&#8217;t let me down!</p>
]]></content:encoded>
			<wfw:commentRss>http://brunopereira.org/2008/11/16/m2eclipse-is-the-most-unstable-eclipse-plugin-ive-ever-used/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Passed today on SCEA Part I</title>
		<link>http://brunopereira.org/2008/11/06/passed-today-on-scea-part-i/</link>
		<comments>http://brunopereira.org/2008/11/06/passed-today-on-scea-part-i/#comments</comments>
		<pubDate>Fri, 07 Nov 2008 01:44:37 +0000</pubDate>
		<dc:creator>blpsilva</dc:creator>
				<category><![CDATA[design]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[jvm]]></category>
		<category><![CDATA[scea]]></category>
		<category><![CDATA[scjp]]></category>
		<category><![CDATA[scwcd]]></category>
		<category><![CDATA[Sun]]></category>
		<category><![CDATA[sun certified enterprise architect]]></category>

		<guid isPermaLink="false">http://brunopereira.org/?p=252</guid>
		<description><![CDATA[This morning I took the Sun Certified Enterprise Architect Part I Exam. I wasn&#8217;t very excited studying for this exam, but the exam itself was just fine.
What I liked the most about the test was that many questions presented different problems and requirements, and asked me to give the most suitable solution. Besides that, most [...]]]></description>
			<content:encoded><![CDATA[<p>This morning I took the <a href="http://www.sun.com/training/catalog/courses/CX-310-052.xml" target="_blank">Sun Certified Enterprise Architect Part I Exam</a>. I wasn&#8217;t very excited studying for this exam, but the exam itself was just fine.</p>
<p>What I liked the most about the test was that many questions presented different problems and requirements, and asked me to give the most suitable solution. Besides that, most of the design patterns questions were contextual. Based on a given problem, I had to decide which patterns could help in the design of a good solution for the problem. I liked the fact that these questions made me THINK much more than REMEMBER stuff. There were a few questions focused on specific pattern details, but fortunately they were only a small portion of the exam.</p>
<p>There are many EJB/JPA questions in the exam, but if you&#8217;re familiar with the technologies, you should have no problem with them. The questions were not tricky. If you know the main aspects of these technologies, you&#8217;ll be just fine.</p>
<p>There were several Web Services questions, actually more than I expected. I liked this, because such knowledge is very important for any enterprise architect, and I&#8217;m particularly interested in the subject. I have a reasonable experience with web services, and I thought the questions were not very demanding.</p>
<p>The exam objective that I thought was my weakest was security. I didn&#8217;t know much about the JVM Security prior to this exam, and now I&#8217;m still no expert, but I did learn a few things.</p>
<p>Overall, I thought this was a nice exam and definitely it was more pleasant than I expected. I had 120 minutes to do the exam, but it took me around 80 minutes to finish it. The SCJP and SCWCD exams were more tiresome than this one. When I finished the exam, I wasn&#8217;t sure if I had passed, but the same thing happened to me in the SCJP and SCWCD exams, and I did ok.</p>
<p>There are 64 questions in the exam, and the minimum score to pass is 57% (37 questions). I answered 49 questions correctly, which translated into a 76% score.</p>
<p>Now I must checkout the Part 2 Assignment, and design an application during a 1 year span. I definitely won&#8217;t touch anything this year, because I must chill out. I hope Part 2 gives me more pleasure than Part 1, and hopefully I&#8217;ll learn a few more things.</p>
<p>If anyone&#8217;s planning to take this exam and want to talk about it, feel free to contact me, and I&#8217;ll try to help.</p>
]]></content:encoded>
			<wfw:commentRss>http://brunopereira.org/2008/11/06/passed-today-on-scea-part-i/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Estudar para SCEA é tão chato que eu vou até rabujar a respeito!</title>
		<link>http://brunopereira.org/2008/10/20/estudar-para-scea-e-tao-chato-que-eu-vou-ate-rabujar-a-respeito/</link>
		<comments>http://brunopereira.org/2008/10/20/estudar-para-scea-e-tao-chato-que-eu-vou-ate-rabujar-a-respeito/#comments</comments>
		<pubDate>Mon, 20 Oct 2008 03:43:51 +0000</pubDate>
		<dc:creator>blpsilva</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[posts em português]]></category>
		<category><![CDATA[core j2ee patterns]]></category>
		<category><![CDATA[dto]]></category>
		<category><![CDATA[ejb]]></category>
		<category><![CDATA[gof]]></category>
		<category><![CDATA[java ee]]></category>
		<category><![CDATA[jsf]]></category>
		<category><![CDATA[peaa]]></category>
		<category><![CDATA[scea]]></category>

		<guid isPermaLink="false">http://brunopereira.org/?p=239</guid>
		<description><![CDATA[Eis que num fim de semana chuvoso, com minha noiva viajando, fico eu várias horas em casa estudando para a prova de Arquiteto Java.
Tudo bem, a culpa é minha mesmo. No final do ano passado eu resolvi aproveitar uma das promoções de vouchers com retake da Sun, e comprei não 1, mas 2 vouchers de [...]]]></description>
			<content:encoded><![CDATA[<p>Eis que num fim de semana chuvoso, com minha noiva viajando, fico eu várias horas em casa estudando para a prova de <a href="http://www.sun.com/training/certification/java/scea.xml" target="_blank">Arquiteto Java</a>.</p>
<p>Tudo bem, a culpa é minha mesmo. No final do ano passado eu resolvi aproveitar uma das promoções de vouchers com retake da Sun, e comprei não 1, mas 2 vouchers de uma vez. Naquela época eu achava que iria gostar de estudar para as provas de <a href="http://www.sun.com/training/certification/java/scbcd.xml" target="_blank">EJB 3</a> e <a href="http://www.sun.com/training/certification/java/scdjws.xml" target="_blank">Web Services</a>.</p>
<p>Bom, ao longo desse ano eu estudei bastante mesmo. E coisas muito legais. Mas em nenhum momento me senti tentado a fazer nenhuma dessas provas, e fui enrolando, enrolando, e meus vouchers vencem dia 30/11. Em setembro eu já sabia que não tinha nenhuma hipótese de eu fazer 2 certificações, então resolvi estudar para a de arquiteto, e usar 1 dos vouchers para a prova teórica, e o outro para a parte prática. E é pra isso que estou estudando, mas como é chato!!!</p>
<p>Para esta prova eu não sabia muito bem que material seguir, então estou lendo o único livro que me pareceu razoável:</p>
<p><a href="http://www.amazon.com/Certified-Enterprise-Architect-310-051-Certification/dp/0071488618/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1224471321&amp;sr=1-1"><img class="alignnone size-full wp-image-240" title="livro_scea" src="http://brunopereira.org/wp-content/uploads/2008/10/livro_scea.jpg" alt="" width="240" height="240" /></a></p>
<p>Na verdade eu não estou gostando do livro, mas estou lendo alguns tópicos por ele. Os 4 primeiros capítulos falam de aspectos gerais de arquitetura, análise e projeto OO e aplicabilidade da arquitetura Java EE. Eu passei rapidamente por eles, e acho que deve ter sido tão divertido como escutar a &#8220;Voz do Brasil&#8221;. Teoricamente os assuntos poderiam ser interessantes, mas a exposição é feita de forma tão enfadonha e repetitiva que acho que não consegui obter nada de útil desse conteúdo.</p>
<p>Basicamente eu lia uma porção de coisas que eu já sei, algumas coisas que eu discordo, e alguns devaneios da Sun. É, por exemplo aquele papo insano de que designers podem escrever JSPs&#8230; hahahaha! Se eu tentasse ensinar JSP pro designer do meu time ele ia fazer dezenas de caricaturas e montagens minhas no Photoshop, pra eu aprender o que é trabalho de designer <img src='http://brunopereira.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Bom, nesse momento eu estou acabando a parte dedicada a estudar padrões de projeto. Certamente posso dizer que está sendo a melhor parte do estudo, mas me fez refletir um pouco também. Nessa prova são abordados todos os padrões do <a href="http://en.wikipedia.org/wiki/GoF" target="_blank">GoF</a> e todos os <a href="http://java.sun.com/blueprints/corej2eepatterns/" target="_blank">Core J2EE Patterns</a>. São 24 padrões do GoF e 22 do Core J2EE Patterns. Uma boa parte eu já conhecia e estou revendo, e outros eu nem conhecia.</p>
<p>Sempre é bom dedicar um tempo para estudar padrões de projeto, mas deveria ser possível filtrar apenas o que interessa. Eu não gosto de Singletons, não gosto de DTOs e não gosto de usar EJBs, então eu já poderia limar facilmente uns 10 padrões dessa lista. Eu gosto bem mais dos patterns do &#8220;Patterns of Enterprise Application Architecture (PEAA)&#8221;, mas esses infelizmente não estão na prova&#8230; <img src='http://brunopereira.org/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p>E outra coisa, é fundamental não ficar bitolado nesses patterns. Se você tiver uma overdose de patterns, sua criatividade ficará prejudicada e talvez você siga por um caminho não muito legal só porque existe um pattern para aquilo. Padrões de projeto são interessantes pela possibilidade de te trazer idéias novas para problemas comuns. Mas o importante é que você adquira o know-how e as ferramentas de raciocínio, e pense por si mesmo. Eu já peguei projetos em que parecia que os desenvolvedores estavam procurando problemas para aplicar os patterns, em vez de usar os patterns como idéias para resolver bem um problema que havia surgido. Mais importante do que qualquer padrão de projeto é raciocinar, pensar bem no problema. Rabisque qualquer abobrinha num papel e resolva bem o seu problema com bom software. Ser uma enciclopédia de patterns não faz de ninguém um programador ou arquiteto melhor.</p>
<p>Bom, para finalizar meus rabujos sobre esta prova, devo dizer que estou decepcionado com o que estou absorvendo em minha preparação para ela. Quando eu me preparei para as provas de <a href="http://www.sun.com/training/certification/java/scjp.xml" target="_blank">SCJP</a> e <a href="http://www.sun.com/training/certification/java/scwcd.xml" target="_blank">SCWCD</a>, eu nitidamente evoluí como desenvolvedor neste processo. Foi muito válido fazer essas 2 provas e o tempo que dediquei estudando para elas me tornou um desenvolvedor mais eficiente.</p>
<p>Agora, esta prova de SCEA não está me agregando nada até o momento. Eu poderia estar estudando outras coisas mais interessantes e eu não vou ser um arquiteto melhor por ter este título. Talvez a parte prática dessa certificação seja mais legal, mas até agora ela está servindo apenas para eu não desperdiçar meus 2 vouchers que estão expirando.</p>
<p>Será que na prova prática eu posso usar os patterns do PEAA e montar uma arquitetura sem EJBs, sem SOAP, sem JSF e sem DTOs?? Ou será que isso vai ser censurado? <img src='http://brunopereira.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Bom, acho que vou pagar pra ver, pelo menos vai ser bem mais divertido! <img src='http://brunopereira.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://brunopereira.org/2008/10/20/estudar-para-scea-e-tao-chato-que-eu-vou-ate-rabujar-a-respeito/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>

