<?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>Horizontes Digitais &#187; Programação</title>
	<atom:link href="http://horizontesdigitais.com/category/programacao/feed/" rel="self" type="application/rss+xml" />
	<link>http://horizontesdigitais.com</link>
	<description>Desenvolvimento, Segurança e Negócios</description>
	<lastBuildDate>Sat, 24 Jul 2010 20:34:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Pré inscrições para o curso de PHP</title>
		<link>http://horizontesdigitais.com/2009/01/20/pre-inscricoes-para-o-curso-de-php/</link>
		<comments>http://horizontesdigitais.com/2009/01/20/pre-inscricoes-para-o-curso-de-php/#comments</comments>
		<pubDate>Tue, 20 Jan 2009 19:42:08 +0000</pubDate>
		<dc:creator>Fernando Chucre</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[ceara]]></category>
		<category><![CDATA[curso php]]></category>
		<category><![CDATA[formação]]></category>
		<category><![CDATA[inscrições]]></category>
		<category><![CDATA[zce]]></category>

		<guid isPermaLink="false">http://horizontesdigitais.com/2009/01/20/pre-inscricoes-para-o-curso-de-php/</guid>
		<description><![CDATA[Depois de varias conversas e muitas contas, estamos muito proximos de lançar o primeiro curso do site HorizontesDigitais. Esse curso vai abranger muitos assuntos. Algumas pessoas precisam ser lembradas aqui, uma delas é o Jefferson Girã, um amigo que consquistei no ano de 2008, e que ficará presente por muitos ano. Mas para  melhorar as [...]]]></description>
			<content:encoded><![CDATA[<p>Depois de varias conversas e muitas contas, estamos muito proximos de lançar o primeiro curso do site HorizontesDigitais. Esse curso vai abranger muitos assuntos. Algumas pessoas precisam ser lembradas aqui, uma delas é o Jefferson Girã, um amigo que consquistei no ano de 2008, e que ficará presente por muitos ano.</p>
<p>Mas para  melhorar as condiçõs do curso, horario e outros assuntos, elaboramos um formulario de <a href="http://www.polldaddy.com/s/08534D016EB75C57/">pré-incrição para o curso</a>.</p>
<p>Estamos prevendo um curso para os seguintes topicos:</p>
<ul>
<li> Fundamentos do PHP</li>
<li>Depuração</li>
<li>PHP Orientado a Objeto</li>
<li>Acesso a Dados com PHP e ORM</li>
<li>Design Patterns em PHP</li>
<li>XML e WebServices</li>
<li>AJAX</li>
<li>Segurança de Aplicações PHP</li>
<li>Zend Framework</li>
<li>Zend Certified Engineer</li>
<li>Teste com PHPUnit</li>
</ul>
<p>Logo traremos mais novidades</p>
]]></content:encoded>
			<wfw:commentRss>http://horizontesdigitais.com/2009/01/20/pre-inscricoes-para-o-curso-de-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HushHushRianimation: web 2.0 simples e rápido para Asp.Net</title>
		<link>http://horizontesdigitais.com/2008/08/24/hushhushrianimation-web-20-simples-e-rapido-para-aspnet/</link>
		<comments>http://horizontesdigitais.com/2008/08/24/hushhushrianimation-web-20-simples-e-rapido-para-aspnet/#comments</comments>
		<pubDate>Mon, 25 Aug 2008 01:34:26 +0000</pubDate>
		<dc:creator>Claudio Ulisse</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[web 2.0]]></category>
		<category><![CDATA[Efeitos visuais]]></category>

		<guid isPermaLink="false">http://horizontesdigitais.com/2008/08/24/hushhushrianimation-web-20-simples-e-rapido-para-aspnet/</guid>
		<description><![CDATA[Existe em rede um site interessante que disponibiliza uma biblioteca pequena e simples de efeitos visuais estilo web 2.0 . Basicamente o autor dessa dll não fez nada mais que criar um componente que encapsula várias animações em javascript(prototype,jQuery). São animações básicas, mas quebra um galho danado. Olhar a imagem para conferir&#8230; A o site [...]]]></description>
			<content:encoded><![CDATA[<p>Existe em rede um site interessante que disponibiliza uma biblioteca pequena e simples de efeitos visuais estilo web 2.0 . Basicamente o autor dessa dll não fez nada mais que criar um componente que encapsula várias animações em javascript(prototype,jQuery). São animações básicas, mas quebra um galho danado. Olhar a imagem para conferir&#8230;</p>
<p><a href="http://horizontesdigitais.com/files/2008/08/exemplo.jpg" title="exemplo.jpg"><img src="http://horizontesdigitais.com/files/2008/08/exemplo.thumbnail.jpg" alt="exemplo.jpg" /></a><a href="http://horizontesdigitais.com/files/2008/08/exemplo.jpg" title="exemplo.jpg"><br />
</a></p>
<p>A o site do projeto é http://www.hushhushmedia.com/&#8230;o autor prometeu mais recursos nas futuras versões, vale a pena ficar de olho nesse site.</p>
<p>Abraços</p>
]]></content:encoded>
			<wfw:commentRss>http://horizontesdigitais.com/2008/08/24/hushhushrianimation-web-20-simples-e-rapido-para-aspnet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Deploy de uma aplicação ASP.NET MVC no IIS 5.1</title>
		<link>http://horizontesdigitais.com/2008/08/03/deploy-de-uma-aplicacao-aspnet-mvc-no-iis-51/</link>
		<comments>http://horizontesdigitais.com/2008/08/03/deploy-de-uma-aplicacao-aspnet-mvc-no-iis-51/#comments</comments>
		<pubDate>Sun, 03 Aug 2008 21:59:53 +0000</pubDate>
		<dc:creator>Claudio Ulisse</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[APS.NET]]></category>
		<category><![CDATA[IIS]]></category>
		<category><![CDATA[MVC]]></category>

		<guid isPermaLink="false">http://horizontesdigitais.com/2008/08/03/deploy-de-uma-aplicacao-aspnet-mvc-no-iis-51/</guid>
		<description><![CDATA[Olá, um dia desse, no meu trabalho tive que enfrentar um problema muito comum para quem está tentando utilizar o MVC do ASP.NET para a primeira vez: o deploy. Como as paginas MVC tem Urls amigaveis, isso é, sem extensão .aspx, no momento da publicação no IIS, o servidor não achará as paginas e retornará [...]]]></description>
			<content:encoded><![CDATA[<p>Olá,</p>
<p>um dia desse, no meu trabalho tive que enfrentar um problema muito comum para quem está tentando utilizar o MVC do ASP.NET para a primeira vez: o deploy. Como as paginas MVC tem Urls amigaveis, isso é, sem extensão .aspx, no momento da publicação no IIS, o servidor não achará as paginas e retornará erro 404. Isso acontece na versão do IIS 5.1, pois nas versões superiores o IIS suporta automaticamente uma aplicação web MVC.O Deploy é um detalhe que os tutoriais dos criadores do MVC ASP.NET não informaram, ou esqueceram. Fiquei procurando no Google alguma coisa que podesse me ajudar em fazer um deploy do MVC no IIS 5.1, e vi que são dezenas e dezenas de foruns e perguntas sobre esse problema. Bom eu resolví dessa maneira no IIS 5.1 depois de algumas gambiarras(é feio mas é a verdade, gambiarra pura) :</p>
<ul>
<li>Primeiro, no nosso projeto MVC no global.asax.cs modar  a rota<br />
<strong>[controller]/[action]/[id] </strong>para<strong> </strong><strong>[controller].mvc/[action]/[id], </strong>isso automaticamente deixará compativel o deploy para o ISS 6 ou 7, caso um dia seja necessario atualizar o servidor.<strong><br />
</strong></li>
</ul>
<ul>
<li> Vamos clicar com direito do mouse sobre o projeto web e vamos escolher a opção &#8220;Publish&#8230;&#8221;, nesse caso vou publicar a aplicação numa outra partição e não dentro o Inetpub.</li>
</ul>
<p><a href="http://horizontesdigitais.com/files/2008/06/publishmvc.JPG" title="publish mvc"><img src="http://horizontesdigitais.com/files/2008/06/publishmvc.JPG" alt="publish mvc" height="374" width="491" /></a></p>
<ul>
<li>Uma vez publicada a aplicação na pasta desejada, vamos criar um diretorio virtual no IIS. Nesse caso criei a pasta raiz como diretorio virtual.</li>
</ul>
<p><a href="http://horizontesdigitais.com/files/2008/06/publicaiis.JPG" title="iispasta"><img src="http://horizontesdigitais.com/files/2008/06/publicaiis.JPG" alt="iispasta" height="311" width="475" /></a></p>
<ul>
<li>Depois disso vamo clicar em &#8220;configurar&#8221; na janela Propriedades do Site e vamos adicionar a extensão &#8220;.mvc&#8221; e outra &#8220;.*&#8221;(opcional caso não se queira usar .mvc, mas eu aconselho de usa-lo)<a href="http://horizontesdigitais.com/files/2008/08/iis51.gif" title="iis51.gif"><img src="http://horizontesdigitais.com/files/2008/08/iis51.gif" alt="iis51.gif" /></a></li>
</ul>
<p><a href="http://horizontesdigitais.com/files/2008/08/iis51mapextensions.gif" title="iis51mapextensions.gif"><img src="http://horizontesdigitais.com/files/2008/08/iis51mapextensions.gif" alt="iis51mapextensions.gif" /></a></p>
<p>(lembrem-se, &#8220;check that file exists&#8221; desmarcado)</p>
<p>Agora todos os caminhos serão automaticamente mudados de http://localhost/Home/About para http://localhost/Home.mvc/About por exemplo.</p>
]]></content:encoded>
			<wfw:commentRss>http://horizontesdigitais.com/2008/08/03/deploy-de-uma-aplicacao-aspnet-mvc-no-iis-51/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java + JavaScript + JavaServerFaces(JSF)</title>
		<link>http://horizontesdigitais.com/2008/06/16/java-javascript-javaserverfacesjsf/</link>
		<comments>http://horizontesdigitais.com/2008/06/16/java-javascript-javaserverfacesjsf/#comments</comments>
		<pubDate>Mon, 16 Jun 2008 19:29:48 +0000</pubDate>
		<dc:creator>Felipe Thomas</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[Software Livre]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[JSF]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://horizontesdigitais.com/2008/06/16/java-javascript-javaserverfacesjsf/</guid>
		<description><![CDATA[Caro amigo leitor, gostaria de fazer-lhe uma simples pergunta? É possível desenvolvermos uma aplicação que contenha uma classe Java e essa classe comunique-se com um browser? Sabemos que esses dois itens(classe Java e browser) estão relacionados a tipos de propósitos diferentes, mas&#8230; gostaria de conceder a boa notícia. Sim, é possível fazermos essa comunicação entre [...]]]></description>
			<content:encoded><![CDATA[<p align="justify">Caro amigo leitor, gostaria de fazer-lhe uma simples pergunta? É possível desenvolvermos uma aplicação que contenha uma classe Java e essa classe comunique-se com um browser? Sabemos que esses dois itens(classe Java e browser) estão relacionados a tipos de propósitos diferentes, mas&#8230; gostaria de conceder a boa notícia. Sim, é possível fazermos essa comunicação entre uma classe Java e um browser usando Applet(classe Java) e JavaScript(linguagem utilizada pelo browser).</p>
<p align="justify">&nbsp;</p>
<p align="justify">O melhor de tudo isso é que não é complicado a ponto de fazer pessoas desistirem de utilizar este recurso. Na verdade é muito simples. Para começar crie seu projeto web(dynamic web do Eclipse), o qual sugiro com o nome <strong><u>Java-JavaScript</u></strong>. Após ter criado o projeto, faça o download de um arquivo .jar que será fundamental para que nossa aplicação funcione com sucesso, o nome do arquivo é JSObject.jar, ele pode ser encontrado bem facilmente pela internet(o que seria de nós sem o google). Feito isso, coloque o JSObject.jar dentro do seu classpath. Pronto já temos todos os .jar de que precisamos!!</p>
<p align="justify"><span id="more-72"></span></p>
<p align="justify">&nbsp;</p>
<p align="justify">Bem, agora vamos desenvolver o código da nossa aplicação. Primeiro crie sua classe Applet dentro da pasta <strong>src</strong> que por sua vez esta dentro do seu projeto. Nessa classe Applet teremos um método chamado <strong>init()</strong> e nós o utilizaremos para testar nossa comunicação com o browser através de JavaScript. Só para tirar qualquer dúvida que possa surgir, o método <strong>init()</strong> é lido na primeira vez que o applet é carregado em memória(se você ainda assim não entendeu, a grosso modo, o método <strong>init()</strong> é<strong> </strong>lido quando você aciona o applet). Faça também o import do pacote de classes que iremos utilizar no nosso Applet: <strong>import netscape.javascript.*;</strong></p>
<p align="justify">&nbsp;</p>
<p align="justify">Não se preocupe, irei colocar um exemplo dessa classe aqui para você:</p>
<p><strong>import</strong> javax.swing.JApplet;</p>
<p><strong>import</strong> netscape.javascript.*;</p>
<p><strong>public</strong> <strong>class</strong> JavaJS <strong>extends</strong> JApplet {</p>
<p>//Método iniciado quando o Applet é executado.</p>
<p><strong>public</strong> <strong>void</strong> init() {</p>
<p>JSObject.<em>getWindow</em>(<strong>this</strong>).eval(&#8220;alert(\&#8221;Saudações       Javanesas!\&#8221;)&#8221;);</p>
<p>JSObject win = JSObject.<em>getWindow</em>(<strong>this</strong>);</p>
<p>String[] args = {&#8220;Saudações Javanesas!&#8221;};</p>
<p>win.call(&#8220;alert&#8221;, args);</p>
<p>}</p>
<p>}</p>
<p align="justify">Perceba que dentro do nosso método <strong>init()</strong>, temos dois blocos de código. O primeiro faz exatamente o que o segundo faz, só que com a referência ao objeto <strong>win</strong> nós poderíamos realizar mais tarefas. No primeiro bloco de código dentro do método init(), teremos uma janela do tipo <strong>alert</strong> que será aberta quando o applet for iniciado, assim como no segundo bloco.</p>
<p align="justify">Agora, já que nosso Applet foi criado com sucesso, vamos empacotá-lo em um .jar e colocá-lo dentro de WebRoot do projeto criado pelo Eclipse. Para isso basta você clicar com o botão direito do mouse em cima do nome do seu projeto e escolher a opção <strong>Exportar&#8230;</strong> Não esqueça de colocá-lo dentro do diretório WebRoot(é o nome da pasta) do seu projeto. Se o seu browser não estiver reconhecendo a classe do seu Applet, então você precisará assiná-lo e para saber como fazer isto, consulte um outro tutorial feito por mim mesmo aqui no <u>horizontesdigitais.com</u> com o titulo de <strong>Assinatura de Applet</strong>.</p>
<p align="justify">&nbsp;</p>
<p align="justify">Vamos criar agora nossa página com conteúdo JSF. A título de maior praticidade, vou colocar o código de exemplo logo abaixo. Não esqueça que para utilizar JSF você precisa do framework JSF. Caso você não tenha, basta baixar a versão mais recente e colocar os .jar do framework no seu classpath. Quem usa MyEclipse ainda pode ter a vantagem dele fazer isso mais praticamente, basta clicar com o botão direito do mouse em cima do nome do projeto e escolher a opção <strong>MyEclipse&#8230;</strong> e depois a opção <strong>Add JSF Capabilities</strong>.</p>
<p align="justify">&nbsp;</p>
<p align="justify">Bem, segue o exemplo do conteúdo do arquivo com tags JSF. Coloque-o no arquivo <strong>index.jsp</strong>:</p>
<p>&lt;%@ taglib uri=&#8221;http://java.sun.com/jsf/core&#8221; prefix=&#8221;f&#8221; %&gt;</p>
<p>&lt;%@ taglib uri=&#8221;http://java.sun.com/jsf/html&#8221; prefix=&#8221;h&#8221; %&gt;</p>
<p>&lt;!DOCTYPE html PUBLIC &#8220;-//W3C//DTD XHTML 1.0 Transitional//EN&#8221; &#8220;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&#8221;&gt;</p>
<p>&lt;html xmlns=&#8221;http://www.w3.org/1999/xhtml&#8221;&gt;</p>
<p>&lt;head&gt;</p>
<p>&lt;meta http-equiv=&#8221;Content-Type&#8221;</p>
<p>content=&#8221;text/html; charset=iso-8859-1&#8243; /&gt;</p>
<p>&lt;title&gt;Materia feita por Felipe Thomas&lt;/title&gt;</p>
<p>&lt;/head&gt;</p>
<p>&lt;f:view&gt;</p>
<p>&lt;body&gt;</p>
<p>&lt;f:verbatim&gt;</p>
<p>&lt;jsp:plugin type=&#8221;applet&#8221;</p>
<p>archive=&#8221;JavaJS.jar&#8221;</p>
<p>code=&#8221;JavaJS.class&#8221; codebase=&#8221;.&#8221;</p>
<p>width=&#8221;480&#8243; height=&#8221;224&#8243; jreversion=&#8221;1.6&#8243;&gt;</p>
<p>&lt;jsp:params&gt;</p>
<p>&lt;jsp:param name=&#8221;MAYSCRIPT&#8221; value=&#8221;TRUE&#8221; /&gt;</p>
<p>&lt;/jsp:params&gt;</p>
<p>&lt;/jsp:plugin&gt;</p>
<p>&lt;/f:verbatim&gt;</p>
<p>&lt;/body&gt;</p>
<p>&lt;/f:view&gt;</p>
<p>&lt;/html&gt;</p>
<p align="justify">Nesse código temos algumas tags importantes para o bom funcionamento da nossa aplicação:</p>
<p>archive=&#8221;JavaJS.jar&#8221; É o nome do arquivo que você criou empacotando o Applet</p>
<p>code=&#8221;JavaJS.class&#8221; É o nome da sua classe + extensão .class . Note que os nomes dos que eu criei são os mesmos, mas isso não necessita ser desta forma. Se você tiver criado a classe dentro de um pacote, você DEVE colocar o nome completo do pacote aqui também.</p>
<p>codebase=&#8221;.&#8221; É o local onde se encontra-se o .jar .</p>
<p>&lt;jsp:param name=&#8221;MAYSCRIPT&#8221; value=&#8221;TRUE&#8221; /&gt; Essa tag é o que habilita a comunição entre applet e browser. Aqui você está dizendo “meu browser, você pode aceitar que um applet comunique-se com você através de JavaScript ok!!!”.</p>
<p align="justify">Tendo este código, precisamos ter no web.xml configurado adequadamente. Portanto segue o código correto:</p>
<p>&lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;UTF-8&#8243;?&gt;</p>
<p>&lt;web-app xmlns=&#8221;http://java.sun.com/xml/ns/javaee&#8221; xmlns:xsi=&#8221;http://www.w3.org/2001/XMLSchema-instance&#8221; version=&#8221;2.5&#8243; xsi:schemaLocation=&#8221;http://java.sun.com/xml/ns/javaee   http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd&#8221;&gt;</p>
<p>&lt;context-param&gt;</p>
<p>&lt;param-name&gt;javax.faces.CONFIG_FILES&lt;/param-name&gt;</p>
<p>&lt;param-value&gt;/WEB-INF/faces-config.xml&lt;/param-value&gt;</p>
<p>&lt;/context-param&gt;</p>
<p>&lt;servlet&gt;</p>
<p>&lt;servlet-name&gt;Faces Servlet&lt;/servlet-name&gt;</p>
<p>&lt;servlet-class&gt;javax.faces.webapp.FacesServlet&lt;/servlet-class&gt;</p>
<p>&lt;load-on-startup&gt;0&lt;/load-on-startup&gt;</p>
<p>&lt;/servlet&gt;</p>
<p>&lt;servlet-mapping&gt;</p>
<p>&lt;servlet-name&gt;Faces Servlet&lt;/servlet-name&gt;</p>
<p>&lt;url-pattern&gt;/faces/*&lt;/url-pattern&gt;</p>
<p>&lt;/servlet-mapping&gt;</p>
<p>&lt;welcome-file-list&gt;</p>
<p>&lt;welcome-file&gt;index.jsp&lt;/welcome-file&gt;</p>
<p>&lt;/welcome-file-list&gt;</p>
<p>&lt;/web-app&gt;</p>
<p align="justify">&nbsp;</p>
<p align="justify">A comunicação também pode ser feita do JavaScript para o applet. O JavaScript pode fazer uma instância de um applet e usá-lo para comunicação. Deixaremos isto para um próximo tutorial ou caso algum leitor tenha interesse, basta solicitar que iremos atendê-lo o mais brevemente possível.</p>
<p align="justify">Pronto!!!</p>
<p align="justify">Agora, acione o tomcat(já pode ser usado o Tomcat 6), faça o deploy da sua aplicação, abra o browser(pode ser Firefox, Interner Explorer, Netscape &#8230;), digite a seguinte URL:</p>
<p><a href="http://localhost:8080/Java-JavaScript/faces/index.jsp"><strong>http://localhost:8080/Java-JavaScript/faces/index.jsp</strong></a></p>
<p>E divirta-se bastante, por que você é jovem, êÊêÊêÊêÊêÊêÊêÊêÊêÊêÊêÊêÊ.</p>
<p>Muito obrigado&#8230;&#8230;.</p>
]]></content:encoded>
			<wfw:commentRss>http://horizontesdigitais.com/2008/06/16/java-javascript-javaserverfacesjsf/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Json.NET: Linq to Json</title>
		<link>http://horizontesdigitais.com/2008/05/30/jsonnet-linq-to-json/</link>
		<comments>http://horizontesdigitais.com/2008/05/30/jsonnet-linq-to-json/#comments</comments>
		<pubDate>Fri, 30 May 2008 17:42:04 +0000</pubDate>
		<dc:creator>Claudio Ulisse</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[Json]]></category>
		<category><![CDATA[Linq]]></category>

		<guid isPermaLink="false">http://horizontesdigitais.com/2008/05/30/jsonnet-linq-to-json/</guid>
		<description><![CDATA[Amigos, enfim um exemplo sobre como utilizar a biblioteca Json.NET para interagir com Linq. Sinceramente achei essa biblioteca muito boa, simples,mas infelizmente não tem suporte pela &#8220;comunidade&#8221; como seria desejável, então mesmo com o idealizador(James Newtonking) muito ativo não é uma escolha estratégica, utilizar algo que em futuro podeira não ter mais suporte&#8230;mas pelo resto [...]]]></description>
			<content:encoded><![CDATA[<p>Amigos,</p>
<p>enfim um exemplo sobre como utilizar a biblioteca Json.NET para interagir com Linq. Sinceramente achei essa biblioteca muito boa, simples,mas infelizmente não tem suporte pela &#8220;comunidade&#8221; como seria desejável, então mesmo com o idealizador(<a href="http://james.newtonking.com">James Newtonking</a>) muito ativo não é uma escolha estratégica, utilizar algo que em futuro podeira não ter mais suporte&#8230;mas pelo resto achei uma biblioteca bacana.</p>
<p>Aqui temos uma visão geral do projeto<br />
<a href="http://horizontesdigitais.com/files/2008/05/projeto.JPG" title="projeto.JPG"><img src="http://horizontesdigitais.com/files/2008/05/projeto.thumbnail.JPG" alt="projeto.JPG" /></a></p>
<p>Nesse caso o banco de dados possui 2 tabelas ,Produtora e Dvd, que são carregadas em memoria com um dataset. O Linq mapeia as tabela  e cria um arquivo DataClasses onde são criadas 2 entidades, uma para cada tabela.</p>
<p>O exemplo monstra como criar um objeto Json a partir de uma lista com Linq e como fazer uma query no Json, sempre via Linq</p>
<pre><span id="more-58"></span>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;

namespace linqjson
{
  class Program
  {
    static void Main(string[] args)
    {   //retornando uma lista de dvds
      List dvdList = new DataClasses().Dvds.ToList();
      //criando um objeto Json
      JObject jDvd = new JObject
        (
         new JProperty("lista de filmes",
         new JArray
         (
           //consulta para retornar todos os dvds do objeto dvdList
          from dvd in dvdList
          select new JObject
          (
           new JProperty("Titulo", dvd.Titulo),
           new JProperty("Ator", dvd.Ator),
           new JProperty("Diretor", dvd.Diretor),
           new JProperty("Produtora", dvd.Produtora.Nacionalidade)
          )
         )
        )
       );

Console.WriteLine(jDvd.ToString());
// criando um objeto IEnumerable com a lista  de filmes com a produtora da Italia</pre>
<pre>var filmItaliano = from j in jDvd["lista de filmes"].Children()
                   where j.Value("Produtora").Equals("Italia")
                   select j.Value("Titulo");</pre>
<pre>    foreach (var f in filmItaliano)
    {
    Console.WriteLine(f.ToString());
    }
  }
 }
}</pre>
<pre>o resultado na console vai ser esse</pre>
<pre> {
  "lista de filmes": [
    {
      "Titulo": "Ultimo imperador",
      "Ator": null,
      "Diretor": "Bertolucci",
      "Produtora": "Italia"
    },
    {
      "Titulo": "007",
      "Ator": "Sean Connery",
      "Diretor": null,
      "Produtora": "EUA"
    },
    {
      "Titulo": "Fantozzi",
      "Ator": "Paolo Villaggio",
      "Diretor": "Villaggio",
      "Produtora": "Italia"
    },
    {
      "Titulo": "Amarcord",
      "Ator": "Fellini",
      "Diretor": "fellini",
      "Produtora": "Italia"
    }
  ]
}
-------Lista de Titulos--------
Ultimo imperador
Fantozzi
Amarcord</pre>
<p>Uma outra abilidade dessa biblioteca é converter Json para XML e viceversa ,<br />
mas isso não testei. A sacada foi o Linq para queries em Json. Existe outra<br />
biblioteca mais conhecida a <a href="http://jayrock.berlios.de/#what-is" title="Jatrock">Jayrock</a> ,essa tem suporte para ASP.NET<br />
Vai ser o meu proximo teste.</p>
<p>Abçs</p>
]]></content:encoded>
			<wfw:commentRss>http://horizontesdigitais.com/2008/05/30/jsonnet-linq-to-json/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Assinatura de Applet</title>
		<link>http://horizontesdigitais.com/2008/05/24/assinatura-de-applet/</link>
		<comments>http://horizontesdigitais.com/2008/05/24/assinatura-de-applet/#comments</comments>
		<pubDate>Sat, 24 May 2008 03:54:57 +0000</pubDate>
		<dc:creator>Felipe Thomas</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[Segurança]]></category>
		<category><![CDATA[Software Livre]]></category>

		<guid isPermaLink="false">http://horizontesdigitais.com/2008/05/24/assinatura-de-applet/</guid>
		<description><![CDATA[O modelo de segurança implementado pela plataforma Java, na sua proposição inicial, é centrada sobre o conceito de sandbox (caixa de areia). De acordo com o modelo sandbox, um código remoto (applet) não é confiável e pode acessar recursos limitados, fornecidos dentro do sandbox, uma área do Servidor Web dedicado àquele applet. A idéia de [...]]]></description>
			<content:encoded><![CDATA[<p align="justify">O modelo de segurança implementado pela plataforma Java, na sua proposição inicial, é centrada sobre o conceito de <strong><em>sandbox</em></strong> (caixa de areia). De acordo com o modelo <em>sandbox,</em> um código remoto (<em>applet</em>) não é confiável e pode acessar recursos limitados, fornecidos dentro do <em>sandbox</em>, uma área do Servidor Web dedicado àquele <em>applet</em>. A idéia de sandbox foi desenvolvida no sentido de garantir que mesmo que um usuário carregue um <em>applet</em> malicioso, esse não pode danificar a máquina local, por exemplo, apagar um arquivo do seu disco local.Porém existem <em>applets</em> que são de confiança e necessitam sair do <em>sandbox</em> para fornecer um determinado serviço. Existem varias maneiras para resolver este problema, uma delas é a <strong>assinatura</strong><em> </em><strong>do <em>applet</em></strong>. O JDK 1.1.x introduziu o conceito de <strong><em>applet</em> assinado</strong>. Neste modelo estendido, um <em>applet </em>assinado digitalmente é tratado como código local confiável (aplicação <em>standalone</em>) se a assinatura é reconhecida como confiável pelo sistema que recebeu o <em>applet</em>. Entretanto no JDK 1.2.x, o <em>applet</em> assinado terá liberdades conforme especificado por um arquivo de política (<em>policy file</em>). Utilizou-se neste trabalho para o processo de assinatura e verificação do <strong><em>Applet</em> Cliente</strong> a versão JDK 1.2.1.</p>
<p align="justify"><span id="more-55"></span></p>
<p align="justify">Assinatura digital é utilizada quando se necessita da certeza da origem de uma mensagem como se fosse uma assinatura escrita no papel. Para assinar um applet, o desenvolvedor empacota todo o código Java e arquivos relacionados dentro de um arquivo JAR (<strong><em>J</em>ava ARchive</strong>), que é um formato de arquivo de compactação de propósito geral, usado para compactar os componentes de uma aplicação Java. A plataforma Java assina e verifica arquivos JAR usando um par de chaves (chave pública e chave privada). A <strong>chave privada</strong> funciona como uma &#8220;caneta&#8221; eletrônica que <strong>assina</strong> o arquivo (ver Figura 1). Como o próprio nome sugere, esta chave só é conhecida pelo assinante do <em>applet</em>. O processo de <strong>verificação</strong> da assinatura pode ser feito por qualquer pessoa que possua a <strong>chave pública</strong> correspondente a chave que assinou o arquivo.</p>
<p align="justify"><a href="http://horizontesdigitais.com/files/2008/05/postapplet1.jpg" title="postapplet1.jpg"><img src="http://horizontesdigitais.com/files/2008/05/postapplet1.jpg" alt="postapplet1.jpg" align="middle" border="0" height="200" width="530" /></a></p>
<p align="left"><strong>                                    Figura 1 – Processo de assinatura</strong></p>
<p align="justify">A chave pública é distribuída dentro de um <strong>certificado</strong> que é uma declaração assinada por uma entidade idônea, chamada <strong>Autoridade de Certificação</strong> (<em>Certification Authority</em>- <strong>CA</strong>), que confirma que a chave pública que está no mesmo é confiável. Existem várias Autoridades de Certificação, por exemplo, a <em>VeriSign</em>, <em>Thawte</em>, <em>Entrust</em> e <em>Certisign </em>(empresa brasileira). Toda CA requer um emissor para validar a sua identidade, até mesmo a de mais alto nível. Para estes casos, existem os certificados auto-assinados (<em>self-signed</em>), onde o emissor do certificado é o próprio sujeito.Os <em>browsers</em> <em>Netscape</em> e <em>Internet</em> <em>Explorer</em> (<em>IE</em>) não usam a codificação de assinatura do JDK. Existem basicamente três tipos diferentes de assinatura de <em>applets</em>, para o <em>IE</em>, para o <em>Netscape</em>, e para o <em>plug-in Java da Sun</em>. Este último fornece aos <em>browsers</em> citados acima a capacidade de utilizar applets assinados através da <em>Java Security API </em>do kit JDK.Algumas ferramentas necessárias para a assinatura, seguindo o padrão da <em>Sun</em>, encontram-se no <em>JDK 1.2</em>, são elas:</p>
<ul>
<li>
<p align="justify"><em>Jar (JAR Creation Tool)</em></p>
</li>
<li>
<p align="justify"><em>Keytool</em> (<em>Key and Certificate Management Tool</em>)</p>
</li>
<li>
<p align="justify"><em>Jarsigner </em>(<em>JAR Signing and Verification Tool</em>)</p>
</li>
<li>
<p align="justify"><em>PolicyTool</em> (<em>Policy File Creation and Management Tool</em>)</p>
</li>
</ul>
<p align="justify">Para uma melhor compreensão, encontra-se descritos a seguir os passos utilizados no processo de assinatura e verificação do AppletClient.</p>
<p><strong><font color="#4b73b4">Quais são os passos para assinar um Applet?</font></strong></p>
<p>Os passos para assinar um <em>Applet</em> estão representados na Figura 2:</p>
<p><img src="http://horizontesdigitais.com/files/2008/05/postapplet2.jpg" alt="postapplet2.jpg" border="0" height="220" width="530" /></p>
<p><strong>Figura 2 – Diagrama de blocos do processo de assinatura por parte                                    </strong><strong>               do desenvolvedor</strong></p>
<p><strong>1. </strong><strong>Criar o arquivo .jar</strong></p>
<p align="justify">Deve-se criar um arquivo JAR contendo o(s) arquivo(s) .class da Applet e todas as classes que serão utilizadas e que farão uso de recursos fora do s<em>andbox</em> conforme indicado no item 1 da Figura 2. É importante ressaltar que a ferramenta <strong>jarsigner</strong> somente assinará arquivos JAR criados pelo JDK, ou arquivos ZIP.Uma ferramenta utilizada para criação deste arquivo é o <em>jar</em> do JDK. Para criar um JAR contendo o arquivo MeuApplet.class, com o nome MeuJar.jar basta fazer:jar cvf MeuJar.jar MeuApplet.class</p>
<p align="justify">Você também pode utilizar o Eclipse ou MyEclipse para criar arquivos tipo .jar, onde o processo é bem simples: basta clicar com o botão direito do mouse sobre o arquivo que deseja empacotar em .jar e escolher a opção <strong>exportar</strong>.</p>
<p align="justify">2.  <strong>Gerar o par de chaves (pública e privada)</strong><strong> </strong>Este passo deve ser executado se ainda não houver um par de chaves a ser usado no processo de assinatura (ver item 2 da Figura 2). Para criar o par de chaves utiliza-se a ferramenta <em>keytool</em> do JDK. Simplificando, você pode fazer o seguinte:</p>
<p align="justify"><em>keytool -genkey -dname &#8220;cn=d377, ou=desenvolvimento, o=FelipeThomas, l=Fortaleza, c=BR&#8221; -alias key -keystore C:\Felipe -storepass 123456 -validity 180</em></p>
<p align="justify"><u>onde:</u><em> </em></p>
<p align="justify"><em>dname</em>: Nome da entidade que gerará o par de chaves. Siglas:</p>
<p><strong>CN = nome comum</strong></p>
<p><strong>OU = unidade organizacional (departamento, divisão)</strong></p>
<p><strong>O = nome da organização</strong></p>
<p><strong>L = nome da localidade (cidade)</strong></p>
<p><strong>S = estado, C = código do país.</strong></p>
<p><em>Keypass:</em> Senha utilizada para a proteção da chave no <em>keystore</em>.</p>
<p><em>Validity: </em>Número de dias que o certificado deve ser válido.</p>
<p><em>keystore</em>: local da sua máquina onde as chaves serão armazenadas.</p>
<p><em>Storepass: </em>Senha protetora do <em>keystore</em>.</p>
<p align="justify">Quando as chaves são geradas (comando –genkey) um certificado auto-assinado é criado. Caso deseje-se trocar este certificado por um certificado reconhecido por uma empresa confiável, deve-se fazer um pedido de certificado de assinatura (CSR <em>CerticateSigning Request</em>), e o resultado desta solicitação deve ser importado para o <em>keystore</em>.</p>
<p align="justify">3.  <strong>Assinar o arquivo JAR</strong></p>
<p align="justify">Deve-se assinar o arquivo JAR com a chave privada, para isto utiliza-se a ferramenta <em>jarsigner</em> do JDK, conforme esquematizado no item 3 da Figura 2. Antes de continuar certifique-se de que o arquivo que você assinará, esteja no mesmo diretório do arquivo que foi criado com as chaves. Isto facilitará seu trabalho. Para tal feito pode-se fazer o seguinte:</p>
<p align="justify"><em>jarsigner -keystore C:\Felipe -storepass 123456 –signedjar NomeDoJarDepoisDeAssinado.jar NomeDoJarAntesDeAssinar.jar key </em></p>
<p align="justify"><u>onde:</u></p>
<p align="justify"><em>keystore:</em> URL do <em>keystore</em> onde a chave está armazenada.</p>
<p align="justify"><em>storepass: </em>Senha protetora do <em>keystore</em>.</p>
<p align="justify"><em>signedjar:</em> Especifica o nome e o local de armazenamento do arquivo JAR assinado. Por <em>default,</em> o arquivo assinado irá sobrescrever o não assinado.</p>
<p align="justify">Estes passos são suficientes para que você consiga “liberar” teu applet para funcionar seguramente no seu browser. Alguns browsers não necessitam destas assinaturas, mas outras requerem. Sendo assim, é importante saber como proceder quando precisar assinar um applet.</p>
<p align="justify">Espero mais uma vez ter colaborado com seus conhecimento e auxiliado nas suas necessidades.</p>
<p>Obrigado e até o próximo.</p>
]]></content:encoded>
			<wfw:commentRss>http://horizontesdigitais.com/2008/05/24/assinatura-de-applet/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Serialização com Json.NET</title>
		<link>http://horizontesdigitais.com/2008/05/19/serializacao-com-jsonnet/</link>
		<comments>http://horizontesdigitais.com/2008/05/19/serializacao-com-jsonnet/#comments</comments>
		<pubDate>Mon, 19 May 2008 13:22:19 +0000</pubDate>
		<dc:creator>Claudio Ulisse</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[Json]]></category>
		<category><![CDATA[web 2.0]]></category>

		<guid isPermaLink="false">http://horizontesdigitais.com/2008/05/19/serializacao-com-jsonnet/</guid>
		<description><![CDATA[Json é um padrão leve de formatação em Javascript para troca de dados muito utilizado por desenvolvedores de aplicações tipicas de web 2.0. Suportado nativamente por PHP,Python e outras linguagens, o .NET, infelizmente, ficou atrás nessa historia e deixou o desenvolvimento de suporte ao Json a iniciativas pessoais, demonstrando assim pouca sensibilidade para palicações leve [...]]]></description>
			<content:encoded><![CDATA[<p>Json é um padrão leve de formatação em Javascript para troca de dados muito utilizado por desenvolvedores de aplicações tipicas de web 2.0. Suportado nativamente por PHP,Python e outras linguagens, o .NET, infelizmente, ficou atrás nessa historia e deixou o desenvolvimento de suporte ao Json a iniciativas pessoais, demonstrando assim pouca sensibilidade para palicações leve web 2.0.</p>
<p>Uma dessas iniciativas é o desenvolvimento de uma biblioteca, a Json.NET por James Newton, muito interessante e simples de usar porque herda muitas das classes que já existiam no .NET, adicionando só os elementos para tratamento do formato Json.<br />
Algumas caraterísticas dessa biblioteca são:</p>
<p><span id="more-54"></span></p>
<li>suporte LINQ to JSON</li>
<li>conversão JSON/XML</li>
<li>atributos para serialização em Json</li>
<p>Um exemplo de serialização muito simples é esse:<br />
<code><br />
using System;<br />
using System.Collections.Generic;<br />
using System.Linq;<br />
using System.Text;<br />
using Newtonsoft;<br />
using Newtonsoft.Json;<br />
using Newtonsoft.Json.Converters;<br />
using Newtonsoft.Json.Utilities;<br />
using System.IO;</code></p>
<p>namespace testeJson<br />
{<br />
[JsonObject(MemberSerialization.OptIn)]<br />
public class Pessoa{<br />
[NonSerialized]<br />
public string nome;</p>
<p>[JsonProperty]<br />
public string sobrenome;</p>
<p>[JsonProperty]<br />
public int idade;</p>
<p>public int Idade<br />
{<br />
get { return idade; }<br />
set { idade = value; }<br />
}<br />
}<br />
class Program<br />
{<br />
static void Main(string[] args)<br />
{<br />
var p = new Pessoa();<br />
p.idade = 23;<br />
p.nome = &#8220;Claudio&#8221;;<br />
p.sobrenome = &#8220;Ulisse&#8221;;</p>
<p>//serializando para json<br />
try<br />
{<br />
var jsonstring = JavaScriptConvert.SerializeObject(p);<br />
Console.WriteLine(jsonstring);</p>
<p>/*serializando para txt<br />
JsonSerializer serializer = new JsonSerializer();<br />
StreamWriter fileStream = new StreamWriter(@&#8221;json.txt&#8221;);<br />
JsonWriter jwriter = new JsonTextWriter(fileStream);<br />
serializer.Serialize(jwriter, p);<br />
*/<br />
var p2 = new Pessoa();<br />
p2 = (Pessoa)JavaScriptConvert.DeserializeObject(jsonstring,  typeof(Pessoa));</p>
<p>}<br />
catch (JsonSerializationException ex) {</p>
<p>Console.Error.WriteLine(ex.Message);<br />
}</p>
<p>}<br />
}<br />
}</p>
<p>O exemplo é simples mas rende a idéia do meu interesse para essa biblioteca. Esses dias testarei o suporte para Linq, aí veremos se presta mesmo.</p>
]]></content:encoded>
			<wfw:commentRss>http://horizontesdigitais.com/2008/05/19/serializacao-com-jsonnet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Configurando Banco de Dados Derby usando MyEclipse 5.5</title>
		<link>http://horizontesdigitais.com/2008/05/17/configurando-banco-de-dados-derby-usando-myeclipse-55/</link>
		<comments>http://horizontesdigitais.com/2008/05/17/configurando-banco-de-dados-derby-usando-myeclipse-55/#comments</comments>
		<pubDate>Sat, 17 May 2008 04:34:19 +0000</pubDate>
		<dc:creator>Felipe Thomas</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[Software Livre]]></category>
		<category><![CDATA[Tutoriais]]></category>

		<guid isPermaLink="false">http://horizontesdigitais.com/2008/05/17/configurando-banco-de-dados-derby-usando-myeclipse-55/</guid>
		<description><![CDATA[Seja bem-vindo ao tutorial sobre Derby (banco de dados relacional desenvolvido em Java) utilizando MyEclipse 5.5. Este tutorial visa demonstrar que realizar a configuração do Derby utilizando MyEclipse 5.5 é bastante simples. Já usando Eclipse Europa não é tão trivial assim, pois ele precisará que você adicione alguns plugins nele. Caso haja necessidade, solicite um [...]]]></description>
			<content:encoded><![CDATA[<p align="justify">Seja bem-vindo ao tutorial sobre Derby (banco de dados relacional desenvolvido em Java) utilizando <a href="http://www.myeclipseide.com/module-htmlpages-display-pid-4.html" title="myeclipse">MyEclipse 5.5</a>.</p>
<p align="justify">Este tutorial visa demonstrar que realizar a configuração do Derby utilizando MyEclipse 5.5 é bastante simples. Já usando Eclipse Europa não é tão trivial assim, pois ele precisará que você adicione alguns plugins nele. Caso haja necessidade, solicite um tutorial sobre como configurar utilizando versões Eclipse, como por exemplo, Eclipse Europa. Neste, você aprenderá a iniciar o servidor Derby, conectá-lo ao banco de dados e configurá-lo de acordo com as suas necessidades. Posteriormente, exibiremos um tutorial que ensina como implementar um projeto web usando frameworks como struts, JSF e que utilizarão o Derby como banco de dados, ou seja, utilizaremos este tutorial.</p>
<p align="justify"><span id="more-49"></span></p>
<p align="justify">O Derby é uma parte do projeto Apache DB Project. Uma vantagem é que ele já vem dentro do MyEclipse, não necessitando fazer download de plugins e evitando que você faça configurações mais complicadas. Outras vantagem é que o mesmo pode ser encapsulado em qualquer projeto Java do tipo Dynamic Web (projeto Web Dinâmico), pelo fato de ser completamente desenvolvido utilizando-se a linguagem Java.</p>
<h3><font color="#4571ba">Iniciando o servidor Derby</font></h3>
<p align="justify">Para iniciar o servidor Derby, vá até a barra de botões e escolha o botão referente ao <strong>MyEclipse Server</strong>, em seguida selecione <strong>MyEclipse Derby</strong>, e então clique em <strong>Start</strong>, como na figura abaixo:</p>
<p><a href="http://horizontesdigitais.com/files/2008/05/imagem1.JPG" title="imagem1.JPG"></a><img src="http://www.myeclipseide.com/documentation/quickstarts/derby/images/derby-start-annot.gif" border="0" height="152" width="530" /></p>
<p>Você verá uma mensagem de status no console enviada pelo Derby confirmando que o servidor Derby foi iniciado com sucesso. Se você não estiver vendo o console vá no menu <strong>Window</strong> em seguida na opção <strong>Show View</strong> e em seguida escolha <strong>Console</strong>.</p>
<p><img src="http://www.myeclipseide.com/documentation/quickstarts/derby/images/derby-started-console.gif" border="0" height="100" width="530" /></p>
<h3><font color="#4571ba">Conectando ao Derby usando Database Explorer</font></h3>
<p align="justify">A primeira coisa a fazer é abrir a perspectiva <strong>MyEclipse Database Explorer</strong>. Para realizar tal tarefa, você pode ir até ao menu <strong>Window</strong> e escolher a opção <strong>Open Perspective</strong> e então escolher <strong>other&#8230;</strong> Será aberta uma janela com várias opções de perspectiva. Escolha a <strong>MyEclipse Database Explorer</strong>. Agora você pode conferir a visualização do <strong>DB Browser</strong> que está no lado esquerdo da sua tela(conforme a próxima figura). Agora vamos ao trabalho!</p>
<p align="justify">Esteja certo de que o servidor Derby está iniciado e executando antes de prosseguir.</p>
<p align="justify">No <strong>DB Browser</strong>, clique com o botão direito do mouse em <strong>MyEclipse Derby</strong> e escolha a opção <strong>Open connection</strong>&#8230; para conectar.</p>
<p align="justify">O MyEclipse Derby conecta-se a um simples banco de dados com o nome de <strong>myeclipse</strong>. Este banco inclui dois schemas denominados CLASSICCARS e MYBLOG. Os outros schemas são do sistema de Derby.</p>
<p><img src="http://www.myeclipseide.com/documentation/quickstarts/derby/images/derby-dbbrowser-opening.gif" border="0" height="500" width="230" /><img src="http://www.myeclipseide.com/documentation/quickstarts/derby/images/derby-dbbrowser-opening-" border="0" height="1" width="1" /><img src="http://www.myeclipseide.com/documentation/quickstarts/derby/images/derby-dbbrowser-opening-" border="0" height="1" width="1" /><img src="http://www.myeclipseide.com/documentation/quickstarts/derby/images/derby-dbbrowser-opening-" border="0" height="1" width="1" /><img src="http://www.myeclipseide.com/documentation/quickstarts/derby/images/derby-dbexplorer-open.gif" border="0" height="500" width="230" /></p>
<h3><font color="#4571ba">Configurando o servidor Derby</font></h3>
<p align="justify">Antes de abrir a janela de configuração do servidor Derby, <strong>pare o servidor</strong>. Você pode fazer isso através do seguinte caminho: vá até a barra de botões e escolha o botão referente ao <strong>MyEclipse Server</strong>, em seguida selecione <strong>MyEclipse Derby</strong>, e então clique em <strong>Configure</strong>, conforme a figura abaixo:</p>
<p><a href="http://horizontesdigitais.com/files/2008/05/derby-dbbrowser-opening-annot.gif" title="derby-dbbrowser-opening-annot.gif"></a><a href="http://horizontesdigitais.com/files/2008/05/derby-dbbrowser-opening-annot.gif" title="derby-dbbrowser-opening-annot.gif"></a><img src="http://www.myeclipseide.com/documentation/quickstarts/derby/images/derby-configure-annot.gif" border="0" height="155" width="530" /></p>
<p align="justify">Você também tem a opção de ir pelo seguinte caminho para abrir a mesma janela de configuração: menu <strong>Window &gt; Preferences &gt; MyEclipse &gt; Database Explorer &gt; MyEclipse Derby</strong></p>
<p><a href="http://www.myeclipseide.com/documentation/quickstarts/derby/images/derby-preferences.gif"><img src="http://www.myeclipseide.com/documentation/quickstarts/derby/images/derby-preferences.gif" border="0" height="400" width="530" /></a></p>
<p align="justify">Nessa janela temos as seguintes informações:</p>
<p align="justify"><strong>Home Directory: </strong>É o local onde o Derby armazenará seus bancos de dados. Uma pasta com o nome do seu banco será criada no local antes especificado. Por default, o diretório base é &lt;user home&gt;/.myeclipse/derby</p>
<p align="justify"><strong>Port:</strong> Esta é a porta que é utilizada pelo servidor para fazer as conexões com o banco. Por default, essa porta é 1527.</p>
<p align="justify"><strong>Restore MyEclipse Derby Driver:</strong> No caso de você fazer alterações como mudar o número da porta, dentre outras, e arrepender-se, aperte esse botão que ele irá trazer as configurações default de volta.</p>
<p align="justify"><strong>Restore Sample Database:</strong> Este botão irá criar ou restaurar o myeclipse database no diretório Derby especificado.</p>
<h3><font color="#4571ba">Conclusão</font></h3>
<p align="justify">Espero que este tutorial possa ajudar você a configurar seu ambiente de desenvolvimento quando você quiser utilizar o Derby.  Esta ferramenta auxiliará bastante no seu trabalho, pois você não precisará configurar o servidor para acessar um banco de dados externo, embora seja possível e de certa facilidade.</p>
<p align="justify">Bons estudos e até nosso próximo tutorial!</p>
]]></content:encoded>
			<wfw:commentRss>http://horizontesdigitais.com/2008/05/17/configurando-banco-de-dados-derby-usando-myeclipse-55/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Usando foreach para modificar array com referencia</title>
		<link>http://horizontesdigitais.com/2008/05/14/usando-foreach-para-modificar-array-com-referencia/</link>
		<comments>http://horizontesdigitais.com/2008/05/14/usando-foreach-para-modificar-array-com-referencia/#comments</comments>
		<pubDate>Thu, 15 May 2008 01:04:58 +0000</pubDate>
		<dc:creator>Fernando Chucre</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[arrays]]></category>

		<guid isPermaLink="false">http://horizontesdigitais.com/2008/05/14/usando-foreach-para-modificar-array-com-referencia/</guid>
		<description><![CDATA[Durante meus estudos para a prova de certificação da Zend (é amanhã!!) eu me deparei com uma questão em um simulado. A pergunta era sobre qual a melhor iteração possivel com o seguinte array, um detalhe, era necessario modificar os valores do array: $myNames = array(&#8216;Joao&#8217;,'Maria&#8217;,'Carlos&#8217;); A resposta correta que o simulado indicava era a [...]]]></description>
			<content:encoded><![CDATA[<p>Durante meus estudos para a prova de certificação da Zend (é amanhã!!) eu me deparei com uma questão em um simulado. A pergunta era sobre qual a melhor iteração possivel com o seguinte array, um detalhe, era necessario modificar os valores do array:</p>
<blockquote>
<h5><strong>$myNames = array(&#8216;Joao&#8217;,'Maria&#8217;,'Carlos&#8217;);</strong></h5>
</blockquote>
<p>A resposta correta que o simulado indicava era a estrutura de controle for(;;) mostrando que a estrutura de controle foreach copiava o valor do indice para a variavel determinada. Isso e verdade, na forma comumente usada, porem a estrutura foreach permite o uso de modificador de linguagem &amp; que indica a inicialização de uma referencia. Da seguinte maneira:</p>
<blockquote>
<h5>foreach ($myNames as &amp;$name)<br />
{<br />
&#8230;.<br />
}</h5>
</blockquote>
<p>Desta forma o ponteiro interno do array é resetado para a primeira posição, depois em cada iteração é deslocado uma posição para cima ou frente até o final e sempre usando a referencia, ou seja, a variavel $name é de fato a posição de iteração do array. Quando mudamos o valor da variavel $name mudamos o valor de $myNamos[x], onde x é a iteração atual.</p>
]]></content:encoded>
			<wfw:commentRss>http://horizontesdigitais.com/2008/05/14/usando-foreach-para-modificar-array-com-referencia/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Usando Order By Desc no Zend Framework</title>
		<link>http://horizontesdigitais.com/2008/05/11/usando-order-by-desc-no-zend-framework/</link>
		<comments>http://horizontesdigitais.com/2008/05/11/usando-order-by-desc-no-zend-framework/#comments</comments>
		<pubDate>Sun, 11 May 2008 21:23:34 +0000</pubDate>
		<dc:creator>Fernando Chucre</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[order by]]></category>
		<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://horizontesdigitais.com/2008/05/11/usando-order-by-desc-no-zend-framework/</guid>
		<description><![CDATA[Durando essa semana passei por um pequeno problema durante o desenvolvimento de uma funcionalidade para o Tuangr Loterias. A funcionalidade é para mostrar os ultimos resultados dos sorteios da Mega-Sena, e para essa funcionalidade era interesante eu ordernar o sorteio pelo ordem decrescente, ou seja, tinha que usar o order by desc. Mas durante a [...]]]></description>
			<content:encoded><![CDATA[<p>Durando essa semana passei por um pequeno problema durante o desenvolvimento de uma funcionalidade para o Tuangr Loterias. A funcionalidade é para mostrar os ultimos resultados dos sorteios da Mega-Sena, e para essa funcionalidade era interesante eu ordernar o sorteio pelo ordem decrescente, ou seja, tinha que usar o order by desc. Mas durante a busca na documentação não achei nada, nem no manual nem da refencia da API. Bom, depois de uma hora buscando alguma resposta na internet eu resolvi debugar o codigo, e depois de alguns minutos eu verifiquei como ele decidia se iria usar o ASC (ascendente) ou o DESC (descendente). O ZF usa uma verificação de expressão regular assim para você usar o DESC é necessario coloca um espaço e depois &#8220;DESC&#8221; em cada coluna que você desejar. Assim o uso seria:</p>
<blockquote>
<h5>$resultadosT = new ResultadosMegSena();<br />
$sorteios = $resultadosT-&gt;fetchAll(null,&#8217;dt_sorteio DESC&#8217;)-&gt;toArray();</h5>
</blockquote>
<p>Isso fara o ZF usar o &#8216;order by dt_sorteio DESC&#8217;.</p>
<p>Abraços</p>
]]></content:encoded>
			<wfw:commentRss>http://horizontesdigitais.com/2008/05/11/usando-order-by-desc-no-zend-framework/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
