<?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>Os Lunáticos &#187; Desenvolvimento</title>
	<atom:link href="http://oslunaticos.com.br/category/ti/desenvolvimento/feed/" rel="self" type="application/rss+xml" />
	<link>http://oslunaticos.com.br</link>
	<description>TI é aqui!</description>
	<lastBuildDate>Mon, 06 Feb 2012 21:07:56 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Processing no NetBeans</title>
		<link>http://oslunaticos.com.br/2012/02/processing-no-netbeans/</link>
		<comments>http://oslunaticos.com.br/2012/02/processing-no-netbeans/#comments</comments>
		<pubDate>Mon, 06 Feb 2012 21:07:56 +0000</pubDate>
		<dc:creator>Eduardo</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[NetBeans]]></category>
		<category><![CDATA[Processing]]></category>

		<guid isPermaLink="false">http://oslunaticos.com.br/?p=1744</guid>
		<description><![CDATA[Processing? Processing é uma linguagem de programação de código aberto e um ambiente de desenvolvimento integrado (IDE), construído para as artes eletrônicas e comunidades de design visual com o objetivo de ensinar noções básicas de programação de computador em um contexto visual e para servir como base para protótipos eletrônicos. O projeto foi iniciado em [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone" title="Processing" src="http://code.google.com/p/processing/logo" alt="" width="55" height="55" /></p>
<h6>Processing?</h6>
<blockquote>
<p style="text-align: justify;">Processing é uma linguagem de programação de código aberto e um ambiente de desenvolvimento integrado (IDE), construído para as artes eletrônicas e comunidades de design visual com o objetivo de ensinar noções básicas de programação de computador em um contexto visual e para servir como base para protótipos eletrônicos. O projeto foi iniciado em 2001 por Casey Reas e Ben Fry, ambos ex-membros do Grupo de Computação do MIT Media Lab. Um dos objetivos declarados do Processing é atuar como uma ferramenta para não-programadores, através da satisfação imediata de um retorno visual. Processing baseia-se na linguagem de programação Java, mas utiliza uma sintaxe simplificada e um padrão de programação baseado em gráficos.</p>
</blockquote>
<p>&nbsp;</p>
<h6>Ambiente</h6>
<p>O ambiente utilizado neste tutorial é Windows 7, NetBeans 7.1, JDK 1.6.0_30 e Processing 1.5.1.</p>
<p><span id="more-1744"></span></p>
<h6>Iniciando</h6>
<p>Considerando que o NetBeans e o JDK já estejam instalados, é necessário ir no site do Processing e realizar o download da versão sem o JDK &#8211;  <a href="http://processing.org/download/">http://processing.org/download/</a>. Após baixar o arquivo <em>processing-1.5.1-windows-expert.zip</em>, descompacte-o e mova a pasta <em>processing-1.5.1</em> para dentro de <em>C:\Arquivos de Programas</em>.</p>
<p>Neste primeiro contato o Processing já está pronto para trabalhar, agora é só configurar o NetBeans.</p>
<p>&nbsp;</p>
<h6>Agora no Netbeans</h6>
<p>Para continuar abra o NetBeans e clique em <em>Projetos</em> -&gt; <em>Bibliotecas</em>.</p>
<p><a href="http://oslunaticos.com.br/wp-content/uploads/2012/02/tela01.jpg"><img class="aligncenter size-medium wp-image-1746" title="tela01" src="http://oslunaticos.com.br/wp-content/uploads/2012/02/tela01-300x151.jpg" alt="" width="300" height="151" /></a></p>
<p>&nbsp;</p>
<p>Na tela de Bibliotecas, clique em <em>Nova Biblioteca&#8230;</em></p>
<p><a href="http://oslunaticos.com.br/wp-content/uploads/2012/02/tela02.jpg"><img class="aligncenter size-medium wp-image-1747" title="tela02" src="http://oslunaticos.com.br/wp-content/uploads/2012/02/tela02-300x229.jpg" alt="" width="300" height="229" /></a></p>
<p>&nbsp;</p>
<p>Em Nova Biblioteca, digite <em>Processing 1.5.1</em> em <em>Nome da biblioteca</em> e clique em <em>OK</em>.</p>
<p><a href="http://oslunaticos.com.br/wp-content/uploads/2012/02/tela03.jpg"><img class="aligncenter size-medium wp-image-1748" title="tela03" src="http://oslunaticos.com.br/wp-content/uploads/2012/02/tela03-300x149.jpg" alt="" width="300" height="149" /></a></p>
<p>&nbsp;</p>
<p>Após confirmar, clique em <em>Adicionar JAR/pasta&#8230; </em>Será exibida uma tela para localização dos arquivos. Procure <em>C:\Arquivos de Programas\processing-1.5.1\lib</em>, selecione os arquivos e clique em <em>Adicionar JAR/pasta</em>.</p>
<p><a href="http://oslunaticos.com.br/wp-content/uploads/2012/02/tela04.jpg"><img class="aligncenter size-medium wp-image-1751" title="tela04" src="http://oslunaticos.com.br/wp-content/uploads/2012/02/tela04-300x190.jpg" alt="" width="300" height="190" /></a></p>
<p>&nbsp;</p>
<p>Será exibida a tela com as informações da nova biblioteca.</p>
<p><a href="http://oslunaticos.com.br/wp-content/uploads/2012/02/tela05.jpg"><img class="aligncenter size-medium wp-image-1752" title="tela05" src="http://oslunaticos.com.br/wp-content/uploads/2012/02/tela05-300x229.jpg" alt="" width="300" height="229" /></a></p>
<p>&nbsp;</p>
<p>Neste momento a biblioteca está configurada e pronta para ser adicionada ao projeto.</p>
<p>&nbsp;</p>
<h6>Novo Projeto</h6>
<p>Agora será necessário iniciar um novo projeto. Clique em <em>Arquivo</em> -&gt; <em>Novo Projeto</em>. Na tela de Novo Projeto, selecione em <em>Categorias: Java</em> e <em>Projetos: Aplicativo Java</em>.</p>
<p><a href="http://oslunaticos.com.br/wp-content/uploads/2012/02/tela06.jpg"><img class="aligncenter size-medium wp-image-1753" title="tela06" src="http://oslunaticos.com.br/wp-content/uploads/2012/02/tela06-300x206.jpg" alt="" width="300" height="206" /></a></p>
<p>&nbsp;</p>
<p>Na tela de Novo Aplicativo Java, insira o nome do projeto: <em>TestProcessing</em>, verifique as demais opções selecionadas e clique em <em>Finalizar</em>.</p>
<p><a href="http://oslunaticos.com.br/wp-content/uploads/2012/02/tela07.jpg"><img class="aligncenter size-medium wp-image-1754" title="tela07" src="http://oslunaticos.com.br/wp-content/uploads/2012/02/tela07-300x206.jpg" alt="" width="300" height="206" /></a></p>
<p>&nbsp;</p>
<p>Após o novo projeto carregado, abra a árvore do projeto, clique em <em>Bibliotecas</em>, depois em <em>Adicionar biblioteca&#8230;</em></p>
<p><a href="http://oslunaticos.com.br/wp-content/uploads/2012/02/tela08.jpg"><img class="aligncenter size-medium wp-image-1755" title="tela08" src="http://oslunaticos.com.br/wp-content/uploads/2012/02/tela08-257x300.jpg" alt="" width="257" height="300" /></a></p>
<p>&nbsp;</p>
<p>Na tela de adicionar biblioteca, clique em <em>Importar</em>.</p>
<p><a href="http://oslunaticos.com.br/wp-content/uploads/2012/02/tela09.jpg"><img class="aligncenter size-medium wp-image-1756" title="tela09" src="http://oslunaticos.com.br/wp-content/uploads/2012/02/tela09-284x300.jpg" alt="" width="284" height="300" /></a></p>
<p>&nbsp;</p>
<p>Selecione a biblioteca que foi criada (Processing 1.5.1) e clique em <em>Importar biblioteca</em>.</p>
<p><a href="http://oslunaticos.com.br/wp-content/uploads/2012/02/tela10.jpg"><img class="aligncenter size-medium wp-image-1757" title="tela10" src="http://oslunaticos.com.br/wp-content/uploads/2012/02/tela10-219x300.jpg" alt="" width="219" height="300" /></a></p>
<p>&nbsp;</p>
<p>Novamente de volta a de Adicionar biblioteca selecione <em>Processing 1.5.1</em> e clique em <em>Adicionar biblioteca</em>.</p>
<p><a href="http://oslunaticos.com.br/wp-content/uploads/2012/02/tela11.jpg"><img class="aligncenter size-medium wp-image-1758" title="tela11" src="http://oslunaticos.com.br/wp-content/uploads/2012/02/tela11-284x300.jpg" alt="" width="284" height="300" /></a></p>
<p>&nbsp;</p>
<p>Os arquivos JAR do Processing serão adicionados ao projeto, assim será possível realizar a importação das bibliotecas.</p>
<p><a href="http://oslunaticos.com.br/wp-content/uploads/2012/02/tela12.jpg"><img class="aligncenter size-medium wp-image-1759" title="tela12" src="http://oslunaticos.com.br/wp-content/uploads/2012/02/tela12-300x255.jpg" alt="" width="300" height="255" /></a></p>
<p>&nbsp;</p>
<p>Foi testado o seguinte código:</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;">testprocessing</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">processing.core.PApplet</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #008000; font-style: italic; font-weight: bold;">/**
*
* @author Eduardo Folly
*/</span>
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> TestProcessing <span style="color: #000000; font-weight: bold;">extends</span> PApplet <span style="color: #009900;">&#123;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;">/*
     *
     */</span>
    @Override
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> setup<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        size<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">640</span>, <span style="color: #cc66cc;">480</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
   <span style="color: #666666; font-style: italic;">/*
    *
    */</span>
    @Override
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> draw<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        background<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        rectMode<span style="color: #009900;">&#40;</span>CENTER<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        fill<span style="color: #009900;">&#40;</span>0xFFFFAA99<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        rect<span style="color: #009900;">&#40;</span>mouseX, mouseY, <span style="color: #cc66cc;">100</span>, <span style="color: #cc66cc;">100</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #008000; font-style: italic; font-weight: bold;">/**
     * @param args the command line arguments
     */</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">void</span> main<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> args<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        PApplet.<span style="color: #006633;">main</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">String</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#123;</span> <span style="color: #0000ff;">&quot;testprocessing.TestProcessing&quot;</span> <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>E o resultado obtido foi a aplicação rodando perfeitamente.</p>
<p><a href="http://oslunaticos.com.br/wp-content/uploads/2012/02/tela13.jpg"><img class="aligncenter size-medium wp-image-1761" title="tela13" src="http://oslunaticos.com.br/wp-content/uploads/2012/02/tela13-300x236.jpg" alt="" width="300" height="236" /></a></p>
<p>&nbsp;</p>
<h6>Melhorias futuras e possíveis questões</h6>
<ul>
<li><span style="line-height: 18px;">Somente o código fonte do exemplo foi testado, é necessário testar com outros exemplos que utilizem bibliotecas específicas.<br />
</span></li>
<li><span style="line-height: 18px;">Devido ao Processing ser multi-plataforma, assim como o NetBeans, testar esta configuração em outros sistemas operacionais é imprescindível.</span></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://oslunaticos.com.br/2012/02/processing-no-netbeans/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Consumindo web service do Protheus com JAX-WS</title>
		<link>http://oslunaticos.com.br/2011/10/consumindo-web-service-do-protheus-com-jax-ws/</link>
		<comments>http://oslunaticos.com.br/2011/10/consumindo-web-service-do-protheus-com-jax-ws/#comments</comments>
		<pubDate>Wed, 26 Oct 2011 21:08:32 +0000</pubDate>
		<dc:creator>Eduardo</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JAX-WS]]></category>
		<category><![CDATA[Protheus]]></category>
		<category><![CDATA[Totvs]]></category>
		<category><![CDATA[Web Service]]></category>

		<guid isPermaLink="false">http://oslunaticos.com.br/?p=1701</guid>
		<description><![CDATA[O que é web service? De acordo com a W3C, web service é um software projetado para suportar interação máquina-máquina de forma interoperável através de uma rede. Ele tem uma interface descrita em um formato máquina-processável (especificamente WSDL). Sistemas que interagem com o web service de uma maneira prescrita por sua descrição, utilizam mensagens SOAP, [...]]]></description>
			<content:encoded><![CDATA[<h3>O que é web service?</h3>
<p>De acordo com a <a href="http://www.w3.org/" target="_blank">W3C</a>, <a href="http://www.w3.org/TR/2004/NOTE-ws-gloss-20040211/" target="_blank">web service</a> é um software projetado para suportar interação máquina-máquina de forma interoperável através de uma rede. Ele tem uma interface descrita em um formato máquina-processável (especificamente WSDL). Sistemas que interagem com o web service de uma maneira prescrita por sua descrição, utilizam mensagens SOAP, normalmente transmitidas através de HTTP com uma serialização XML em conjunto com outros padrões web.</p>
<p>&nbsp;</p>
<h3>O caminho.</h3>
<p>Para a integração com outros sistemas, o ERP Protheus da Totvs provê uma série de web services e ainda existe a possibilidade de desenvolver e publicar serviços customizados dentro da plataforma.</p>
<p><a href="http://oslunaticos.com.br/wp-content/uploads/2011/10/server.png"><img class="aligncenter size-medium wp-image-1722" title="server" src="http://oslunaticos.com.br/wp-content/uploads/2011/10/server-300x185.png" alt="" width="300" height="185" /></a></p>
<p style="text-align: center;"><em>Figura 1 &#8211; Página com a descrição dos serviços disponíveis do Protheus.</em></p>
<p>&nbsp;</p>
<h3>O problema.</h3>
<p>Ao iniciar o desenvolvimento de uma aplicação em Java 6, utilizando o Netbeans 7.0 como IDE e a biblioteca JAX-WS para o consumo dos serviços, foi exibida a mensagem <em>&#8220;WEBSERVICE ERROR : Soap Prefix Missing : USERPORTAL : PRTLOGIN : Formato do Pacote Soap DESCONHECIDO.&#8221;</em> ao tentar executar uma chamada simples ao serviço USERPORTAL, método PRTLOGIN.<br />
<span id="more-1701"></span><br />
&nbsp;</p>
<h3>A solução.</h3>
<p>Será demostrado um passo-a-passo de como iniciar um projeto até o consumo com sucesso do web service especificado.</p>
<p>No Netbeans, clique no menu <em>Arquivo</em>, seguido por <em>Novo Projeto</em>. Na tela que irá abrir, selecione em <em>Categorias:</em> &#8220;Java&#8221; e em <em>Projetos:</em> &#8220;Aplicativo Java&#8221;. Clique em <em>Próximo</em>.</p>
<p style="text-align: center;"><a href="http://oslunaticos.com.br/wp-content/uploads/2011/10/image000.png"><img class="aligncenter size-medium wp-image-1706" title="image000" src="http://oslunaticos.com.br/wp-content/uploads/2011/10/image000-300x206.png" alt="" width="300" height="206" /></a><em>Figura 2 &#8211; Novo projeto.</em></p>
<p>&nbsp;</p>
<p>Informe o nome do projeto (neste caso SigaWS), faça modificações caso ache necessário e clique em <em>Finalizar</em>.</p>
<p style="text-align: center;"><a href="http://oslunaticos.com.br/wp-content/uploads/2011/10/image001.png"><img class="aligncenter size-medium wp-image-1707" title="image001" src="http://oslunaticos.com.br/wp-content/uploads/2011/10/image001-300x206.png" alt="" width="300" height="206" /></a><em>Figura 3 &#8211; Novo Aplicativo Java</em></p>
<p>&nbsp;</p>
<p>Com o projeto criado, deverá ser criada a classe para consumo do serviço USERPORTAL, para isto clique em <em>Arquivo</em>, seguido por <em>Novo Arquivo</em>.</p>
<p style="text-align: center;"><a href="http://oslunaticos.com.br/wp-content/uploads/2011/10/image002.png"><img class="aligncenter size-medium wp-image-1708" title="image002" src="http://oslunaticos.com.br/wp-content/uploads/2011/10/image002-220x300.png" alt="" width="220" height="300" /></a><em>Figura 4 &#8211; Arquivo, Novo Arquivo.</em></p>
<p>&nbsp;</p>
<p>Na tela de Novo Arquivo selecione em <em>Categorias:</em> &#8220;Serviços Web&#8221; e em <em>Tipos de arquivos:</em> &#8220;Cliente para serviço Web&#8221;, clicando em <em>Próximo</em>.</p>
<p style="text-align: center;"><a href="http://oslunaticos.com.br/wp-content/uploads/2011/10/image003.png"><img class="aligncenter size-medium wp-image-1709" title="image003" src="http://oslunaticos.com.br/wp-content/uploads/2011/10/image003-300x206.png" alt="" width="300" height="206" /></a><em>Figura 5 &#8211; Novo arquivo.</em></p>
<p>&nbsp;</p>
<p>Na próxima tela deverá ser selecionada a opção <em>WSDL URL</em> e informado o caminho do arquivo de definição do serviço de acordo com o publicado no Protheus. Clique em <em>Finalizar</em>.</p>
<p style="text-align: center;"><a href="http://oslunaticos.com.br/wp-content/uploads/2011/10/image004.png"><img class="aligncenter size-medium wp-image-1710" title="image004" src="http://oslunaticos.com.br/wp-content/uploads/2011/10/image004-300x206.png" alt="" width="300" height="206" /></a><em>Figura 6 &#8211; Novo cliente para serviço Web.</em></p>
<p>&nbsp;</p>
<p>Voltando para a tela principal do Netbeans, vá na aba <em>Projetos</em> e abra os nós de <em>Referência de serviços Web</em> até localizar o método PRTLOGIN.</p>
<p>Selecione o nó PRTLOGIN, arraste-o e solte dentro da classe SigaWS, isto fará com que o código de chamada ao método seja gerado automaticamente. Em seguida defina os parâmetros para execução da chamada do serviço.</p>
<p style="text-align: center;"><a href="http://oslunaticos.com.br/wp-content/uploads/2011/10/image005.png"><img class="aligncenter size-medium wp-image-1711" title="image005" src="http://oslunaticos.com.br/wp-content/uploads/2011/10/image005-300x232.png" alt="" width="300" height="232" /></a><em>Figura 7 &#8211; Definição da classe de execução do Web Service.</em></p>
<p>&nbsp;</p>
<p>Executando o projeto neste momento, será verificado o erro citado no início do artigo.</p>
<p style="text-align: center;"><a href="http://oslunaticos.com.br/wp-content/uploads/2011/10/image006.png"><img class="aligncenter size-medium wp-image-1712" title="image006" src="http://oslunaticos.com.br/wp-content/uploads/2011/10/image006-300x121.png" alt="" width="300" height="121" /></a><em>Figura 8 &#8211; Erro na execução.</em></p>
<p>&nbsp;</p>
<p>Para solucionar o problema, o proposto é adicionar um manipulador de mensagem SOAP e realizar algumas modificações nos dados retornados pelo serviço, assim possibilitando a serialização.</p>
<p>Clique em <em>Arquivo</em>, seguido por <em>Novo Arquivo</em>. Na tela seguinte, selecione em <em>Categorias:</em> &#8220;Serviços Web&#8221; e em <em>Tipos de arquivos:</em> &#8220;Manipulador de mensagens&#8221;, clique em <em>Próximo</em>.</p>
<p style="text-align: center;"><a href="http://oslunaticos.com.br/wp-content/uploads/2011/10/image007.png"><img class="aligncenter size-medium wp-image-1713" title="image007" src="http://oslunaticos.com.br/wp-content/uploads/2011/10/image007-300x206.png" alt="" width="300" height="206" /></a><em>Figura 9 &#8211; Novo arquivo &#8211; Manipulador de mensagens.</em></p>
<p>&nbsp;</p>
<p>Informe o nome para o arquivo, neste caso SigaHandler, clique em <em>Finalizar</em>.</p>
<p style="text-align: center;"><a href="http://oslunaticos.com.br/wp-content/uploads/2011/10/image008.png"><img class="aligncenter size-medium wp-image-1714" title="image008" src="http://oslunaticos.com.br/wp-content/uploads/2011/10/image008-300x206.png" alt="" width="300" height="206" /></a><em>Figura 10 &#8211; Novo manipulador de mensagens.</em></p>
<p>&nbsp;</p>
<p>Com o arquivo gerado o código deverá ficar desta forma:</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;">sigaws.ws</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.io.ByteArrayOutputStream</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.util.Collections</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.util.Set</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javax.xml.namespace.QName</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javax.xml.soap.SOAPException</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javax.xml.soap.SOAPMessage</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javax.xml.transform.Source</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javax.xml.transform.stream.StreamSource</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javax.xml.ws.handler.MessageContext</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javax.xml.ws.handler.soap.SOAPHandler</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javax.xml.ws.handler.soap.SOAPMessageContext</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #008000; font-style: italic; font-weight: bold;">/**
 *
 * @author Eduardo Folly
 */</span>
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> SigaHandler <span style="color: #000000; font-weight: bold;">implements</span> SOAPHandler <span style="color: #009900;">&#123;</span>
&nbsp;
    @Override
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">boolean</span> handleMessage<span style="color: #009900;">&#40;</span>SOAPMessageContext messageContext<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000066; font-weight: bold;">boolean</span> outbound <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">Boolean</span><span style="color: #009900;">&#41;</span> messageContext.<span style="color: #006633;">get</span><span style="color: #009900;">&#40;</span>MessageContext.<span style="color: #006633;">MESSAGE_OUTBOUND_PROPERTY</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>outbound<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #000000; font-weight: bold;">try</span> <span style="color: #009900;">&#123;</span>
                SOAPMessage msg <span style="color: #339933;">=</span> messageContext.<span style="color: #006633;">getMessage</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
                <span style="color: #003399;">ByteArrayOutputStream</span> baos <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">ByteArrayOutputStream</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                msg.<span style="color: #006633;">writeTo</span><span style="color: #009900;">&#40;</span>baos<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #003399;">String</span> teste <span style="color: #339933;">=</span> baos.<span style="color: #006633;">toString</span><span style="color: #009900;">&#40;</span>getMessageEncoding<span style="color: #009900;">&#40;</span>msg<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                teste <span style="color: #339933;">=</span> teste.<span style="color: #006633;">replaceAll</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;S:&quot;</span>, <span style="color: #0000ff;">&quot;soap:&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                teste <span style="color: #339933;">=</span> teste.<span style="color: #006633;">replaceAll</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;S=&quot;</span>, <span style="color: #0000ff;">&quot;soap=&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
                Source src <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> StreamSource<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> java.<span style="color: #006633;">io</span>.<span style="color: #003399;">StringReader</span><span style="color: #009900;">&#40;</span>teste<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                msg.<span style="color: #006633;">getSOAPPart</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">setContent</span><span style="color: #009900;">&#40;</span>src<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">Exception</span> e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                e.<span style="color: #006633;">printStackTrace</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
        <span style="color: #009900;">&#125;</span>
        <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    @Override
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399;">Set</span> getHeaders<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #003399;">Collections</span>.<span style="color: #006633;">EMPTY_SET</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    @Override
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">boolean</span> handleFault<span style="color: #009900;">&#40;</span>SOAPMessageContext messageContext<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    @Override
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> close<span style="color: #009900;">&#40;</span>MessageContext context<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #003399;">String</span> getMessageEncoding<span style="color: #009900;">&#40;</span>SOAPMessage msg<span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">throws</span> SOAPException <span style="color: #009900;">&#123;</span>
        <span style="color: #003399;">String</span> encoding <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;utf-8&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>msg.<span style="color: #006633;">getProperty</span><span style="color: #009900;">&#40;</span>SOAPMessage.<span style="color: #006633;">CHARACTER_SET_ENCODING</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            encoding <span style="color: #339933;">=</span> msg.<span style="color: #006633;">getProperty</span><span style="color: #009900;">&#40;</span>SOAPMessage.<span style="color: #006633;">CHARACTER_SET_ENCODING</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">toString</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
        <span style="color: #000000; font-weight: bold;">return</span> encoding<span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>&nbsp;</p>
<p>Assim o resultado final da classe é apresentado.</p>
<p style="text-align: center;"><a href="http://oslunaticos.com.br/wp-content/uploads/2011/10/image009.png"><img class="aligncenter size-medium wp-image-1715" title="image009" src="http://oslunaticos.com.br/wp-content/uploads/2011/10/image009-300x232.png" alt="" width="300" height="232" /></a><em>Figura 11 &#8211; Classe SigaHandler.</em></p>
<p>&nbsp;</p>
<p>Agora é necessário relacionar o manipulador de mensagens com o serviço USERPORTAL. Para isto na aba <em>Projetos </em>clique com o botão direito do mouse no serviço USERPORTAL, seguido por <em>Configurar manipuladores&#8230;</em></p>
<p style="text-align: center;"><a href="http://oslunaticos.com.br/wp-content/uploads/2011/10/image010.png"><img class="aligncenter size-medium wp-image-1716" title="image010" src="http://oslunaticos.com.br/wp-content/uploads/2011/10/image010-201x300.png" alt="" width="201" height="300" /></a><em>Figura 12 &#8211; Configurar manipuladores&#8230;</em></p>
<p>&nbsp;</p>
<p>Na próxima tela, clique em <em>Adicionar</em>.</p>
<p style="text-align: center;"><a href="http://oslunaticos.com.br/wp-content/uploads/2011/10/image011.png"><img class="aligncenter size-medium wp-image-1717" title="image011" src="http://oslunaticos.com.br/wp-content/uploads/2011/10/image011-300x174.png" alt="" width="300" height="174" /></a><em>Figura 13 &#8211; Configurar os manipuladores de mensagens.</em></p>
<p>&nbsp;</p>
<p>Selecione o arquivo manipulador, neste caso o arquivo SigaHandler.java, e clique em <em>OK</em>.</p>
<p style="text-align: center;"><a href="http://oslunaticos.com.br/wp-content/uploads/2011/10/image012.png"><img class="aligncenter size-medium wp-image-1718" title="image012" src="http://oslunaticos.com.br/wp-content/uploads/2011/10/image012-244x300.png" alt="" width="244" height="300" /></a><em>Figura 14 &#8211; Selecionar classe de manipuladores de mensagens.</em></p>
<p>&nbsp;</p>
<p>Após a confirmação será exibido o manipulador de mensagens associado ao serviço. Clique em <em>OK</em>.</p>
<p><a href="http://oslunaticos.com.br/wp-content/uploads/2011/10/image013.png"><img class="aligncenter size-medium wp-image-1719" title="image013" src="http://oslunaticos.com.br/wp-content/uploads/2011/10/image013-300x174.png" alt="" width="300" height="174" /></a></p>
<p style="text-align: center;"><em>Figura 15 &#8211; Associação do manipulador de mensagens.</em></p>
<p>&nbsp;</p>
<p>Desta forma a execução do programa funciona perfeitamente.</p>
<p><a href="http://oslunaticos.com.br/wp-content/uploads/2011/10/image014.png"><img class="aligncenter size-medium wp-image-1720" title="image014" src="http://oslunaticos.com.br/wp-content/uploads/2011/10/image014-300x147.png" alt="" width="300" height="147" /></a></p>
<p style="text-align: center;"><em>Figura 16 &#8211; Execução do programa.</em></p>
<p>&nbsp;</p>
<h3>Considerações finais.</h3>
<p>Até o presente momento a Totvs não disponibilizou uma modificação no padrão do retorno da mensagem do serviço Web para o Protheus 10.</p>
<p>Gostaria de agradecer a Vicente de Paula (vicenterecife@gmail.com) por ter originado os questionamentos que deram origem a este artigo.</p>
]]></content:encoded>
			<wfw:commentRss>http://oslunaticos.com.br/2011/10/consumindo-web-service-do-protheus-com-jax-ws/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Novo NetBeans 6.8</title>
		<link>http://oslunaticos.com.br/2009/12/novo-netbeans-6-8/</link>
		<comments>http://oslunaticos.com.br/2009/12/novo-netbeans-6-8/#comments</comments>
		<pubDate>Sun, 20 Dec 2009 14:51:18 +0000</pubDate>
		<dc:creator>Eduardo</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[NetBeans]]></category>

		<guid isPermaLink="false">http://oslunaticos.com.br/?p=444</guid>
		<description><![CDATA[Hoje ao abrir o Netbeans (já fazia duas semanas que não passava perto do Java) recebi um informativo falando sobre uma nova versão que estava disponível para download. Então vamos ao que interessa: O mundo Java é dividido entre duas IDE&#8217;s (Integrated Development Environment), o NetBeans e o Eclipse. Grande parte dos desenvolvedores que acompanham [...]]]></description>
			<content:encoded><![CDATA[<p><a rel="attachment wp-att-446" href="http://oslunaticos.com.br/2009/12/novo-netbeans-6-8/netbeans/"><img class="alignleft size-full wp-image-446" style="border: 5px solid white;" title="netbeans" src="http://oslunaticos.com.br/wp-content/uploads/2009/12/netbeans.png" alt="netbeans" width="249" height="264" /></a>Hoje ao abrir o Netbeans (já fazia duas semanas que não passava perto do Java) recebi um informativo falando sobre uma nova versão que estava disponível para download. Então vamos ao que interessa:</p>
<p>O mundo <a href="http://java.sun.com" target="_blank">Java</a> é dividido entre duas IDE&#8217;s (Integrated Development Environment), o <a href="http://www.netbeans.com/" target="_blank">NetBeans</a> e o <a href="http://www.eclipse.org/" target="_blank">Eclipse</a>. Grande parte dos desenvolvedores que acompanham o Java desde seus primórdios e os oriundos do C++ são cativados amplamente pelo Eclipse. Já a nova geração do Java e os amantes da interface gráfica se encantaram com a facilidade de criar interfaces tal como o Delphi e o Visual Studio.</p>
<p>Vale a pena lembrar que o NetBeans é um projeto de código aberto e mantido pela Sun.</p>
<p>Pelo fato de ser propriamente desenvolvido em Java é possível executa-lo em Linux, Solaris, MacOS e Windows.</p>
<p>Então, com este brevíssimo histórico, é apresentada a nova versão do NetBeans.</p>
<p>Com o NetBeans desenvolvemos aplicações Java para desktop, enterprise, web, FX e mobile. Além disso é possível trabalhar com C/C++, PHP, JavaScript, Groovy, e Ruby.</p>
<p>O vídeo abaixo é parte inicial de uma coleção de vídeos que apresentam as funcionalidades do NetBeans.</p>
<p style="text-align: center;"><object id="flashObj" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="486" height="322" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="bgcolor" value="#FFFFFF" /><param name="flashVars" value="videoId=55590187001&amp;linkBaseURL=https%3A%2F%2Fchannelsun.sun.com%2Fmedia%2Fshow%2F14814&amp;playerID=1640183659&amp;domain=embed&amp;" /><param name="base" value="http://admin.brightcove.com" /><param name="seamlesstabbing" value="false" /><param name="allowFullScreen" value="true" /><param name="swLiveConnect" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://c.brightcove.com/services/viewer/federated_f9/1640183659?isVid=1&amp;publisherID=1460825906" /><param name="name" value="flashObj" /><param name="flashvars" value="videoId=55590187001&amp;linkBaseURL=https%3A%2F%2Fchannelsun.sun.com%2Fmedia%2Fshow%2F14814&amp;playerID=1640183659&amp;domain=embed&amp;" /><param name="allowfullscreen" value="true" /><embed id="flashObj" type="application/x-shockwave-flash" width="486" height="322" src="http://c.brightcove.com/services/viewer/federated_f9/1640183659?isVid=1&amp;publisherID=1460825906" name="flashObj" allowscriptaccess="always" swliveconnect="true" allowfullscreen="true" seamlesstabbing="false" base="http://admin.brightcove.com" flashvars="videoId=55590187001&amp;linkBaseURL=https%3A%2F%2Fchannelsun.sun.com%2Fmedia%2Fshow%2F14814&amp;playerID=1640183659&amp;domain=embed&amp;" bgcolor="#FFFFFF"></embed></object></p>
<p>Os outros vídeos podem ser acessados através deste link: <a href="http://netbeans.org/kb/docs/intro-screencasts.html" target="_blank">http://netbeans.org/kb/docs/intro-screencasts.html</a></p>
<p>Fica então o convite para conhecer um pouco mais da plataforma Java e como utiliza-la através do NetBeans.</p>
]]></content:encoded>
			<wfw:commentRss>http://oslunaticos.com.br/2009/12/novo-netbeans-6-8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dicas SQL &#8211; Resetando um campo auto incremento de um BD</title>
		<link>http://oslunaticos.com.br/2009/11/dicas-sql-resetando-um-campo-auto-incremento-de-um-bd/</link>
		<comments>http://oslunaticos.com.br/2009/11/dicas-sql-resetando-um-campo-auto-incremento-de-um-bd/#comments</comments>
		<pubDate>Mon, 23 Nov 2009 19:20:48 +0000</pubDate>
		<dc:creator>Marcos Martins</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Banco de Dados]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://oslunaticos.com.br/?p=342</guid>
		<description><![CDATA[Para resetar um campo auto incremento de um banco  basta utilizar o comando abaixo: MySQL: ALTER TABLE tabela AUTO_INCREMENT = 0 SQL Server: DBCC CHECKIDENT(&#8216;tabela&#8217;, RESEED, 0) ; Paradox 7 (Não testado em outras versões): function ResetAutoInc(FileName: TFileName; NewValue:Longint): Boolean; begin with TFileStream.Create(NomeDoArquivo, fmOpenReadWrite) do try Result := (Seek($49, soFromBeginning) = $49) and (Write(NovoValor, 4) [...]]]></description>
			<content:encoded><![CDATA[<p>Para resetar um campo auto incremento de um banco  basta utilizar o comando abaixo:</p>
<p><strong>MySQL:</strong></p>
<p>ALTER TABLE tabela AUTO_INCREMENT = 0</p>
<p><strong>SQL Server:</strong></p>
<p>DBCC CHECKIDENT(&#8216;tabela&#8217;, RESEED, 0) ;</p>
<p><strong>Paradox 7</strong> (Não testado em outras versões):</p>
<p>function ResetAutoInc(FileName: TFileName; NewValue:Longint): Boolean;<br />
begin<br />
with TFileStream.Create(NomeDoArquivo, fmOpenReadWrite) do<br />
try<br />
Result := (Seek($49, soFromBeginning) = $49) and (Write(NovoValor, 4) = 4);<br />
finally<br />
Free;<br />
end;<br />
end;</p>
<p>Quem souber em mais Bd’s é só comentar aqui que adiciono e dou os devidos créditos.</p>
]]></content:encoded>
			<wfw:commentRss>http://oslunaticos.com.br/2009/11/dicas-sql-resetando-um-campo-auto-incremento-de-um-bd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BIL &#8211; Baixador de Imagens dos Lunáticos</title>
		<link>http://oslunaticos.com.br/2009/11/bil-baixador-de-imagens-dos-lunaticos/</link>
		<comments>http://oslunaticos.com.br/2009/11/bil-baixador-de-imagens-dos-lunaticos/#comments</comments>
		<pubDate>Sun, 15 Nov 2009 17:59:40 +0000</pubDate>
		<dc:creator>Eduardo</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Baixador]]></category>
		<category><![CDATA[BIL]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Imagem]]></category>
		<category><![CDATA[Os Lunáticos]]></category>

		<guid isPermaLink="false">http://oslunaticos.com.br/?p=258</guid>
		<description><![CDATA[No dia 31/08/09 em nosso grupo de e-mails surgiu uma necessidade: &#8220;Pessoal, alguem conhece um soft que faça download em massa das imagens resultantes de uma procura do google image? (a imagem full não os thumbs)&#8221; A partir desta data fiquei com esta idéia na cabeça, até começar alguns estudos em 16/09/09 e no dia [...]]]></description>
			<content:encoded><![CDATA[<p><a rel="attachment wp-att-257" href="http://oslunaticos.com.br/2009/11/bil-baixador-de-imagens-dos-lunaticos/bil/"><img class="size-full wp-image-257" title="BIL" src="http://oslunaticos.com.br/wp-content/uploads/2009/11/bil.png" alt="Baixador de Imagens dos Lunáticos" width="564" height="392" /></a></p>
<p>No dia 31/08/09 em nosso grupo de e-mails surgiu uma necessidade:</p>
<p><em>&#8220;Pessoal, alguem conhece um soft que faça download em massa das <span>imagens</span> resultantes de uma procura do <span>google</span> image? (a imagem full não os thumbs)&#8221;</em></p>
<p>A partir desta data fiquei com esta idéia na cabeça, até começar alguns estudos em 16/09/09 e no dia 01/11/09 saiu a nossa primeira versão.</p>
<p>O Baixador de Imagens dos Lunáticos é um programa que se utiliza do motor de busca de imagens do google para baixar as imagens diretamente das páginas originais, facilitando assim a busca e aquisição de imagens.</p>
<p>O software foi desenvolvido em java e necessita da JRE 1.6 para funcionar corretamente. Para baixar a JRE visite: <a href="http://java.sun.com/javase/downloads/" target="_blank">http://java.sun.com/javase/downloads/</a></p>
<p>Nossa primeira idéia para utiliza-lo foi baixando papéis de parede. Desde então o BIL está recebendo melhorias.</p>
<p>A tela princial do BIL:</p>
<p><a rel="attachment wp-att-264" href="http://oslunaticos.com.br/2009/11/bil-baixador-de-imagens-dos-lunaticos/bil_main/"><img class="alignnone size-medium wp-image-264" title="BIL - Tela Principal" src="http://oslunaticos.com.br/wp-content/uploads/2009/11/bil_main-300x187.png" alt="BIL - Tela Principal" width="300" height="187" /></a></p>
<p>A página do projeto que ainda está em construção: <a href="http://code.google.com/p/bilbr/" target="_blank">http://code.google.com/p/bilbr/</a></p>
<p>Para realizar o download, <a href="http://bilbr.googlecode.com/files/bil.jar">clique aqui</a>!!</p>
<p>Fica aqui o convite para todos participarem do desenvolvimento do BIL!</p>
]]></content:encoded>
			<wfw:commentRss>http://oslunaticos.com.br/2009/11/bil-baixador-de-imagens-dos-lunaticos/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Firebug</title>
		<link>http://oslunaticos.com.br/2009/11/firebug/</link>
		<comments>http://oslunaticos.com.br/2009/11/firebug/#comments</comments>
		<pubDate>Fri, 13 Nov 2009 12:01:58 +0000</pubDate>
		<dc:creator>gusvin</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[debugar]]></category>
		<category><![CDATA[depurar]]></category>
		<category><![CDATA[dica]]></category>
		<category><![CDATA[DOM]]></category>
		<category><![CDATA[Firebug]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://oslunaticos.com.br/?p=200</guid>
		<description><![CDATA[O Firebug é uma extensão para o Firefox que permite debugar (ou se preferir depurar ), editar e monitorar CSS, HTML, DOM e Javascript em páginas Web. No Firebug também está disponível um console para registrar erros e acompanhar valores de variáveis. Fica aí essa dica, afinal de contas quem nunca precisou colocar um alert [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone" title="Firebug" src="http://getfirebug.com/images/firebug2.png" alt="" width="109" height="67" />O Firebug é uma extensão para o Firefox que permite debugar (ou se preferir depurar <img src='http://oslunaticos.com.br/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> ), editar e monitorar CSS, HTML, DOM e Javascript em páginas Web. No Firebug também está disponível um console para registrar erros e acompanhar valores de variáveis.</p>
<p>Fica aí essa dica, afinal de contas quem nunca precisou colocar um alert em uma função javascript para &#8220;debugar&#8221; seu código, que jogue a primeira pedra&#8230; hehehehe eu cansei de fazer isso <img src='http://oslunaticos.com.br/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Você pode baixar o Firebug daqui: <a href="http://getfirebug.com/" target="_blank">http://getfirebug.com/</a></p>
<p>Nesse link abaixo é possível ver um vídeo tutorial do uso do firebug, é bom para dar uma visão mais clara e ver como ele é maneiro.</p>
<p><a href="http://www.digitalmediaminute.com/screencast/firebug-js/" target="_blank">http://www.digitalmediaminute.com/screencast/firebug-js/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://oslunaticos.com.br/2009/11/firebug/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Visitor Maps não mostra mapas.</title>
		<link>http://oslunaticos.com.br/2009/11/visitor-maps-nao-mostra-mapas/</link>
		<comments>http://oslunaticos.com.br/2009/11/visitor-maps-nao-mostra-mapas/#comments</comments>
		<pubDate>Thu, 12 Nov 2009 16:00:40 +0000</pubDate>
		<dc:creator>Eduardo</dc:creator>
				<category><![CDATA[Blogs]]></category>
		<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Edit]]></category>
		<category><![CDATA[HTTP]]></category>
		<category><![CDATA[Imagem]]></category>
		<category><![CDATA[Mapa]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[Sniffer]]></category>
		<category><![CDATA[Visitor Maps]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://oslunaticos.com.br/?p=136</guid>
		<description><![CDATA[Ao iniciar este blog me deparei com os vários plug-ins do WordPress, achei isso facinante, muitas utilidades com pouquissimo trabalho. Navegando entre as milhões de opções achei um plug-in muito interessante chamado Visitor Maps and Who&#8217;s Online. Muitas funcionalidades foram informadas e acabei sendo convencido a instalar este surpreendende extra neste pequeno blog. Para minha [...]]]></description>
			<content:encoded><![CDATA[<p>Ao iniciar este blog me deparei com os vários <a href="http://wordpress.org/extend/plugins/" target="_blank">plug-ins</a> do <a href="http://wordpress.org/" target="_blank">WordPress</a>, achei isso facinante, muitas utilidades com pouquissimo trabalho.</p>
<p>Navegando entre as milhões de opções achei um plug-in muito interessante chamado <a href="http://wordpress.org/extend/plugins/visitor-maps/" target="_blank">Visitor Maps and Who&#8217;s Online</a>. Muitas funcionalidades foram informadas e acabei sendo convencido a instalar este surpreendende extra neste pequeno blog.</p>
<p>Para minha felicidade a instalação foi completamente descomplicada, em alguns cliques estava com varias informações geográficas sendo disponibilizadas no Painel e sem nenhum custo adicional de um serviço pago.</p>
<p>Após todas estas maravilhas tive que começar a descer do céu, pois <a href="http://wordpress.org/extend/plugins/visitor-maps/faq/" target="_blank">o plug-in necessida de um banco de dados de aproximadamente 30Mb</a> que deve ser colocado na sua pasta padrão. Tudo bem até que o Felippe fez o upload do arquivo rapidinho. Então novas funcionalidades surgiram: bandeiras dos países, coordenadas, latitude e longitude. Cada vez melhorando mais.</p>
<p>Até que me indago sobre: Visitor Maps, correto? Aonde estão os mapas? Depois de algumas visitas, cliques, tentativas &#8230; não consegui nada !!</p>
<p>Então acabei o espírito aventureiro falou mais alto fui me utilizar de recursos avançados com a ajuda do nosso ilustríssimo Homem Bit, Clemar.</p>
<p><strong>Cenário:</strong></p>
<ul>
<li>WordPress 2.8.4</li>
<li>Visitor Maps 1.2.9</li>
</ul>
<p><strong>O problema:</strong></p>
<p>A página é carregada, as localizações dos visitantes são informadas, mas o mapa de fundo não é exibido.</p>
<p><strong>A pesquisa:</strong></p>
<p>A partir deste problema, Clemar fez o download da imagem através do flashget e tentou abri-la, mas ocorreu o mesmo problema.</p>
<p>O próximo passo para diagnosticar o defeito da imagem utilizando um recurso muito útil na década de 80. Abrimos um prompt de comando e digitamos: &#8220;edit /70 imagem.jpg&#8221;</p>
<p><a rel="attachment wp-att-144" href="http://oslunaticos.com.br/2009/11/visitor-maps-nao-mostra-mapas/edit-dos/"><img class="alignnone size-medium wp-image-144" title="Edit DOS" src="http://oslunaticos.com.br/wp-content/uploads/2009/11/edit-dos-300x198.png" alt="Edit DOS" width="300" height="198" /></a></p>
<p>Clemar verificou que o cabeçalho da imagem estava danificado, então a imagem foi alterada diretamente em seu código para tentar solucionar.</p>
<p>Então &#8230; Funcionou !! O visualizador do Windows conseguiu abrir a imagem sem problemas.</p>
<p>A nossa nova tarefa foi verificar se o arquivo que está no ftp não estava corrompido. Blz &#8230; O arquivo em perfeito estado.</p>
<p>A saída encontrada foi analisar o pacote de retorno do servidor para identificar o momento em que a imagem estava sendo corrompida. Para isso utilizamos um sniffer, um bem velinho, o Iris 4.0.</p>
<p>Com ele analisamos o tráfego:</p>
<p><a rel="attachment wp-att-145" href="http://oslunaticos.com.br/2009/11/visitor-maps-nao-mostra-mapas/iris/"><img class="alignnone size-medium wp-image-145" title="Iris" src="http://oslunaticos.com.br/wp-content/uploads/2009/11/iris-300x187.PNG" alt="Iris" width="300" height="187" /></a></p>
<p>Está explicado!! Estão sendo informados 3 CRLF de forma incorreta no cabeçalho da imagem e este foi o erro que conseguimos corrigir através do pré-histórico edit do DOS.</p>
<p>Mas como que descobrimos essa mágica. Nada melhor do que um pouco de teoria: part of <a href="http://www.w3.org/Protocols/rfc2616/rfc2616.html" target="_blank">Hypertext Transfer Protocol &#8212; HTTP/1.1</a> &#8211; RFC 2616 Fielding, et al. &#8211; <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec6.html#sec6" target="_blank">Section 6 Response</a></p>
<p>Com este passo detectamos que o problema está no lado do servidor. Ufa, 50% a menos.</p>
<p>Examinando o código fonte chegamos ao class-wo-worldmap.php, um script que pega a imagem do servidor, faz algumas alterações e assim a exibe no navegador.</p>
<p>Após algumas horas de debug, chegamos a uma solução.</p>
<p><strong>A solução:</strong></p>
<p>Sabendo que o problema está na montagem do cabeçalho da imagem fomos direto ao ponto e colocando a prova todos os nossos conhecimentos de PHP, nos encontramos novamente com <a href="http://br2.php.net/manual/pt_BR/function.ob-end-clean.php" target="_blank">ob_end_clean</a>.</p>
<p>Esta maravilhosa função limpa e desativa o buffer de saída, ou seja, qualquer lixo que exista é mandado embora. Como nós queremos somente o cabeçalho da imagem esta solução foi perfeita.</p>
<p>Um print para elucidar:</p>
<p><a rel="attachment wp-att-146" href="http://oslunaticos.com.br/2009/11/visitor-maps-nao-mostra-mapas/class-wo-worldmap/"><img class="alignnone size-medium wp-image-146" title="class-wo-worldmap" src="http://oslunaticos.com.br/wp-content/uploads/2009/11/class-wo-worldmap-300x207.jpg" alt="class-wo-worldmap" width="300" height="207" /></a></p>
<p><strong>Conclusão:</strong></p>
<p>Não temos certeza se esta é a melhor solução para o problema, ou se o desenvolvedor <a href="http://www.642weather.com/weather/scripts.php" target="_blank">Mike Challis</a> aprova.</p>
<p>Vamos entrar em contato e verificar a necessidade de correção, mas o nosso blog está exibindo os mapas!!</p>
]]></content:encoded>
			<wfw:commentRss>http://oslunaticos.com.br/2009/11/visitor-maps-nao-mostra-mapas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dicas SQL &#8211; Selecionar linha aleatória</title>
		<link>http://oslunaticos.com.br/2009/11/dicas-sql-selecionar-linha-aleatoria/</link>
		<comments>http://oslunaticos.com.br/2009/11/dicas-sql-selecionar-linha-aleatoria/#comments</comments>
		<pubDate>Sat, 07 Nov 2009 03:49:58 +0000</pubDate>
		<dc:creator>Eduardo</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Banco de Dados]]></category>
		<category><![CDATA[DB2]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://oslunaticos.com.br/?p=84</guid>
		<description><![CDATA[Há algum tempo apareceu uma necessidade de adquirir uma linha de uma tabela de forma aleatória, então temos as seguintes instruções. MySQL SELECT column FROM table ORDER BY RAND() LIMIT 1 PostgreSQL SELECT column FROM table ORDER BY RANDOM() LIMIT 1 Microsoft SQL Serve: SELECT TOP 1 column FROM table ORDER BY NEWID() IBM DB2 [...]]]></description>
			<content:encoded><![CDATA[<p>Há algum tempo apareceu uma necessidade de adquirir uma linha de uma tabela de forma aleatória, então temos as seguintes instruções.</p>
<h3>MySQL</h3>
<p>SELECT column FROM table<br />
ORDER BY <strong>RAND()</strong><br />
LIMIT 1</p>
<h3>PostgreSQL</h3>
<p>SELECT column FROM table<br />
ORDER BY <strong>RANDOM()</strong><br />
LIMIT 1</p>
<h3>Microsoft SQL Serve:</h3>
<p>SELECT TOP 1 column FROM table<br />
ORDER BY <strong>NEWID()</strong></p>
<h3>IBM DB2</h3>
<p>SELECT column, RAND() as IDX<br />
FROM table<br />
ORDER BY IDX FETCH FIRST 1 ROWS ONLY</p>
<h3>Oracle</h3>
<p>SELECT column FROM<br />
( SELECT column FROM table<br />
ORDER BY dbms_random.value )<br />
WHERE rownum = 1</p>
<p>Fonte:<br />
<a href="http://www.petefreitag.com/item/466.cfm" target="_blank">http://www.petefreitag.com/item/466.cfm</a></p>
]]></content:encoded>
			<wfw:commentRss>http://oslunaticos.com.br/2009/11/dicas-sql-selecionar-linha-aleatoria/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dicas SQL &#8211; Limitando registros de uma consulta no BD</title>
		<link>http://oslunaticos.com.br/2009/11/dicas-sql-limitando-registros-de-uma-consulta-no-bd/</link>
		<comments>http://oslunaticos.com.br/2009/11/dicas-sql-limitando-registros-de-uma-consulta-no-bd/#comments</comments>
		<pubDate>Fri, 06 Nov 2009 17:40:01 +0000</pubDate>
		<dc:creator>Marcos Martins</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Banco de Dados]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://oslunaticos.com.br/?p=51</guid>
		<description><![CDATA[Começando com algumas dicas simples de MySQL: Para mostrar o último registro de uma tabela podemos utilizar o seguinte comando: select * from tabela order by id desc limit 1 O “desc” determina que os registros serão exibidos de forma decrescente. Para exibir os 5 últimos registros de sua tabela: select * from tabela order [...]]]></description>
			<content:encoded><![CDATA[<p>Começando com algumas dicas simples de MySQL:</p>
<p>Para mostrar o último registro de uma tabela podemos utilizar o seguinte comando:</p>
<p>select * from tabela order by id desc limit 1<br />
O “desc” determina que os registros serão exibidos de forma decrescente.</p>
<p>Para exibir os 5 últimos registros de sua tabela:</p>
<p>select * from tabela order by id desc limit 5<br />
Ou seja, o número após o “limit” é o que determina quantos registros serão exibidos.</p>
<p>Agora para mostrar apenas o penúltimo registro:</p>
<p>select * from tabela order by id desc limit 1,1</p>
<p>Sobre o comando acima, o primeiro número determina quantos registros serão “pulados”, e o segundo representa quantos registros serão mostrados.</p>
<p>Portanto, se quisermos mostrar o penúltimo e o antepenúltimo registro podemos utilizar o seguinte comando:</p>
<p>select * from tabela order by id desc limit 1,2</p>
<p>A partir daí dá pra conseguir muitos resultados específicos de uma tabela, lembrando que o campo id é um inteiro com auto incremento.</p>
<p>Até a próxima!!!</p>
]]></content:encoded>
			<wfw:commentRss>http://oslunaticos.com.br/2009/11/dicas-sql-limitando-registros-de-uma-consulta-no-bd/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

