<?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>PauloMotta.pro &#187; JAVA</title>
	<atom:link href="http://www.paulomotta.pro.br/tag/java/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.paulomotta.pro.br</link>
	<description>&#34;Qualquer tecnologia suficientemente avançada é indistinguível da mágica&#34; - Arthur C. Clarke</description>
	<lastBuildDate>Thu, 09 Sep 2010 16:39:25 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Experiência JSF</title>
		<link>http://www.paulomotta.pro.br/2010/09/01/experiencia-jsf/</link>
		<comments>http://www.paulomotta.pro.br/2010/09/01/experiencia-jsf/#comments</comments>
		<pubDate>Wed, 01 Sep 2010 12:29:00 +0000</pubDate>
		<dc:creator>prmottajr</dc:creator>
				<category><![CDATA[Principal]]></category>
		<category><![CDATA[Tendências]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[JAVA]]></category>
		<category><![CDATA[JSF]]></category>
		<category><![CDATA[WEB]]></category>

		<guid isPermaLink="false">http://www.paulomotta.pro.br/?p=899</guid>
		<description><![CDATA[Hoje vou fazer a experiência prática de começar as aulas de JSF, vamos ver se o resultado será bom. Na verdade eu acho que do jeito como a tecnologia evolui e considerando o tempo que temos em sala de aula algumas tecnologias de base acabam por serem deixadas de lado.
Se um aluno busca uma vaga [...]]]></description>
			<content:encoded><![CDATA[<p>Hoje vou fazer a experiência prática de começar as aulas de JSF, vamos ver se o resultado será bom. Na verdade eu acho que do jeito como a tecnologia evolui e considerando o tempo que temos em sala de aula algumas tecnologias de base acabam por serem deixadas de lado.</p>
<p>Se um aluno busca uma vaga para estágio e conhece um framework web fica muito mais fácil de conseguir uma oportunidade. Vamos ver se o material vai ficar adequado. Pior que o Livro do Deitel (oitava edição) que era a minha esperança de ajuda não vai ter serventia, eles basearam o livro em uma tecnologia que foi descontinuada. Depois eu coloco uma resenha do livro aqui.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.paulomotta.pro.br/2010/09/01/experiencia-jsf/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>O que deve saber um programador &#8211; nível zero?</title>
		<link>http://www.paulomotta.pro.br/2010/08/18/o-que-deve-saber-um-programador-nivel-zero/</link>
		<comments>http://www.paulomotta.pro.br/2010/08/18/o-que-deve-saber-um-programador-nivel-zero/#comments</comments>
		<pubDate>Wed, 18 Aug 2010 16:00:33 +0000</pubDate>
		<dc:creator>prmottajr</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Principal]]></category>
		<category><![CDATA[ALGORITMOS]]></category>
		<category><![CDATA[JAVA]]></category>
		<category><![CDATA[LINGUAGEM]]></category>
		<category><![CDATA[PROGRAMAÇÃO]]></category>

		<guid isPermaLink="false">http://www.paulomotta.pro.br/?p=801</guid>
		<description><![CDATA[Semana passada eu comentei do que acho que é necessário que um programador nível básico precisa saber, enquanto escrevia pensei que para chegar ao nível básico o aspirante precisa passar por um caminho inicial até chegar no ponto de começar a aprender o que vai torná-lo enfim um programador nível básico.
Então sem mais delongas vamos [...]]]></description>
			<content:encoded><![CDATA[<p>Semana passada eu comentei do que acho que é necessário que um programador nível básico precisa saber, enquanto escrevia pensei que para chegar ao nível básico o aspirante precisa passar por um caminho inicial até chegar no ponto de começar a aprender o que vai torná-lo enfim um programador nível básico.</p>
<p>Então sem mais delongas vamos listar os passos necessários para percorrer esse caminho:</p>
<ol>
<li>Estude introdução a algoritmos &#8211; nesse tópico não estou falando de algoritmos sofisticados e sim da primeira etapa onde aprendemos a fazer pequenos algoritmos em pseudo-linguagem ou portunhol que geralmente descrevem os passos para fazer um bolo. Entenda como descrever os passos para resolver um problema de forma estruturada e lógica.</li>
<li>Saiba lógica matemática &#8211; sim a boa e velha tabela verdade, é necessário entender como funcionam as relações lógicas. Principalmente AND, OR e NOT.</li>
<li>Estude uma linguagem de programação &#8211; usando o manual da linguagem, aprenda as palavras reservadas, os comandos e blocos de construção de programas. Usando Java como exemplo temos a seguinte lista:
<ol>
<li>Tipos de dados &#8211; int, long, short, byte, char, float, double e boolean</li>
<li>Operadores &#8211; +, -, *, /, %, &lt;, &gt;, &lt;=, &gt;=, !=, == e alguns outros</li>
<li>Estruturas de decisão &#8211; if e switch</li>
<li>Estruturas de repetição &#8211; for, while e do/while</li>
<li>Declaração de métodos (ou funções se fosse em C)</li>
</ol>
</li>
<li>Faça muitos exercícios &#8211; uma coisa que as pessoas demoram a entender (ou aceitar) é que programação precisa de exercício, o programador precisa ser capaz de entender o problema em termos de construções básicas que fazem parte da linguagem com a qual trabalha. Precisa ser capaz de expressar a solução com essas construções e quanto mais programamos mais rapidamente identificamos quais serão os itens que expressarão a resposta. Uma estratégia que estou pensando que pode funcionar (tive essa ideia pensando na forma como estudamos música) é refazer os programas que já foram feitos várias vezes, não estou falando de escrever o programa copiando, e sim de resolver os mesmos problemas várias vezes adicionando um ou dois novos problemas por semana, aos poucos ganha-se mais experiência e mais confiança na resolução de problemas.</li>
<li>Aprenda a escrever claramente &#8211; sim, a interpretação de texto e a capacidade de descrever a solução do problema de forma clara são fundamentais na vida de um programador.</li>
<li>Aprenda a usar a entrada e saída via teclado &#8211; isso é importante para podermos começar a fazer programas com os quais o usuário pode interagir, programas que vão solicitar por exemplo que o usuário informe um número para cálculo, ou um conjunto de números para fazer uma média, e é claro será necessário imprimir pelo menos no console o resultado do processamento.</li>
<li>Entenda o que é um endereço de memória &#8211; em Java não podemos manipular diretamente a memória do computador, mas em C podemos indicar um endereço que queremos acessar, mesmo assim, Java tem variáveis de referência e precisamos entender o que essas variáveis fazem e para que são usadas.</li>
<li>Aprenda a criar e usar <a href="http://www.paulomotta.pro.br/2009/09/01/tipos-abstratos-de-dados/" target="_blank">tipos abstratos de dados</a> &#8211; o programador pode criar seus próprios tipos de dados para organizar melhor seus programas e isso pode ser feito agrupando os tipos básicos da linguagem em novos tipos. Nas linguagens orientadas a objeto, como Java, esses tipos de dados são criados em classes, já nas linguagens estruturadas, como C, usamos structs.</li>
<li>Aprenda a fazer um loop de aplicação &#8211; as aplicações profissionais costumam continuar executando até que o usuário escolha uma opção para encerrar o programa, isso pode ser feito, por exemplo, colocando um laço que só termina quando o usuário digita um valor específico. Enteder como criar esse mecanismo, mesmo em uma aplicação que não tem interface gráfica ajuda a desenvolver muito a habilidade de programação.No nível zero de programação eu costumo trabalhar com programas que tem interface baseada em caracteres, também chamadas CHUI (CHaracter User Interface). Neste modelo, imprimimos um pequeno menu texto e ficamos lendo o que o usuário digita, interpretamos a opção, e se ela for válida executamos a ação correspondente, senão imprimimos uma mensagem para o usuário.</li>
</ol>
<p>Acredito que isso seja o necessário para &#8220;passar de faixa&#8221; saindo assim da faixa branca <img src='http://www.paulomotta.pro.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.paulomotta.pro.br/2010/08/18/o-que-deve-saber-um-programador-nivel-zero/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ganhei a camisa do ICEFaces !</title>
		<link>http://www.paulomotta.pro.br/2010/07/29/ganhei-a-camisa-do-icefaces/</link>
		<comments>http://www.paulomotta.pro.br/2010/07/29/ganhei-a-camisa-do-icefaces/#comments</comments>
		<pubDate>Fri, 30 Jul 2010 00:59:09 +0000</pubDate>
		<dc:creator>prmottajr</dc:creator>
				<category><![CDATA[Diversão]]></category>
		<category><![CDATA[Principal]]></category>
		<category><![CDATA[ICEFaces]]></category>
		<category><![CDATA[JAVA]]></category>

		<guid isPermaLink="false">http://www.paulomotta.pro.br/?p=716</guid>
		<description><![CDATA[
Pois é, há algum tempo eu coloquei aqui um post sobre o framework ICEFaces, uma implementação do Java Server Faces. Eu relatei a minha experiência com o framework, que aliás tem sido muito boa. Esse post estava concorrendo no concurso da ICESoft e eis que hoje chegou a minha camiseta ! Aqui o link para [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://www.paulomotta.pro.br/wp-content/uploads/2010/07/dsc05679camisa.jpg"><img class="aligncenter size-full wp-image-719" title="dsc05679camisa" src="http://www.paulomotta.pro.br/wp-content/uploads/2010/07/dsc05679camisa.jpg" alt="" width="500" height="364" /></a></p>
<p>Pois é, há algum tempo eu coloquei aqui um post sobre o framework <a href="http://www.paulomotta.pro.br/2010/05/26/icefaces/" target="_blank">ICEFaces</a>, uma implementação do Java Server Faces. Eu relatei a minha experiência com o framework, que aliás tem sido muito boa. Esse post estava concorrendo no concurso da ICESoft e eis que hoje chegou a minha camiseta ! Aqui o <a href="http://www.icefaces.org/pages/blog_contest_winners-2010.html?mkt_tok=3RkMMJWWfF9wsRonuqvAZKXonjHpfsX56uosW6Sg38431UFwdcjKPmjr1YEFSNQhcOuuEwcWGog8yQ9dCe%2BTaA%3D%3D" target="_blank">link para a página</a> de ganhadores.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.paulomotta.pro.br/2010/07/29/ganhei-a-camisa-do-icefaces/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Reconhecendo a fala para ensinar inglês</title>
		<link>http://www.paulomotta.pro.br/2010/07/22/reconhecendo-a-fala-para-ensinar-ingles/</link>
		<comments>http://www.paulomotta.pro.br/2010/07/22/reconhecendo-a-fala-para-ensinar-ingles/#comments</comments>
		<pubDate>Thu, 22 Jul 2010 12:00:57 +0000</pubDate>
		<dc:creator>prmottajr</dc:creator>
				<category><![CDATA[Inovação]]></category>
		<category><![CDATA[Principal]]></category>
		<category><![CDATA[Tendências]]></category>
		<category><![CDATA[JAVA]]></category>
		<category><![CDATA[PROGRAMAÇÃO]]></category>
		<category><![CDATA[Reconhecimento de Fala]]></category>
		<category><![CDATA[Robôs]]></category>

		<guid isPermaLink="false">http://www.paulomotta.pro.br/?p=664</guid>
		<description><![CDATA[
Na Koréia do Sul um programa do governo esta ajudando pesquisas que utilizam o reconhecimento da fala para o ensino de línguas, uma demanda crescente já que tem sido difícil atrair (ou manter a permanência de) professores de inglês no país. Independete das questões políticas essa é uma iniciativa bem interessante com o uso de [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="aligncenter" title="robo teaching" src="http://graphics8.nytimes.com/images/2010/07/11/us/jpROBOT5/jpROBOT5-articleInline.jpg" alt="" width="190" height="248" /></p>
<p>Na Koréia do Sul um programa do governo esta ajudando pesquisas que utilizam o reconhecimento da fala para o ensino de línguas, uma demanda crescente já que tem sido difícil atrair (ou manter a permanência de) professores de inglês no país. Independete das questões políticas essa é uma iniciativa bem interessante com o uso de uma tecnologia cada vez mais presente no dia a dia, o reconhecimento e síntese de voz.</p>
<p>Essa é uma tarefa desafiadora (especialmente para a língua portuguesa,)  mas já existem vários softwares que funcionam como bibliotecas para suporte a isso, uma das que mais se destaca é o IBM Via Voice, um pouco difícil de encontrar por aí, mas a última notícia que tive foi que a IBM tinha liberado ele para uso gratuíto. Ele conta com uma API que permite embutí-lo em seus programas Java. Já tive dois grupos de projeto final usando essa tecnologia os trabalhos foram um show na hora da apresentação para a banca.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.paulomotta.pro.br/2010/07/22/reconhecendo-a-fala-para-ensinar-ingles/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ah! O COBOL</title>
		<link>http://www.paulomotta.pro.br/2010/06/30/ah-o-cobol/</link>
		<comments>http://www.paulomotta.pro.br/2010/06/30/ah-o-cobol/#comments</comments>
		<pubDate>Wed, 30 Jun 2010 14:09:14 +0000</pubDate>
		<dc:creator>prmottajr</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Principal]]></category>
		<category><![CDATA[Tendências]]></category>
		<category><![CDATA[ARQUITETURA]]></category>
		<category><![CDATA[DISTRIBUIÇÃO]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[Integração]]></category>
		<category><![CDATA[JAVA]]></category>
		<category><![CDATA[PROGRAMAÇÃO]]></category>
		<category><![CDATA[SISTEMA]]></category>

		<guid isPermaLink="false">http://www.paulomotta.pro.br/?p=612</guid>
		<description><![CDATA[Essa semana um aluno me perguntou por email se eu conhecia algum editor para trabalhar com COBOL, não lembrei de imediato, mas depois de um tempo me veio a mente um evento que participei da empresa Micro Focus (de quem não estou ganhando nada para falar aqui&#8230;) apresentando um produto que permitia integrar programas COBOL [...]]]></description>
			<content:encoded><![CDATA[<p>Essa semana um aluno me perguntou por email se eu conhecia algum editor para trabalhar com COBOL, não lembrei de imediato, mas depois de um tempo me veio a mente um evento que participei da empresa <a href="http://www.microfocus.com" target="_blank">Micro Focus</a> (de quem não estou ganhando nada para falar aqui&#8230;) apresentando um <a href="http://www.microfocus.com/products/micro-focus-developer/index.aspx" target="_blank">produto</a> que permitia integrar programas COBOL com aplicações Java e .Net, inclusive rodar o programa em baixa plataforma.</p>
<p>Eu nunca usei o produto, até porque nem tenho programas em COBOL, mas é uma alternativa interessante para quem precisa manter aqueles programas do legado e quer mais facilidades. Lembro que nos meus tempos de EDS havia um grande buzz em torno do conceito de Application Modernization (modernização de aplicações) foram inclusive considerados produtos que permitiam avalizar o fluxo de chamadas entre módulos de programas COBOL para poder identificar o que eram regras de negócio e o que precisava realmente ser abandonado.</p>
<p>O fato que ninguém quer assumir é que não dá para jogar fora programas com 30 anos de execução, que você SABE que funcionam pelo simples fato de estarem rodando há tanto tempo. Tentar reescrever muitas vezes é a receita para o desastre porque você terá que revalidar as novas aplicações e garantir que está tudo certo, mas não temos hoje nenhum método ou ferramenta de teste que garanta 100% de cobertura de testes, mesmo que tal ferramenta existisse, seria impossível garantir que todos os casos de teste foram pensados. Ao longo dos 30 anos de existência aqueles programas COBOL foram testados, corrigidos, modificados e isso é uma coisa que só com o tempo para garantir a estabilidade.</p>
<p>A própria IBM investiu em um caminho contraditório, disponibilizou para mainframe (plataforma Z/OS) o Websphere e o Java de forma que você pode dentro do seu programa COBOL (que funciona há 30 anos) fazer uma chamada para um novo componente EJB feito em Java, pode também encapsular seu módulo COBOL em um EJB e expor para o mundo via WebService. Aí você pensa &#8220;duvido! isso não funciona!&#8221; mas nesse caso eu posso dizer que funciona porque trabalhei em um projeto assim na EDS, aliás meu último projeto por lá. O único inconveniente (não sei como está agora) é que a própria IBM não tinha muita experiência nesse tipo de integração então algumas dúvidas ficavam muito perdidas. Uma das coisas que foi legal de descobrir futucando manuais,  experimentando e lendo código fonte de outras plataformas é que essa integração (do Enterprise COBOL 4.3 ou superior) com o Java é feita via JNI (Java Native Inteface) então quando você quer referenciar no COBOL uma classe Java precisa fazer isso usando &#8220;/&#8221; como separador de pacotes ao invés de &#8220;.&#8221; para ficar mais claro:</p>
<blockquote><p>java/lang/String ao invés de java.lang.String</p></blockquote>
<p>Mas fora isso funcionava bem direitinho.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.paulomotta.pro.br/2010/06/30/ah-o-cobol/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
