<?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>:: blog do peron :: &#187; Java</title>
	<atom:link href="http://www.marcosperon.com/category/java/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.marcosperon.com</link>
	<description>here you will see a bit of everything</description>
	<lastBuildDate>Tue, 20 Oct 2009 21:15:54 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9-rare</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<image>
<link>http://www.marcosperon.com</link>
<url>http://www.marcosperon.com/wp-content/plugins/maxblogpress-favicon/icons/favicon-96.ico</url>
<title>:: blog do peron ::</title>
</image>
		<item>
		<title>PCommons</title>
		<link>http://www.marcosperon.com/2009/10/20/aps-muito-tempo-retorno/</link>
		<comments>http://www.marcosperon.com/2009/10/20/aps-muito-tempo-retorno/#comments</comments>
		<pubDate>Tue, 20 Oct 2009 21:15:00 +0000</pubDate>
		<dc:creator>Peron</dc:creator>
				<category><![CDATA[Biblioteca]]></category>
		<category><![CDATA[Generics]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[PCommons]]></category>

		<guid isPermaLink="false">http://www.marcosperon.com/2009/10/20/aps-muito-tempo-retorno/</guid>
		<description><![CDATA[Há algum tempo escrevi algumas classes e resolvi colocá-las em uma biblioteca que chamei de PCommons. Aí vai um breve resumo. Logo irei desenvolver a documentação.
PCommons – Peron Commons     Biblioteca de código Java com classes utilitárias, com funcionalidades: 

Sorteio de Maps por chave ou valor com possibilidade de usar um Comparator [...]]]></description>
			<content:encoded><![CDATA[<p>Há algum tempo escrevi algumas classes e resolvi colocá-las em uma biblioteca que chamei de PCommons. Aí vai um breve resumo. Logo irei desenvolver a documentação.</p>
<p><strong>PCommons – Peron Commons </strong>    <br />Biblioteca de código Java com classes utilitárias, com funcionalidades: </p>
<ul>
<li><strong>Sorteio de <em>Map</em>s por chave ou valor com possibilidade de usar um <em>Comparator </em>diferente (MapUtils.java)</strong> </li>
<li>Carregamento dinâmico de <em>ClassPath </em>(ClassPathLoader.java) </li>
<li>Selecionar randomicamente valores em um <em>Map </em>ou um <em>List </em>(RandomPicker.java) </li>
<li>Listagem de arquivos de diretórios (recursivos ou não) usando Wildcards (FileLister.java) </li>
<li>Funções gerais de datas, leitura e escrita de arquivos, tratamento de strings, e interação com o sistema. </li>
<li>E,um carregador de arquivos de propriedades. </li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.marcosperon.com/2009/10/20/aps-muito-tempo-retorno/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ordenando Maps</title>
		<link>http://www.marcosperon.com/2007/09/03/ordenando-maps/</link>
		<comments>http://www.marcosperon.com/2007/09/03/ordenando-maps/#comments</comments>
		<pubDate>Mon, 03 Sep 2007 17:18:24 +0000</pubDate>
		<dc:creator>Peron</dc:creator>
				<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.marcosperon.com/2007/09/03/ordenando-maps/</guid>
		<description><![CDATA[Surgiu a necessidade aqui de ordenar um Map pela chave ou por valor. Busca daqui, busca dali e achei algumas implementações mas nenhuma com suporte a Generics e  nenhuma eu conseguiria simular o Collections.sort() passando um Comparator. Por isso, desenvolvi essa aqui:
Ela pode ser baixada em Classe MapUtils.
]]></description>
			<content:encoded><![CDATA[<p>Surgiu a necessidade aqui de ordenar um Map pela chave ou por valor. <a href="http://www.google.com.br/search?q=java+sort+a+map&amp;ie=utf-8&amp;oe=utf-8&amp;aq=t&amp;rls=org.mozilla:en-US:official&amp;client=firefox-a" title="Busca daqui" target="_blank">Busca daqui</a>, <a href="http://www.google.com.br/search?q=java+sort+a+map&amp;hl=pt-BR&amp;client=firefox-a&amp;rls=org.mozilla:en-US:official&amp;hs=Ots&amp;start=10&amp;sa=N" title="Busca dali" target="_blank">busca dali</a> e achei algumas implementações mas nenhuma com suporte a Generics e  nenhuma eu conseguiria simular o Collections.sort() passando um Comparator. Por isso, desenvolvi essa aqui:</p>
<p>Ela pode ser baixada em <a href="http://www.marcosperon.com/wp-content/uploads/2007/09/maputils.java" title="Classe MapUtils">Classe MapUtils.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.marcosperon.com/2007/09/03/ordenando-maps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Migrando suavemente de PHP para Java</title>
		<link>http://www.marcosperon.com/2007/09/02/migrando-suavemente-de-php-para-java/</link>
		<comments>http://www.marcosperon.com/2007/09/02/migrando-suavemente-de-php-para-java/#comments</comments>
		<pubDate>Sun, 02 Sep 2007 23:09:28 +0000</pubDate>
		<dc:creator>Peron</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.marcosperon.com/2007/09/02/migrando-suavemente-de-php-para-java/</guid>
		<description><![CDATA[Quando se faz projetos pequenos e pessoais é fácil abandonar uma tecnologia e partir para outra. Contudo quando se trabalha em uma empresa que possui um sistema legado, já é complicado fazer upgrade de versão da própria tecnologia que a empresa já utiliza.
Tudo bem, podemos dizer que em sistemas bem planejados e estruturados deveria ser [...]]]></description>
			<content:encoded><![CDATA[<p>Quando se faz projetos pequenos e pessoais é fácil abandonar <a href="http://br.php.net" title="PHP" target="_blank">uma tecnologia</a> e partir para <a href="http://java.sun.com" title="Java" target="_blank">outra</a>. Contudo quando se trabalha em uma empresa que possui um sistema legado, já é complicado fazer upgrade de versão da própria tecnologia que a empresa já utiliza.</p>
<p>Tudo bem, podemos dizer que em sistemas bem planejados e estruturados deveria ser fácil uma migração, inclusive de tecnologia.  Mas a realidade é diferente!</p>
<p>Há algum tempo na empresa em que trabalho viemos tentando mudar a linguagem de PHP para Java. Não me levem a mal os programadores PHP, é uma ótima linguagem, e uma ótima tecnologia. Mas quando o número de acessos simultâneos cresce, o Java começa a se sobressair sobre o PHP, e claro, tipagem fraca, no meu entendimento, prejudica sistemas grandes. Não é a toa que no PHP5 já existe a possibilidade de indução de um tipo.</p>
<p>Levando em consideração esses fatores, para uma migração suave de tecnologia (manter as duas e aos poucos ir escrevendo o código na nova) seria interessante a possibilidade de rodar e elas se entenderem. Bom, PHP já tem isso, com seu módulo de integração com Java, mas, quando encontrei o <a href="http://quercus.caucho.com/" title="Quercus" target="_blank">Quercus </a>fiquei entusiasmado.</p>
<p>Ele é uma implementação 100% Java do PHP5 (compatível, em muitos casos, com o PHP4) e grande parte dos módulos e extensões do PHP já foram reescritos em Java. Isso significa que já o codigo legado pode tirar proveito da Plataforma Java como um todo.</p>
<p>Cache, Compilar para bytecote, Pool de conexões, up na performance (Lembre-se que em PHP cada requisição do usuário faz o Servidor HTTP requisitar o script, interpretar, e dar a saida). Em Java, o server lê o script uma vez, e executa a cada requisição, reduzindo e muito o  acesso a disco.</p>
<p>Como já vi comentários por aí (blogueiros do meu blogroll), Java cada vez mais está deixando de ser só uma linguagem e se mostrando uma plataforma, o que me agrada muito.</p>
<p>Assim, poderemos migrar de maneira mais sutil e transparente para os clientes.</p>
<p>Isso não é fantástico?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marcosperon.com/2007/09/02/migrando-suavemente-de-php-para-java/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Patterns &#8211; Fundamental</title>
		<link>http://www.marcosperon.com/2007/03/29/patterns-interface/</link>
		<comments>http://www.marcosperon.com/2007/03/29/patterns-interface/#comments</comments>
		<pubDate>Thu, 29 Mar 2007 19:03:30 +0000</pubDate>
		<dc:creator>Peron</dc:creator>
				<category><![CDATA[Patterns]]></category>

		<guid isPermaLink="false">http://www.marcosperon.com/2007/03/29/patterns-interface/</guid>
		<description><![CDATA[ Os Padrões de projeto fundamentais são padrões básicos, e é extremamente necessário conhecê-los e entendê-los, pois são usados extensivamente por outros patterns.
Nesta seção, serão definidos os patterns:
Delegation
Interface
Abstract Superclass
Interface &#38; Abstract Superclass
Immutable
Marker Interface
Proxy

Delegation 
Basicamente é que ao invés de extender uma classe para incrementar suas funcionalidades você simplesmente USA ela em outro objeto. 
Interface
Quando se [...]]]></description>
			<content:encoded><![CDATA[<p> Os Padrões de projeto fundamentais são padrões básicos, e é extremamente necessário conhecê-los e entendê-los, pois são usados extensivamente por outros patterns.</p>
<p>Nesta seção, serão definidos os patterns:</p>
<p><em>Delegation<br />
Interface<br />
Abstract Superclass<br />
Interface &amp; Abstract Superclass<br />
Immutable<br />
Marker Interface<br />
Proxy</em></p>
<p><span id="more-8"></span></p>
<p><strong>Delegation </strong></p>
<p>Basicamente é que ao invés de extender uma classe para incrementar suas funcionalidades você simplesmente USA ela em outro objeto.<strong> </strong></p>
<p><strong>Interface</strong></p>
<p>Quando se quer criar independência de um serviço específico, como por exemplo criar um camada de acesso a diversos bancos de dados, as interfaces auxiliam a abstrair, criando um contrato, onde não importa qual seja, qualquer classe que queira implementar o serviço, só precisa cumprir os contratos (definir os métodos).</p>
<p><strong>Abstract Superclass</strong></p>
<p>Se há duas classes que possuem código em comum, você pode agrupar este código refatorando e colocando em uma superclasse o código repetido, e, ambas as subclasses extenderem a superclasse, implementando ali suas particularidades.</p>
<p><strong>Interface &amp; </strong><strong>Abstract Superclass</strong></p>
<p>Porquê usar somente um dos padrões se você pode ser mais organizado e eficiente e usar ambos? Use Interface para abstrair a classe que implementa um serviço, e forneça uma classe abstrata com as funcionalidades base.</p>
<p><strong>Immutable</strong></p>
<p>Como o próprio nome já diz em inglês, imutável.</p>
<p><strong>Marker Interface</strong></p>
<p>Uma interface que não declara nenhum método ou variável e é usada para indicar atributos de classes que as implementam. Um bom exemplo é a Interface Serializable da API Java.</p>
<p><strong>Proxy</strong></p>
<p>Basicamente este Pattern é uma classe que funciona como uma interface para alguma coisa, delegando chamadas à uma classe que implementa um serviço. Não é muito útil em sua forma pura, pois sua implementação envolve a criação de uma classe que compartilha uma superclasse ou interface com uma classe provedora de serviço e delega (efetua chamadas de método) a essa classe provedora.</p>
<p><em>*Deduções de um Livro de Patterns que estou lendo. (Mark Grand, Patterns in Java, Volume 1) </em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.marcosperon.com/2007/03/29/patterns-interface/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Extreme Programming</title>
		<link>http://www.marcosperon.com/2007/02/27/extreme-programming/</link>
		<comments>http://www.marcosperon.com/2007/02/27/extreme-programming/#comments</comments>
		<pubDate>Tue, 27 Feb 2007 21:13:36 +0000</pubDate>
		<dc:creator>Peron</dc:creator>
				<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.marcosperon.com/2007/02/27/extreme-programming/</guid>
		<description><![CDATA[Estamos remodelando as coisas aqui, processos, funções, e um site super bancana que encontrei com muita informação útil, é o Improve-IT
Muito bom!!
]]></description>
			<content:encoded><![CDATA[<p>Estamos remodelando as coisas aqui, processos, funções, e um site super bancana que encontrei com muita informação útil, é o<a href="http://www.improveit.com.br/xp/" target="_blank"> Improve-IT</a></p>
<p>Muito bom!!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marcosperon.com/2007/02/27/extreme-programming/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Recomendado&#8230;</title>
		<link>http://www.marcosperon.com/2007/02/26/recomendado/</link>
		<comments>http://www.marcosperon.com/2007/02/26/recomendado/#comments</comments>
		<pubDate>Mon, 26 Feb 2007 19:22:22 +0000</pubDate>
		<dc:creator>Peron</dc:creator>
				<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.marcosperon.com/2007/02/26/recomendado/</guid>
		<description><![CDATA[BrazilUtils
&#160;
 É uma API Java composta com uma gama de utilidades para programadores java, como validações de CPF e CNPJ  e muitas outras rotinas usuais, sendo uma ferramenta muito útil para aumentar a velocidade e agilidade dos programadores java, tanto web quanto desktop. (traduzido do próprio site).
&#160;
página do projeto: https://brazilutils.dev.java.net/
&#160;
]]></description>
			<content:encoded><![CDATA[<p align="left"><strong>BrazilUtils</strong><a href="https://brazilutils.dev.java.net/" target="_blank"></a></p>
<p align="left">&nbsp;</p>
<p align="left"> É uma API Java composta com uma gama de utilidades para programadores java, como validações de CPF e CNPJ  e muitas outras rotinas usuais, sendo uma ferramenta muito útil para aumentar a velocidade e agilidade dos programadores java, tanto web quanto desktop. <em>(traduzido do próprio site).</em><span class="postbody"></span></p>
<p align="left">&nbsp;</p>
<p align="left">página do projeto: <a href="https://brazilutils.dev.java.net/" target="_blank" rel="nofollow">https://brazilutils.dev.java.net/</a></p>
<p align="left">&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marcosperon.com/2007/02/26/recomendado/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
