<?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>Kaléu P. D. Caminha</title>
	<atom:link href="http://www.kaleu.caminha.nom.br/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.kaleu.caminha.nom.br/blog</link>
	<description>Sistemas de Informação, Conhecimento e Desenvolvimento Web</description>
	<lastBuildDate>Wed, 10 Mar 2010 15:21:10 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Bug ExtJs 2.3: Erro Largura DateField/DatePicker no Chrome</title>
		<link>http://www.kaleu.caminha.nom.br/blog/2010/03/10/bug-extjs-2-3-erro-largura-datefielddatepicker-no-chrome/</link>
		<comments>http://www.kaleu.caminha.nom.br/blog/2010/03/10/bug-extjs-2-3-erro-largura-datefielddatepicker-no-chrome/#comments</comments>
		<pubDate>Wed, 10 Mar 2010 15:21:10 +0000</pubDate>
		<dc:creator>kaleu</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[ExtJS]]></category>
		<category><![CDATA[extjs bug DateField DatePicker Chrome]]></category>

		<guid isPermaLink="false">http://www.kaleu.caminha.nom.br/blog/?p=492</guid>
		<description><![CDATA[No Chrome, ao tentar abrir o DatePicker de um DateField ocorre esse problema:

Para corrigí-lo basta inserir uma regra de css para fixar a largura do DatePicker:

.x-date-picker &#123;
	width: 185px;
&#125;

Fonte:  http://www.extjs.com/forum/showthread.php?t=82493
]]></description>
			<content:encoded><![CDATA[<p>No Chrome, ao tentar abrir o DatePicker de um DateField ocorre esse problema:</p>
<p><a href="http://www.kaleu.caminha.nom.br/blog/wp-content/uploads/2010/03/chrome-bug-extjs-datefield-datepicker.png"><img class="aligncenter size-full wp-image-493" title="chrome bug extjs datefield datepicker" src="http://www.kaleu.caminha.nom.br/blog/wp-content/uploads/2010/03/chrome-bug-extjs-datefield-datepicker.png" alt="chrome bug extjs datefield datepicker" width="542" height="312" /></a></p>
<p>Para corrigí-lo basta inserir uma regra de css para fixar a largura do DatePicker:</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.x-date-picker</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span> <span style="color: #933;">185px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>Fonte:  <a href="http://www.extjs.com/forum/showthread.php?t=82493">http://www.extjs.com/forum/showthread.php?t=82493</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.kaleu.caminha.nom.br/blog/2010/03/10/bug-extjs-2-3-erro-largura-datefielddatepicker-no-chrome/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bug ExtJs 2.3: barra de rolagem vertical não aparece em GridPanel no IE</title>
		<link>http://www.kaleu.caminha.nom.br/blog/2010/03/10/bug-extjs-2-3-barra-de-rolagem-vertical-nao-aparece-em-gridpanel-no-ie/</link>
		<comments>http://www.kaleu.caminha.nom.br/blog/2010/03/10/bug-extjs-2-3-barra-de-rolagem-vertical-nao-aparece-em-gridpanel-no-ie/#comments</comments>
		<pubDate>Wed, 10 Mar 2010 14:59:11 +0000</pubDate>
		<dc:creator>kaleu</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[ExtJS]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[GridPanel]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[scroll]]></category>

		<guid isPermaLink="false">http://www.kaleu.caminha.nom.br/blog/?p=488</guid>
		<description><![CDATA[Em algumas situações a barra de rolagem vertical em um GridPanel não aparece por causa de um erro do ExtJs relacionado ao atributo &#8216;autoWidth&#8216;. Para resolver basta dexar este atributo como &#8216;false&#8216; e dimensionar manualmente o seu painel:

var x = new Ext.grid.GridPanel&#40;&#123;
    //...
    ,autoWidth: false
    ,width: [...]]]></description>
			<content:encoded><![CDATA[<p>Em algumas situações a barra de rolagem vertical em um GridPanel não aparece por causa de um erro do ExtJs relacionado ao atributo &#8216;<strong>autoWidth</strong>&#8216;. Para resolver basta dexar este atributo como &#8216;<strong>false</strong>&#8216; e dimensionar manualmente o seu painel:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> x <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> Ext.<span style="color: #660066;">grid</span>.<span style="color: #660066;">GridPanel</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>
    <span style="color: #006600; font-style: italic;">//...</span>
    <span style="color: #339933;">,</span>autoWidth<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">false</span>
    <span style="color: #339933;">,</span>width<span style="color: #339933;">:</span> <span style="color: #CC0000;">400</span>
    <span style="color: #006600; font-style: italic;">//...</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p><strong>Fonte:</strong> <a href="http://stackoverflow.com/questions/2152179/extjs-gridpanel-scrollbar-does-not-appear-in-ie7-but-it-does-in-firefox-etc">http://stackoverflow.com/questions/2152179/extjs-gridpanel-scrollbar-does-not-appear-in-ie7-but-it-does-in-firefox-etc</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.kaleu.caminha.nom.br/blog/2010/03/10/bug-extjs-2-3-barra-de-rolagem-vertical-nao-aparece-em-gridpanel-no-ie/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Compactando arquivos Javascript com JSBuilder</title>
		<link>http://www.kaleu.caminha.nom.br/blog/2009/12/03/compactando-arquivos-javascript-com-jsbuilder/</link>
		<comments>http://www.kaleu.caminha.nom.br/blog/2009/12/03/compactando-arquivos-javascript-com-jsbuilder/#comments</comments>
		<pubDate>Thu, 03 Dec 2009 19:29:09 +0000</pubDate>
		<dc:creator>kaleu</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://www.kaleu.caminha.nom.br/blog/?p=481</guid>
		<description><![CDATA[O uso do Javascript aumenta e com isso o tempo de carregamento das páginas Web. Este problema pode ser contornado ou ao menos diminuído com o uso da compactação dos arquivos e da inclusão de vários javascript&#8217;s em um único arquivo.
Este artigo apresenta brevemente esta problemática e mostra o uso dos softwares JSBuilder1 e JSBuilder2 [...]]]></description>
			<content:encoded><![CDATA[<p>O uso do Javascript aumenta e com isso o tempo de carregamento das páginas Web. Este problema pode ser contornado ou ao menos diminuído com o uso da compactação dos arquivos e da inclusão de vários javascript&#8217;s em um único arquivo.</p>
<p>Este artigo apresenta brevemente esta problemática e mostra o uso dos softwares <a href="http://www.kaleu.caminha.nom.br/blog/2009/12/03/usando-o-jsbuilder-1/">JSBuilder1</a> e <a href="http://www.kaleu.caminha.nom.br/blog/2009/12/03/usando-jsbuilder-2/">JSBuilder2</a> para resolver esta situação.</p>
<h3><span id="more-481"></span>Compactação</h3>
<p>Caracteres que utilizamos como espaços, quebras de linha e tabs não são necessários para que o browser leia o javascript.</p>
<p>Softwares de compactação utilizam como recurso mais simples a remoção destes caracteres e de comentários.</p>
<p>Outros softwares mais complexos podem realizar algoritmos que substituem conjuntos de caracteres por outros, porém esta técnica geralmente exige algum tipo de &#8220;descompressão&#8221; o que torna o carregamento mais leve, porém a execução do script mais demorada. Um exemplo deste modelo é o <a href="http://www.bananascript.com/">Banana Script</a>.</p>
<p>Os softwares apresentados aqui utilizam apenas a forma mais simples de compressão.</p>
<ul>
<li><a href="http://framebox.blogspot.com/2008/09/compactando-javascript.html">Mais sobre compactação JavaScript</a></li>
</ul>
<h3>Ordem e Organização dos arquivos</h3>
<p>Ao incluir arquivos javascript deve ser data muita atenção a ordem de dependência dos arquivos. É importante estar muito atento a isto ao criar arquivos que agrupam todos os javascripts em um só (próximo tópico) pois alterar estes arquivos é sempre mais trabalhoso.</p>
<p>Para exemplificar, vamos utilizar a estrutura de arquivos abaixo:</p>
<pre>index.html
js/
	modulo1/
		model.js
		view.js
		controller.js
	modulo2/
		model.js
		view.js
		controller.js
	index.js</pre>
<p>Neste exemplo o controller de cada módulo deve ser inserido após os arquivos model e view. E o index.js deve estar antes de todos. Ex:</p>
<pre>&lt;!-- EXEMPLO CORRETO --&gt;
&lt;script src="js/index.js"&gt;&lt;/script&gt;

&lt;script src="js/modulo1/model.js"&gt;&lt;/script&gt;
&lt;script src="js/modulo1/view.js"&gt;&lt;/script&gt;
&lt;script src="js/modulo1/controller.js"&gt;&lt;/script&gt;

&lt;script src="js/modulo2/model.js"&gt;&lt;/script&gt;
&lt;script src="js/modulo2/view.js"&gt;&lt;/script&gt;
&lt;script src="js/modulo2/controller.js"&gt;&lt;/script&gt;</pre>
<p>&lt;!&#8211; VAI DAR ERRO!!!!!!!!! &#8211;&gt;<br />
&lt;script src=&#8221;js/index.js&#8221;&gt;&lt;/script&gt;</p>
<p>&lt;script src=&#8221;js/modulo1/controller.js&#8221;&gt;&lt;/script&gt; &lt;!&#8211; ERRO Módulo 1 &#8211;&gt;<br />
&lt;script src=&#8221;js/modulo1/model.js&#8221;&gt;&lt;/script&gt;<br />
&lt;script src=&#8221;js/modulo1/view.js&#8221;&gt;&lt;/script&gt;</p>
<p>&lt;script src=&#8221;js/modulo2/model.js&#8221;&gt;&lt;/script&gt;<br />
&lt;script src=&#8221;js/modulo2/controller.js&#8221;&gt;&lt;/script&gt; &lt;!&#8211; ERRO Módulo 2 &#8211;&gt;<br />
&lt;script src=&#8221;js/modulo2/view.js&#8221;&gt;&lt;/script&gt;</p>
<h3>Todos em um Arquivo Único</h3>
<p>Com muitos arquivos javascript o carregamento da página será mais lento. É importante também substituir todas as inclusões de js por um único arquivo.</p>
<p>Pode ocorrer que caso um arquivo tenha dependência de outro deva-se garantir que este será carregado somente depois, o que é difícil tratando-se de requisições web assíncronas.</p>
<p>O problema desta prática é a posterior manutenção do software, logo, isto só deve ser feito na etapa de implementação e os arquivos separados precisam ser mantidos para uso em tempo de desenvolvimento.</p>
<h3>JSBuilder</h3>
<p>O <a href="http://www.extjs.com/products/jsbuilder/">JSBuilder</a> é um software desenvolvido (aparenetemente) pelo pessoal do ExtJS.</p>
<p>Encontrei pouquíssimas informações sobre estes softwares e compartilharei aqui o que descobri sobre ele.</p>
<p>A primeira informação a ser destacada é que na Web existem duas versões disponíveis para download: a 1.1.2 e a 2.0, ambas são como dois softwares distintos e serão apresentadas abaixo</p>
<h3>JSBuilder 1.1.2</h3>
<p><strong>O que é possível fazer com o JSBuilder 1.1.2?</strong></p>
<ul>
<li> Compactar arquivos JavaScript (remoção de tabs, espaços, comentários, etc);</li>
<li> Agrupar vários JS em arquivos únicos como pacotes;</li>
<li> Organizar a ordem dos arquivos dentro dos pacotes (importante para arquivos JS que dependam de outros);</li>
<li> Gerar documentação JS com JSDoc;</li>
<li> Usar uma INTERFACE GRÁFICA (muito bacana);</li>
<li> Gerar um arquivo XML de configuração (a interface gera este arquivo automaticamente);</li>
<li> Criar arquivos JS de Debug.</li>
</ul>
<p><span style="color: #800000;"><strong>Problemas encontrados:</strong><br />
</span></p>
<ul>
<li><span style="color: #800000;"> Só funciona com arquvos UTF-8. Quando tentei usar ISO-8859-1 todos os caracteres com acentuação foram removidos (e não consegui resolver de jeito nenhum);</span></li>
<li><span style="color: #800000;">Não permite agrupamento de arquivos gerados.</span></li>
</ul>
<p><a href="http://www.kaleu.caminha.nom.br/blog/2009/12/03/usando-o-jsbuilder-1/">MAIS SOBRE JSBuilder 1.1.2</a></p>
<h3>JSBuilder 2</h3>
<p><strong>O que é possível fazer com o JSBuilder 2.0?</strong></p>
<ul>
<li> Compactar JS e CSS (remoção de tabs, espaços, comentários, etc);</li>
<li>Agrupar vários JS em arquivos distintos (módulos, arquivo único, etc). Também é possível criar arquivos de outros arquivos gerados. Ex: Posso gerar um js único para cada módulo e um arquivo que contenha todos os módulos. Este recurso pode facilitar o Debug.</li>
<li>Organizar a ordem dos arquivos dentro dos arquivos únicos;</li>
<li>Usar um arquivo JSON como configuração;</li>
<li>Criar arquivos de Debug;</li>
<li>Funciona bem com ISO-8859-1 e UTF-8</li>
</ul>
<p><span style="color: #800000;"><strong>Problemas Encontrados:</strong><br />
</span></p>
<ul>
<li><span style="color: #800000;">Não possui Interface Gráfica, tudo deve ser definido manualmente em um arquivo json;</span></li>
<li><span style="color: #800000;">Não gera Documentação automaticamente;</span></li>
</ul>
<p><a href="http://www.kaleu.caminha.nom.br/blog/2009/12/03/usando-jsbuilder-2/">MAIS SOBRE JSBuilder 2.0</a></p>
<h3>Integrando as Soluções</h3>
<p>Como forma de aproveitar o melhor de ambos é possível converter o XML do JSBuilder 1 para o JSON do JSBuilder 2.</p>
<p>Dessa forma podemos apenas ajustar o JSON gerado para criar arquivos de arquivos agrupados e não termos problema com codificação de caracteres.</p>
<p>Ainda não desnvolvi esta solução e disponibilizo aqui caso eu prossiga nesta idéia.</p>
<h3>Conclusão</h3>
<p>Ambos os softwares são ótimos, caso seja possível unir as melhores qualidades de ambos sem dúvida teremos uma ferramenta fundamental para o desenvolvimento e implantação de projetos Web com alta quantidade de arquivos JavaScript.</p>
<p><em>Este tutorial foi desenvolvido como parte do meu trabalho na empresa IASOFT.<br />
Não garanto que poderei ajudar tirando dúvidas ou corrigindo erros, mas farei o possível.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.kaleu.caminha.nom.br/blog/2009/12/03/compactando-arquivos-javascript-com-jsbuilder/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Usando o JSBuilder 1</title>
		<link>http://www.kaleu.caminha.nom.br/blog/2009/12/03/usando-o-jsbuilder-1/</link>
		<comments>http://www.kaleu.caminha.nom.br/blog/2009/12/03/usando-o-jsbuilder-1/#comments</comments>
		<pubDate>Thu, 03 Dec 2009 19:11:02 +0000</pubDate>
		<dc:creator>kaleu</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[ExtJS]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[JSBuilder]]></category>
		<category><![CDATA[JSDoc]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://www.kaleu.caminha.nom.br/blog/?p=474</guid>
		<description><![CDATA[Este tutorial objetiva apresentar o uso básico do JSBuilder1 para agrupar e compactar arquivos javascript.
Visão Geral
O que é possível fazer com o JSBuilder 1.1.2?

 Compactar arquivos JavaScript (remoção de tabs, espaços, comentários, etc);
 Agrupar vários JS em arquivos únicos como pacotes;
 Organizar a ordem dos arquivos dentro dos pacotes (importante para arquivos JS que dependam [...]]]></description>
			<content:encoded><![CDATA[<p>Este tutorial objetiva apresentar o uso básico do JSBuilder1 para agrupar e compactar arquivos javascript.</p>
<h3>Visão Geral</h3>
<p><strong>O que é possível fazer com o JSBuilder 1.1.2?</strong></p>
<ul>
<li> Compactar arquivos JavaScript (remoção de tabs, espaços, comentários, etc);</li>
<li> Agrupar vários JS em arquivos únicos como pacotes;</li>
<li> Organizar a ordem dos arquivos dentro dos pacotes (importante para arquivos JS que dependam de outros);</li>
<li> Gerar documentação JS com JSDoc;</li>
<li> Usar uma INTERFACE GRÁFICA (muito bacana);</li>
<li> Gerar um arquivo XML de configuração (a interface gera este arquivo automaticamente);</li>
<li> Criar arquivos JS de Debug.</li>
</ul>
<p><span style="color: #800000;"><strong>Problemas encontrados:</strong><br />
</span></p>
<ul>
<li><span style="color: #800000;"> Só funciona com arquvos UTF-8. Quando tentei usar ISO-8859-1 todos os caracteres com acentuação foram removidos (e não consegui resolver de jeito nenhum);</span></li>
<li><span style="color: #800000;">Não permite agrupamento de arquivos gerados.</span></li>
</ul>
<h3><span id="more-474"></span>Download</h3>
<p><a href="http://code.google.com/p/js-builder/downloads/list">O software está disponível aqui</a>. Não encontrei nenhum site oficial, mais informações apenas no <a href="http://www.extjs.com/forum/forumdisplay.php?f=8">fórum</a> do ExtJS.</p>
<h3>Funcionamento</h3>
<p>Ao iniciar o uso do software, deve-se primeiro, adicionar todos os arquivos e diretórios que serão compactados, depois, agrupar estes arquivos em arquivos únicos (não orbigatório) e definir os diretórios de saída.</p>
<p>Abaixo apresento uma visão geral da tela do software comentada:</p>
<div id="attachment_475" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.kaleu.caminha.nom.br/blog/wp-content/uploads/2009/12/JSBuilder-1-comentado.png"><img class="size-medium wp-image-475" title="JSBuilder 1 - comentado" src="http://www.kaleu.caminha.nom.br/blog/wp-content/uploads/2009/12/JSBuilder-1-comentado-300x221.png" alt="Clique na imagem para vê-la maior." width="300" height="221" /></a><p class="wp-caption-text">Clique na imagem para vê-la maior.</p></div>
<h3>JSDoc</h3>
<p>Para que a documentação dos arquivos seja gerada automaticamente durante a compactação dos arquivos é preciso ter dois programas no computador, o Perl e o JSDoc.</p>
<p>Para instalar o Perl você pode usar o <a href="http://www.activestate.com/activeperl/downloads/">ActivePerl</a> (basta executar e clicar em next-&gt;next-&gt;next-&gt;OK). Você pode também <a href="http://www.ricocheting.com/server/cgi.html">seguir este tutorial</a>.</p>
<p>O JSDoc necessita apenas que você faça o <a href="http://jsdoc.sourceforge.net/#intro">download do software</a> e indique o seu caminho nas opções do JSBuilder.</p>
<h3>Conclusão</h3>
<p>O uso da interface é bastante intuitivo. O único problema grave é o software só converter arquivos UTF-8, caso você não tenha problemas com isso, divirta-se.</p>
<p>Este tutorial foi desenvolvido como parte do meu trabalho na empresa IASOFT.<br />
Não garanto que poderei ajudar tirando dúvidas ou corrigindo erros, mas farei o possível.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kaleu.caminha.nom.br/blog/2009/12/03/usando-o-jsbuilder-1/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Usando JSBuilder 2</title>
		<link>http://www.kaleu.caminha.nom.br/blog/2009/12/03/usando-jsbuilder-2/</link>
		<comments>http://www.kaleu.caminha.nom.br/blog/2009/12/03/usando-jsbuilder-2/#comments</comments>
		<pubDate>Thu, 03 Dec 2009 19:10:57 +0000</pubDate>
		<dc:creator>kaleu</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[ExtJS]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[JSBuilder]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://www.kaleu.caminha.nom.br/blog/?p=470</guid>
		<description><![CDATA[Este artigo objetiva apresentar como utilizar o aplicativo JSBuilder 2 para gerar arquivos javascript únicos e compactados.
Visão Geral
Com ele é possível:

 Compactar JS e CSS (remoção de tabs, espaços, comentários, etc);
Agrupar vários JS em arquivos distintos (módulos, arquivo único, etc). Também é possível criar arquivos de outros arquivos gerados. Ex: Posso gerar um js único [...]]]></description>
			<content:encoded><![CDATA[<p>Este artigo objetiva apresentar como utilizar o aplicativo <a href="http://www.extjs.com/products/jsbuilder/">JSBuilder 2</a> para gerar arquivos javascript únicos e compactados.</p>
<h3><strong>Visão Geral</strong></h3>
<p><strong>Com ele é possível:</strong></p>
<ul>
<li> Compactar JS e CSS (remoção de tabs, espaços, comentários, etc);</li>
<li>Agrupar vários JS em arquivos distintos (módulos, arquivo único, etc). Também é possível criar arquivos de outros arquivos gerados. Ex: Posso gerar um js único para cada módulo e um arquivo que contenha todos os módulos. Este recurso pode facilitar o Debug.</li>
<li>Organizar a ordem dos arquivos dentro dos arquivos únicos;</li>
<li>Usar um arquivo JSON como configuração;</li>
<li>Criar arquivos de Debug;</li>
<li>Funciona bem com ISO-8859-1 e UTF-8</li>
</ul>
<p><span style="color: #800000;"><strong>Problemas Encontrados:</strong><br />
</span></p>
<ul>
<li><span style="color: #800000;">Não possui Interface Gráfica, tudo deve ser definido manualmente em um arquivo json;</span></li>
<li><span style="color: #800000;">Não gera Documentação automaticamente;</span></li>
</ul>
<h3><span id="more-470"></span>Os arquivos base</h3>
<p>Será utilizada como exemplo a estrutura de arquivos abaixo:</p>
<pre>index.html
teste.jsb2
js/
	modulo1/
		model.js
		view.js
		controller.js
	modulo2/
		model.js
		view.js
		controller.js
	index.js</pre>
<h3>Download</h3>
<p>Antes de mais nada você deve fazer o <a href="http://www.extjs.com/products/jsbuilder/">download do JSBuiler 2</a>.<br />
Aqui você também pode baixar os arquivos utilizados neste exemplo (JS&#8217;s,  .jsb2,  index.htm, JSBuilder2 e arquivos gerados):</p>
Note: There is a file embedded within this post, please visit this post to download the file.
<h3>O JSON de configuração</h3>
<p>Para começar a utilizar o JSBuilder você deverá criar um arquivo de configuração com a extensão<strong> &#8220;.jsb2&#8243;</strong>.<br />
Abaixo segue o exemplo de um arquivo de configuração (comentado) para a estrutura de diretórios exibida acima:</p>
<p><span style="color: #800000;"><strong>IMPORTANTE</strong> -&gt; Os comentários são apenas para fins de tutorial. Para usar este arquivo os comentários devem ser removidos</span></p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #009900;">&#123;</span>
    <span style="color: #006600; font-style: italic;">//Nome do projeto</span>
    projectName<span style="color: #339933;">:</span> <span style="color: #3366CC;">'Teste'</span><span style="color: #339933;">,</span>
    <span style="color: #006600; font-style: italic;">//Diretório aonde serão gerados os arquivos</span>
    deployDir<span style="color: #339933;">:</span> <span style="color: #3366CC;">'deploy'</span><span style="color: #339933;">,</span>
    <span style="color: #006600; font-style: italic;">//Texto da licença</span>
    licenseText<span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;Este arquivo está sob Domínio Público <span style="color: #000099; font-weight: bold;">\n</span><span style="color: #000099; font-weight: bold;">\n</span>Isto permite que você possa utilizar este conteúdo livremente.&quot;</span><span style="color: #339933;">,</span>
    <span style="color: #006600; font-style: italic;">//pacotes dos arquivos</span>
    pkgs<span style="color: #339933;">:</span> <span style="color: #009900;">&#91;</span>
        <span style="color: #006600; font-style: italic;">/**
         * Gera um arquivo único para o módulo 1
         */</span>
        <span style="color: #009900;">&#123;</span>
            <span style="color: #006600; font-style: italic;">//nome do arquivo</span>
            <span style="color: #000066;">name</span><span style="color: #339933;">:</span> <span style="color: #3366CC;">'Módulo 1'</span><span style="color: #339933;">,</span>
            <span style="color: #006600; font-style: italic;">//nome do arquivo a ser gerado</span>
            file<span style="color: #339933;">:</span> <span style="color: #3366CC;">'modulo1.js'</span><span style="color: #339933;">,</span>
            <span style="color: #006600; font-style: italic;">//Indica se deve gerar arquivo de debug</span>
            isDebug<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">,</span>
            <span style="color: #006600; font-style: italic;">//Arquivos incçuídos</span>
            fileIncludes<span style="color: #339933;">:</span> <span style="color: #009900;">&#91;</span><span style="color: #009900;">&#123;</span>
                <span style="color: #006600; font-style: italic;">//Nome do arquivo a ser incluído</span>
                text<span style="color: #339933;">:</span> <span style="color: #3366CC;">'model.js'</span><span style="color: #339933;">,</span>
                <span style="color: #006600; font-style: italic;">//Caminho do arquivo.</span>
                path<span style="color: #339933;">:</span> <span style="color: #3366CC;">'js/modulo1/'</span>
            <span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span><span style="color: #009900;">&#123;</span>
                text<span style="color: #339933;">:</span> <span style="color: #3366CC;">'view.js'</span><span style="color: #339933;">,</span>
                path<span style="color: #339933;">:</span> <span style="color: #3366CC;">'js/modulo1/'</span>
            <span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span><span style="color: #009900;">&#123;</span>
                text<span style="color: #339933;">:</span> <span style="color: #3366CC;">'controller.js'</span><span style="color: #339933;">,</span>
                path<span style="color: #339933;">:</span> <span style="color: #3366CC;">'js/modulo1/'</span>
            <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#93;</span>
        <span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
        <span style="color: #006600; font-style: italic;">/**
         * Gera um arquivo único para o módulo 2
         */</span>
        <span style="color: #009900;">&#123;</span>
            <span style="color: #000066;">name</span><span style="color: #339933;">:</span> <span style="color: #3366CC;">'Módulo 2'</span><span style="color: #339933;">,</span>
            file<span style="color: #339933;">:</span> <span style="color: #3366CC;">'modulo2.js'</span><span style="color: #339933;">,</span>
            isDebug<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">,</span>
            fileIncludes<span style="color: #339933;">:</span> <span style="color: #009900;">&#91;</span><span style="color: #009900;">&#123;</span>
                text<span style="color: #339933;">:</span> <span style="color: #3366CC;">'model.js'</span><span style="color: #339933;">,</span>
                path<span style="color: #339933;">:</span> <span style="color: #3366CC;">'js/modulo2/'</span>
            <span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span><span style="color: #009900;">&#123;</span>
                text<span style="color: #339933;">:</span> <span style="color: #3366CC;">'view.js'</span><span style="color: #339933;">,</span>
                path<span style="color: #339933;">:</span> <span style="color: #3366CC;">'js/modulo2/'</span>
            <span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span><span style="color: #009900;">&#123;</span>
                text<span style="color: #339933;">:</span> <span style="color: #3366CC;">'controller.js'</span><span style="color: #339933;">,</span>
                path<span style="color: #339933;">:</span> <span style="color: #3366CC;">'js/modulo2/'</span>
            <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#93;</span>
        <span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
        <span style="color: #006600; font-style: italic;">/**
         * Gera um arquivo único para o Index
         */</span>
        <span style="color: #009900;">&#123;</span>
            <span style="color: #000066;">name</span><span style="color: #339933;">:</span> <span style="color: #3366CC;">'INDEX'</span><span style="color: #339933;">,</span>
            file<span style="color: #339933;">:</span> <span style="color: #3366CC;">'index.js'</span><span style="color: #339933;">,</span>
            isDebug<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">,</span>
            fileIncludes<span style="color: #339933;">:</span> <span style="color: #009900;">&#91;</span><span style="color: #009900;">&#123;</span>
                text<span style="color: #339933;">:</span> <span style="color: #3366CC;">'index.js'</span><span style="color: #339933;">,</span>
                path<span style="color: #339933;">:</span> <span style="color: #3366CC;">'js/'</span>
            <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#93;</span>
        <span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
        <span style="color: #006600; font-style: italic;">/**
         * Gera um arquivo único que agrupa os três arquivos gerados acima.
         */</span>
        <span style="color: #009900;">&#123;</span>
            <span style="color: #000066;">name</span><span style="color: #339933;">:</span> <span style="color: #3366CC;">'All'</span><span style="color: #339933;">,</span>
            file<span style="color: #339933;">:</span> <span style="color: #3366CC;">'all.js'</span><span style="color: #339933;">,</span>
            isDebug<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">,</span>
            <span style="color: #006600; font-style: italic;">//Indica se os pacotes de dependência (pckgDeps) devem ser incluídos neste arquivo (all.js)</span>
            includeDeps<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">,</span>
            <span style="color: #006600; font-style: italic;">//Indica os pacotes (arquivos) de dependência</span>
            pkgDeps<span style="color: #339933;">:</span> <span style="color: #009900;">&#91;</span>
                    <span style="color: #3366CC;">'index.js'</span><span style="color: #339933;">,</span>
                    <span style="color: #3366CC;">'modulo1.js'</span><span style="color: #339933;">,</span>
                    <span style="color: #3366CC;">'modulo2.js'</span>
            <span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span>
            <span style="color: #006600; font-style: italic;">//Neste caso não inclui mais nenhum arquivo além dos pacotes</span>
            fileIncludes<span style="color: #339933;">:</span> <span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span>
    <span style="color: #006600; font-style: italic;">/**
     * Indica onde estão e para onde vão os arquivos base para a geração.
     * Todos os arquivos usados (neste caso por exemplo: &quot;modulo1/model.js&quot;, &quot;modulo2/controller.js&quot;, etc)
     * são copiados também para o diretório que será criado com os arquivos compactados
     */</span>
    resources<span style="color: #339933;">:</span> <span style="color: #009900;">&#91;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #006600; font-style: italic;">//raiz dos arquivos javascript</span>
        src<span style="color: #339933;">:</span> <span style="color: #3366CC;">'js/'</span><span style="color: #339933;">,</span>
        <span style="color: #006600; font-style: italic;">//raiz dentro do diretório gerado (aonde serão colocadas as cópias dos arquivos originais)</span>
        dest<span style="color: #339933;">:</span> <span style="color: #3366CC;">'src/'</span><span style="color: #339933;">,</span>
        <span style="color: #006600; font-style: italic;">//Filtros (arquivos que devem ser copiados destas pastas)</span>
        filters<span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;.*<span style="color: #000099; font-weight: bold;">\\</span>.js&quot;</span>
    <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#93;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p><span style="color: #993300;">IMPORTANTE: Para que os arquivos orginais não sejam copiados para o diretório de Implementação você pode deixar o array resources vazio (Ex: resources: []). </span></p>
<h3>Executando o arquivo</h3>
<p>O JSBuilder é um programa JAVA que deve ser executado em linha de compando (aqui feito no Windows):</p>
<pre>java -jar C:\JSBuilder2\JSBuilder2.jar --projectFile C:\xampp\htdocs\dev\teste\jsbuilder\teste.jsb2 --homeDir C:\xampp\htdocs\dev\teste\jsbuilder\deploy\</pre>
<p><span style="color: #800000;">IMPORTANTE: É obrigatório indicar o caminho completo do &#8220;projectFile&#8221; e do &#8220;homeDir&#8221;.</span></p>
<p>Os erros mais comuns que ocorreram comigo foram:</p>
<ul>
<li> Erro de sintaxe do JSON:
<ul>
<li> &#8220;Expected a &#8216;,&#8217; or &#8216;]&#8217; at character 1332&#8243; -&gt; Esqueci uma vírgula ou faltou fechar um array;</li>
<li>&#8220;Expected a &#8216;,&#8217; or &#8216;]&#8217; at character 1332&#8243; -&gt; Deixei um comentário no ínicio do JSON.</li>
</ul>
</li>
<li> Erro de caminho de arquivo:
<ul>
<li> &#8220;Unable to access jarfile C:\JSBuider2.jar&#8221; -&gt; Caminho do JSBuilder errado;</li>
<li>&#8220;java.io.FileNotFoundException: C:\teste.jsb2&#8243; -&gt; Erro no endereço do arquivo de configuração.</li>
</ul>
</li>
</ul>
<h3><strong>Arquivos Gerados</strong></h3>
<p>Após a geração, a estrutura dos arquivos ficou da seguinte maneira:</p>
<pre>index.html
teste.jsb2
js/
	modulo1/
		model.js
		view.js
		controller.js
	modulo2/
		model.js
		view.js
		controller.js
	index.js
<strong>deploy/
       /src
             modulo1/
                    model.js
		    view.js
		    controller.js
             modulo2/
                    model.js
		    view.js
		    controller.js
             index.js
      all.js
      all-debug.js
      index.js
      index-debug.js
      modulo1.js
      modulo1-debug.js
      modulo2.js
      modulo2-debug.js</strong></pre>
<h3>Conclusão</h3>
<p>Além das opões aqui apresentadas existem algumas outras nas quais não me aprofundei. Você pode conhecer todas na <a href="http://www.extjs.com/products/jsbuilder/">página do JSBuilder</a> ou nos <a href="http://www.extjs.com/forum/forumdisplay.php?f=8">fóruns do ExtJS</a>.<br />
Nos arquivos que coloquei para download também está presente o arquivo<strong> jsb2</strong> usado para <strong>geração do código do ExtJS</strong> (pego pelo fórum).</p>
<p>Este tutorial foi desenvolvido como parte do meu trabalho na empresa IASOFT.<br />
Não garanto que poderei ajudar tirando dúvidas ou corrigindo erros, mas farei o possível.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kaleu.caminha.nom.br/blog/2009/12/03/usando-jsbuilder-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Casos e Práticas para apropriação das TICs por ONGs</title>
		<link>http://www.kaleu.caminha.nom.br/blog/2009/11/23/casos-e-praticas-para-apropriacao-das-tics-por-ongs/</link>
		<comments>http://www.kaleu.caminha.nom.br/blog/2009/11/23/casos-e-praticas-para-apropriacao-das-tics-por-ongs/#comments</comments>
		<pubDate>Mon, 23 Nov 2009 16:12:36 +0000</pubDate>
		<dc:creator>kaleu</dc:creator>
				<category><![CDATA[Sistemas de Informação]]></category>

		<guid isPermaLink="false">http://www.kaleu.caminha.nom.br/blog/?p=462</guid>
		<description><![CDATA[Este artigo é o resultado da disciplina de Informática e Sociedade, ministrada pelo professor José Eduardo De Lucca no curso de Sistemas de Informação da Universidade Federal de Santa Catarina. O objetivo era criar um artigo que trabalhasse os diversos temas estudados ao longo do semestre, optei por pensar e pesquisar como a TI poderia [...]]]></description>
			<content:encoded><![CDATA[<p>Este artigo é o resultado da disciplina de Informática e Sociedade, ministrada pelo professor <a href="http://blogs.geness.ufsc.br/delucca/">José Eduardo De Lucca</a> no curso de <a href="http://www.inf.ufsc.br/">Sistemas de Informação da Universidade Federal de Santa Catarina</a>. O objetivo era criar um artigo que trabalhasse os diversos temas estudados ao longo do semestre, optei por pensar e pesquisar como a TI poderia ser utilizada para gerar valor à sociedade através de ONG&#8217;s.</p>
<p>Fique a vontade para comentar e criticar.</p>
<p align="JUSTIFY"><strong>1. Introdução</strong></p>
<p align="JUSTIFY">Este trabalho objetiva apresentar o perfil do terceiro setor em Florianópolis e propor ações a partir do uso de Software Livre (SL) e Tecnologias de Informação e Comunicação (TICs) que se adequem ao cenário atual e ajudem a diminuir as principais necessidades deste setor, bem como, gerar oportunidades.</p>
<p align="JUSTIFY">O presente trabalho utiliza referência a casos de 4 ONGs e do papel da Tecnologia nas suas respectivas ações, a apresentação de temas referentes as TICs e ao Software Livre e inclui a experiência profissional do autor.</p>
<p align="JUSTIFY"><span id="more-462"></span></p>
<p align="JUSTIFY"><strong>2. Perfil das ONGs que atuam em Florianópolis</strong></p>
<p align="JUSTIFY">Segundo um estudo realizado pelo <a href="http://www.icomfloripa.org.br/">ICom</a> (Instituto Comunitário Grande Florianópolis) em 2006, com 175 ONG&#8217;s ativas na região da Grande Florianópolis, que buscou identificar o perfil do terceiro setor em Florianópolis:</p>
<p style="margin-left: 1.25cm; " align="JUSTIFY"><span style="font-size: x-small;">As ONGs que atuam em Florianópolis são em sua maioria pequenas e institucionalmente frágeis. Suas equipes são compostas por voluntários ou poucos funcionários, e o volume de recursos que movimentam é relativamente baixo. </span></p>
<p style="margin-left: 1.25cm; " align="JUSTIFY"><span style="font-size: x-small;">A Fragilidade institucional das ONGs limita o impacto de seu trabalho, mas a maior parte das ONG&#8217;s está comprometida em atender a população socialmente vulnerável e a defender e preservar o meio ambiente. </span></p>
<p style="margin-left: 1.25cm; " align="JUSTIFY"><span style="font-size: x-small;">Foram identificadas como principais necessidades das ONGs investimentos em infra-estrutura, capacitação da equipe e recursos financeiros. </span></p>
<p align="JUSTIFY">Este estudo teve como principal resultado um conjunto de dados estatísticos representando o cenário atual do setor:</p>
<ul>
<li> <strong>Baixo 	Valor de Recursos:</strong>
<ul>
<li> 49% 		movimentam até R$ 24.000 por ano.;</li>
</ul>
</li>
<li><strong>Equipe 	Profissional:</strong>
<ul>
<li> 40% 		trabalham só com voluntários ;</li>
<li> 56% 		possuem até 5 profissionais contratados ;</li>
</ul>
</li>
<li> <strong>Principal 	contribuição para a cidade :</strong>
<ul>
<li> 34.5% 		- Atendimento a população vulnerável ;</li>
<li> 22% 		- Defesa e preservação do meio ambiente ;</li>
<li> 14,3% 		- Apoio a organizações de saúde, educação e assistência 		social.;</li>
</ul>
</li>
<li> <strong>Sede:</strong>
<ul>
<li> 66% 		não possuem sede própria ;</li>
</ul>
</li>
<li> <strong>Principais 	necessidades das ONGs:</strong>
<ul>
<li>37.5% 		- Investimentos em infra-estrutura ;</li>
<li>32,5% 		- Capacitação ;</li>
<li> 30,2% 		- Recursos Financeiros.</li>
</ul>
</li>
</ul>
<p align="JUSTIFY">Ao fim do presente trabalho serão apresentadas propostas que  analisam este cenário com o objetivo de atender as três principais  necessidades das ONG&#8217;s, bem como o baixo valor de recursos, equipes pequenas e normalmente formada por voluntários e a ausência de sede própria.</p>
<p align="JUSTIFY">
<p align="JUSTIFY"><strong>3. Tecnologias de Informação e Comunicação (TICs)<br />
</strong></p>
<p align="JUSTIFY"><a href="http://en.wikipedia.org/w/index.php?title=Information_and_communication_technologies&amp;oldid=327210601">Segundo a Wikipedia </a>(e em tradução livre) TICs correspondem <em>as “tecnologias digitais incluindo métodos para comunicação bem como técnicas para armazenamento e processamento de informações”</em><span style="font-style: normal;">.</span></p>
<p align="JUSTIFY"><span style="font-style: normal;">O desenvolvimento de duas tecnologias foram essenciais para o surgimento das TICs,  a primeira é o uso de <a href="http://en.wikipedia.org/w/index.php?title=Database_management_system&amp;oldid=327311855">sistemas gerenciadores de bases de dados </a>que permitem a criação, manutenção e armazenamento de conjuntos de dados estruturados. </span></p>
<p align="JUSTIFY">O segundo fator foi o crescimento da internet que permitiu acesso e disponibilização de informações por qualquer pessoa no mundo com acesso a rede. Um dos exemplos desta revolução é o grande crescimento dos blogs, sobre este tema, <a href="http://paraentenderainternet.blogspot.com/2009/01/blog-edney-souza.html">Edney Souza</a> coloca: <em>“Hoje qualquer pessoa com acesso a internet e que saiba operar um teclado tem plenas condições de manter um blog. Blogs são ferramentas de democratização de publicação de conteúdo.”</em><span style="font-style: normal;">.</span></p>
<p align="JUSTIFY">As TICs tem ainda, um forte papel social, <a href="http://imasters.uol.com.br/artigo/8278">Segundo Alexandre Mendes</a>, uma das grandes transformações ocorre com o surgimento do Ensino a Distância, que possibilita acesso a conteúdos didáticos que não poderiam ser conseguidos sem a presença de instalações físicas de instituições escolares.</p>
<p align="JUSTIFY">Por estes fatores, as TICs tem causado forte impacto social, o que tem gerado novos termos como as <a href="http://en.wikipedia.org/w/index.php?title=Information_and_communication_technologies_for_environmental_sustainability&amp;oldid=322562061">Tecnologias de Informação e Comunicação para o Desenvolvimento Sustentável</a>, que podem ser compreendidas como as novas tecnologias que permitem a comunidade global colaborar para a construção de um mundo sustentável. Entre as suas áreas de aplicação estão as mudanças climáticas, agricultura e qualidade de vida.</p>
<p align="JUSTIFY">Esta seção buscou mostrar a importância das TIC&#8217;s para o mundo atual, principalmente após o surgimento da internet e do uso das bases de dados que permitiram o armazenamento, processamento e publicação de informações por qualquer cidadão.</p>
<p align="JUSTIFY">
<p align="JUSTIFY"><strong>4. Software Livre</strong></p>
<p align="JUSTIFY"><a href="http://www.fsf.org/about/what-is-free-software">Segundo a Free Software Fundation</a> (em tradução livre) <em>“Software livre é o software que dá ao usuário a liberdade para compartilhá-lo, estudá-lo e modificá-lo. Nós chamamos software livre porque o usuário é livre.”</em>. Isto significa que ao adquirir um software, uma empresa ou pessoa não ficam restritos ao que é oferecido pelo fabricante, eles tem total liberdade para acrescentar novos recursos e modificar o que lhes for interessante.</p>
<p align="JUSTIFY">A licença de software mais comumente utilizada por softwares livres é a Licença GPL que, segundo a Wikipedia:</p>
<p style="margin-left: 1.25cm; font-style: normal;" align="JUSTIFY"><span style="font-size: x-small;">permite que os programas sejam distribuídos e reaproveitados, mantendo, porém, os direitos do autor por forma a não permitir que essa informação seja usada de uma maneira que limite as liberdades originais. A licença não permite, por exemplo, que o código seja apoderado por outra pessoa, ou que sejam impostos sobre ele restrições que impeçam que seja distribuído da mesma maneira que foi adquirido.</span></p>
<p style="font-style: normal; text-decoration: none;" align="JUSTIFY"><span style="font-size: small;">O respeito as liberdades citadas pela <em>Free Software Fundation</em> e o uso de licenças semelhantes a GPL oferece a possibilidade que diversos indivíduos e organizações sem fins lucrativos se beneficiem com as melhorias do software que outros indivíduos ou organizações realizaram, sem custo adicional.</span></p>
<p style="font-style: normal; text-decoration: none;" align="JUSTIFY"><span style="font-size: small;">Entre as principais características do Software Livre está a cultura de colaboração, na qual redes de profissionais voluntários são criadas para desenvolver alguns projetos. Exemplos da força deste modelo de colaboração são os softwares Firefox e OpenOffice e o Sistema Operacional Ubuntu.</span></p>
<p align="JUSTIFY"><span style="font-size: small;"><span style="font-style: normal;"><span style="text-decoration: none;">Este modelo de colaboração também aparece no suporte ao uso destes softwares através de fóruns de discussão nos quais usuários mais experientes auxiliam os mais novos com a produção de conteúdos e dicas. Esta cultura de colaboração depende de outro conceito conhecido como </span></span></span><span style="font-size: small;"><em><span style="text-decoration: none;">ética hacker</span></em></span><span style="font-size: small;"><span style="font-style: normal;"><span style="text-decoration: none;">, </span></span></span><a href="http://paraentenderainternet.blogspot.com/2009/01/tica-hacker-dalton-martins.html">Dalton Martins descreve </a><span style="font-size: small;"><span style="font-style: normal;"><span style="text-decoration: none;">esta ética a partir do ponto de vista do hacker:</span></span></span></p>
<p style="margin-left: 1.25cm; " align="JUSTIFY"><span style="font-size: x-small;">o hacker utiliza uma parte significativa do seu tempo documentando e compartilhando a forma como ele conseguiu vencer um desafio e, dessa forma, permitindo que outras pessoas possam aprender com suas descobertas. É uma atitude que possui em seu DNA um desejo íntimo de construir um mundo a partir de uma inteligência coletiva, a partir da colaboração entre as diferentes formas que as pessoas possuem de resolver seus problemas.</span></p>
<p align="JUSTIFY">O modelo do software livre e a sua cultura se encaixam com o terceiro setor por permitir o acesso a um grande número de softwares, recursos, suporte e conhecimento a um baixo custo, e ainda, estimulando a colaboração entre as pessoas, criando um ciclo positivo de desenvolvimento que pode ser levado para o dia-a-dia da organização.</p>
<p align="JUSTIFY">
<p align="JUSTIFY"><strong>5. Casos de TI aplicada ao Terceiro Setor</strong></p>
<p align="JUSTIFY">Esta seção apresenta casos em que ONG&#8217;s usaram a TI de alguma forma para o desenvolvimento de suas ações.</p>
<p align="JUSTIFY">
<p align="JUSTIFY"><strong>5.1 Comitê para Democratização da Informática (CDI)</strong></p>
<p align="JUSTIFY">O <a href="http://www.cdi.org.br/notes/Sobre_o_CDI">CDI é uma ONG mundial cuja missão</a> é <em>“transformar vidas e fortalecer comunidades de baixa renda através da capacitação nas tecnologias da informação e comunicação e de um aprendizado complementar voltado à prática da cidadania e do empreendedorismo”.</em></p>
<p align="JUSTIFY"><span style="font-style: normal;">A organização foi criada em 1995 e desde então atua </span><em>“capacitando indivíduos de diversas idades, pertencentes a grupos desfavorecidos, a extrair o melhor das tecnologias da informação e comunicação”</em><span style="font-style: normal;">, junto a capacitação os indivíduos podem desenvolver ações dentro de suas próprias comunidades em atividades que estimulam o empreendedorismo e a responsabilidade social.</span></p>
<p align="JUSTIFY">Dessa forma, o CDI mostra como a tecnologia pode ser utilizada para o desenvolvimento individual e comunitário a partir da capacitação e do desenvolvimento de ações locais e da resolução de problemas reais nas comunidades em que os capacitados estão presentes.</p>
<p align="JUSTIFY">
<p align="JUSTIFY"><strong>5.2 Portal Voluntários On-line</strong></p>
<p align="JUSTIFY">O <a href="http://www.voluntariosonline.org.br/">Portal Voluntários On-line</a> é uma iniciativa do Instituto de <a href="http://www.voluntariosemacao.org.br/">Voluntariado de Florianópolis (IVA)</a> <a href="http://www.voluntariosonline.org.br/publica/atuacao.jsf#objetivos">com o objetivo</a> de <em>“ser o elo entre as pessoas que desejam colocar suas habilidades e seu tempo à disposição de organizações não-governamentais, e as organizações que necessitam desses voluntários para prestar serviços de melhor qualidade para quem precisa”.</em></p>
<p style="font-style: normal;" align="JUSTIFY">A partir de um sistema baseado em <em>web</em> o processo de recrutamento de voluntários ficou muito mais fácil, reduzindo custos para as organizações e trazendo um grande benefício à sociedade.</p>
<p align="JUSTIFY"><span style="font-style: normal;">Com esta iniciativa o IVA trouxe para o Brasil o <a href="http://www.voluntariosonline.org.br/publica/voluntariado_online.jsf">Voluntariado On-line</a> que consiste em  toda atividade de voluntariado </span><em>“realizada total ou em parte via internet, sem a necessidade de estar presencialmente na organização para a qual se trabalha”</em><span style="font-style: normal;">.</span></p>
<p style="font-style: normal;" align="JUSTIFY">Este projeto do IVA é hoje utilizado por mais de 350 Organizações e possui mais de mil oportunidades cadastradas.</p>
<p style="font-style: normal;" align="JUSTIFY">
<p align="JUSTIFY"><strong>5.3 OBA Floripa!</strong></p>
<p align="JUSTIFY">A <a href="http://www.obafloripa.org">Organização Bem-Animal (OBA)</a> atua na região da grande Florianópolis em ações para o bem estar animal, que incluem castração de animais, educação da população, campanhas de adoção junto ao canil municipal, cuidado e carinho aos animais e mutirões mata-fome.</p>
<p align="JUSTIFY">No começo de 2009, o OBA solicitou à UFSC por e-mail, uma chamada de voluntários que pudessem auxiliá-la em atividades de manutenção e desenvolvimento de seu site pessoal.</p>
<p align="JUSTIFY">Pude então, participar da implementação de algumas necessidades tecnológicas do OBA junto a outros voluntários, e, a partir dessa iniciativa foi <a href="http://www.obafloripa.org/blog">desenvolvido um blog</a>, utilizando o software livre <a href="http://wordpress.org/"><em>Wordpress</em></a>, para que as ações do OBA pudessem ser compartilhadas e fosse estimulada a participação da comunidade com comentários e sugestões.</p>
<p align="JUSTIFY">O OBA também utiliza recursos disponíveis na internet como o álbum de fotos <a href="http://picasaweb.google.com.br/projetocaoterapia"><em>Flickr</em></a> e o repositório de vídeos <a href="http://www.youtube.com/watch?v=oe2UitRO5ZU&amp;feature=player_embedded"><em>Youtube</em></a> para divulgar as ações desenvolvidas, além de um <a href="http://groups.google.com/group/obafloripa">grupo de e-mail</a> para organização do trabalho voluntário.</p>
<p align="JUSTIFY">Esta experiência possibilitou uma visão mais concreta do trabalho voluntário e da grande dificuldade de se desenvolverem estas ações pois em geral, grande parte dos envolvidos já possui outras ocupações profissionais e muitas vezes acadêmicas o que torna o tempo reduzido e tarefa de gerenciamento das atividades diferente do gerenciamento em uma empresa com equipes contratadas para trabalhar vinte ou quarenta horas por dia.</p>
<p align="JUSTIFY">A partir deste movimento outros projetos também estão sendo realizados com o objetivo de arrecadação de fundos para o projeto &#8211; necessidade colocada como prioritária pela diretora geral da organização &#8211; como o uso de publicidade on-line e comércio eletrônico.</p>
<p align="JUSTIFY">Entre as alternativas para captação de recursos é o desenvolvimento de sistemas que permitam rifas on-line. Hoje, o uso de rifas é uma das principais fontes de recursos da ONG, porém, a limitação de profissionais dedicados a venda dos bilhetes torna o processo lento e restrito ao âmbito local. Foi sugerido que um sistema de rifas on-line possibilitaria a participação de pessoas de regiões diferentes, além de diminuir o tempo gasto na gestão desta atividade.</p>
<p align="JUSTIFY">Este caso mostra diversas possibilidades do uso da tecnologia para a realização e gerência de organizações não governamentais, e como o software livre pode desempenhar um papel importante no fornecimento destas tecnologias.</p>
<p align="JUSTIFY">
<p align="JUSTIFY"><strong>5.4 Room To Read</strong></p>
<p align="JUSTIFY">A <a href="http://www.roomtoread.org/">Room to Read</a> iniciou suas atividades no ano 2000 e até o momento construiu mais de 700 escolas em diversos países como Nepal e Sri Lanka. Além das escolas, a Room to Read <a href="http://www.roomtoread.org/Page.aspx?pid=284">financia os estudos de 6.800 meninas</a>, <a href="http://www.roomtoread.org/Page.aspx?pid=281">já construi mais de 7.000 bibliotecas</a>, <a href="http://www.roomtoread.org/Page.aspx?pid=282">publicou mais de 300 livros em linguagem local</a> e<a href="http://www.roomtoread.org/Page.aspx?pid=285"> já tem muitos outros projetos em andamento</a>.</p>
<p align="JUSTIFY">O <a href="http://www.roomtoread.org/Page.aspx?pid=209">Objetivo da ONG</a> é “<em>desenvolver um mundo que possibilite oportunidades educacionais de qualidade através de bibliotecas, literatura em linguagem local, construção de escolas e bolsas de estudos para meninas”</em><em><span style="font-style: normal;">. Para atingir este objetivo a Room to Read, além de escolas e bibliotecas, constrói <a href="http://www.roomtoread.org/Page.aspx?pid=469">centros de informática</a> que possibilitarão no futuro, mais oportunidades aos jovens destes países.</span></em></p>
<p align="JUSTIFY"><em><span style="font-style: normal;">Recentemente a organização iniciou um novo projeto que pretende <a href="http://www.roomtoread.org/Page.aspx?pid=468#qualcomm">oferecer acesso a internet </a></span></em><em><a href="http://www.roomtoread.org/Page.aspx?pid=468#qualcomm"><em>wireless</em></a></em><em><span style="font-style: normal;"> em laboratórios do Vietnam e Nepal para oferecer acesso a internet de qualidade.</span></em></p>
<p align="JUSTIFY"><em><span style="font-style: normal;">Dois outros fatores essenciais para que esta organização fosse utilizada como exemplo de uso da tecnologia é a cultura desenvolvida pela Room to Read de oferecer pela internet todos os números do trabalho que desenvolve. Segundo John Wood (no livro “Saí da Microsoft para Mudar o Mundo”), fundador do projeto, é importante </span></em><em><em>“mostrar a conexão que existe entre o valor doado e aquilo que ele cria”</em></em><em><span style="font-style: normal;"> e continua </span></em><em><em>“em nosso caso, podemos mostrar exatamente para onde foi o dinheiro”</em></em><em><span style="font-style: normal;">. Este caso mostra a importância que existe em toda ONG ter a sua disposição ferramentas de comunicação, como os softwares de gerenciamento de conteúdo.</span></em></p>
<p align="JUSTIFY"><em><span style="font-style: normal;">Este exemplo traz a tona os diversos usos da TI, desde como atividade administrativa a meio de execução de alguns de seus projetos.</span></em></p>
<p align="JUSTIFY"><em><span style="font-style: normal;"><br />
</span></em></p>
<p align="JUSTIFY"><strong>6. Apresentando Soluções</strong></p>
<p align="JUSTIFY">Esta seção visa trazer soluções que utilizem os casos e temas abordados acima para trazer desenvolvimento à ONGs através do uso de recursos de TI.</p>
<p align="JUSTIFY">
<p align="JUSTIFY"><strong>6.1 Falta de Investimento em TI</strong></p>
<p align="JUSTIFY">Com um volume de recursos anual de R$ 24.000, muitas ONG&#8217;s não podem investir o suficiente em pesquisa e tecnologia para viabilizar e desenvolver melhor as suas atividades.</p>
<p align="JUSTIFY">O custo de licenças, suporte e desenvolvimento de software se torna inviável para estas empresas, e apesar de existirem programas como o <a href="http://www.techsoupbrasil.org.br/">TechSoup Brasil</a> &#8211; que faz a ligação entre ONGs e empresas de software dispostas a doarem licenças de seus produtos -, este processo exige uma séria de aprovações e passos, o que pode ser muito lento e prejudicar o trabalho da ONG.</p>
<p align="JUSTIFY">Neste cenário desponta como alternativa o uso de Software Livre, que em muitos casos é grátis e possuem comunidades que oferecem suporte on-line sem nenhum custo extra. Outra força do Software Livre neste cenário decorre do uso de código aberto, o que viabiliza que pequenas ONGs possam adaptar seus softwares conforme suas necessidades.</p>
<p align="JUSTIFY">Como exemplo ressalta-se  a experiência da ONG OBA que customizou o software <em>Wordpress</em> para solucionar seu problema de baixa interação com a comunidade, divulgação das campanhas e educação da população.</p>
<p align="JUSTIFY">
<p align="JUSTIFY"><strong>6.2 Criando Redes de Voluntários</strong></p>
<p align="JUSTIFY">A pesquisa realizada pelo ICom evidenciou o grande número de ONGs que atuam apenas com voluntários ou com muito poucos funcionários. O trabalho voluntário é muitas vezes realizado aos finais de semana ou nos horários contrários aos períodos acadêmicos e profissional. Evidenciando isto, <a href="http://www.voluntariosonline.org.br/noticia/131-Perfil-dos-voluntarios-do-Portal-Voluntarios-Online">temos o levantamento realizado pelo IVA sobre o perfil de voluntariado on-line</a>, que compreende na sua grande maioria jovens entre 16  e 30 anos (63%) com curso superior completo ou em andamento (47%) e que já possuem alguma ocupação profissional (88%).</p>
<p align="JUSTIFY">Este cenário mostra que as organizações precisam lidar com profissionais que não tem, muitas vezes, dedicação integral a instituição e possuem tempo limitado. É importante então que encontrem-se mecanismos que permitam a gerência das atividades destes voluntários e permitam a passagem de conhecimento entre eles, afinal, as atividades desenvolvidas por um voluntário não podem ser perdidas assim que ele parar de atuar na organização.</p>
<p align="JUSTIFY">Uma das formas é a criação de redes que permitam a estes voluntários estarem em permanente contato, trocando experiências, compartilhando conhecimento e tendo suas funções gerenciadas por membros da Organização.</p>
<p align="JUSTIFY">Como exemplo de sucesso temos o Portal Voluntários On Line que oferece às ONGs recursos para gerenciar os voluntários  que atuam em cada atividade e o número de horas dedicados ao projeto.</p>
<p align="JUSTIFY">
<p align="JUSTIFY"><strong>6.3 Capacitação</strong></p>
<p align="JUSTIFY">As experiências do CDI e da Room to Read trazem a importância do uso da informática para a capacitação, tanto como meio para os profissionais que precisarão da informática para desenvolver seus projetos como fim, em organizações nas quais o ensino e aplicação da informática são fundamentais para os beneficiados pelo projeto.</p>
<p align="JUSTIFY">O Desenvolvimento de softwares que permitem o compartilhamento de cursos e material on-line facilita o trabalho de voluntários que muitas vezes tem pouco tempo para dedicar ao voluntariado e, a partir do conteúdo produzido  por outros usuários, podem elaborar cursos ou incrementar os materiais com muito menos esforço do que criar algo do zero.</p>
<p align="JUSTIFY">O uso de Softwares como <a href="http://moodle.org/"><em>Moodle</em></a> e <a href="http://wikimedia.org/"><em>WikiMedia</em></a> podem desempenhar esta função quando gerenciados por profissionais que compreendam suas potencialidades e limitações. Ambos são softwares livres que podem começar a serem utilizados em menos de uma hora.</p>
<p align="JUSTIFY">
<p align="JUSTIFY"><strong>6.4 Voluntariado On-Line</strong></p>
<p align="JUSTIFY">Sessenta e seis porcento das ONG&#8217;s não possuem sede própria. Este dado abre possibilidade para o Voluntáriado On-line, que já é utilizado com sucesso por diversas organizações de Santa Catarina através do projeto do IVA. Esta atividade, aliada ao uso de <a href="http://pt.wikipedia.org/wiki/Groupware">softwares colaborativos</a> – softwares que permitem o gerenciamento de atividades em grupo -, pode diminuir o uso de recursos financeiros e possibilitar uma melhor gerência das atividades, recursos e informações da organização.</p>
<p align="JUSTIFY">
<p align="JUSTIFY"><strong>6.5 Captação de Recursos</strong></p>
<p align="JUSTIFY">Uma das maiores necessidades das ONGs, segundo o estudo do ICom e a experiência com a ONG OBA Floripa é a captação de recursos financeiros.</p>
<p align="JUSTIFY">O crescimento da internet criou novos nichos e oportunidades até pouco tempo inviáveis que podem começar a ser utilizadas por ONG&#8217;s. Entre elas podemos destacar:</p>
<ul>
<li> <strong>Publicidade 	on-line</strong>: Muitas ONGs produzem conteúdos de alta qualidade, ter 	sites de conteúdo que utilizam links patrocinados é uma das formas 	de concretizar esta atividade;</li>
<li> <strong>Comércio 	Eletrônico</strong>: ONGs costumam vender produtos próprios como 	camisetas e objetos ligados ao seu domínio para arrecadar fundos. A 	venda destes produtos por internet possibilita um alcance maior de 	clientes;</li>
<li> <strong>Serviços 	de Informação:</strong> Podem ser criados seviços de informação a 	população ligados ás áreas de conhecimento da organização;</li>
</ul>
<p align="JUSTIFY">Estas são apenas algumas das possibilidades existentes, a imaturidade da internet ainda abre espaço para muitas novas idéias e modelos de negócio.</p>
<p align="JUSTIFY">
<p align="JUSTIFY"><strong>6.6 Voluntariado em TI</strong></p>
<p align="JUSTIFY">Como forma de estimular o voluntariado em profissionais de TI é sugerida a criação de uma rede que disponibilize conteúdo, treinamento e oportunidades sociais para estes profissionais.</p>
<p align="JUSTIFY">Muitas ONGs não conhecem o potencial que o uso da tecnologia pode proporcionar aos seus negócio, em algumas situações, pode se fazer necessária a presença de profissionais treinados para identificar necessidades e formas de usar a tecnologia para desenvolver um processo ou atividade.</p>
<p align="JUSTIFY">Para o profissional ou empresa de informática, é importante salientar que a experiência de trabalho com organizações não governamentais oferece oportunidades de testar novas tecnologias e se aproximar mais do seu público.</p>
<p align="JUSTIFY">Grupos de profissionais também podem ser criados para atuarem em projetos específicos de <span style="font-weight: normal;">software para organizações cujas atividades dependam exclusivamente do uso de TI.</span></p>
<p style="font-weight: normal;" align="JUSTIFY">Tais projetos podem ser desenvolvidos em parceria com empresas júnior e cursos profissionalizantes como forma de primeiro contato de profissionais com projetos reais, a partir da orientação de profissionais experientes.</p>
<p style="font-weight: normal;" align="JUSTIFY">
<p align="JUSTIFY"><strong>6.7 Rede TI para ONGs</strong></p>
<p style="font-weight: normal;" align="JUSTIFY">Como forma de criar meios para que as ações sugeridas aqui tenham continuidade é importante que as organizações tenham acesso a profissionais e conteúdos que respondam as suas dúvidas e criem diretrizes para a implantação destes projetos. É importante também realizar a exploração das ações realizadas e obter retorno para reavaliá-las e planejar novas ações que auxiliem ONGs a melhor utilizar a TI em suas organizações.</p>
<p style="font-weight: normal;" align="JUSTIFY">Problemas como recebimento de doações e divulgação de ações podem ser facilmente resolvidos, e com baixo custo, sendo necessário apenas que os responsáveis tenham acesso a este conhecimento, compreendendo com clareza as potencialidades e limitações do uso da TI para as suas atividades.</p>
<p style="font-weight: normal;" align="JUSTIFY">A rede aqui sugerida teria como responsabilidade:</p>
<ul>
<li> Divulgação de softwares livres;</li>
<li> Divulgação de oportunidades de voluntariado em TI;</li>
<li> Criação de conteúdos sobre o uso de TI em ONGs;</li>
<li> Criação de ações para voluntariado em TI;</li>
<li> Discussão e pesquisa de soluções para os principais problemas das 	ONGs (infra-estrutura, captação de recursos e capacitação);</li>
<li> Capacitação de voluntários de TI;</li>
<li>Divulgação de casos de uso de TI por ONGs;</li>
<li> Suporte na implantação de projetos de TI;</li>
</ul>
<p style="font-weight: normal;" align="JUSTIFY">A proposta da ONG é abrangente pois tem como permissão a criação de comunidades auto-sustentáveis, assim como ocorre nos processos de software livre, na qual profissionais mais experientes se disponham a auxiliar quem está começando, e o que já foi feito pelo menos uma vez, não precise ser repetido, mas apenas copiado e melhorado.</p>
<p style="font-weight: normal;" align="JUSTIFY">
<p align="JUSTIFY"><strong>7. Conclusão</strong></p>
<p style="font-weight: normal;" align="JUSTIFY">O cenário atual de desenvolvimento do terceiro setor e do uso das TICs e Software Livre apresenta um grande número de possibilidades como as apresentadas na seção seis.</p>
<p style="font-weight: normal;" align="JUSTIFY">O casos apresentados possibilitam uma visão ampla de como diversas organizações diferentes dependem da TI como forma de gerar inovação e desenvolvimento aos seus projetos e consequentemente para a sociedade.</p>
<p style="font-weight: normal;" align="JUSTIFY">Acredito que os três temas centrais deste trabalho se unem perfeitamente e que uma participação mais ativa dos profissionais de TI pode gerar uma revolução no desenvolvimento do terceiro setor, bem como dos profissionais envolvidos.</p>
<p style="font-weight: normal;" align="JUSTIFY">É visível que existem grandes dificuldades como uma mudança de cultura e investimento em infra-estrutura de TI e produção de conteúdo. Por outro lado, os projetos de software livre mostram que é possível, com muitas pessoas fazendo uma pequena parte, construir grandes projetos e possibilitar muito sonhos.</p>
<p style="font-weight: normal;" align="JUSTIFY">
<p align="JUSTIFY"><strong>8. Bibliografia</strong></p>
<p style="font-weight: normal;" align="JUSTIFY">As indicações bibliográficas do presente trabalho fazem referência apenas a material disponível on-line e portanto foram inseridas como links diretamente no conteúdo, facilitando ao leitor navegar entre as informações, se aprofundando quando julgar necessário.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kaleu.caminha.nom.br/blog/2009/11/23/casos-e-praticas-para-apropriacao-das-tics-por-ongs/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Lições da Room to Read sobre Desenvolvimento no Terceiro Setor</title>
		<link>http://www.kaleu.caminha.nom.br/blog/2009/11/20/licoes-da-room-to-read-sobre-desenvolvimento-no-terceiro-setor/</link>
		<comments>http://www.kaleu.caminha.nom.br/blog/2009/11/20/licoes-da-room-to-read-sobre-desenvolvimento-no-terceiro-setor/#comments</comments>
		<pubDate>Fri, 20 Nov 2009 04:43:49 +0000</pubDate>
		<dc:creator>kaleu</dc:creator>
				<category><![CDATA[ONG's]]></category>
		<category><![CDATA[projetos sociais]]></category>
		<category><![CDATA[Room to Read]]></category>

		<guid isPermaLink="false">http://www.kaleu.caminha.nom.br/blog/?p=450</guid>
		<description><![CDATA[Comentei em um texto anterior minha admiração por John Wood, um alto executivo da Microsoft que largou a carreira para construir escolas e bibliotecas no Nepal. Em seu livro conta histórias e oferece algumas lições valiosíssimas, e estas, quero compartilhar com vocês.
Apresente Resultados
A Microsoft (principalmente Steve Ballmer) ajudou John a sempre se manter focado em [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.leavingmicrosoftbook.com/author.html"><img class="alignleft size-full wp-image-459" title="John Wood" src="http://www.kaleu.caminha.nom.br/blog/wp-content/uploads/2009/11/book_scrum.jpg" alt="book_scrum" width="270" height="200" /></a><a href="http://www.kaleu.caminha.nom.br/blog/2009/11/20/john-wood-sai-da-microsoft-para-mudar-o-mundo/">Comentei em um texto anterior</a> minha admiração por <strong>John Wood</strong>, um alto executivo da Microsoft que largou a carreira para construir escolas e bibliotecas no Nepal. <a href="http://www.leavingmicrosoftbook.com/author.html">Em seu livro</a> conta histórias e oferece algumas lições valiosíssimas, e estas, quero compartilhar com vocês.</p>
<h3><strong>Apresente Resultados</strong></h3>
<p>A Microsoft (principalmente <a href="http://images.google.com.br/images?q=steve+ballmer&amp;oe=utf-8&amp;rls=com.ubuntu:pt-BR:unofficial&amp;client=firefox-a&amp;um=1&amp;ie=UTF-8&amp;ei=6xkGS639CMHClAf9sOifDA&amp;sa=X&amp;oi=image_result_group&amp;ct=title&amp;resnum=4&amp;ved=0CCEQsAQwAw">Steve Ballmer</a>) ajudou John a sempre se manter <strong>focado em resultados e números</strong>. Cedo ele percebeu que mostrar claramente para as pessoas o que era feito com o dinheiro doado as motivava a doar mais e a contar aos amigos sobre o projeto.</p>
<p>A Room to Read criou boletins trimestrais e listas de e-mail para informar constantemente aos doadores e interessados o que acontecia com o dinheiro recebido, além de reduzir ao máximo os custos com burocracia e tornar todo o processo <strong>transparente</strong> aos doadores.</p>
<h3><strong>Pensar Grande</strong></h3>
<p>Quando John ajudou a realizar a primeira biblioteca no Nepal ele pensou em todas as crianças que precisavam de bibliotecas e se perguntou por que não estender o projeto para outros países. Pensar grande foi o ponto de partida para que ele pudesse traçar planos ambiciosos e<strong> trazer para junto de si pessoas que também queriam realizar grandes coisa</strong>s.</p>
<p>Com metas altas também pode ser mais fácil atrair grandes investidores e a atenção da mídia.</p>
<h3><strong>Foco na Arrecadação de Verbas</strong></h3>
<p>John sempre soube que haviam muitas organizações filantrópicas, muitas idéias e projetos excelentes. Mas o que ele tinha como grande diferencial era a certeza que precisaria de muitos recursos para <strong>desenvolver os projetos que vislumbrava</strong>. Não adiantava ter boas idéias e trabalhar por uma causa sem antes se preocupar com a captação de recursos. Esse diferencial ajudou a Room to Read a crescer vertiginosamente logo nos primeiros dois anos e a construir mais de 290 escolas em poucos anos.</p>
<h3><strong>Permita que as pessoas sejam também &#8220;donas&#8221; do Projeto</strong></h3>
<p>Construir uma escola no Nepal custava em torno de 8.000 dólares. Esse valor permitia que <strong>muitos doadores patrocinassem escolas inteiras</strong> e dessem seus nomes a elas como forma de homenagear seus pais ou amigos. John lhes enviava fotos e contava histórias que permitiam aos doadores se sentirem parte do projeto. Outra grande força do modelo da Room to Read é a rede de voluntários que criava-se espontaneamente, sendo necessário apenas vontade e que as pessoas estivessem verdadeiramente de acordo com a filosofia e objetivos da ONG. Sem dúvida esse trabalho fazia com que os voluntários se sentissem altamente envolvidos, afinal, não eram controlados, estavam alí para poder <strong>exercer todo o seu potencial humano</strong>.</p>
<h3><strong>A comunidade precisa se sentir responsável</strong></h3>
<p>Muitas das escolas desenvolvidas pelo Room to Road tiveram mão de obra dos próprios moradores dos locais aonde eram construídas. Uma dessas escolas foi construída com a doação de 183 famílias da região, cada uma no valor equivalente a 5 dólares. Essa participação faz com que os projetos <strong>continuem rendendo frutos</strong> no médio e longo prazo pois a comunidade participa, apóia e continuará trabalhando para melhorar o que já existe.</p>
<p>Uma das histórias que mais me emocionou foi uma <strong>menina de 8 anos </strong>que arrecadou fundos junto aos familiares e amigos para a contrução de uma escola no Nepal. Após isso, ela desejou continuar fazendo ainda mais e organizou uma rifa para que arrecadasse o suficiente para construir outra escola.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kaleu.caminha.nom.br/blog/2009/11/20/licoes-da-room-to-read-sobre-desenvolvimento-no-terceiro-setor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>John Wood &#8211; Saí da Microsoft para Mudar o Mundo</title>
		<link>http://www.kaleu.caminha.nom.br/blog/2009/11/20/john-wood-sai-da-microsoft-para-mudar-o-mundo/</link>
		<comments>http://www.kaleu.caminha.nom.br/blog/2009/11/20/john-wood-sai-da-microsoft-para-mudar-o-mundo/#comments</comments>
		<pubDate>Fri, 20 Nov 2009 03:30:12 +0000</pubDate>
		<dc:creator>kaleu</dc:creator>
				<category><![CDATA[ONG's]]></category>

		<guid isPermaLink="false">http://www.kaleu.caminha.nom.br/blog/?p=452</guid>
		<description><![CDATA[A História de John Wood tem me impressionado, um homem que larga uma carreira bem sucedida para construir escolas no Nepal e que dedica toda a sua vida a esta missão merece muito respeito. Porém, ainda mais impressionante é como milhares de pessoas ao redor do mundo trabalharam para que a Room to Read pudesse [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.roomtoread.org/Page.aspx?pid=209"><img class="alignleft size-full wp-image-453" title="SAI_DA_MICROSOFT_PARA_MUDAR_O_MUNDO" src="http://www.kaleu.caminha.nom.br/blog/wp-content/uploads/2009/11/SAI_DA_MICROSOFT_PARA_MUDAR_O_MUNDO_1231242962P.jpg" alt="SAI_DA_MICROSOFT_PARA_MUDAR_O_MUNDO" width="200" height="301" /></a>A História de <strong>John Wood</strong> tem me impressionado, um homem que larga uma carreira bem sucedida para construir escolas no Nepal e que dedica toda a sua vida a esta missão merece muito respeito. Porém, ainda mais impressionante é como milhares de pessoas ao redor do mundo trabalharam para que a Room to Read pudesse construir <a href="http://www.roomtoread.org/Page.aspx?pid=283">mais de 700 escolas em países</a> como <a href="http://www.roomtoread.org/Page.aspx?pid=311">Nepal </a>e <a href="http://www.roomtoread.org/Page.aspx?pid=313">Sri Lanka</a>.</p>
<p>Além das escolas, a Room to Read <a href="http://www.roomtoread.org/Page.aspx?pid=284">financia os estudos de 6.800 meninas</a>, <a href="http://www.roomtoread.org/Page.aspx?pid=281">já construi mais de 7.000 bibliotecas</a>, <a href="http://www.roomtoread.org/Page.aspx?pid=282">publicou mais de 300 livros em linguagem local</a> e<a href="http://www.roomtoread.org/Page.aspx?pid=285"> já tem muitos outros projetos em andamento</a>.</p>
<p>Da mesma forma que este projeto e este grande homem tem me motivado e inspirado, espero que motive você também. Abaixo, fiz uma tradução livre da missão da Room to Read que espero, traga em todos que chegaram até aqui a vontade de também ir em busca do que podem fazer para ajudar a tornar este mundo um lugar ainda melhor.</p>
<p style="padding-left: 60px;"><strong>Missão da Room to Read</strong></p>
<p style="padding-left: 60px;"><em>Nós participamos com comunidades locais do começo ao fim para desenvolver um mundo que possibilite oportunidades educacionais de qualidade através de bibliotecas, literatura em linguagem local, construção de escolas e bolsas de estudos para meninas. Nós buscamos intervir cedo na vida das crianças com a crença de que a educação empodera as pessoas a melhorar as condições sócio-econômicas de suas famílias, comunidades, países e gerações futuras. Através das oportunidades que apenas a educação pode oferecer, nós nos esforçamos para quebrar o ciclo de pobreza, uma criança por vez.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.kaleu.caminha.nom.br/blog/2009/11/20/john-wood-sai-da-microsoft-para-mudar-o-mundo/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Desenvolvendo Plugins para o ExtJS</title>
		<link>http://www.kaleu.caminha.nom.br/blog/2009/11/10/desenvolvendo-plugins-para-o-extjs/</link>
		<comments>http://www.kaleu.caminha.nom.br/blog/2009/11/10/desenvolvendo-plugins-para-o-extjs/#comments</comments>
		<pubDate>Tue, 10 Nov 2009 17:39:56 +0000</pubDate>
		<dc:creator>kaleu</dc:creator>
				<category><![CDATA[ExtJS]]></category>

		<guid isPermaLink="false">http://www.kaleu.caminha.nom.br/blog/?p=445</guid>
		<description><![CDATA[Uma das formas que podemos usar para adicionar funcionalidades a componentes do ExtJS é pelo uso de plugins.
Um Plugin no ExtJS 2.3 é uma classe contendo um método &#8220;init&#8221; que será chamado logo após a inicialização do componente.
Exemplo de Plugin:

//Exibe um alerta com o ID do componente Plugado
PluginAlert = function&#40;&#41; &#123;
    return&#123;
 [...]]]></description>
			<content:encoded><![CDATA[<p>Uma das formas que podemos usar para adicionar funcionalidades a componentes do ExtJS é pelo uso de plugins.</p>
<p>Um Plugin no ExtJS 2.3 é <strong>uma classe contendo um método &#8220;init&#8221;</strong> que será chamado logo após a inicialização do componente.</p>
<p>Exemplo de Plugin:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #006600; font-style: italic;">//Exibe um alerta com o ID do componente Plugado</span>
PluginAlert <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000066; font-weight: bold;">return</span><span style="color: #009900;">&#123;</span>
        <span style="color: #006600; font-style: italic;">//Função executada após o &quot;initComponent&quot;</span>
        init<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>cmp<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            <span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'Plugin Executado para componente '</span><span style="color: #339933;">+</span>cmp.<span style="color: #660066;">getId</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Para usar um plugin, basta instanciá-lo como um <strong>ítem do array do atributo de configuração &#8220;plugins&#8221;</strong>.</p>
<p>Exemplo:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">new</span> Ext.<span style="color: #660066;">Panel</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>
            plugins<span style="color: #339933;">:</span> <span style="color: #009900;">&#91;</span>
                <span style="color: #003366; font-weight: bold;">new</span> PluginAlert<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
            <span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span>
            title<span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;Exemplo do Plugin de Alerta&quot;</span>
        <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span></pre></div></div>

<p>Simples não?<br />
Cabe apenas ao desenvolvedor encontrar formas criativas de trabalhar com o uso de plugins. A melhor forma que encontrei foi utilizá-los combinado ao uso de eventos dos componentes.</p>
<p>Abaixo segue outro exemplo de plugin que atualiza um painel a partir do conteúdo html de uma requisição AJAX:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #006600; font-style: italic;">// create namespace for plugins</span>
Ext.<span style="color: #003366; font-weight: bold;">namespace</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'Ext.ux'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #006600; font-style: italic;">/**
 * Ext.ux.PluginPanelUpdater Plugin para Ext.Panel
 * Atualiza HTML de um painel a partir de uma requisição AJAX.
 * @author  Kaléu Caminha
 * @date    10 de Novembro, 2008
 *
 * @class Ext.ux.PluginPanelUpdater
 * @extends Ext.util.Observable
 */</span>
<span style="color: #006600; font-style: italic;">//Construtor</span>
Ext.<span style="color: #660066;">ux</span>.<span style="color: #660066;">PluginPanelUpdater</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>config<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    Ext.<span style="color: #660066;">apply</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #339933;">,</span> config<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #006600; font-style: italic;">//Código do Plugin</span>
Ext.<span style="color: #660066;">extend</span><span style="color: #009900;">&#40;</span>Ext.<span style="color: #660066;">ux</span>.<span style="color: #660066;">PluginPanelUpdater</span><span style="color: #339933;">,</span> Ext.<span style="color: #660066;">util</span>.<span style="color: #660066;">Observable</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #006600; font-style: italic;">/**
     * A Função init é executada para todos os plugins após o &quot;initComponent&quot; do componente no qual o plugin é utilizado.
     */</span>
    init<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>panel<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #006600; font-style: italic;">//Adicionamos evento para quando o painel for renderizado</span>
        panel.<span style="color: #660066;">on</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;render&quot;</span><span style="color: #339933;">,</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">updatePanel</span><span style="color: #339933;">,</span> <span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">panel</span> <span style="color: #339933;">=</span> panel<span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
    <span style="color: #006600; font-style: italic;">/**
     * Usa um Updater para atualizar o html de um painel
     */</span>
    updatePanel<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #006600; font-style: italic;">//Pega Elemeneto</span>
        <span style="color: #003366; font-weight: bold;">var</span> el <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">panel</span>.<span style="color: #660066;">getEl</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #006600; font-style: italic;">//Se frame == true, adiciona conteúdo ao elemento body interno</span>
        <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>el.<span style="color: #660066;">child</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.x-panel-body'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
            el <span style="color: #339933;">=</span> el.<span style="color: #660066;">child</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.x-panel-body'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #006600; font-style: italic;">//Pega updater e realiza chamada do método update</span>
        el.<span style="color: #660066;">getUpdater</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">update</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>
            url<span style="color: #339933;">:</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">url</span><span style="color: #339933;">,</span>
            params<span style="color: #339933;">:</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">parms</span> <span style="color: #339933;">||</span> <span style="color: #009900;">&#123;</span><span style="color: #009900;">&#125;</span>
        <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Este tutorial foi baseado no <a href="http://www.extjs.com/learn/Tutorial:Writing_Ext_2_Plugins">tutorial oficial do ExtJS sobre desenvolvimento de Plugins</a>.</p>
<p><em>Update 12 de Novembro de 2009</em><br />
Foi publicado ontem <a href="http://www.extjs.com/blog/2009/11/11/advanced-plugin-development-with-ext-js/">um artigo no blog oficial do Ext sobre o desenvolvimento de plugins</a>, ressaltando a importância de seguir um padrão para que outros desenvolvedores possam extender as funcionalidades criadas por você. Ótima continuação para este post. <img src='http://www.kaleu.caminha.nom.br/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.kaleu.caminha.nom.br/blog/2009/11/10/desenvolvendo-plugins-para-o-extjs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Organizando Arquivos JavaScript</title>
		<link>http://www.kaleu.caminha.nom.br/blog/2009/11/10/organizando-arquivos-javascript/</link>
		<comments>http://www.kaleu.caminha.nom.br/blog/2009/11/10/organizando-arquivos-javascript/#comments</comments>
		<pubDate>Tue, 10 Nov 2009 16:14:50 +0000</pubDate>
		<dc:creator>kaleu</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[programação]]></category>

		<guid isPermaLink="false">http://www.kaleu.caminha.nom.br/blog/?p=262</guid>
		<description><![CDATA[Em Javascript existem 5 tipos básicos de funções que provavelmente você já se deparou, ou, com a popularização de interfaces ricas em javascript, irá se depararem em algum momento. São elas:

Requisições AJAX: Sejam elas através de frameworks ou pelos objetos default dos browsers;
Callbacks de Requisições: Toda requisição deverá estar associada a pelo menos uma função [...]]]></description>
			<content:encoded><![CDATA[<p>Em Javascript existem <strong>5 tipos básicos de funções</strong> que provavelmente você já se deparou, ou, com a popularização de interfaces ricas em javascript, irá se depararem em algum momento. São elas:</p>
<ul>
<li><strong>Requisições AJAX</strong>: Sejam elas através de frameworks ou pelos objetos default dos browsers;</li>
<li><strong>Callbacks de Requisições</strong>: Toda requisição deverá estar associada a pelo menos uma função de callback responsável por exibir o resultado da requisição, seja ele um erro, um aviso de sucesso ou a exibição de novas informações na interface;</li>
<li><strong>Tratamento de DOM</strong>: Para que qualquer informação seja exibida ao usuário (com exceção de prompts como &#8216;alert()&#8217;) o HTML e o CSS da página deverão ser alterados. Esta classe de funções inclui a alteração de classes, estilos, conteúdo texto e novos atributos HTML;</li>
<li><strong>Instanciação de Eventos</strong>: Para que interfaces ricas funcionem adequadamente, estas deverão receber comandos (ou eventos) a partir da interação do usuário, porém, em algum momento você terá que registrar estas ações aos elementos HTML correspondentes;</li>
<li><strong>Tratamento de Eventos</strong>: Gosto de chamar esta classe de funções de &#8220;Actions&#8221;, que asism como no modelo MVC, recebem interações do usuário com a interface.</li>
</ul>
<p>Ter esta separação dos tipos de atividades em JavaScript foi essencial para organizar os arquivos de classes e orientar o planejamento da arquitetura de software utilizada.</p>
<p>JavaScript é difícil de debugar, portanto é importante que se tenham padrões de programação e arquitetura bem definidos.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kaleu.caminha.nom.br/blog/2009/11/10/organizando-arquivos-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
