﻿<?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/"
	xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule"
>

<channel>
	<title>Jaydson Gomes &#187; jaydson</title>
	<atom:link href="http://jaydson.org/author/jaydson/feed/" rel="self" type="application/rss+xml" />
	<link>http://jaydson.org</link>
	<description>Desenvolvimento Web e outras coisas</description>
	<lastBuildDate>Mon, 06 Sep 2010 03:23:23 +0000</lastBuildDate>
	<language>pt</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
<creativeCommons:license>http://creativecommons.org/licenses/by/2.5/br/</creativeCommons:license>
		<item>
		<title>PHP &#8211; Teste Unitário com PHPUnit</title>
		<link>http://jaydson.org/php-teste-unitario-com-phpunit/</link>
		<comments>http://jaydson.org/php-teste-unitario-com-phpunit/#comments</comments>
		<pubDate>Mon, 06 Sep 2010 03:23:23 +0000</pubDate>
		<dc:creator>jaydson</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHPUnit]]></category>
		<category><![CDATA[Testes]]></category>

		<guid isPermaLink="false">http://jaydson.org/?p=633</guid>
		<description><![CDATA[Seguindo a ideia do último post, onde falei sobre o equívoco de alguns em achar que PHP não é uma linguagem para sistemas robustos, vou falar brevemente sobre o PHPUnit. Teste unitário não é nem questão de ferramenta e sim do próprio programador, ou da política da empresa onde se trabalha. Digo isso, porque ainda [...]]]></description>
			<content:encoded><![CDATA[<p>Seguindo a ideia do <a title="PHP – Debugando Aplicações com Xdebug e NetBeans" href="http://jaydson.org/php-debugando-aplicacoes-com-xdebug-netbeans/" target="_blank">último post</a>, onde falei sobre o equívoco de alguns em achar que PHP não é uma linguagem para sistemas robustos, vou falar brevemente sobre o PHPUnit.<br />
Teste unitário não é nem questão de ferramenta e sim do próprio programador, ou da política da empresa onde se trabalha.<br />
Digo isso, porque ainda é comum hoje em dia modelos de empresas que utilizam o famoso <a title="XGH" href="http://gohorseprocess.wordpress.com/extreme-go-horse-xgh/" target="_blank">XGH</a>, onde nada importa, a não ser ganhar dinheiro e entregar o sistema.</p>
<p>No mundo PHP, o <a title="PHPUnit" href="http://www.phpunit.de/" target="_blank">PHPUnit</a> é a principal ferramenta para testes unitários.<br />
A instalação é bem simples, e utilizando o NetBeans como IDE fica mais fácil ainda.<br />
Abaixo segue um passo a passo:</p>
<p>Para instalar o PHPUnit é preciso ter o <a title="Pear" href="http://pear.php.net/" target="_blank">Pear</a>, caso não tenha<br />
<strong># sudo apt-get install php-pear</strong></p>
<p>Após instalar o Pear, é necessário registrar o canal no ambiente<br />
<strong># sudo pear channel-discover pear.phpunit.de</strong></p>
<p>E enfim, instalar o PHPUnit<br />
<strong># sudo pear install phpunit/PHPUnit</strong></p>
<p><strong> </strong>Pronto, se tudo deu certo até aqui, o PHPUnit foi instalado com sucesso!<br />
Agora vamos configurar para usar no NetBeans.</p>
<p>OBS: Estou usando a última versão do NetBeans, que hoje é 6.9.1</p>
<p>1 &#8211; Tools &gt; Options e selecione a aba PHP</p>
<div id="attachment_634" class="wp-caption alignnone" style="width: 310px"><a href="http://jaydson.org/wp-content/uploads/2010/09/passo1.png" title="PHP - Tools &gt; Options" rel="lightbox[633]"><img class="size-medium wp-image-634" title="PHP - Tools &gt; Options" src="http://jaydson.org/wp-content/uploads/2010/09/passo1-300x261.png" alt="" width="300" height="261" /></a><p class="wp-caption-text">Tools &gt; Options</p></div>
<p>2 &#8211; No campo PHPUnit source informe o caminho do PHPUnit, no meu caso <strong>/usr/bin/phpunit</strong></p>
<p>Pronto.<br />
Agora para testar crie um diretório em sua aplicação com o nome que desejar. Esse diretório será o repositório de seus testes.<br />
Crie uma classe, e clique com o botão direito em cima.<br />
Tools &gt; Create PHPUnit tests<br />
Selecione o diretório criado como repositório dos testes.<br />
A partir de agora todos seus testes serão armazenados neste diretório.<br />
Para criar novos testes, basta repetir o procedimento.</p>
<p>Claro que nem tudo é tão simples, é preciso entender como funciona um teste unitário, e entender a ferramenta.<br />
Para isso &gt; <a title="PHPUnit" href="http://www.phpunit.de/manual/3.4/en/index.html" target="_blank">http://www.phpunit.de/manual/3.4/en/index.html</a></p>
<p><a title="PHPUnit" href="http://www.phpunit.de/manual/3.4/en/index.html" target="_blank"></a>Boa sorte, e espero ter ajudado.</p>
]]></content:encoded>
			<wfw:commentRss>http://jaydson.org/php-teste-unitario-com-phpunit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by/2.5/br/</creativeCommons:license>
	</item>
		<item>
		<title>PHP &#8211; Debugando Aplicações com Xdebug e NetBeans</title>
		<link>http://jaydson.org/php-debugando-aplicacoes-com-xdebug-netbeans/</link>
		<comments>http://jaydson.org/php-debugando-aplicacoes-com-xdebug-netbeans/#comments</comments>
		<pubDate>Sun, 05 Sep 2010 07:13:16 +0000</pubDate>
		<dc:creator>jaydson</dc:creator>
				<category><![CDATA[NetBeans]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://jaydson.org/?p=624</guid>
		<description><![CDATA[Um grande equívoco de vários programadores que utilizam outras linguagens(C#, Java, etc.) que não PHP, é achar que quem desenvolve em PHP não possui as ferramentas necessárias para desenvolver sistemas robustos, com rapidez e qualidade. Tenho tido a oportunidade de trabalhar com .NET, além de PHP, e vejo que os programadores são muito dependentes de [...]]]></description>
			<content:encoded><![CDATA[<p>Um grande equívoco de vários programadores que utilizam outras linguagens(C#, Java, etc.) que não PHP, é achar que quem desenvolve em PHP não possui as ferramentas necessárias para desenvolver sistemas robustos, com rapidez e qualidade. Tenho tido a oportunidade de trabalhar com .NET, além de PHP, e vejo que os programadores são muito dependentes de suas ferramentas. Não sou contra, bem pelo contrário, elas realmente ajudam muito.<br />
A plataforma Microsoft possui todas suas ferramentas muito bem integradas, e isso é um ponto positivo.<br />
Com o  Visual Studio por exemplo, é possível debugar a aplicação em tempo de desenvolvimento e em <em>run-time.<br />
</em>E isso juntamente com o Intellisense* o torna uma boa IDE.</p>
<p>* Intellisense: Basicamente é a referência da linguagem. O famoso auto-completar, que muitos não vivem sem, ou melhor, não trabalham sem. [#FlameWar]</p>
<p>Mas voltando ao PHP que é o que nos interessa.<br />
Com PHP é possível fazer a mesma coisa que fazemos com outras linguagens.<br />
O NetBeans é uma excelente IDE, e possui uma série de recursos que ajudam no desenvolvimento.<br />
O auto-completar funciona muito bem, e podemos facilmente configura-lo para debugar nossas aplicações, e é isso que vamos ver agora.</p>
<p>Requisitos:<br />
- Obviamente o Apache com PHP. Caso não tenha:<br />
<strong># sudo apt-get install apache2</strong> (Apache)<br />
<strong># sudo apt-get install php5</strong> (PHP 5)<br />
<strong># sudo apt-get install libapache2-mod-php5</strong> (Lib Apache PHP)<br />
<strong># sudo /etc/init.d/apache2 restart</strong> (Reinicia Apache)</p>
<p>- Xdebug:<br />
<strong># sudo apt-get install php5-dev </strong>(Pacote de libs para compilar as extensões)<br />
<strong># sudo apt-get install php-pear <span style="font-weight: normal;">(PEAR<a title="Pear" href=" http://pear.php.net" target="_blank"> http://pear.php.net</a>)<br />
<strong># sudo pecl install xdebug </strong>(Xdebug <a title="Xdebug" href="http://www.xdebug.org" target="_blank">http://www.xdebug.org</a>)</span></strong><span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace;"><span style="line-height: 18px; white-space: pre; font-size: small;"><strong><br />
</strong></span></span></p>
<p>Adicione ao php.ini as configurações para o Xdebug:<br />
<strong># zend_extension=&#8221;/usr/lib/php5/20090626+lfs/xdebug.so&#8221;</strong><br />
<strong># xdebug.remote_port = 9100</strong> (porta que o xdebug irá responder)<br />
<strong># xdebug.remote_handler=&#8221;dbgp&#8221;</strong> (default)<br />
<strong># xdebug.remote_host=&#8221;localhost&#8221;</strong> (host que o xdebug está rodando)<br />
<strong># xdebug.remote_enable = On</strong> (Debug remoto)</p>
<p>Feito isso, reinicie o Apache e está tudo pronto.<br />
Agora com NetBeans abra o seu proejto, crie <em>break-points</em> e faça o Debug de sua aplicação.</p>
<div id="attachment_625" class="wp-caption alignnone" style="width: 447px"><a href="http://jaydson.org/wp-content/uploads/2010/09/Screenshot.png" title="PHP Debug NetBeans Xdebug" rel="lightbox[624]"><img class="size-full wp-image-625  " title="PHP Debug NetBeans Xdebug" src="http://jaydson.org/wp-content/uploads/2010/09/Screenshot.png" alt="PHP Debug NetBeans Xdebug" width="437" height="265" /></a><p class="wp-caption-text">PHP Debug NetBeans Xdebug</p></div>
<p>Espero que o post tenha ajudado a desmistificar mais uma inverdade sobre o PHP.<br />
Lembrando sempre que o bom programador programa em qualquer linguagem, utiliza todas as ferramentas necessárias para resolver o seu problema e não se detêm a uma simples tecnologia.<br />
Abram a mente.</p>
<p>Abraço.</p>
]]></content:encoded>
			<wfw:commentRss>http://jaydson.org/php-debugando-aplicacoes-com-xdebug-netbeans/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by/2.5/br/</creativeCommons:license>
	</item>
		<item>
		<title>Zend &#8211; registerAutoload is deprecated</title>
		<link>http://jaydson.org/zend-registerautoload-is-deprecated/</link>
		<comments>http://jaydson.org/zend-registerautoload-is-deprecated/#comments</comments>
		<pubDate>Thu, 12 Aug 2010 02:07:59 +0000</pubDate>
		<dc:creator>jaydson</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Zend]]></category>

		<guid isPermaLink="false">http://jaydson.org/?p=614</guid>
		<description><![CDATA[Após atualizar a versão do Zend Framework tive problema com o registerAutoload. Isso porque desde a versão 1.8 o Zend_Loader::registerAutoload está obsoleto. Meu  código  estava mais ou menos assim: include('Zend/Loader.php'); Zend_Loader::registerAutoload(); Para solucionar o problema basta usar o Zend_Loader_Autoloader. Em minha implementação apenas o trecho abaixo resolveu o problema: include('Zend/Loader/Autoloader.php'); $autoloader = Zend_Loader_Autoloader::getInstance();]]></description>
			<content:encoded><![CDATA[<p>Após atualizar a versão do <a title="Zend Framework" href="http://framework.zend.com/" target="_blank">Zend Framework</a> tive problema com o registerAutoload.<br />
Isso porque desde a versão 1.8 o Zend_Loader::registerAutoload está obsoleto.<br />
Meu  código  estava mais ou menos assim:</p>
<pre>
<pre class="brush: php;">
include('Zend/Loader.php');
Zend_Loader::registerAutoload();
</pre>
</pre>
<p></p>
<p>Para solucionar o problema basta usar o <a title="http://framework.zend.com/manual/en/zend.loader.autoloader.html" href="http://framework.zend.com/manual/en/zend.loader.autoloader.html" target="_blank">Zend_Loader_Autoloader</a>.<br />
Em minha implementação apenas o trecho abaixo resolveu o problema:</p>
<pre>
<pre class="brush: php;">
include('Zend/Loader/Autoloader.php');
$autoloader = Zend_Loader_Autoloader::getInstance();
</pre>
</pre>
<p></p>
]]></content:encoded>
			<wfw:commentRss>http://jaydson.org/zend-registerautoload-is-deprecated/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by/2.5/br/</creativeCommons:license>
	</item>
		<item>
		<title>Javascript &#8211; Recursão para executar N vezes uma função</title>
		<link>http://jaydson.org/javascript-recursao-para-executar-n-vezes-uma-funcao/</link>
		<comments>http://jaydson.org/javascript-recursao-para-executar-n-vezes-uma-funcao/#comments</comments>
		<pubDate>Tue, 08 Jun 2010 05:33:17 +0000</pubDate>
		<dc:creator>jaydson</dc:creator>
				<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://jaydson.org/?p=598</guid>
		<description><![CDATA[Para quem gosta de desafios de programação em Javascript, encare esse post como um, senão encare apenas como uma dica mesmo. Se encarou como desafio, tente implementar uma solução diferente(melhor?) para o problema: - Criar uma função genérica (leia-se reuzável) que execute uma determinada função X vezes em Y milisegundos. Sacaram a ideia? Imaginem uma [...]]]></description>
			<content:encoded><![CDATA[<p>Para quem gosta de desafios de programação em Javascript, encare esse post como um, senão encare apenas como uma dica mesmo.<br />
Se encarou como desafio, tente implementar uma solução diferente(melhor?) para o problema:<br />
- Criar uma função genérica (leia-se reuzável) que execute uma determinada função X vezes em Y milisegundos.<br />
Sacaram a ideia?<br />
Imaginem uma aplicação onde precisamos chamar diversas vezes uma função em um determinado intervalo.<br />
Este é o desafio, porém o legal é fazer isso em uma única função e sem usar variáveis auxiliares.<br />
<span id="more-598"></span><br />
Minha implementação segue abaixo:</p>
<pre class="brush: jscript;">
function _(i,m,callback){
     setTimeout(function(){
       return i&gt;1?_(--i,m,callback):false;
    },m);
    callback(i);
}
</pre>
<p>Simples, não?<br />
Mais abaixo vou explicar o que acontece.<br />
Com essa função é possível fazer implementações deste tipo:</p>
<pre class="brush: jscript;">
/*
   Irá executar 5 vezes no intervalo de 500 milisegundos a função anônima abaixo.
*/
_(5,500,function(){
        // XHR buscando um JSON
	$.getJSON('sample.json',function(jsonObject){
		console.log(jsonObject);
	});
});

/*
   Irá executar 44 vezes no intervalo de 1 segundo a função anônima abaixo.
*/
_(44,1000,function(){
       console.log('X');
});
</pre>
<p>Bom, esta função resolveu um problema específico que enfrentei, e resolvi posta-la para quem possa precisar um dia.<br />
Mas o interessante é sua implementação em poucas linhas e sua recursividade.</p>
<p>Explicação:<br />
Notem que a função recebe 3 parâmetros (i,m,callback) onde:<br />
i = Quantidade de vezes que a função deve ser executada<br />
m = Intervalo em milisegundos<br />
callback = Função a ser executada</p>
<p>A primeira ação da função é executar o setTimeout() passando a função e os milisegundos.<br />
Logo uma operação ternária para verificar se a quantidade é maior que 1. Porque isso?<br />
Porque para economizar variáveis auxiliares e outras possíveis complicações, o que fiz foi decrementar a quantidade de vezes, ou seja, se a função deve ser executada 5 vezes, começo em 5 até chegar a 1.<br />
Se ainda é maior então chamamos a mesma função recursivamente, e claro, decrementando a quantidade de vezes.<br />
<i><b>OBS:</b> O decremento à esquerda (&#8211;i) faz com que a variável i seja decrementada antes de ser passada para a função.</i><br />
A cada chamada, a função passada é executada e ainda devolve o índice atual para possível manipulação.</p>
<p>Enfim, esta foi minha solução, caso consigam desenvolver outra, ou já tenham feito algo parecido, postem ai! <img src='http://jaydson.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://jaydson.org/javascript-recursao-para-executar-n-vezes-uma-funcao/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by/2.5/br/</creativeCommons:license>
	</item>
		<item>
		<title>jQuery &#8211; Customizando expressões</title>
		<link>http://jaydson.org/jquery-customizando-expressoes/</link>
		<comments>http://jaydson.org/jquery-customizando-expressoes/#comments</comments>
		<pubDate>Wed, 26 May 2010 04:40:17 +0000</pubDate>
		<dc:creator>jaydson</dc:creator>
				<category><![CDATA[Jquery]]></category>

		<guid isPermaLink="false">http://jaydson.org/?p=583</guid>
		<description><![CDATA[O jQuery é uma excelente biblioteca, e suas constantes atualizações e profissionalismo fazem com que nós programadores tenhamos uma potente arma na mão para solucionar qualquer problema.Mas mesmo o jQuery sendo tão completo, sempre haverá alguma situação ímpar em que ele não suprirá sua necessidade.Um dos motivos que levou o jQuery a chegar ao nível [...]]]></description>
			<content:encoded><![CDATA[<p>O jQuery é uma excelente biblioteca, e suas constantes atualizações e profissionalismo fazem com que nós programadores tenhamos uma potente arma na mão para solucionar qualquer problema.<br />Mas mesmo o jQuery sendo tão completo, sempre haverá alguma situação ímpar em que ele não suprirá sua necessidade.<br />Um dos motivos que levou o jQuery a chegar ao nível de biblioteca Javascript mais utilizada do mundo, além de sua excelente performance e extremo profissionalismo foi a facilidade e possibilidade de extender suas funcionalidades.<br />Hoje já são incontáveis os plugins que  existem para o jQuery.</p>
<p><span id="more-583"></span>Mas hoje venho falar de uma possibilidade muito interessante que mais uma vez devo a  dica ao <a title="Twitter Ricard Tomasi" href="http://twitter.com/ricardobeat" target="_blank">Ricardo Tomasi</a>, que é a customização de expressões.<br />Uma rápida pesquisa no Google e voces encontraram varios posts espalhados pelo mundo falando a respeito.<br />Customizar uma expressão consiste em incorporar ao jQuery um método que ele não possui nativamente.</p>
<p>Mas porque diabos fazer isso?<br />Acreditem, pode ser bem útil.</p>
<p>No curso de jQuery que estou ministrando na <a title="Target Trust" href="http://www.targettrust.com.br/web/" target="_blank">Target Trust</a>, ontem bolei um exercício simples para os alunos:</p>
<p><em><strong>&#8220;Mude a cor de fundo de todas as TD&#8217;s com indice ímpar da tabela com id tabela2&#8243;<br /></strong></em></p>
<p><em><span style="font-style: normal;">Sacaram a ideia?<br />Simples. O que eu queria, é que eles fizessem da maneira deles, usando um loop, verificando o <a title="Mod" href="http://pt.wikipedia.org/wiki/Opera%C3%A7%C3%A3o_m%C3%B3dulo" target="_blank">mod</a> do indice e assim aplicar o css no elemento, para então depois apresentar o <a title="Seletor :odd" href="http://api.jquery.com/odd-selector/" target="_blank">seletor odd</a> que faz exatamente isso, só que em uma linha.</span></em></p>
<p><span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace; line-height: 18px; font-size: 12px; white-space: pre;"><em> </em></span></p>
<p><em> </em></p>
<p>$(&#8220;table td:odd&#8221;).css(&#8220;background-color&#8221;, &#8220;#bbbbff&#8221;);</p>
<p> </p>
<p><em> </em></p>
<p><em><span style="font-style: normal;">Tudo tranquilo, mas um dos alunos muito antenado achou o seletor e resolveu o problema facilmente!</span><span style="font-style: normal;"><br /></span><span style="font-style: normal;">Então mudei a estratégia, e pedi para ele implementar um algoritmo que apenas aplicasse o estilo nas TD&#8217;s com indice que fosse </span><span style="font-style: normal;"><a title="Numeros Primos" href="http://pt.wikipedia.org/wiki/N%C3%BAmero_primo" target="_blank">número primo</a></span><span style="font-style: normal;">.</span><span style="font-style: normal;"><br /></span><span style="font-style: normal;">Novamente o aluno conseguiu.</span><span style="font-style: normal;"><br /></span><span style="font-style: normal;">Foi ai que lembrei da possibilidade de customização das expressões!</span><span style="font-style: normal;"><br /></span><span style="font-style: normal;">Fiz a proposta para o aluno: Se tu conseguir criar uma expressão customizada que retorne elementos baseando-se nos numeros primos terá um post no meu blog!</span><span style="font-style: normal;"><br /></span><span style="font-style: normal;">Então ai esta. Abaixo segue o código implementado pelo aluno <a href='http://www.twitter.com/AndreLMPinto'>Andre Pinto</a> da turma de jQuery Maio/2010:</span></em></p>
<p> </p>
<pre>
<pre class="brush: jscript;">
jQuery.extend( jQuery.expr[':'], {
	prime: function(a, index){
		function isPrime(num){
			var numHalf = num / 2, counter, divCheck;
				if (num === 2){
					return true;
				}
				if (num &amp;amp;lt; 2 || numHalf === Math.floor(numHalf) ||
                                   num !== Math.floor(num)){
					return false;
				}else{
					for (counter = 3; counter &amp;amp;lt;= Math.sqrt(num);
                                              counter += 2){
						divCheck = num / counter;
						if (divCheck === Math.floor(divCheck)) {
							return false;
						}
					}
				return true;
			       }
		}
           return isPrime(index);
     }
});</pre>
</pre>
<p>
Para usar a expressão:</p>
<pre>
<pre class="brush: jscript;">
$('#tabela2 td:prime').css( { 'background-color' : 'red' } );
</pre>
</pre>
<p>
</p>
<p>
Parabéns ao André pela implementação.</p>
]]></content:encoded>
			<wfw:commentRss>http://jaydson.org/jquery-customizando-expressoes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by/2.5/br/</creativeCommons:license>
	</item>
		<item>
		<title>Dissemine o conhecimento</title>
		<link>http://jaydson.org/dissemine-o-conhecimento/</link>
		<comments>http://jaydson.org/dissemine-o-conhecimento/#comments</comments>
		<pubDate>Thu, 06 May 2010 04:00:58 +0000</pubDate>
		<dc:creator>jaydson</dc:creator>
				<category><![CDATA[Software Livre]]></category>

		<guid isPermaLink="false">http://jaydson.org/?p=566</guid>
		<description><![CDATA[Hoje resolvi mudar um pouco o foco nesse post. Nada de código&#8230; e sim um pouco de filosofia[barata]. Quando convivemos diariamente com pessoas não adeptas ao software livre , percebemos claramente que as divergências de pensamento são enormes. Desde a escolha por uma ferramenta, ou metodologia e até mesmo sobre a vida. Hoje, vasculhando meus documentos, encontrei [...]]]></description>
			<content:encoded><![CDATA[<div id="_mcePaste">Hoje resolvi mudar um pouco o foco nesse post.<br />
Nada de código&#8230; e sim um pouco de filosofia[barata].</div>
<div>Quando convivemos diariamente com pessoas não adeptas ao software livre , percebemos claramente que as divergências de pensamento são enormes.<br />
Desde a escolha por uma ferramenta, ou metodologia e até mesmo sobre a vida.</div>
<div>Hoje, vasculhando meus documentos, encontrei um arquivo txt com o nome &#8220;Leia-me novamente&#8221;. Curioso, fui abrir logo para ver o que o meu cérebro tinha me preparado.<span id="more-566"></span><br />
Ao abrir, encontro um pequeno texto que me faz refletir sobre muitas coisas e também me fez chegar a este post.</div>
<div>O texto é do filósofo francês, <a title="Michel Serres" href="http://pt.wikipedia.org/wiki/Michel_Serres" target="_blank">Michel Serres</a> e pra mim, tem tudo a ver com software livre.</div>
<blockquote>
<div>Se você tem R$20,00 e me dá R$20,00, no final, eu tenho R$20,00 e você não tem mais nada.</div>
<div id="_mcePaste">Se você sabe um teorema e me ensina, ao final eu tenho o teorema, mas você o conserva também.</div>
<div id="_mcePaste">Então, o conhecimento não obedece às leis da troca mercantil, ele tem mesmo a virtude</div>
<div id="_mcePaste">de fazer exatamente o oposto&#8230;Em vez de um jogo de resultado nulo, ele suscita a multiplicação</div>
<div id="_mcePaste">do seu valor.</div>
<div id="_mcePaste"><em><strong>Michel Serres</strong></em></div>
</blockquote>
<div>Leiam e tirem suas próprias conclusões.</div>
<div>Para esse que vos escreve, disseminar o conhecimento é mais do que prazer.</div>
]]></content:encoded>
			<wfw:commentRss>http://jaydson.org/dissemine-o-conhecimento/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by/2.5/br/</creativeCommons:license>
	</item>
		<item>
		<title>nodeJS &#8211; Instalação</title>
		<link>http://jaydson.org/nodejs-instalacao/</link>
		<comments>http://jaydson.org/nodejs-instalacao/#comments</comments>
		<pubDate>Wed, 31 Mar 2010 05:20:35 +0000</pubDate>
		<dc:creator>jaydson</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[nodeJS]]></category>
		<category><![CDATA[POSI]]></category>

		<guid isPermaLink="false">http://jaydson.org/?p=556</guid>
		<description><![CDATA[Como comentado no post anterior, agora o objetivo é fazer um passo a passo para instalação do nodeJS em seu ambiente. Em teoria o node suporta todos os sistemas operacionais POSIX inclusive o Windows, mas segundo o site oficial, no momento o node está sendo testado no Linux, Mac e Solaris. Para rodar o node [...]]]></description>
			<content:encoded><![CDATA[<p>Como comentado no post anterior, agora o objetivo é fazer um passo a passo para instalação do nodeJS em seu ambiente.<br />
Em teoria o node suporta todos os sistemas operacionais <a title="POSIX" href="http://pt.wikipedia.org/wiki/POSIX" target="_blank">POSIX</a> inclusive o Windows, mas segundo o site oficial, no momento o node está sendo testado no Linux, Mac e Solaris.<br />
Para rodar o node é necessário ter o <a title="Python" href="http://www.python.org/" target="_blank">Python</a> 2.4 ou superior instalado.<br />
Levando em consideração que o <a title="V8" href="http://code.google.com/p/v8/" target="_blank">V8</a> vem incluído no pacote do node, não existe nenhuma outra dependência.</p>
<p>A instalação do node não é nada complexa, porém exige alguns cuidados.<br />
Estou no Ubuntu, e seguindo as instruções do site, de primeira não funcionou.<br />
Agradeço aqui ao <a title="Ricardo Tomasi" href="http://twitter.com/ricardobeat" target="_blank">Ricardo Tomasi</a> pelas dicas sobre a instalação do node.  ;)</p>
<p><span id="more-556"></span></p>
<p>São poucos passos, abra o terminal e  execute estes simples comandos:</p>
<pre>./configure
make
make install</pre>
<p>Se tudo funcionou, ou seja, não acusou nenhuma falha [FAIL] é porque o nodeJS foi instalado corretamente.<br />
No meu caso a falha ocorreu porque eu não tinha nenhum compilador GCC e G++.<br />
Bastou abrir o Synaptic, selecionar a categoria Development, procurar por G++ e pronto.<br />
G++ instalado agora o próximo passo é executar:</p>
<pre>sudo make test</pre>
<p><span style="font-size: small;"><span style="font-size: small;">Feito. Agora vamos criar um clássico Hello World com o node.<br />
Parto do princípio que tudo deu certo até aqui, e que o node está instaldo e pronto pra usar.<br />
Crie um arquivo Javascript com o seguinte conteúdo:</span></span></p>
<p><span style="font-size: small;"><span style="font-size: small;"> </span></span></p>
<pre>var sys = require('sys'),
http = require('http');
http.createServer(function (req, res) {
        setTimeout(function () {
               res.writeHead(200, {'Content-Type': 'text/plain'});
               res.write('Hello World');
               res.close();
        }, 2000);
}).listen(8000);
sys.puts('Server running at http://127.0.0.1:8000/');</pre>
<p><span style="font-size: small;"><span style="font-size: small;">Salve o arquivo com o nome que desejar dentro da pasta <em>test </em>que foi criada na raiz do node.<br />
Para testar:</span></span></p>
<pre>node nome_do_seu_arquivo.js</pre>
<p><span style="font-size: small;">A mensagem no terminal deve ser essa: &#8220;<span style="font-family: monospace; line-height: 18px; font-size: 12px; white-space: pre;">Server running at http<span class="sh_symbol"><span class="sh_symbol">:</span></span><span class="sh_comment"><span class="sh_comment">//127.0.0.1:8000/<span style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; line-height: 19px; white-space: normal; font-size: small;">&#8220;</span></span></span></span></span></p>
<p><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: monospace; line-height: 18px; font-size: 12px; white-space: pre;"><span class="sh_comment"><span class="sh_comment"><span style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; line-height: 19px; white-space: normal; font-size: small;"> Acesse com o Browser o endereço para visualizar a aplicação Hello World em funcionamento. </span></span></span></span></span></span></p>
<p><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: monospace; line-height: 18px; font-size: 12px; white-space: pre;"><span class="sh_comment"><span class="sh_comment"><span style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; line-height: 19px; white-space: normal; font-size: small;">Bom, com a breve introdução e com esse exemplo é possível ter uma ideia do que é nodeJS. O próximo passo é estudar a <a title="nodeJS Documentação" href="http://nodejs.org/api.html" target="_blank">Documentação</a> que é bem rica.<br />
Fico por aqui, qualquer dúvida entrem em contato que tentarei ajudar. <img src='http://jaydson.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </span></span></span></span></span></span></p>
<p><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: monospace; line-height: 18px; font-size: 12px; white-space: pre;"><span class="sh_comment"><span class="sh_comment"><span style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; line-height: 19px; white-space: normal; font-size: small;"><br />
</span></span></span></span></span></span></p>
]]></content:encoded>
			<wfw:commentRss>http://jaydson.org/nodejs-instalacao/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by/2.5/br/</creativeCommons:license>
	</item>
		<item>
		<title>nodeJS &#8211; Introdução</title>
		<link>http://jaydson.org/nodejs-introducao/</link>
		<comments>http://jaydson.org/nodejs-introducao/#comments</comments>
		<pubDate>Tue, 30 Mar 2010 06:23:51 +0000</pubDate>
		<dc:creator>jaydson</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[nodeJS]]></category>

		<guid isPermaLink="false">http://jaydson.org/?p=539</guid>
		<description><![CDATA[Há tempos que penso em testar o nodeJS, mas só esta semana pude parar e dedicar um pouco de tempo a este obejtivo. Meu intuito com este post é apenas &#8220;compilar&#8221; algumas informações sobre o node e passar adiante para aqueles que ainda não tiveram a oportunidade de conhecer. O que mais me motivou a [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://jaydson.org/wp-content/uploads/2010/03/nodejs.png" title="nodejs" rel="lightbox[539]"><img class="alignnone size-full wp-image-550" title="nodejs" src="http://jaydson.org/wp-content/uploads/2010/03/nodejs.png" alt="" width="420" height="111" /></a></p>
<p>Há tempos que penso em testar o <a title="nodeJS" href="http://nodejs.org/" target="_blank"><strong>nodeJS</strong></a>, mas só esta semana pude parar e dedicar um pouco de tempo a este obejtivo.<br />
Meu intuito com este post é apenas &#8220;compilar&#8221; algumas informações sobre o node e passar adiante para aqueles que ainda não tiveram a oportunidade de conhecer.<br />
O que mais me motivou a investigar o node, foi o próprio nome. node<strong>JS.<br />
</strong>Assim como todo aficcionado por Javascript, sempre quero saber tudo a respeito da linguagem, assim como o que está sendo feito com ela.<br />
O que mais me chamou a atenção foi o termo: &#8220;<strong><a title="Server Side Javascript" href="http://en.wikipedia.org/wiki/Server-side_JavaScript" target="_blank">Server-side Javascript</a></strong>&#8220;. \o/<br />
Sim, isso mesmo. Javascript rodando no servidor.<br />
O que me expantou também foi o fato de existirem várias implementações deste tipo, são quase 50 [Link acima].</p>
<p><span id="more-539"></span></p>
<p>Vamos então as características do nodeJS:</p>
<div id="_mcePaste">
<ul>
<li><a title="Server Side Javascript" href="http://en.wikipedia.org/wiki/Server-side_JavaScript" target="_blank">Server-side Javascript</a> (Termo usado para se referir ao Javascript rodando no Servidor)</li>
<li>Built on <a title="Google V8" href="http://code.google.com/p/v8/" target="_blank">Google’s V8</a> (Engine Javascript do Google)</li>
<li>Evented, non-blocking I/O. Similar to EventMachine or Twisted. (Para saber mais sobre isso: <a title="Reactor Pattern" href="http://en.wikipedia.org/wiki/Reactor_pattern" target="_blank">http://en.wikipedia.org/wiki/Reactor_pattern</a>)</li>
<li>CommonJS module system.</li>
<li>8000 lines of C/C++, 2000 lines of Javascript, 14 contributors.</li>
</ul>
</div>
<p>Interessado em aprender mais assim como eu?<br />
Então, algumas referências:</p>
<p>Site do nodeJS<br />
<a title="nodeJS" href="http://nodejs.org/#about" target="_blank">http://nodejs.org/#about<br />
</a><br />
Módulo para rodar YUI dentro do node<br />
<a title="YUI nodeJS" href="http://yuilibrary.com/gallery/show/nodejs" target="_blank">http://yuilibrary.com/gallery/show/nodejs</a></p>
<p><a title="YUI nodeJS" href="http://yuilibrary.com/gallery/show/nodejs" target="_blank"> </a></p>
<p><span style="color: #000000;">Blog do Simon Willison falando sobre nodeJS</span><a title="YUI nodeJS" href="http://yuilibrary.com/gallery/show/nodejs" target="_blank"></p>
<p>http://simonwillison.net/2009/Nov/23/node/</p>
<p></a></p>
<p>Slides JSConf<br />
<a title="nodeJS JSConf" href="http://s3.amazonaws.com/four.livejournal/20091117/jsconf.pdf" target="_blank">http://s3.amazonaws.com/four.livejournal/20091117/jsconf.pdf</a></p>
<p><a title="YUI nodeJS" href="http://yuilibrary.com/gallery/show/nodejs" target="_blank"> </a></p>
<p>Aplicação exemplo com o node<br />
<a title="nodeJS exemplo" href="http://chat.nodejs.org/" target="_blank">http://chat.nodejs.org/</a></p>
<p>Vídeo com Ryan Dahl falando sobre o node em SãoFrancisco em janeiro deste ano</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="400" height="225" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=9968301&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="400" height="225" src="http://vimeo.com/moogaloop.swf?clip_id=9968301&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p><a href="http://vimeo.com/9968301">NodeJS Synoposis</a> from <a href="http://vimeo.com/user2924382">Kris Kowal</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<p>No próximo post mostrarei  um passo a passo de como instalar o nodeJS e como fazer um &#8220;Hello World&#8221;.  :P</p>
]]></content:encoded>
			<wfw:commentRss>http://jaydson.org/nodejs-introducao/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by/2.5/br/</creativeCommons:license>
	</item>
		<item>
		<title>Criando um sistema de tarefas com o TheWebMind</title>
		<link>http://jaydson.org/criando-um-sistema-de-tarefas-com-o-thewebmind/</link>
		<comments>http://jaydson.org/criando-um-sistema-de-tarefas-com-o-thewebmind/#comments</comments>
		<pubDate>Tue, 16 Feb 2010 04:01:37 +0000</pubDate>
		<dc:creator>jaydson</dc:creator>
				<category><![CDATA[TheWebMind]]></category>

		<guid isPermaLink="false">http://jaydson.org/?p=512</guid>
		<description><![CDATA[Hoje começo uma série de posts onde pretendo mostrar o poder do TheWebMind para criação de uma Aplicação. Com o último release, uma das principais novidades é o módulo nativo Zend Models, que gera uma estrutura MVC utilizando o Zend Framework. Atualmente o TheWebMind encontra-se na versão Pre-Alpha, isso quer dizer que ainda não está totalmente estável, ainda [...]]]></description>
			<content:encoded><![CDATA[<p>Hoje começo uma série de posts onde pretendo mostrar o poder do TheWebMind para criação de uma Aplicação.<br />
Com o <a title="TheWebMind - Ultimo Release" href="http://thewebmind.org/download" target="_blank">último release</a>, uma das principais novidades é o módulo nativo <a title="Zend Models" href="http://docs.thewebmind.org/index.php?title=Modules#Native_ZendModels" target="_blank">Zend Models</a>, que gera uma estrutura <a title="MVC" href="http://pt.wikipedia.org/wiki/MVC" target="_blank">MVC </a> utilizando o<a title="Zend Framework" href="http://framework.zend.com/" target="_blank"> Zend Framework.</a></p>
<p>Atualmente o TheWebMind encontra-se na versão <a title="TheWebMind - Pre-Alpha" href="http://code.google.com/p/webmind/source/browse/#svn/tags/pre-alpha-2.0.0" target="_blank">Pre-Alpha</a>, isso quer dizer que ainda não está totalmente estável, ainda possui bugs e melhorias a serem implementadas.<br />
Mas com o que temos hoje, é possível fazer muita coisa. E é isso que quero compartilhar.</p>
<p>Parto do princípio que quem estiver seguindo o tutorial já saiba o que é o <a title="TheWebMind" href="http://thewebmind.org/index.php" target="_blank">TheWebMind</a>, e conheça a teoria por traz de tudo.<br />
Caso contrário acesse a página da documentação: <a title="Docs - TheWebMind" href="http://docs.thewebmind.org/index.php?title=Main_Page" target="_blank">http://docs.thewebmind.org/index.php?title=Main_Page</a></p>
<p>Minha proposta é criar um sistema simples de tarefas.</p>
<p><span id="more-512"></span><br />
<strong><span style="color: #808080;"><span style="color: #003366;">Requisitos:</span><br />
</span></strong>O sistema deve permitir o cadastro de usuários.<br />
O usuário deve ter nome.<br />
A tarefa deve possuir título, descrição, data e um usuário vinculado.<br />
O sistema deve permitir o cadastro de várias tarefas para um usuário.<br />
O sistema deve possuir interface para edição e visualização dos dados, tanto de usuários como de tarefas.<br />
Resumindo, é um sistema bem simples, onde o usuário cadastra suas tarefas.</p>
<h3><strong><span style="color: #003366;"><span style="text-decoration: underline;">Passo 1 &#8211; Criando um projeto no TheWebMind</span></span></strong></h3>
<p>Para criar um projeto, acesse o menu <em><strong>File &gt; New Project</strong></em> e preencha os dados do projeto.<br />
OBS: Certifique-se de que você tem um banco de dados instalado e configurado  no seu server, e preencha corretamente os dados, informando o endereço, nome, porta, usuário e senha do banco de dados.<br />
São estas informações que o TheWebMind utiliza para gerar as tabelas.</p>
<h3 style="font-size: 1.17em;"><strong><span style="color: #003366;"><span style="text-decoration: underline;">Passo 2 &#8211; Escrevendo em WML</span></span></strong></h3>
<p>Criado o projeto, vamos escrever o código <a title="TheWebMind - WML" href="http://docs.thewebmind.org/index.php?title=Web-Mind-Language" target="_blank">WML </a>que atenda aos requisitos.<br />
A sintaxe da linguagem WML é baseada no conceito NLP (Natural Language Processing), que consiste basicamente em ser semelhante a linguagem humana natural(Português, Inglês, Espanhol, etc).<br />
Veja mais detalhes na documentação: <a title="TheWebMind - WML" href="http://docs.thewebmind.org/index.php?title=Web-Mind-Language" target="_blank">http://docs.thewebmind.org/index.php?title=Web-Mind-Language</a></p>
<p><a title="TheWebMind - WML" href="http://docs.thewebmind.org/index.php?title=Web-Mind-Language" target="_blank"></a></p>
<pre class="brush: php;">&lt;br /&gt;&lt;br /&gt;Sabemos que o usuario tem nome:string(100);&lt;br /&gt;A tarefa tem título:string(100);&lt;br /&gt;A tarefa tem descrição:text();&lt;br /&gt;A tarefa tem data:date();&lt;br /&gt;O usuario tem tarefa;&lt;br /&gt;&lt;br /&gt;</pre>
<h3 style="font-size: 1.17em;"><strong><span style="color: #003366;"><span style="text-decoration: underline;">Passo 3 &#8211; Visualizando as saídas</span></span></strong></h3>
<p>Clique no botão <img class="alignnone size-full wp-image-516" title="bt_play_over" src="http://jaydson.org/wp-content/uploads/2010/02/bt_play_over.gif" alt="bt_play_over" width="24" height="23" /> localizado na barra de tarefas acima do editor.</p>
<p>Depois de &#8220;compilado&#8221; o projeto, você poderá ver as saídas como diagrama ER, Dicionário de dados, e o código SQL no painel de abas logo abaixo do editor.</p>
<h3 style="font-size: 1.17em;"><strong><span style="color: #003366;"><span style="text-decoration: underline;">Passo 4 &#8211; Gerando o projeto</span></span></strong></h3>
<p>Para gerar o projeto clique  no botão <img class="alignnone size-full wp-image-517" title="compiler_over" src="http://jaydson.org/wp-content/uploads/2010/02/compiler_over.gif" alt="compiler_over" width="24" height="23" /> também localizado na barra de tarefas acima do editor.<br />
Uma tela de Wizard abrirá, guiando o usuário até o final.<br />
No <strong><em>Step 1 <span style="font-weight: normal;"><span style="font-style: normal;">selecione a segunda opção, que indica o banco de dados de desenvolvimento previamente cadastrado na tela de criar o projeto.<br />
Avance para o próximo passo clicando no botão <strong><em>Next</em></strong>.<br />
Uma tela com todos os módulos será exibida no <strong><em><span style="font-weight: normal;"><span style="font-style: normal;"><strong><em>Step 2</em></strong></span></span></em></strong>, selecione o ZendModels e avance para o próximo passo.<br />
No <strong><em>Step 3 </em><span style="font-weight: normal;">existem 2 opções relacionadas ao que o TheWebMind irá fazer em relação ao banco de dados.<br />
Esta opção deve ser cuidadosamente selecionada, pois se você selecionar a opção &#8220;be replaced&#8221; , o TheWebMind irá deletar a tabela existente, assim como todos os seus dados e criará uma nova com as alterações necessárias.<br />
A opção &#8220;be skipped&#8221; ignora qualquer alteração na base de dados.<br />
Agora clique em </span><em>Finish, <strong><em><span style="font-weight: normal;"><span style="font-style: normal;"><strong><span style="font-weight: normal;">e acompanhe a tela onde o TheWebMind mostra tudo que está acontecendo, como cópia de arquivos necessários, criação de tabelas, etc.</span></strong></span></span></em></strong></em></strong></span></span></em></strong></p>
<p><strong><em><span style="font-weight: normal;"><span style="font-style: normal;"><strong><em><strong><em><span style="font-weight: normal;"><span style="font-style: normal;"><strong><span style="font-weight: normal;">Pronto. Você acabou de criar um sistema com o TheWebMind. </span></strong></span></span></em></strong></em></strong></span></span></em></strong></p>
<h3 style="font-size: 1.17em;"><strong><span style="color: #003366;"><span style="text-decoration: underline;">Passo 5 &#8211; Visualizando o projeto gerado</span></span></strong></h3>
<p>Feito todo o trabalho, o TheWebMind irá exibir a mensagem &#8220;<strong>Finished</strong>, the project&#8217;s been generated <strong>here</strong>&#8220;.<br />
Uma tela com a arvore de arquivos gerados será exibida. É possível ver o conteúdo de um arquivo ao seleciona-lo.<br />
Acima da árvore, clique no botão &#8220;<strong><em>Explore Files</em></strong>&#8221; , este o conduzirá até a página onde a Aplicação foi gerada.</p>
<h3 style="font-size: 1.17em;"><strong><span style="color: #003366;"><span style="text-decoration: underline;">Passo 6 &#8211; Testando a Aplicação</span></span></strong></h3>
<p>Seguindo esses passos temos um simples sistema de tarefas funcionando.<br />
Para testar publiquei a aplicação gerada aqui: <a title="TheWebMind - TaskList" href="http://source.jaydson.org/TaskList/" target="_blank">http://source.jaydson.org/TaskList/<br />
</a>O ZendModels gera os formulários da aplicação, isso serve para testarmos se tudo esta funcionando corretamente.</p>
<p>Bom, este foi um pequeno tutorial de como fazer um sistema simples com o TheWebMind utilizando o ZendModels.<br />
Qualquer dúvida entrem em contato ou comentem.<br />
Abaixo segue o link para download da aplicação gerada no exemplo, mas para um melhor entendimento do TheWebMind sugiro que vocês façam o <a title="Download TheWebMind" href="http://thewebmind.org/download" target="_blank">download do TheWebMind</a>, e sigam todos os passos descritos acima.<br />
É muito fácil.</p>
<p>Download:  <a title="TheWebMind - Download TaskList" href="http://source.jaydson.org/downloads/TaskList.rar" target="_self">http://source.jaydson.org/TaskList.rar<br />
</a></p>
<p>Vejam um outro exemplo no blog do <a title="Twitter Felipe Nascimento" href="http://twitter.com/felipenmoura" target="_blank">@felipenmoura</a> : <a href="http://felipenascimento.org/en/portugues-brasil-criando-uma-aplicacao-funcional-com-thewebmind/">http://felipenascimento.org/en/portugues-brasil-criando-uma-aplicacao-funcional-com-thewebmind/</a></p>
<p><a href="http://felipenascimento.org/en/portugues-brasil-criando-uma-aplicacao-funcional-com-thewebmind/"></a></p>
<p><strong><span style="color: #003366;"><span style="text-decoration: underline;"><br />
</span></span></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://jaydson.org/criando-um-sistema-de-tarefas-com-o-thewebmind/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by/2.5/br/</creativeCommons:license>
	</item>
		<item>
		<title>TheWebMind Pre-Alpha 2.0.0</title>
		<link>http://jaydson.org/thewebmind-pre-alpha-2-0-0/</link>
		<comments>http://jaydson.org/thewebmind-pre-alpha-2-0-0/#comments</comments>
		<pubDate>Fri, 12 Feb 2010 03:38:59 +0000</pubDate>
		<dc:creator>jaydson</dc:creator>
				<category><![CDATA[TheWebMind]]></category>

		<guid isPermaLink="false">http://jaydson.org/?p=510</guid>
		<description><![CDATA[O primeiro post do ano não poderia tratar de outra coisa, que não o projeto com o qual venho dedicado boa parte do meu tempo. Como vocês devem saber, juntamente com o Felipe Nascimento sou Desenvolvedor/Líder do TheWebMind. O projeto vem crescendo ao longo dos meses, e 2010 promete ser um ano de muito sucesso. [...]]]></description>
			<content:encoded><![CDATA[<p>O primeiro post do ano não poderia tratar de outra coisa, que não o projeto com o qual venho dedicado boa parte do meu tempo.<br />
Como vocês devem saber, juntamente com o <a title="Felipe Nascimento" href="http://felipenascimento.org/en" target="_blank">Felipe Nascimento</a> sou Desenvolvedor/Líder do <a title="TheWebMind" href="http://thewebmind.org" target="_blank">TheWebMind</a>.</p>
<p>O projeto vem crescendo ao longo dos meses, e 2010 promete ser um ano de muito sucesso.<br />
Desenvolvedores espalhados pelo Brasil e pelo mundo estão entrando em contato conosco mostrando interesse em participar de alguma maneira do TheWebMind.<br />
Aos poucos estamos nos organizando e selecionando pessoas engajadas que possam contribuir.</p>
<p>Semana passada foi um marco para o TheWebMind. Finalmente depois de muito trabalho, liberamos a versão <a title="TheWebMind - Pre-Alpha 2.0.0" href="http://code.google.com/p/webmind/source/browse/#svn/tags/pre-alpha-2.0.0">Pre-Alpha 2.0.0</a>.<br />
Está versão esta totalmente diferente da 1° versão lançada em 2009.<br />
Reescrevemos praticamente todo o core e reformulamos totalmente a interface.<br />
Construímos um novo módulo(<a title="ZendModels" href="http://docs.thewebmind.org/index.php?title=Modules#Native_ZendModels" target="_blank">ZendModels</a>) que gera código PHP baseado no Zend Framework.</p>
<p>Bom, aos interessados segue abaixo o link para download:<br />
<a title="Download TheWebMind Pre-Alpha 2.0.0" href="http://thewebmind.org/download_latest" target="_self">http://thewebmind.org/download_latest</a></p>
<p>Nas próximas semanas pretendo postar exemplos práticos de uso do TheWebMind,  principalmente usando o ZendModels para geração de código.</p>
]]></content:encoded>
			<wfw:commentRss>http://jaydson.org/thewebmind-pre-alpha-2-0-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by/2.5/br/</creativeCommons:license>
	</item>
	</channel>
</rss>
