<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" version="2.0">

<channel>
	<title>Anderson Straube</title>
	
	<link>http://blog.andersonstraube.com</link>
	<description>Tecnologia e Desenvolvimento Web</description>
	<lastBuildDate>Tue, 03 Nov 2009 13:51:13 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/andersonstraube" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>Estamos contratando: Oportunidade para Desenvolvedor Web em Balneário Camboriú – SC</title>
		<link>http://blog.andersonstraube.com/2009/10/27/estamos-contratando-oportunidade-para-desenvolvedor-web/</link>
		<comments>http://blog.andersonstraube.com/2009/10/27/estamos-contratando-oportunidade-para-desenvolvedor-web/#comments</comments>
		<pubDate>Tue, 27 Oct 2009 18:58:04 +0000</pubDate>
		<dc:creator>Anderson Straube</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Emprego]]></category>
		<category><![CDATA[Vaga]]></category>

		<guid isPermaLink="false">http://blog.andersonstraube.com/?p=282</guid>
		<description><![CDATA[Somos uma empresa de tecnologia especializada em desenvolvimento web.Gostamos de analisar, de planejar, de desenvolver, gostamos de trabalhar em equipe, de discutir melhorias, de sugerir melhorias. Somos uma equipe!
Gostamos acima de tudo de satisfazer nossos clientes, de criar soluções modernas, bonitas e práticas, soluções funcionais, aquelas que irão, de fato, atender as necessidades dos nossos [...]]]></description>
			<content:encoded><![CDATA[<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; text-align: left; padding: 0px;">Somos uma empresa de tecnologia especializada em desenvolvimento web.<br style="padding: 0px; margin: 0px;" />Gostamos de analisar, de planejar, de desenvolver, gostamos de trabalhar em equipe, de discutir melhorias, de sugerir melhorias. Somos uma equipe!</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; text-align: left; padding: 0px;">Gostamos acima de tudo de satisfazer nossos clientes, de criar soluções modernas, bonitas e práticas, soluções funcionais, aquelas que irão, de fato, atender as necessidades dos nossos clientes e usuários, tanto pelo lado do negócio quanto pelo lado da implementação técnica. Gostamos de inovar!</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; text-align: left; padding: 0px;">Gostamos também de discutir novas técnicas, boas práticas, de buscar soluções, de buscar o aperfeiçoamento técnico e profissional, não apenas o nosso aperfeiçoamento, mas também o do setor, da sistemática de trabalho, do produto e etc. Queremos cada vez mais, ser bons no que fazemos! Queremos gerar soluções!</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; text-align: left; padding: 0px;">Somos seres humanos, erramos! E justamente por isto “nós testamos”!</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; text-align: left; padding: 0px;"><span id="more-282"></span></p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; text-align: left; padding: 0px;"><span id="more-93" style="padding: 0px; margin: 0px;"> </span></p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; text-align: left; padding: 0px;">Gostamos de ambiente ágil, mais preocupado com o software em si, do que com a burocracia. Mas não abrimos mão da qualidade do trabalho, do produto, tanto a qualidade externa (a parte mais visível da aplicação, o site e suas funcionalidades propriamente ditas), quanto a qualidade interna (padronização do código, arquitetura, reutilização de códigos, segurança, SQLs otimizados e etc.), afinal, performance, segurança e manutenibilidade pra nós, é requisito!</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; text-align: left; padding: 0px;">Se você se identificou com esta equipe, venha fazer parte dela!</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; text-align: left; padding: 0px;">A Imóvel PRO (<a style="color: #707070; text-decoration: underline; font-weight: 400; padding: 0px; margin: 0px;" href="http://www.imovelpro.com.br/" target="_blank">http://www.imovelpro.com.br</a>), empresa especializada em soluções em tecnologia para o mercado imobiliário, situada em Balneário Camboriú – SC, está com processo seletivo para a contratação de um Desenvolvedor Web nível pleno-sênior.</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; text-align: left; padding: 0px;"><strong>Dos requisitos para a vaga:</strong></p>
<ul style="margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 30px; color: #697c83; padding: 0px;">
<li style="padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; margin: 0px;">Conhecimento pleno-sênior em Desenvolvimento Web;</li>
<li style="padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; margin: 0px;">Conhecimento pleno em segurança para web (especialmente no que se refere à aplicações: SQL Injection, Session Hijacking, Cross-Site Scripting e etc.)</li>
<li style="padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; margin: 0px;">Conhecimento pleno em Orientação a Objetos;</li>
<li style="padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; margin: 0px;">Conhecimento pleno em SQL;</li>
<li style="padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; margin: 0px;">Conhecimentos intermediários em Arquitetura de Software Orientado a Objetos;</li>
<li style="padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; margin: 0px;">Conhecimentos básicos em Análise de Sistemas;</li>
<li style="padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; margin: 0px;">Conhecimentos básicos em coding standards;</li>
<li style="padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; margin: 0px;">Conhecimentos básicos em JavaScript;</li>
</ul>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; text-align: left; padding: 0px;"><strong>São um plus para a função:</strong></p>
<ul style="margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 30px; color: #697c83; padding: 0px;">
<li style="padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; margin: 0px;">Conhecimentos em TDD;</li>
<li style="padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; margin: 0px;">Conhecimentos em Flash/Action Script/Flash Remoting;</li>
<li style="padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; margin: 0px;">Conhecimentos em frameworks de desenvolvimento.</li>
</ul>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; text-align: left; padding: 0px;"><strong>Das atribuições da função:</strong></p>
<ul style="margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 30px; color: #697c83; padding: 0px;">
<li style="padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; margin: 0px;">O profissional deverá estar apto a desenvolver para web, com taxa nula ou baixa de re-trabalho;</li>
<li style="padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; margin: 0px;">O profissional deverá estar apto a fazer inspeção e publicação de códigos.</li>
</ul>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; text-align: left; padding: 0px;"><strong>A empresa oferece:</strong></p>
<ul style="margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 30px; color: #697c83; padding: 0px;">
<li style="padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; margin: 0px;">Contratação por CLT;</li>
<li style="padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; margin: 0px;">Remuneração compatível com a função;</li>
<li style="padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; margin: 0px;">Bom ambiente de trabalho;</li>
<li style="padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; margin: 0px;">Vale Transporte;</li>
<li style="padding-top: 2px; padding-right: 0px; padding-bottom: 2px; padding-left: 0px; margin: 0px;">Plano de saúde.</li>
</ul>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; text-align: left; padding: 0px;">Se interessou?<br style="padding: 0px; margin: 0px;" />Atende os requisitos?</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; text-align: left; padding: 0px;">Então envie seu curriculum para <a style="color: #707070; text-decoration: underline; font-weight: 400; padding: 0px; margin: 0px;" href="mailto:rh@imovelpro.com.br">rh@imovelpro.com.br</a></p>
<p>=============================================================<br />
Publicado originalmente no:  <a href="http://ronanlucio.wordpress.com/2009/10/23/estamos-contratando-oportunidade-para-desenvolvedor-web/" target="_blank">Ronan Lucio</a><br />
=============================================================</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.andersonstraube.com/2009/10/27/estamos-contratando-oportunidade-para-desenvolvedor-web/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Trabalhando com Custom Tags no Railo</title>
		<link>http://blog.andersonstraube.com/2009/10/17/trabalhando-com-custom-tags-no-railo/</link>
		<comments>http://blog.andersonstraube.com/2009/10/17/trabalhando-com-custom-tags-no-railo/#comments</comments>
		<pubDate>Sat, 17 Oct 2009 17:32:57 +0000</pubDate>
		<dc:creator>Anderson Straube</dc:creator>
				<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Railo]]></category>

		<guid isPermaLink="false">http://blog.andersonstraube.com/?p=260</guid>
		<description><![CDATA[Neste post irei mostrar com criar, configurar e usar uma Custom Tag no Railo.
* Custom Tags são trechos/templates de códigos escritos em CFML e são projetados para serem reutilizados. Custom Tags podem poupar muito tempo de desenvolvimento quando os códigos são usados com certa freqüência, além de serem fáceis para adicionar/remover funcionalidades.
Custom tags também podem [...]]]></description>
			<content:encoded><![CDATA[<p>Neste post irei mostrar com criar, configurar e usar uma Custom Tag no Railo.</p>
<p>* Custom Tags são trechos/templates de códigos escritos em CFML e são projetados para serem reutilizados. Custom Tags podem poupar muito tempo de desenvolvimento quando os códigos são usados com certa freqüência, além de serem fáceis para adicionar/remover funcionalidades.<br />
Custom tags também podem ser desenvolvidas em C++, Java, whatever&#8230;  Neste post eu apenas mostrarei como desenvolvê-lo através de código CFML.</p>
<p><span id="more-260"></span><br />
* Mais sobre Custom Tags, <a href="http://tinyurl.com/ms6dqw" target="_blank">neste post</a> do<a href="http://blog.pcsilva.com/" target="_blank"> Pedro Claudio</a>.</p>
<p>O primeiro passo é configurar o Web Admin do Railo para indicar a pasta a qual conterá suas custom tags.</p>
<p>1 &#8211; Acesse o Web Admin do Railo: http://dominio.com<strong>/railo-context/admin/web.cfm</strong></p>
<div id="attachment_261" class="wp-caption aligncenter" style="width: 453px"><a href="http://blog.andersonstraube.com/wp-content/uploads/2009/09/1-login.png" target="_blank"><img class="size-full wp-image-261 " title="Login Railo" src="http://blog.andersonstraube.com/wp-content/uploads/2009/09/1-login.png" alt="Login Railo" width="443" height="190" /></a><p class="wp-caption-text">Login Web Admin Railo</p></div>
<p>2 &#8211; No menu da esquerda selecione a opção &#8220;Custom tags&#8221;:</p>
<div id="attachment_262" class="wp-caption aligncenter" style="width: 192px"><img class="size-full wp-image-262" title="Menu Railo Admin" src="http://blog.andersonstraube.com/wp-content/uploads/2009/09/2-menu.png" alt="Menu Railo Admin" width="182" height="302" target="_blank"/><p class="wp-caption-text">Menu Admin Railo</p></div>
<p>3 &#8211; Em Resources insira o caminho da pasta onde conterá suas Custom Tags, depois clique em Update:</p>
<div id="attachment_263" class="wp-caption aligncenter" style="width: 310px"><a href="http://blog.andersonstraube.com/wp-content/uploads/2009/09/3-custom-tags.PNG" target="_blank"><img class="size-medium wp-image-263" title="Custom tags config" src="http://blog.andersonstraube.com/wp-content/uploads/2009/09/3-custom-tags-300x88.PNG" alt="Custom tags config" width="300" height="88" /></a><p class="wp-caption-text">Custom tags config</p></div>
<p>4 &#8211; Feito isso, vamos à parte de codificação:</p>
<p>* Utilizarei como exemplo o código do Google Analytics, pois normalmente ele é replicado por várias páginas de um site, dessa forma o uso da custom tag se justifica.</p>
<p>Copie o código abaixo e salve-o na pasta &#8220;/home/htdocs/railo/customtags/&#8221; (configurado no item 3 ou conforme o path que usar no seu sistema) com o nome de &#8220;googleAnalytics.cfm&#8221;:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p260code6'); return false;">View Code</a> CFM</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p2606"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
</pre></td><td class="code" id="p260code6"><pre class="cfm" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">&lt;!--- Este if é utilizado para evitar uma segunda execução do código (no caso de abrir tag ..conteudo.. fechar tag) ---&gt;</span>
<span style="color: #333333;"><span style="color: #0000FF;">&lt;</span><span style="color: #990000; font-weight: bold;">cfif</span> not request.bInited <span style="color: #0000FF;">&gt;</span></span>
&nbsp;
	<span style="color: #333333;"><span style="color: #0000FF;">&lt;</span><a href="http://december.com/html/4/element/script.html"><span style="color: #000000; font-weight: bold;">script</span></a> <span style="color: #0000FF;">src</span><span style="color: #0000FF;">=</span><span style="color: #009900;">&quot;http://www.google-analytics.com/ga.js&quot;</span> <span style="color: #0000FF;">type</span><span style="color: #0000FF;">=</span><span style="color: #009900;">&quot;text/javascript&quot;</span><span style="color: #0000FF;">&gt;</span></span><span style="color: #333333;"><span style="color: #0000FF;">&lt;/</span><a href="http://december.com/html/4/element/script.html"><span style="color: #000000; font-weight: bold;">script</span></a><span style="color: #0000FF;">&gt;</span></span>
	<span style="color: #333333;"><span style="color: #0000FF;">&lt;</span><a href="http://december.com/html/4/element/script.html"><span style="color: #000000; font-weight: bold;">script</span></a> <span style="color: #0000FF;">type</span><span style="color: #0000FF;">=</span><span style="color: #009900;">&quot;text/javascript&quot;</span><span style="color: #0000FF;">&gt;</span></span>
		if ( typeof _gat != &quot;undefined&quot; ) {
			var pageTracker = _gat._getTracker(&quot;UA-XXXXXXX-X&quot;);
			pageTracker._initData();
			pageTracker._trackPageview();
		}
	<span style="color: #333333;"><span style="color: #0000FF;">&lt;/</span><a href="http://december.com/html/4/element/script.html"><span style="color: #000000; font-weight: bold;">script</span></a><span style="color: #0000FF;">&gt;</span></span>
&nbsp;
<span style="color: #333333;"><span style="color: #0000FF;">&lt;/</span><span style="color: #990000; font-weight: bold;">cfif</span><span style="color: #0000FF;">&gt;</span></span>
&nbsp;
<span style="color: #333333;"><span style="color: #0000FF;">&lt;</span><span style="color: #990000; font-weight: bold;">cfset</span> request.bInited <span style="color: #0000FF;">=</span> true <span style="color: #0000FF;">/&gt;</span></span></pre></td></tr></table></div>

<p>5 &#8211; Para &#8220;chamar/incluir&#8221; a custom tag em qualquer página cfm, basta usar o seguinte código:</p>
<p>pagina.cfm:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p260code7'); return false;">View Code</a> CFM</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p2607"><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code" id="p260code7"><pre class="cfm" style="font-family:monospace;"><span style="color: #333333;"><span style="color: #0000FF;">&lt;</span><a href="http://december.com/html/4/element/h1.html"><span style="color: #000000; font-weight: bold;">h1</span></a><span style="color: #0000FF;">&gt;</span></span>Teste da Custom Tag<span style="color: #333333;"><span style="color: #0000FF;">&lt;/</span><a href="http://december.com/html/4/element/h1.html"><span style="color: #000000; font-weight: bold;">h1</span></a><span style="color: #0000FF;">&gt;</span></span>
&nbsp;
<span style="color: #808080; font-style: italic;">&lt;!--- Chamando a custom tag ---&gt;</span>
<span style="color: #333333;"><span style="color: #0000FF;">&lt;</span>cf_googleAnalytics <span style="color: #0000FF;">/&gt;</span></span></pre></td></tr></table></div>

<p>Executando &#8220;pagina.cfm&#8221;, resultará no seguinte código html:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p260code8'); return false;">View Code</a> HTML</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p2608"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
</pre></td><td class="code" id="p260code8"><pre class="html" style="font-family:monospace;">&lt;h1&gt;Teste da Custom Tag&lt;/h1&gt;
&nbsp;
&lt;script src=&quot;http://www.google-analytics.com/ga.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
	if ( typeof _gat != &quot;undefined&quot; ) {
		var pageTracker = _gat._getTracker(&quot;UA-XXXXXXX-X&quot;);
		pageTracker._initData();
		pageTracker._trackPageview();
	}
&lt;/script&gt;</pre></td></tr></table></div>

<p>* Na maioria das vezes precisamos enviar ou utilizar alguns parâmetros, isso também pode ser implementado na custom tag. Tomemos o mesmo exemplo do Google Analytics, porém passando como parâmetro o número da conta</p>
<p>googleAnalytics.cfm</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p260code9'); return false;">View Code</a> CFM</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p2609"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
</pre></td><td class="code" id="p260code9"><pre class="cfm" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">&lt;!--- Este parâmetro irá receber o número da conta do Analytics ---&gt;</span>
<span style="color: #333333;"><span style="color: #0000FF;">&lt;</span><span style="color: #990000; font-weight: bold;">cfparam</span> <span style="color: #0000FF;">name</span><span style="color: #0000FF;">=</span><span style="color: #009900;">&quot;attributes.conta&quot;</span> <span style="color: #0000FF;">default</span><span style="color: #0000FF;">=</span><span style="color: #009900;">&quot;&quot;</span> <span style="color: #0000FF;">/&gt;</span></span>
<span style="color: #333333;"><span style="color: #0000FF;">&lt;</span><span style="color: #990000; font-weight: bold;">cfparam</span> <span style="color: #0000FF;">name</span><span style="color: #0000FF;">=</span><span style="color: #009900;">&quot;request.bInited&quot;</span>  <span style="color: #0000FF;">default</span><span style="color: #0000FF;">=</span><span style="color: #009900;">&quot;false&quot;</span> <span style="color: #0000FF;">/&gt;</span></span>
&nbsp;
<span style="color: #808080; font-style: italic;">&lt;!--- Este if é utilizado para evitar uma segunda execução do código (no caso de abrir tag ..conteudo.. fechar tag) ---&gt;</span>
<span style="color: #333333;"><span style="color: #0000FF;">&lt;</span><span style="color: #990000; font-weight: bold;">cfif</span> not request.bInited <span style="color: #0000FF;">&gt;</span></span>
&nbsp;
	<span style="color: #333333;"><span style="color: #0000FF;">&lt;</span><a href="http://december.com/html/4/element/script.html"><span style="color: #000000; font-weight: bold;">script</span></a> <span style="color: #0000FF;">src</span><span style="color: #0000FF;">=</span><span style="color: #009900;">&quot;http://www.google-analytics.com/ga.js&quot;</span> <span style="color: #0000FF;">type</span><span style="color: #0000FF;">=</span><span style="color: #009900;">&quot;text/javascript&quot;</span><span style="color: #0000FF;">&gt;</span></span><span style="color: #333333;"><span style="color: #0000FF;">&lt;/</span><a href="http://december.com/html/4/element/script.html"><span style="color: #000000; font-weight: bold;">script</span></a><span style="color: #0000FF;">&gt;</span></span>
	<span style="color: #333333;"><span style="color: #0000FF;">&lt;</span><a href="http://december.com/html/4/element/script.html"><span style="color: #000000; font-weight: bold;">script</span></a> <span style="color: #0000FF;">type</span><span style="color: #0000FF;">=</span><span style="color: #009900;">&quot;text/javascript&quot;</span><span style="color: #0000FF;">&gt;</span></span>
		if ( typeof _gat != &quot;undefined&quot; ) {
			<span style="color: #808080; font-style: italic;">&lt;!--- Aqui eu coloco o valor do atributo, recebido como parâmetro ---&gt;</span>
			var pageTracker = _gat._getTracker(&quot;<span style="color: #333333;"><span style="color: #0000FF;">&lt;</span><span style="color: #990000; font-weight: bold;">cfoutput</span><span style="color: #0000FF;">&gt;</span></span><span style="color: #0000FF;">#attributes.conta#</span><span style="color: #333333;"><span style="color: #0000FF;">&lt;/</span><span style="color: #990000; font-weight: bold;">cfoutput</span><span style="color: #0000FF;">&gt;</span></span>&quot;);
			pageTracker._initData();
			pageTracker._trackPageview();
		}
	<span style="color: #333333;"><span style="color: #0000FF;">&lt;/</span><a href="http://december.com/html/4/element/script.html"><span style="color: #000000; font-weight: bold;">script</span></a><span style="color: #0000FF;">&gt;</span></span>
&nbsp;
<span style="color: #333333;"><span style="color: #0000FF;">&lt;/</span><span style="color: #990000; font-weight: bold;">cfif</span><span style="color: #0000FF;">&gt;</span></span>
&nbsp;
<span style="color: #333333;"><span style="color: #0000FF;">&lt;</span><span style="color: #990000; font-weight: bold;">cfset</span> request.bInited <span style="color: #0000FF;">=</span> true <span style="color: #0000FF;">/&gt;</span></span></pre></td></tr></table></div>

<p>Para chamá-la:</p>
<p>pagina.cfm:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p260code10'); return false;">View Code</a> CFM</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p26010"><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code" id="p260code10"><pre class="cfm" style="font-family:monospace;"><span style="color: #333333;"><span style="color: #0000FF;">&lt;</span><a href="http://december.com/html/4/element/h1.html"><span style="color: #000000; font-weight: bold;">h1</span></a><span style="color: #0000FF;">&gt;</span></span>Teste da Custom Tag<span style="color: #333333;"><span style="color: #0000FF;">&lt;/</span><a href="http://december.com/html/4/element/h1.html"><span style="color: #000000; font-weight: bold;">h1</span></a><span style="color: #0000FF;">&gt;</span></span>
&nbsp;
<span style="color: #808080; font-style: italic;">&lt;!--- Chamando a custom tag passando o número da conta como parâmetro ---&gt;</span>
<span style="color: #333333;"><span style="color: #0000FF;">&lt;</span>cf_googleAnalytics conta<span style="color: #0000FF;">=</span><span style="color: #009900;">&quot;UA-123456-7&quot;</span> <span style="color: #0000FF;">/&gt;</span></span></pre></td></tr></table></div>

<p>É isso aí pessoal, até a próxima.</p>
<p>Att,<br />
Anderson Straube</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.andersonstraube.com/2009/10/17/trabalhando-com-custom-tags-no-railo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TortoiseSVN (TSVNCache.exe) consumindo muito processamento?</title>
		<link>http://blog.andersonstraube.com/2009/08/07/tortoise-svn-tsvncache-exe-consumindo-muito-processamento/</link>
		<comments>http://blog.andersonstraube.com/2009/08/07/tortoise-svn-tsvncache-exe-consumindo-muito-processamento/#comments</comments>
		<pubDate>Fri, 07 Aug 2009 20:01:38 +0000</pubDate>
		<dc:creator>Anderson Straube</dc:creator>
				<category><![CDATA[SVN]]></category>
		<category><![CDATA[dicas]]></category>

		<guid isPermaLink="false">http://blog.andersonstraube.com/?p=250</guid>
		<description><![CDATA[Ultimamente tenho percebido um alto consumo de processamento e uso de memória por parte do TortoiseSVN, mais especificamente o processo TSVNCache.exe que é utilizado para mostrar os ícones no Explorer, bem como manter o cache dos arquivos do repositório.
Para otimizar o uso do disco, bem como o alto consumo de processamento e memória, há duas [...]]]></description>
			<content:encoded><![CDATA[<p>Ultimamente tenho percebido um alto consumo de processamento e uso de memória por parte do TortoiseSVN, mais especificamente o processo TSVNCache.exe que é utilizado para mostrar os ícones no Explorer, bem como manter o cache dos arquivos do repositório.</p>
<p>Para otimizar o uso do disco, bem como o alto consumo de processamento e memória, há duas maneiras:</p>
<li><strong>Marcar somente as pastas onde contém o repositório; ou</strong></li>
<li><strong>Desabilitar o cache do Tortoise.</strong></li>
<p> </p>
<h3>Opção 1: marcar somente as pastas de trabalho:</h3>
<ol>
<li>Dentro do explorer, clique com o botão direito para abrir o menu de contexto  e selecione a opção &#8220;TortoiseSVN -&gt; Settings&#8221;, conforme imagem abaixo:<br />
 </li>
<div id="attachment_251" class="wp-caption aligncenter" style="width: 374px"><img class="size-full wp-image-251" title="TortoiseSVN -&gt; Settings" src="http://blog.andersonstraube.com/wp-content/uploads/2009/08/1-setting.png" alt="TortoiseSVN -&gt; Settings" width="364" height="147" /><p class="wp-caption-text">TortoiseSVN -&gt; Settings</p></div>
<li>No menu da esquerda selecione a opção &#8220;Icon Overlays&#8221;;</li>
<li>Em &#8220;Exclude Paths&#8221;, informe o caminho onde <strong>não </strong>utiliza como repositório;</li>
<li>Em &#8220;Include Paths&#8221;, informe o caminho de seus repositórios:</li>
<p><div id="attachment_252" class="wp-caption aligncenter" style="width: 701px"><img class="size-full wp-image-252" title="2 - Icon Overlays" src="http://blog.andersonstraube.com/wp-content/uploads/2009/08/2-icon-overlays.png" alt="Icon Overlays" width="691" height="459" /><p class="wp-caption-text">Icon Overlays</p></div></ol>
<h3>Opção 2:  Desabilitar o cache:</h3>
<ol>
<li>Neste mesma tela  &#8221;Icon Overlays&#8221; (passo 2) em &#8220;Status cache&#8221; (parte superior),  selecione a opção &#8220;None&#8221;. </li>
</ol>
<p>Feito isso, reinicie o S.O. para que as alterações tenham efeito.</p>
<p>Um abraço.</p>
<p>Att,<br />
Anderson Straube</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.andersonstraube.com/2009/08/07/tortoise-svn-tsvncache-exe-consumindo-muito-processamento/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TDD com ColdFusion – Parte 1 (Instalação do MXUnit)</title>
		<link>http://blog.andersonstraube.com/2009/07/13/tdd-com-coldfusion-parte-1-instalacao-do-mxunit/</link>
		<comments>http://blog.andersonstraube.com/2009/07/13/tdd-com-coldfusion-parte-1-instalacao-do-mxunit/#comments</comments>
		<pubDate>Mon, 13 Jul 2009 16:56:44 +0000</pubDate>
		<dc:creator>Anderson Straube</dc:creator>
				<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[MXUnit]]></category>
		<category><![CDATA[Railo]]></category>
		<category><![CDATA[TDD]]></category>

		<guid isPermaLink="false">http://blog.andersonstraube.com/?p=240</guid>
		<description><![CDATA[Salve pessoal.
Começarei uma série de posts sobre TDD (Test Driven Development) com ColdFusion.
Como de início não poderia ser diferente, vamos começar com a instalação do framework de teste bem como o plugin para o Eclipse.
*Existem vários frameworks para teste unitário em ColdFusion, no entanto para os exemplos utilizarei o MXUnit por ser muito simples, prático [...]]]></description>
			<content:encoded><![CDATA[<p>Salve pessoal.</p>
<p>Começarei uma série de posts sobre <a title="TDD - Desenvolvimento Guiado por Testes" href="http://blog.andersonstraube.com/2008/09/13/tdd-desenvolvimento-guiado-por-testes/" target="_blank">TDD (Test Driven Development)</a> com ColdFusion.</p>
<p>Como de início não poderia ser diferente, vamos começar com a instalação do framework de teste bem como o plugin para o Eclipse.</p>
<p>*Existem vários frameworks para teste unitário em ColdFusion, no entanto para os exemplos utilizarei o <a href="http://mxunit.org/" target="_blank">MXUnit</a> por ser muito simples, prático e funcional.</p>
<blockquote><p><strong><a href="http://www.mxunit.org/doc/index.cfm?doc=whymxunit" target="_blank">Why MXUnit</a>?</strong><br />
At its core, MXUnit grew around the concept of making things easier for the person writing the tests. We believe people shy away from unit testing because the perception (sometimes justified!) is that it&#8217;s too inconvenient. We sought to change that.</p></blockquote>
<p><strong>Instalação do Framework:</strong></p>
<p>1 ) Baixe a última versão do MXUnit =&gt; (<a href="http://mxunit.org/download.cfm" target="_blank">http://mxunit.org/download.cfm</a>);</p>
<p>2) Descompacte o conteúdo dentro do webroot (&#8221;domínio/mxunit&#8221;);</p>
<p>3) Teste a instalação no http://servidor/mxunit/index.cfm. Deve aparecer uma tela semelhante à abaixo:</p>
<div id="attachment_241" class="wp-caption aligncenter" style="width: 862px"><img class="size-full wp-image-241" title="Instalacao" src="http://blog.andersonstraube.com/wp-content/uploads/2009/07/1-instalacao.png" alt="Instalacao MXUnit" width="852" height="301" /><p class="wp-caption-text">Instalacao MXUnit</p></div>
<p><strong>Instalação do Plugin para Eclipse:</strong></p>
<p>1) Com o Eclipse aberto, clique no menu &#8220;Help&#8221; &gt; &#8220;Software Updates&#8221;;</p>
<p>2) Com a tela do Software Updates aberta, clique em &#8220;Add Site&#8230;&#8221;  e insira a url do MXUnit =&gt; http://mxunit.org/update (conforme imagem abaixo):</p>
<div id="attachment_244" class="wp-caption aligncenter" style="width: 607px"><img class="size-full wp-image-244" title="2-instalacao-plugin-mxunit1" src="http://blog.andersonstraube.com/wp-content/uploads/2009/07/2-instalacao-plugin-mxunit1.png" alt="Instalação Plugin MXUnit" width="597" height="467" /><p class="wp-caption-text">Instalação Plugin MXUnit</p></div>
<p>3) Feito isso clique em &#8220;OK&#8221; e siga o trivial &#8220;NNF&#8221; (next -&gt; next -&gt; finish);</p>
<p>No próximo post pretendo explorar a parte de codificação.</p>
<p>Até a próxima.</p>
<p>Att,<br />
Anderson Straube</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.andersonstraube.com/2009/07/13/tdd-com-coldfusion-parte-1-instalacao-do-mxunit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHPSC Conf 2009</title>
		<link>http://blog.andersonstraube.com/2009/05/18/phpsc-conf-2009/</link>
		<comments>http://blog.andersonstraube.com/2009/05/18/phpsc-conf-2009/#comments</comments>
		<pubDate>Mon, 18 May 2009 12:07:41 +0000</pubDate>
		<dc:creator>Anderson Straube</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Evento]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blog.andersonstraube.com/?p=236</guid>
		<description><![CDATA[
Está no ar desde segunda (11) a divulgação oficial da PHPSC Conf 2009, bem como as inscrições.
Para quem vem ao evento de outras cidades, foi disponibilizado uma página com caravanas e caronas. Além disso, na página de divulgação oficial da PHPSC Conf 2009 você encontra sugestões de hotéis com descontos para o evento, e também [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.phpsc.com.br/phpsc-conf/pt/" target="_blank"><img class="aligncenter size-full wp-image-237" title="banner-phpsc" src="http://blog.andersonstraube.com/wp-content/uploads/2009/05/banner-phpsc.jpg" alt="banner-phpsc" width="468" height="60" /></a></p>
<p>Está no ar desde segunda (11) a divulgação oficial da <a class="external" title="PHPSC Conf 2009" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.phpsc.com.br/phpsc-conf/pt/');" href="http://www.phpsc.com.br/phpsc-conf/pt/" target="_blank"><acronym title="Grupo de usuários de PHP do estado de Santa Catarina">PHPSC</acronym> <acronym title="Conference">Conf</acronym> 2009</a>, bem como as <a class="external" title="PHPSC Conf 2009 - Inscrições" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.phpsc.com.br/phpscconf2009/inscricao.php');" href="http://www.phpsc.com.br/phpscconf2009/inscricao.php" target="_blank">inscrições</a>.</p>
<p>Para quem vem ao evento de outras cidades, foi disponibilizado uma página com <a class="external" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.phpsc.com.br/phpsc-conf/phpsc-conf-2009-caravanas-e-caronas/pt/');" href="http://www.phpsc.com.br/phpsc-conf/phpsc-conf-2009-caravanas-e-caronas/pt/" target="_blank">caravanas e caronas</a>. Além disso, na página de <a class="external" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.phpsc.com.br/phpsc-conf/pt/');" href="http://www.phpsc.com.br/phpsc-conf/pt/" target="_blank">divulgação oficial da <acronym title="Grupo de usuários de PHP do estado de Santa Catarina">PHPSC</acronym> <acronym title="Conference">Conf</acronym> 2009</a> você encontra sugestões de hotéis com descontos para o evento, e também <a class="external" title="PHPSC Conf 2009 - Mapa" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://tinyurl.com/phpscmap');" href="http://tinyurl.com/phpscmap" target="_blank">mapa com pontos de referência úteis</a>.</p>
<p><strong></strong> Confira a prévia para a <a class="external" title="PHPSC Conf 2009 - Grade de Palestras e Minicursos " onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.phpsc.com.br/phpscconf2009/grade.php');" href="http://www.phpsc.com.br/phpscconf2009/grade.php" target="_blank">grade de palestras e minicursos</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.andersonstraube.com/2009/05/18/phpsc-conf-2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Usando jQuery com outras bibliotecas</title>
		<link>http://blog.andersonstraube.com/2009/04/20/usando-jquery-com-outras-bibliotecas/</link>
		<comments>http://blog.andersonstraube.com/2009/04/20/usando-jquery-com-outras-bibliotecas/#comments</comments>
		<pubDate>Mon, 20 Apr 2009 20:21:26 +0000</pubDate>
		<dc:creator>Anderson Straube</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://blog.andersonstraube.com/?p=230</guid>
		<description><![CDATA[Estou fazendo alguns testes com o jQuery para utilizá-lo em um sistema interno para a empresa onde trabalho, porém como utilizamos o framework &#8220;ajaxCFC&#8221; e o mesmo usa a lib Prototype, tive alguns problemas de compatibilidade com o jQuery e o Prototype.
Tanto o Prototype quanto o jQuery utilizam um atalho global para suas funções, ou [...]]]></description>
			<content:encoded><![CDATA[<p>Estou fazendo alguns testes com o jQuery para utilizá-lo em um sistema interno para a empresa onde trabalho, porém como utilizamos o framework &#8220;<a href="http://www.robgonda.com/blog/projects/ajaxcfc/" target="_blank">ajaxCFC</a>&#8221; e o mesmo usa a lib Prototype, tive alguns problemas de compatibilidade com o jQuery e o Prototype.</p>
<p>Tanto o Prototype quanto o jQuery utilizam um atalho global para suas funções, ou seja &#8220;<strong>$</strong>&#8221; (cifrão), então quando faço o uso de <strong>$(&#8221;</strong>campo<strong>&#8220;)</strong> ele irá chamar a função da biblioteca que for carregada por último, ex.:</p>
<p>&lt;script src=&#8221;prototype.js&#8221;&gt;&lt;/script&gt;<br />
&lt;script src=&#8221;jquery.js&#8221;&gt;&lt;/script&gt;</p>
<p>Neste caso ele usaria as funções da lib jQuery.</p>
<p><strong>[ Problema ]</strong><br />
Vários códigos fazendo uso do Prototype, ex.: $(&#8221;campo_select&#8221;).value;</p>
<blockquote><p>Neste caso ocorrerá um erro (valor da função seria undefined), uma vez que a sintaxe correta do jQuery é <span style="font-family: Verdana;"><strong>$(&#8221;#campo_select&#8221;).val();</strong></span></p></blockquote>
<p><strong>[ Solução ]</strong><br />
Para usar o jQuery com qualquer outra biblioteca javascript, podemos setar um namespace/alias para ele, simplemesmente usando a função <strong>jQuery.noConflict()</strong>, dessa forma:</p>
<p>&lt;script src=&#8221;prototype.js&#8221;&gt;&lt;/script&gt;<br />
&lt;script src=&#8221;jquery.js&#8221;&gt;&lt;/script&gt;<br />
&lt;script&gt;<br />
&nbsp;&nbsp;<strong> var $j = jQuery.noConflict();</strong></p>
<p>&nbsp;&nbsp;// pegar o valor do select usando o jQuery<br />
&nbsp;&nbsp;$j(&#8221;#campo_select&#8221;).val();</p>
<p>&nbsp;&nbsp;// pegar o valor do select usando o Prototype<br />
&nbsp;&nbsp;$(&#8221;campo_select&#8221;).value;<br />
&lt;/script&gt;</p>
<p>*Mais informações <a href="http://docs.jquery.com/Using_jQuery_with_Other_Libraries" target="_blank">aqui</a>.</p>
<p>Pronto! Simples, rápido e indolor.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.andersonstraube.com/2009/04/20/usando-jquery-com-outras-bibliotecas/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>ColdFusion Web Day</title>
		<link>http://blog.andersonstraube.com/2009/04/08/coldfusion-web-day/</link>
		<comments>http://blog.andersonstraube.com/2009/04/08/coldfusion-web-day/#comments</comments>
		<pubDate>Wed, 08 Apr 2009 12:45:35 +0000</pubDate>
		<dc:creator>Anderson Straube</dc:creator>
				<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[Desenvolvimento]]></category>

		<guid isPermaLink="false">http://blog.andersonstraube.com/?p=223</guid>
		<description><![CDATA[
ColdFusion Web Day é o primeiro evento on-line totalmente dedicado ao compartilhamento de técnicas, conceito e mercado de uma das linguagens de programação web mais produtivas que existem.
Serão 5 horas de palestras com a participação de grandes nomes da comunidade ColdFusion brasileira, compartilhando o máximo e informações sobre ColdFusion, o seu mercado no Brasil, funcionalidades, [...]]]></description>
			<content:encoded><![CDATA[<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="194" height="193" 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://www.cfwebday.com/cfwd2009/assets/banner_cfwebday.swf" /><embed type="application/x-shockwave-flash" width="194" height="193" src="http://www.cfwebday.com/cfwd2009/assets/banner_cfwebday.swf" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p><strong>ColdFusion Web Day</strong> é o primeiro evento on-line totalmente dedicado ao compartilhamento de técnicas, conceito e mercado de uma das linguagens de programação web mais produtivas que existem.</p>
<p>Serão 5 horas de palestras com a participação de grandes nomes da comunidade ColdFusion brasileira, compartilhando o máximo e informações sobre ColdFusion, o seu mercado no Brasil, funcionalidades, produtividade, novidades e futuras versões.</p>
<p>O evento será realizado no dia <strong>11 de Abril de 2009</strong> a partir das 13:30, e será totalmente on-line e <strong>gratuíto</strong>. Para isto, basta deixar seu nome e email através do menu “Quero participar”. No dia do evento basta acessar a sala de palestras através do link Acesso que estará disponível nesta mesma página.</p>
<p>Não fique de fora desta e conheça todos os diferenciais de uma das linguagens mais usadas para o desenvolvimento de aplicações ricas para a internet. <a href="http://cfwebday.com/cfwd2009/index.cfm/02/mais-sobre-o-coldfusion">Conheça o ColdFusion</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.andersonstraube.com/2009/04/08/coldfusion-web-day/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como alterar a URL do seu repositório SVN no TortoiseSVN</title>
		<link>http://blog.andersonstraube.com/2009/02/04/como-alterar-a-url-do-seu-repositorio-svn-no-tortoisesvn/</link>
		<comments>http://blog.andersonstraube.com/2009/02/04/como-alterar-a-url-do-seu-repositorio-svn-no-tortoisesvn/#comments</comments>
		<pubDate>Wed, 04 Feb 2009 13:28:45 +0000</pubDate>
		<dc:creator>Anderson Straube</dc:creator>
				<category><![CDATA[SVN]]></category>

		<guid isPermaLink="false">http://blog.andersonstraube.com/?p=205</guid>
		<description><![CDATA[Se você está migrando ou precisa alterar o endereço do repositório do controle de versões (Subversion) e usa o TortoiseSVN há 2 formas para tal:
1 &#8211; Através da linha de comando:
svn switch &#8211;relocate &#60;da URL&#62; &#60;para a URL&#62;
2 &#8211; Através da interface do TortoiseSVN:
Passo 1:

Passo 2:

Pronto.
]]></description>
			<content:encoded><![CDATA[<p>Se você está migrando ou precisa alterar o endereço do repositório do controle de versões (<a href="http://subversion.tigris.org/" target="_blank">Subversion</a>) e usa o <a href="http://tortoisesvn.tigris.org/" target="_blank">TortoiseSVN</a> há 2 formas para tal:</p>
<p>1 &#8211; Através da linha de comando:</p>
<blockquote><p>svn switch &#8211;relocate &lt;da URL&gt; &lt;para a URL&gt;</p></blockquote>
<p>2 &#8211; Através da interface do <a href="http://tortoisesvn.tigris.org/" target="_blank">TortoiseSVN</a>:</p>
<p>Passo 1:</p>
<p><img class="aligncenter size-full wp-image-207" title="TortoiseSVN" src="http://blog.andersonstraube.com/wp-content/uploads/2009/02/1.png" alt="" width="500" height="419" /></p>
<p>Passo 2:</p>
<p><img class="aligncenter size-full wp-image-208" title="2" src="http://blog.andersonstraube.com/wp-content/uploads/2009/02/2.png" alt="" width="455" height="171" /></p>
<p>Pronto.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.andersonstraube.com/2009/02/04/como-alterar-a-url-do-seu-repositorio-svn-no-tortoisesvn/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Multiple queries within the cfquery with JDBC connector</title>
		<link>http://blog.andersonstraube.com/2009/01/09/multiple-queries-within-the-cfquery-with-jdbc-connector/</link>
		<comments>http://blog.andersonstraube.com/2009/01/09/multiple-queries-within-the-cfquery-with-jdbc-connector/#comments</comments>
		<pubDate>Fri, 09 Jan 2009 19:10:05 +0000</pubDate>
		<dc:creator>Anderson Straube</dc:creator>
				<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[JDBC]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Railo]]></category>

		<guid isPermaLink="false">http://blog.andersonstraube.com/?p=196</guid>
		<description><![CDATA[By default the driver of MySQL Connector / JDBC does not allow multiple queries within the cfquery, just for security reasons.
To work is only add a parameter in the connection, eg.:
jdbc:mysql://my-domain:3306/databasename?allowMultiQueries=true
Greetings,
Anderson Straube
]]></description>
			<content:encoded><![CDATA[<p>By default the driver of MySQL Connector / JDBC does not allow multiple queries within the cfquery, just for security reasons.</p>
<p>To work is only add a parameter in the connection, eg.:</p>
<blockquote><p>jdbc:mysql://my-domain:3306/databasename?<strong>allowMultiQueries=true</strong></p></blockquote>
<p>Greetings,<br />
Anderson Straube</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.andersonstraube.com/2009/01/09/multiple-queries-within-the-cfquery-with-jdbc-connector/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Múltiplas queries dentro da cfquery com o JDBC connector</title>
		<link>http://blog.andersonstraube.com/2009/01/09/multiplas-queries-dentro-da-cfquery-com-o-jdbc/</link>
		<comments>http://blog.andersonstraube.com/2009/01/09/multiplas-queries-dentro-da-cfquery-com-o-jdbc/#comments</comments>
		<pubDate>Fri, 09 Jan 2009 18:56:46 +0000</pubDate>
		<dc:creator>Anderson Straube</dc:creator>
				<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[JDBC]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Railo]]></category>
		<category><![CDATA[dicas]]></category>

		<guid isPermaLink="false">http://blog.andersonstraube.com/?p=192</guid>
		<description><![CDATA[Por padrão o driver do MySQL Connector /JDBC não permite múltiplas queries dentro da cfquery, justamente por motivos de segurança.
Mas tem como resolver isso passando um parâmetro na conexão, ex.:
jdbc:mysql://dominio-ou-ip:3306/databasename?allowMultiQueries=true
Valeu.
Att,
Anderson Straube
]]></description>
			<content:encoded><![CDATA[<p>Por padrão o driver do MySQL Connector /JDBC não permite múltiplas queries dentro da cfquery, justamente por motivos de segurança.</p>
<p>Mas tem como resolver isso passando um parâmetro na conexão, ex.:</p>
<blockquote><p>jdbc:mysql://dominio-ou-ip:3306/databasename?<strong>allowMultiQueries=true</strong></p></blockquote>
<p>Valeu.</p>
<p>Att,<br />
Anderson Straube</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.andersonstraube.com/2009/01/09/multiplas-queries-dentro-da-cfquery-com-o-jdbc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Configurar a conexão do Railo com o MySQL</title>
		<link>http://blog.andersonstraube.com/2009/01/09/configurar-a-conexao-do-railo-com-o-mysql/</link>
		<comments>http://blog.andersonstraube.com/2009/01/09/configurar-a-conexao-do-railo-com-o-mysql/#comments</comments>
		<pubDate>Fri, 09 Jan 2009 12:01:29 +0000</pubDate>
		<dc:creator>Anderson Straube</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Railo]]></category>

		<guid isPermaLink="false">http://blog.andersonstraube.com/?p=175</guid>
		<description><![CDATA[No post anterior, mostrei como configurar a conexão do ColdFusion com o MySQL, neste iremos ver como se faz a mesma configuração porém para o Railo Server:
1 &#8211; Acesse o Web Administrator do Railo (pra quem não sabe o Railo possui 2 ambientes administrativos, um é para configurar o servidor como um todo, ou melhor [...]]]></description>
			<content:encoded><![CDATA[<p>No <a title="Configurar a conexão do ColdFusion com o MySQL" href="http://blog.andersonstraube.com/2008/12/20/configurar-a-conexao-do-coldfusion-com-o-mysql/" target="_blank">post anterior</a>, mostrei como configurar a conexão do ColdFusion com o MySQL, neste iremos ver como se faz a mesma configuração porém para o Railo Server:</p>
<p>1 &#8211; Acesse o Web Administrator do Railo (pra quem não sabe o Railo possui 2 ambientes administrativos, um é para configurar o servidor como um todo, ou melhor todas as configurações que fizer nele refletirá em todos os sites hospedados, por exemplo: se eu criar um datasource com o nome de &#8220;conexao_mysql&#8221; este estará disponível em todos os sites hospedados no Railo. O outro ambiente administrativo é o Web Admin onde cada alteração feita será refletida somente para aquele domínio, isso é um ponto bem interessante para a segurança da aplicação).</p>
<p>Por padrão o Web Admin é acesso através do railo-context:</p>
<p>http://dominio.com.br<strong>/railo-context/admin/web.cfm</strong></p>
<div id="attachment_177" class="wp-caption aligncenter" style="width: 510px"><img class="size-full wp-image-177" title="1-login-railo" src="http://blog.andersonstraube.com/wp-content/uploads/2009/01/1-login-railo.png" alt="Login do Web Admin do Railo" width="500" height="384" /><p class="wp-caption-text">Login do Web Admin do Railo</p></div>
<p><span id="more-175"></span>2 &#8211; Clique no menu SERVICES e selecione Datasource:</p>
<div id="attachment_178" class="wp-caption aligncenter" style="width: 152px"><img class="size-full wp-image-178" title="2-menu" src="http://blog.andersonstraube.com/wp-content/uploads/2009/01/2-menu.png" alt="Menu do railo" width="142" height="308" /><p class="wp-caption-text">Menu do railo</p></div>
<p>3 &#8211; Informe o nome do DSN, neste caso eu coloquei “conexao”, e informe o Driver de acesso ao banco de dados conforme figura abaixo:</p>
<div id="attachment_179" class="wp-caption aligncenter" style="width: 406px"><img class="size-full wp-image-179" title="3-create-new-datasource" src="http://blog.andersonstraube.com/wp-content/uploads/2009/01/3-create-new-datasource.png" alt="Create new datasource" width="396" height="279" /><p class="wp-caption-text">Create new datasource</p></div>
<p>4 &#8211; Preencha os dados conforme suas configurações, indicando o nome da base de dados, servidor, usuário e senha previamente configurado:</p>
<p><img class="aligncenter size-full wp-image-180" title="4-create-new-datasource" src="http://blog.andersonstraube.com/wp-content/uploads/2009/01/4-create-new-datasource.png" alt="" width="465" height="428" /></p>
<p>5 &#8211; Tal como o ColdFusion o Railo tem um esquema de permissões de SQL, onde é possível configurar o datasource para bloquear alguns SQL que considero crítico (tal como DROP, Create, Grant, Revoke…), independente se o usuário do banco de dados é root. Isso é interessante para evitar ataques de SQL INJECTION:</p>
<div id="attachment_181" class="wp-caption aligncenter" style="width: 464px"><img class="size-full wp-image-181" title="5-allowed-operations" src="http://blog.andersonstraube.com/wp-content/uploads/2009/01/5-allowed-operations.png" alt="Permita somente os SQL's que irá utilizar " width="454" height="207" /><p class="wp-caption-text">Permita somente os SQL&#39;s que irá utilizar </p></div>
<blockquote><p>Uma dica interessante é ter 2 datasources, sendo um deles com permissão somente para SELECT (que seria usado na maioria das vezes), e para aqueles casos onde é necessário gravar, alterar ou excluir algum registro usa o segundo dsn com permissão para tal.</p></blockquote>
<p>6 &#8211; Informe o Charset de conexão, normalmente será ISO-8859-1, porém se puder prefira trabalhar com UTF8:</p>
<div id="attachment_182" class="wp-caption aligncenter" style="width: 478px"><img class="size-full wp-image-182" title="6-charset" src="http://blog.andersonstraube.com/wp-content/uploads/2009/01/6-charset.png" alt="Charset" width="468" height="171" /><p class="wp-caption-text">Charset</p></div>
<p>7 &#8211; Feito isso clique no botão &#8220;update&#8221;, depois selecione a conexão e clique em &#8220;verify&#8221; para certificar que a conexão está funcionando:</p>
<div id="attachment_183" class="wp-caption aligncenter" style="width: 510px"><img class="size-full wp-image-183" title="7-datasources" src="http://blog.andersonstraube.com/wp-content/uploads/2009/01/7-datasources.png" alt="Datasources" width="500" height="116" /><p class="wp-caption-text">Datasources</p></div>
<p>8 &#8211; Pronto!</p>
<div id="attachment_184" class="wp-caption aligncenter" style="width: 510px"><img class="size-full wp-image-184" title="8-verify" src="http://blog.andersonstraube.com/wp-content/uploads/2009/01/8-verify.png" alt="Teste ok!" width="500" height="116" /><p class="wp-caption-text">Teste ok!</p></div>
<p>Pronto! Para usar esta conexão basta colocar na tag &lt;cfquery<span style="color: #ffffff;"> </span><strong>datasource</strong>=”<strong>conexao</strong>“&gt;</p>
<p>Valeu.</p>
<p>Um abraço.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.andersonstraube.com/2009/01/09/configurar-a-conexao-do-railo-com-o-mysql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Documentação do ActionScript 3.0 em português</title>
		<link>http://blog.andersonstraube.com/2008/12/20/documentacao-do-actionscript-30-em-portugues/</link>
		<comments>http://blog.andersonstraube.com/2008/12/20/documentacao-do-actionscript-30-em-portugues/#comments</comments>
		<pubDate>Sat, 20 Dec 2008 13:51:36 +0000</pubDate>
		<dc:creator>Anderson Straube</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[documentação]]></category>

		<guid isPermaLink="false">http://blog.andersonstraube.com/?p=171</guid>
		<description><![CDATA[Já está disponível a documentação on-line bem como, o PDF para download do Action Script 3 em português.
Segundo a Adobe:

Documentação do ActionScript 3.0
Este manual fornece os conceitos da linguagem de programação do ActionScript 3.0 além de detalhes e amostras da implementação ilustrando importante recursos de linguagem. Entretanto, este manual não é uma referência completa quanto [...]]]></description>
			<content:encoded><![CDATA[<p>Já está disponível a <a href="http://help.adobe.com/pt_BR/ActionScript/3.0_ProgrammingAS3/" target="_blank">documentação on-line</a> bem como, o <a href="http://help.adobe.com/pt_BR/ActionScript/3.0_ProgrammingAS3/flash_as3_programming.pdf" target="_blank">PDF para download</a> do Action Script 3 em português.</p>
<p>Segundo a Adobe:</p>
<blockquote>
<h4 class="topictitle2">Documentação do ActionScript 3.0</h4>
<p>Este manual fornece os conceitos da linguagem de programação do ActionScript 3.0 além de detalhes e amostras da implementação ilustrando importante recursos de linguagem. Entretanto, este manual não é uma referência completa quanto à linguagem. Para isso, consulte Referência dos componentes e da linguagem do ActionScript 3.0, que descreve cada classe, método, propriedade e evento na linguagem. A Referência de componentes e linguagem do ActionScript 3.0 fornece informações de referência detalhadas sobre a linguagem principal, os componentes da ferramenta de autoria do Flash (nos pacotes fl) e as APIs do Flash Player e do Adobe AIR (nos pacotes flash).</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://blog.andersonstraube.com/2008/12/20/documentacao-do-actionscript-30-em-portugues/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Configurar a conexão do ColdFusion com o MySQL</title>
		<link>http://blog.andersonstraube.com/2008/12/20/configurar-a-conexao-do-coldfusion-com-o-mysql/</link>
		<comments>http://blog.andersonstraube.com/2008/12/20/configurar-a-conexao-do-coldfusion-com-o-mysql/#comments</comments>
		<pubDate>Sat, 20 Dec 2008 12:07:17 +0000</pubDate>
		<dc:creator>Anderson Straube</dc:creator>
				<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://blog.andersonstraube.com/?p=156</guid>
		<description><![CDATA[Para efetuar uma conexão do ColdFusion com qualquer banco de dados é necessário criar um Data Source, neste post irei explicar como configurá-lo para trabalhar com o MySQL, mas que serve como base para outros bancos de dados.
1 &#8211; Primeiramente vamos entrar no ambiente administrativo do CF:
- Se você instalou a configuração padrão, o endereço [...]]]></description>
			<content:encoded><![CDATA[<p>Para efetuar uma conexão do ColdFusion com qualquer banco de dados é necessário criar um <strong>Data Source</strong>, neste post irei explicar como configurá-lo para trabalhar com o MySQL, mas que serve como base para outros bancos de dados.</p>
<p>1 &#8211; Primeiramente vamos entrar no ambiente administrativo do CF:</p>
<p>- Se você instalou a configuração padrão, o endereço é: <a href="http://localhost:8500/cfide/administrator/index.cfm  " target="_blank">http://localhost:8500/cfide/administrator/index.cfm</a></p>
<blockquote><p><span id="more-156"></span></p>
<p><img class="aligncenter size-full wp-image-157" title="Admin CF" src="http://blog.andersonstraube.com/wp-content/uploads/2008/12/1-admin.png" alt="" width="500" height="317" /></p></blockquote>
<p>2 &#8211; Clique no menu DATA &amp; SERVICES e selecione Data Sources:</p>
<blockquote>
<div id="attachment_158" class="wp-caption aligncenter" style="width: 227px"><img class="size-full wp-image-158" title="Data Sources" src="http://blog.andersonstraube.com/wp-content/uploads/2008/12/2-menu-datasources.png" alt="Data Sources" width="217" height="143" /><p class="wp-caption-text">Data Sources</p></div></blockquote>
<p>3 &#8211; Informe o nome do DSN, neste caso eu coloquei &#8220;conexao&#8221;, e informe o Driver de acesso ao banco de dados conforme figura abaixo:</p>
<blockquote>
<div id="attachment_159" class="wp-caption aligncenter" style="width: 510px"><img class="size-full wp-image-159" title="3-add-new-data-source" src="http://blog.andersonstraube.com/wp-content/uploads/2008/12/3-add-new-data-source.png" alt="Add new data source" width="500" height="262" /><p class="wp-caption-text">Add New Data Source</p></div></blockquote>
<p>4 &#8211; Para evitar problemas com acentuação vamos configurar o charset da conexão. Para tanto clique em &#8220;Show Advanced Settings&#8221;:</p>
<blockquote>
<div id="attachment_161" class="wp-caption aligncenter" style="width: 510px"><img class="size-full wp-image-161" title="4-show-advanced-setting" src="http://blog.andersonstraube.com/wp-content/uploads/2008/12/4-show-advanced-setting.png" alt="Show Advanced Setting" width="500" height="324" /><p class="wp-caption-text">Show Advanced Setting</p></div></blockquote>
<p>5 &#8211; Preencha os dados conforme suas configurações, indicando o nome da base de dados, servidor, usuário e senha previamente configurado:</p>
<blockquote>
<img class="size-full wp-image-162" title="5-dados" src="http://blog.andersonstraube.com/wp-content/uploads/2008/12/5-dados.png" alt="Configuração" width="500" height="503" />
<p>Em &#8220;<strong>Connection String</strong>&#8221; coloque: &#8220;<strong>useUnicode=true&amp;characterEncoding=iso-8859-1</strong>&#8220;. Isso é necessário para evitar problemas com acentuação.</p></blockquote>
<p>6 &#8211; O ColdFusion tem um esquema de permissões de SQL, onde é possível configurar o datasource para bloquear alguns SQL que considero crítico (tal como DROP, Create, Grant, Revoke&#8230;), independente se o usuário do banco de dados é root. Isso é interessante para evitar ataques de SQL INJECTION:</p>
<div id="attachment_166" class="wp-caption aligncenter" style="width: 510px"><img class="size-full wp-image-166" title="6-configuracao" src="http://blog.andersonstraube.com/wp-content/uploads/2008/12/6-configuracao.png" alt="" width="500" height="526" /><p class="wp-caption-text">Permita somente os SQL&#39;s que irá utilizar </p></div>
<blockquote><p>Uma dica interessante é ter 2 datasources, sendo um deles com permissão somente para SELECT (que seria usado na maioria das vezes), e para aqueles casos onde é necessário gravar, alterar ou excluir algum registro usa o segundo dsn com permissão para tal.</p></blockquote>
<p>7 &#8211; Clique no botão &#8220;Submit&#8221; para salvar as alterações:</p>
<div id="attachment_167" class="wp-caption aligncenter" style="width: 503px"><img class="size-full wp-image-167" title="7-ok" src="http://blog.andersonstraube.com/wp-content/uploads/2008/12/7-ok.png" alt="data source updated successfully" width="493" height="260" /><p class="wp-caption-text">data source updated successfully</p></div>
<p>Pronto! Para usar esta conexão basta colocar na tag &lt;cfquery<span style="color: #ffffff;"> </span><strong>datasource</strong>=&#8221;<strong>conexao</strong>&#8220;&gt;</p>
<p>Valeu.</p>
<p>Um abraço.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.andersonstraube.com/2008/12/20/configurar-a-conexao-do-coldfusion-com-o-mysql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Free ColdFusion Hosting</title>
		<link>http://blog.andersonstraube.com/2008/12/09/free-coldfusion-hosting/</link>
		<comments>http://blog.andersonstraube.com/2008/12/09/free-coldfusion-hosting/#comments</comments>
		<pubDate>Tue, 09 Dec 2008 17:27:43 +0000</pubDate>
		<dc:creator>Anderson Straube</dc:creator>
				<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[host]]></category>

		<guid isPermaLink="false">http://blog.andersonstraube.com/?p=153</guid>
		<description><![CDATA[Hamad Amaral, postou na cf-brasil o link de uma notícia excelente para nós desenvolvedores CFML e achei interessante postar aqui também. Trata-se de um host Free ColdFusion.
O texto abaixo foi retirado do post original, disponível em http://co.ldfusion.com/index.cfm/2008/12/1/Free-ColdFusion-Hosting:

Free ColdFusion Hosting
I have given a firm release date for the new Free ColdFusion Hosting; A lot of people [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.hamad.com.br/blog" target="_blank">Hamad Amaral</a>, <a href="http://groups.google.com/group/cfbrasil/browse_frm/thread/6119b7c23c07e14a" target="_blank">postou na cf-brasil</a> o link de uma notícia excelente para nós desenvolvedores CFML e achei interessante postar aqui também. Trata-se de um host Free ColdFusion.</p>
<p>O texto abaixo foi retirado do post original, disponível em <a href="http://co.ldfusion.com/index.cfm/2008/12/1/Free-ColdFusion-Hosting" target="_blank">http://co.ldfusion.com/index.cfm/2008/12/1/Free-ColdFusion-Hosting</a>:</p>
<hr />
<h3><strong>Free ColdFusion Hosting</strong></h3>
<p>I have given a firm release date for the new Free ColdFusion Hosting; A lot of people have been waiting for this site to launch; and the date I will be openning the doors is January 1st, 2009.</p>
<p>This will allow you to have the following with your account:</p>
<ol>
<li>25MB of space</li>
<li>ColdFusion MX 8 &#8211; Enterprise</li>
<li>(1) MS Access Database</li>
<li>(1) MS SQL 2005 Database</li>
<li>Access to CFFILE, CFDIRECTORY and other tags</li>
<li>Your own domain name [i.e.  http://www.mysite.com]</li>
<li>Your own subdomain [i.e. http://mysite.freecoldfusionhosting.com]</li>
<li>FTP Access</li>
<li>and much more&#8230;</li>
</ol>
<p>Stay tuned to this blog for future updates and notices on the service&#8230; I wanted to start the new year with a bang; Free ColdFusion Hosting will give it just that&#8230; A bang!</p>
<p>more to come!</p>
<hr />Agora não é mais desculpa!!!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.andersonstraube.com/2008/12/09/free-coldfusion-hosting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Reunião de Fim de Ano no CFUGBR</title>
		<link>http://blog.andersonstraube.com/2008/12/01/reuniao-de-fim-de-ano-no-cfugbr/</link>
		<comments>http://blog.andersonstraube.com/2008/12/01/reuniao-de-fim-de-ano-no-cfugbr/#comments</comments>
		<pubDate>Mon, 01 Dec 2008 11:52:48 +0000</pubDate>
		<dc:creator>Anderson Straube</dc:creator>
				<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[Desenvolvimento]]></category>

		<guid isPermaLink="false">http://blog.andersonstraube.com/?p=151</guid>
		<description><![CDATA[Próxima reunião será no dia dia 06/12/2008 no Café com o Tom, as 15:00 hs.
A palestra tem por objetivo demonstrar a integração entre o ColdFusion e o LiveCyce Data Services através do Flex 3, desde as configurações necessárias a utilização das extenções do Coldfusion para Eclipse.
E teremos como palestrante Francisco Paulino, Tofinha. Adobe Community Expert, [...]]]></description>
			<content:encoded><![CDATA[<p>Próxima reunião será no dia <strong><a href="http://www.treinatom.com.br/cafe-com-o-tom" target="_blank">dia 06/12/2008 no Café com o Tom, as 15:00 hs</a></strong>.</p>
<p>A palestra tem por objetivo demonstrar a integração entre o ColdFusion e o LiveCyce Data Services através do Flex 3, desde as configurações necessárias a utilização das extenções do Coldfusion para Eclipse.</p>
<p>E teremos como palestrante Francisco Paulino, Tofinha. Adobe Community Expert, entusiasta ColdFusion.</p>
<p><a href="http://www.treinatom.com.br/cafe-com-o-tom" target="_blank"><img style="display: block;" src="http://www.cfugbr.com/images/banners/eventos/cfug_treinatom_apoios.gif" alt="" width="460" /><br />
<img style="display: block;" src="http://www.cfugbr.com/images/banners/eventos/cfug_treinatom.gif" alt="" width="460" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.andersonstraube.com/2008/12/01/reuniao-de-fim-de-ano-no-cfugbr/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SnipEx Server – Servidor de snippets</title>
		<link>http://blog.andersonstraube.com/2008/11/24/snipex-server-servidor-de-snippets/</link>
		<comments>http://blog.andersonstraube.com/2008/11/24/snipex-server-servidor-de-snippets/#comments</comments>
		<pubDate>Mon, 24 Nov 2008 20:04:56 +0000</pubDate>
		<dc:creator>Anderson Straube</dc:creator>
				<category><![CDATA[CFEclipse]]></category>
		<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[SnipEx]]></category>
		<category><![CDATA[snippet]]></category>

		<guid isPermaLink="false">http://blog.andersonstraube.com/?p=134</guid>
		<description><![CDATA[No post anterior eu falei sobre Snippet &#8211; Templates de código para o CFEclipse onde vimos as vantagens da utilização deste.
O objetivo deste post é falar sobre SnipEx Server, que nada mais é do que uma forma de armazenar seus snippet&#8217;s em um servidor.
Isso é muito útil por vários motivos, por exemplo: compartilhamento de snippet&#8217;s entre [...]]]></description>
			<content:encoded><![CDATA[<p>No <a href="http://blog.andersonstraube.com/2008/09/17/snippet-templates-de-codigo-para-o-cfeclipse/" target="_blank">post anterior</a> eu falei sobre <a title="Snippet  - Templates de código para o CFEclipse" rel="bookmark" href="http://blog.andersonstraube.com/2008/09/17/snippet-templates-de-codigo-para-o-cfeclipse/" target="_blank">Snippet &#8211; Templates de código para o CFEclipse</a> onde vimos as vantagens da utilização deste.</p>
<p>O objetivo deste post é falar sobre SnipEx Server, que nada mais é do que uma forma de armazenar seus snippet&#8217;s em um servidor.</p>
<p>Isso é muito útil por vários motivos, por exemplo: compartilhamento de snippet&#8217;s entre os membros da sua equipe, padronização dos blocos de código, uma vez que boa parte deles estão no servidor os membros da equipe o utilizarão e conseqüentemente você terá um código mais padronizado, estará ganhando produtividade, além de backup dos templates de código, enfim&#8230; há vários motivos benéficos para tal utilização.</p>
<p>Vamos à pratica:</p>
<p><span id="more-134"></span></p>
<ol>
<li>Faça o download do script aqui:<a href="http://snipex.riaforge.org/"><span style="text-decoration: none; color: #000000;"> </span></a><a href="http://snipex.riaforge.org/">http://snipex.riaforge.org/</a> (ele é responsável por enviar e receber os snippet&#8217;s do servidor).</li>
<blockquote><p>Descompacte o arquivo e abra a pasta &#8220;db&#8221; onde contém o arquivo sql para criar as tabelas necessárias para armazenar nossos snippet&#8217;s. Com a tabela criada no banco de dados entre no administrativo do ColdFusion/Railo e adicione um novo DSN para conectar a este banco de dados.</p></blockquote>
<li>Abra o arquivo Application.cfc e altere o nome a variável &#8220;application.dsn&#8221; ( linha 8 ) para o nome do DSN criado anteriormente.</li>
<blockquote><p>Na linha 9, a variável &#8220;application.moderate&#8221; se estiver setada como &#8220;true&#8221;, indica que a publicação de um snippet no servidor será feita manualmente, ou seja se alguém criar e enviar um snippet através do eclipse este não será publicado enquanto o responsável não publicá-la manualmente (alterando o campo &#8220;published&#8221; do banco de dados-&gt; tabela &#8220;snip&#8221;).</p></blockquote>
<li>Crie uma pasta pública no seu servidor (sugestão: &#8220;/cfsnipex&#8221;) e envie os arquivos &#8220;Application.cfc&#8221; e &#8220;SnipEx.cfc&#8221; para a mesma.</li>
<li>Com o Eclipse aberto, selecione a perspectiva &#8220;cfeclipse&#8221; e abra a janela &#8220;Snip Tree View&#8221;. (se não sabe como fazer isso <a title="Snippet  - Templates de código para o CFEclipse" href="http://blog.andersonstraube.com/2008/09/17/snippet-templates-de-codigo-para-o-cfeclipse/" target="_blank">veja aqui</a> os passos 1, 2 e 3).</li>
<li>Com a janela do Snip Tree View aberta, clique no menu da direita e selecione a opção &#8220;Edit SnipEx Servers&#8221;, conforme figura abaixo:
<p><div id="attachment_136" class="wp-caption aligncenter" style="width: 250px"><a href="http://blog.andersonstraube.com/wp-content/uploads/2008/10/1.png"><img class="size-full wp-image-136" title="1" src="http://blog.andersonstraube.com/wp-content/uploads/2008/10/1.png" alt="Edit SnipEx Server" width="240" height="220" /></a><p class="wp-caption-text">Edit SnipEx Server</p></div></li>
<li>Insira a URL do servidor onde está o SnipEX.cfc:
<p><div id="attachment_138" class="wp-caption aligncenter" style="width: 499px"><img class="size-full wp-image-138" title="Url para o SnipEx" src="http://blog.andersonstraube.com/wp-content/uploads/2008/11/2.png" alt="SnipEx URL" width="489" height="389" /><p class="wp-caption-text">SnipEx URL</p></div></li>
<li>Crie uma pasta no SnipexServer (botão direito &gt; Create Folder):
<p><div id="attachment_139" class="wp-caption aligncenter" style="width: 257px"><img class="size-full wp-image-139" title="Criar pasta" src="http://blog.andersonstraube.com/wp-content/uploads/2008/11/3.png" alt="Create Folder" width="247" height="138" /><p class="wp-caption-text">Create Folder</p></div></li>
<li>Agora vamos criar um snippet que posteriormente será enviado para o servidor (fiz um exemplo bem simples do SWFObject):&lt;script type=&#8221;text/javascript&#8221;&gt;<br />
var so = new SWFObject(&#8221;$${url:arquivo.swf}&#8221;, &#8220;&#8221;, &#8220;$${width:}&#8221;, &#8220;$${height:}&#8221;, &#8220;8&#8243;, &#8220;&#8221;);<br />
so.addParam(&#8221;menu&#8221;, &#8220;false&#8221;);<br />
so.useExpressInstall(&#8217;/swf/expressinstall.swf&#8217;);<br />
so.write();<br />
&lt;/script&gt;</p>
<p><div id="attachment_140" class="wp-caption aligncenter" style="width: 497px"><img class="size-full wp-image-140" title="New snippet" src="http://blog.andersonstraube.com/wp-content/uploads/2008/11/4.png" alt="New snippet" width="487" height="580" /><p class="wp-caption-text">New snippet</p></div></li>
<li>Com o Snippet criado vamos exportar para o servidor (botão direito sobre o snippet &gt;&gt; Export to SnipEx server):
<p><div id="attachment_141" class="wp-caption aligncenter" style="width: 244px"><img class="size-full wp-image-141" title="Export to SnipEx Server" src="http://blog.andersonstraube.com/wp-content/uploads/2008/11/5.png" alt="Export to SnipEx Server" width="234" height="103" /><p class="wp-caption-text">Export to SnipEx Server</p></div></li>
<li>Informe os dados para exportação e clique em &#8220;next&#8221;:
<p><div id="attachment_142" class="wp-caption aligncenter" style="width: 488px"><img class="size-full wp-image-142" title="Export" src="http://blog.andersonstraube.com/wp-content/uploads/2008/11/6.png" alt="Export" width="478" height="369" /><p class="wp-caption-text">Export</p></div></li>
<li>Próximo passo selecione a pasta para qual deseja exportar:
<p><div id="attachment_144" class="wp-caption aligncenter" style="width: 378px"><img class="size-full wp-image-144" title="Selecione a pasta" src="http://blog.andersonstraube.com/wp-content/uploads/2008/11/7.png" alt="Selecione a pasta" width="368" height="320" /><p class="wp-caption-text">Selecione a pasta</p></div></li>
<li>Pronto!
<p><div id="attachment_147" class="wp-caption aligncenter" style="width: 232px"><img class="size-full wp-image-147" title="Snippet exportado" src="http://blog.andersonstraube.com/wp-content/uploads/2008/11/8.png" alt="Snippet exportado" width="222" height="285" /><p class="wp-caption-text">Snippet exportado</p></div></li>
</ol>
<p>Valeu.</p>
<p>Um abraço.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.andersonstraube.com/2008/11/24/snipex-server-servidor-de-snippets/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Snippet  – Templates de código para o CFEclipse</title>
		<link>http://blog.andersonstraube.com/2008/09/17/snippet-templates-de-codigo-para-o-cfeclipse/</link>
		<comments>http://blog.andersonstraube.com/2008/09/17/snippet-templates-de-codigo-para-o-cfeclipse/#comments</comments>
		<pubDate>Wed, 17 Sep 2008 21:02:26 +0000</pubDate>
		<dc:creator>Anderson Straube</dc:creator>
				<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[CFEclipse]]></category>
		<category><![CDATA[snippet]]></category>

		<guid isPermaLink="false">http://blog.andersonstraube.com/?p=94</guid>
		<description><![CDATA[Um recurso muito interessante no CFEclipse é a possibilidade de criar templates de códigos. Isso é muito útil para aqueles códigos onde você os utiliza com certa freqüência, além disso é bem interessante para criar uma padronização na sua equipe, ex.: templates para comentários (estilo javadoc, phpdoc&#8230;), templates para testes unitários, consulta ou conexão com [...]]]></description>
			<content:encoded><![CDATA[<p>Um recurso muito interessante no <a href="http://www.cfeclipse.org/" target="_blank">CFEclipse </a>é a possibilidade de criar templates de códigos. Isso é muito útil para aqueles códigos onde você os utiliza com certa freqüência, além disso é bem interessante para criar uma padronização na sua equipe, ex.: templates para comentários (estilo javadoc, phpdoc&#8230;), templates para testes unitários, consulta ou conexão com o banco de dados, atalhos para algum framework, etc&#8230; Isso evitará que o desenvolvedor perca tempo procurando ou digitando algum código que poderia estar em um lugar de fácil acesso de maneira prática e rápida.</p>
<p>Bem, a propaganda já foi feita&#8230; vamos ver na prática como ela funciona:</p>
<blockquote><p>Para utilizar este recurso é necessário ter instalado o plugin do CFEclipse, caso não saiba como instalar, veja aqui: <a title="Instalando Eclipse + CFEclipse" rel="bookmark" href="../2008/07/10/instalando-eclipse-cfeclipse/?PHPSESSID=fd58cbae9a76f6e814c49886e1c562a9" target="_blank">Instalando Eclipse + CFEclipse.</a></p></blockquote>
<p><span id="more-94"></span></p>
<p>1 &#8211; Abra a perspectiva do CFEclipse conforme a figura abaixo:</p>
<div id="attachment_97" class="wp-caption aligncenter" style="width: 338px"><img class="size-full wp-image-97" title="1-perspectiva" src="http://blog.andersonstraube.com/wp-content/uploads/2008/09/1-perspectiva.png" alt="Perspectiva CFEclipse" width="328" height="168" /><p class="wp-caption-text">Perspectiva CFEclipse</p></div>
<p>2 &#8211; Selecione &#8220;Snip Tree View&#8221;=&gt; Window &gt; Show View &gt; Snip Tree View:</p>
<div id="attachment_98" class="wp-caption aligncenter" style="width: 473px"><img class="size-full wp-image-98" title="2-select-snip-treeview" src="http://blog.andersonstraube.com/wp-content/uploads/2008/09/2-select-snip-treeview.png" alt="Selecione Snip Tree View" width="463" height="486" /><p class="wp-caption-text">Selecione Snip Tree View</p></div>
<p>3 &#8211; Snip Tree View selecionada:</p>
<div id="attachment_100" class="wp-caption aligncenter" style="width: 231px"><img class="size-full wp-image-100" title="3-snip-treeview" src="http://blog.andersonstraube.com/wp-content/uploads/2008/09/3-snip-treeview1.png" alt="Snip Tree View" width="221" height="229" /><p class="wp-caption-text">Snip Tree View</p></div>
<p>4 &#8211; Vamos criar uma pasta para nossos snippets (vamos chamá-la de &#8220;MySnippets&#8221;):</p>
<div id="attachment_101" class="wp-caption aligncenter" style="width: 229px"><img class="size-full wp-image-101" title="4-create-snippets" src="http://blog.andersonstraube.com/wp-content/uploads/2008/09/4-create-snippets.png" alt="Create new snip package" width="219" height="258" /><p class="wp-caption-text">Create new snip package</p></div>
<p>5 &#8211; Vamos criar um novo snip (selecione a pasta que acabaste de criar e clique no botão &#8220;+&#8221; conforme a figura abaixo, ou com o menu de contexto):</p>
<div id="attachment_102" class="wp-caption aligncenter" style="width: 198px"><img class="size-full wp-image-102" title="5-create-new-snip" src="http://blog.andersonstraube.com/wp-content/uploads/2008/09/5-create-new-snip.png" alt="Create a new snip" width="188" height="139" /><p class="wp-caption-text">Create a new snip</p></div>
<p>6 &#8211; Insira os dados conforme a figura abaixo:</p>
<div class="mceTemp mceIEcenter" style="text-align: left;">
<div id="attachment_103" class="wp-caption aligncenter" style="width: 497px"><a href="http://blog.andersonstraube.com/wp-content/uploads/2008/09/6-new-snippet.png"><img class="size-full wp-image-103" title="6-new-snippet" src="http://blog.andersonstraube.com/wp-content/uploads/2008/09/6-new-snippet.png" alt="New Snippet" width="487" height="578" /></a><p class="wp-caption-text">New Snippet </p></div>
<p><strong>Snippet name</strong>: nome do snippet<br />
<strong>Trigger text</strong>: é usado como se fosse um atalho (mais adiante você verá)<br />
<strong>Snippet Description</strong>: descrição do snipet (aqui não pode contar acentos nem o cedilha)<br />
<strong>Snippet starting block:</strong> é o código propriamente dito, aqui vai o código inicial do *bloco<br />
<strong>Snippet closing block</strong>: *bloco final do código<br />
*<em>Bloco</em> inicial e final do código (starting/closing) nós veremos mais adiante como utilizá-lo.</p>
<p>Em Snippet start block vamos inserir nosso template de código HML (depois pressione OK):</p>
<blockquote><p>&lt;!DOCTYPE HTML PUBLIC &#8220;-//W3C//DTD HTML 4.01 Transitional//EN&#8221;&gt;<br />
&lt;html&gt;<br />
&lt;head&gt;<br />
&lt;title&gt;$${title:Insira o titulo da pagina aqui}&lt;/title&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;</p>
<p>&lt;/body&gt;<br />
&lt;/html&gt;</p></blockquote>
<blockquote><p>Onde &#8220;<strong>$${title:Insira o titulo da pagina aqui}</strong>&#8220;: significa que ao inserir esse snippet será solicitado uma caixa de diálogo (mais adiante você verá sua utilização).</p></blockquote>
</div>
<p>7 &#8211; Pronto, nosso snippet já está criado:</p>
<div id="attachment_105" class="wp-caption aligncenter" style="width: 301px"><img class="size-full wp-image-105" title="7-snippet-criado" src="http://blog.andersonstraube.com/wp-content/uploads/2008/09/7-snippet-criado.png" alt="Snippet criado" width="291" height="373" /><p class="wp-caption-text">Nosso snippet para template de código html criado</p></div>
<p>Vamos testá-lo agora:</p>
<p>Crie um arquivo cfm (File New &gt; CFML Page), com este arquivo aberto dê 2 cliques no nosso snippet recém-criado (caso a aba do Snip Tree View não esteja visível veja o passo nº 2 acima para reexibí-la).</p>
<p>Será mostrado uma caixa de diálogo conforme a figura abaixo:</p>
<div id="attachment_106" class="wp-caption aligncenter" style="width: 306px"><img class="size-full wp-image-106" title="8-insert-snippet" src="http://blog.andersonstraube.com/wp-content/uploads/2008/09/8-insert-snippet.png" alt="Inserir Snippet" width="296" height="109" /></dt>
</dl>
</div>
<blockquote><p>Lembra do &#8220;<strong>$${title:Insira o titulo da pagina aqui}</strong>&#8220;, pois é, ele é utilizado justamente exibir essa caixa da figura.</p></blockquote>
<p>Legal, nosso template está funcionado <img src='http://blog.andersonstraube.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<div class="mceTemp mceIEcenter">
<dl id="attachment_107" class="wp-caption aligncenter" style="width: 510px;">
<dt class="wp-caption-dt"><img class="size-full wp-image-107" title="9-snippet-inserido" src="http://blog.andersonstraube.com/wp-content/uploads/2008/09/9-snippet-inserido.png" alt="Snippet inserido no nosso código" width="500" height="215" /><p class="wp-caption-text">Snippet inserido no nosso código</p></div>
<h3>Lembra do <strong>Trigger text?</strong></h3>
<p>Digite &#8220;<strong>html</strong>&#8221; no arquivo cfm e pressione &#8220;<strong>Ctrl+J</strong>&#8220;&#8230; tchran:</p>
<div id="attachment_108" class="wp-caption aligncenter" style="width: 373px"><img class="size-full wp-image-108" title="10-trigger-snippet" src="http://blog.andersonstraube.com/wp-content/uploads/2008/09/10-trigger-snippet.png" alt="Trigger Snippet" width="363" height="229" /><p class="wp-caption-text">Trigger Snippet</p></div>
<h3>E do <strong>snippet starting/closing</strong>?</h3>
<p>Insira um novo snippet conforme a figura abaixo:</p>
<div id="attachment_110" class="wp-caption aligncenter" style="width: 412px"><img class="size-full wp-image-110" title="11-new-snippet-div" src="http://blog.andersonstraube.com/wp-content/uploads/2008/09/11-new-snippet-div.png" alt="New snippet div" width="402" height="582" /><p class="wp-caption-text">New snippet div</p></div>
<p>Para usá-lo, insira no seu código o conteúdo que terá dentro da div e selecione-o, logo após dê 2 cliques no snippet para adicioná-lo ao nosso código, ex.:</p>
<div id="attachment_112" class="wp-caption aligncenter" style="width: 510px"><img class="size-full wp-image-112" title="12-insert-snippet" src="http://blog.andersonstraube.com/wp-content/uploads/2008/09/12-insert-snippet.png" alt="Insert Snippet" width="500" height="533" /><p class="wp-caption-text">Insert Snippet</p></div>
<p>Experimente usar esse snippet abaixo e veja como fica a janela de diálogo:</p>
<blockquote><p>&lt;!&#8212;&#8212;&#8212;<br />
* Function: set$${Variable Name:}<br />
* @return $${Return Type:any|array|binary|boolean|date|guid|numeric|query|string|struct|uuid|xml|void}<br />
&#8212;&#8212;&#8212;&gt;<br />
&lt;cffunction name=&#8221;set$${Variable Name:}&#8221; access=&#8221;public&#8221; returntype=&#8221;void&#8221; output=&#8221;false&#8221; displayname=&#8221;set$${Variable Name:}&#8221; hint=&#8221;Seta o valor da variavel $${Variable Name:}&#8221;&gt;</p>
<p>&lt;/cffunction&gt;</p>
<p>&lt;!&#8212;&#8212;&#8212;<br />
* Function: get$${Variable Name:}<br />
* @return $${Return Type:any|array|binary|boolean|date|guid|numeric|query|string|struct|uuid|xml|void}<br />
&#8212;&#8212;&#8212;&gt;<br />
&lt;cffunction name=&#8221;get$${Variable Name:}&#8221; access=&#8221;public&#8221; returntype=&#8221;$${Return Type:any|array|binary|boolean|date|guid|numeric|query|string|struct|uuid|xml|void}&#8221; output=&#8221;false&#8221; displayname=&#8221;get$${Variable Name:}&#8221; hint=&#8221;Pega o valor da variavel $${Variable Name:}.&#8221;&gt;</p>
<p>&lt;/cffunction&gt;</p></blockquote>
<p>Já deu para ter uma noção de como criar e utilizar os snippets, agora é só usar e abusar dele.</p>
<p>Fica aí a dica.</p>
<p>Um abraço.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.andersonstraube.com/2008/09/17/snippet-templates-de-codigo-para-o-cfeclipse/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TDD – Desenvolvimento Guiado por Testes</title>
		<link>http://blog.andersonstraube.com/2008/09/13/tdd-desenvolvimento-guiado-por-testes/</link>
		<comments>http://blog.andersonstraube.com/2008/09/13/tdd-desenvolvimento-guiado-por-testes/#comments</comments>
		<pubDate>Sat, 13 Sep 2008 14:29:40 +0000</pubDate>
		<dc:creator>Anderson Straube</dc:creator>
				<category><![CDATA[TDD]]></category>
		<category><![CDATA[XP]]></category>

		<guid isPermaLink="false">http://blog.andersonstraube.com/?p=87</guid>
		<description><![CDATA[Desenvolvimento Guiado por Testes (Test Driven Development), ou simplesmente TDD, consiste numa técnica de desenvolvimento de software onde primeiro são criados os testes abrangendo a melhoria desejada e/ou novas funcionalidades e somente depois é implementado o código necessário para passar por eles. A disponibilidade de testes antes do código propriamente dito garante um desenvolvimento rápido [...]]]></description>
			<content:encoded><![CDATA[<p>Desenvolvimento Guiado por Testes (Test Driven Development), ou simplesmente <strong>TDD</strong>, consiste numa técnica de desenvolvimento de software onde primeiro são criados os testes abrangendo a melhoria desejada e/ou novas funcionalidades e somente depois é implementado o código necessário para passar por eles. A disponibilidade de testes antes do código propriamente dito garante um desenvolvimento rápido e um feedback sobre qualquer mudança. Não somente maximiza a qualidade do seu código, como também simplifica o processo de desenvolvimento além do aumento da produtividade.<br />
O TDD é uma das práticas do XP (Extreme Programming), e foram formuladas por Kent Beck e Ron Jeffries a partir de suas experiências. O Extreme Programming (XP) é uma metodologia de desenvolvimento de software que visa criar sistemas de melhor qualidade e produzidos em menos tempo. As idéias gerais por trás do XP são simplificar o processo de desenvolvimento de software e manter um processo contínuo de desenvolvimento em um ciclo curto, ou seja, desenvolver entregáveis em períodos curtos (iterações) que forneçam um feedback constante do estado do software.  (Nos próximos post’s pretendo abordar a filosofia e algumas práticas do XP).</p>
<p>Vejamos como é o ciclo do <strong>TDD</strong>:</p>
<p><span id="more-87"></span></p>
<ol>
<li><strong>Crie um teste:</strong> cada nova funcionalidade deve começar com um teste escrito. Este teste deve falhar antes mesmo da funcionalidade ser implementada. Por isso é importante conhecer claramente os requisitos e especificações da nova funcionalidade. (Isso também vale para correção de bug’s onde se deve sempre escrever os testes primeiro, para só então alterar o código propriamente dito).</li>
<li><strong>Execute todos os testes</strong>: você saberá que a rotina de testes está funcionando corretamente e que o novo teste não passou sem que o teste da funcionalidade tenha sido implementada.</li>
<li><strong>Escreva o código:</strong> escreva o código que irá passar naquele teste que você criou na etapa anterior. Não se preocupe muito com o “design” do código neste momento, é muito importante que este código implementado reflita somente o teste escrito.</li>
<li><strong>Execute novamente todos os testes:</strong> se todos os testes passarem, você terá certeza que o código atende todos os requisitos testados e que esta nova funcionalidade não afetou outras partes do sistema.</li>
<li><strong>Refatore o código:</strong> vá ajustando/otimizando o código se for necessário. Lembre-se de executar os testes constantemente durante esta etapa, pois só assim saberá se o sistema não foi modificado da maneira incorreta. Mantenha o hábito da refatoração constante em seus códigos e não tenha medo das mudanças, afinal os testes existem para isso.</li>
</ol>
<p>TDD é um processo iterativo e você repete estes passos inúmeras vezes até que fique satisfeito com o novo código.</p>
<p>A maneira que o TDD trabalha é através de requisitos, ou casos de uso que são decompostos em um conjunto de comportamentos que são premissa para atender o requisito. Para cada comportamento do sistema, a primeira coisa a se fazer é escrever um teste unitário que irá testar este comportamento. O teste unitário primeiro, portanto temos um conjunto bem definido de critérios que podemos utilizar para mensurar a quantidade de código necessário que foi escrito para implementar este comportamento. Um dos benefícios de se escrever o teste primeiro é que ele ajuda a definir o comportamento do sistema de uma maneira mais clara e responder algumas perguntas do modelo.</p>
<p>Quando se implementa testes unitários depois do código estar pronto, você tende a implementar testes de baixa qualidade, pois você inconscientemente escreve um teste para rodar no código produzido, e o correto seria o contrário, seu código é que deveria passar no teste previamente implementado.</p>
<p>Os testes, quando devidamente escritos, oferecem uma certa &#8220;garantia&#8221; de que a aplicação está funcionando da maneira como deveria.</p>
<p>E não esqueça: “Se testar é bom, vamos testar toda hora!”.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.andersonstraube.com/2008/09/13/tdd-desenvolvimento-guiado-por-testes/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Railo – Engine CFML</title>
		<link>http://blog.andersonstraube.com/2008/09/09/railo-engine-cfml/</link>
		<comments>http://blog.andersonstraube.com/2008/09/09/railo-engine-cfml/#comments</comments>
		<pubDate>Tue, 09 Sep 2008 20:04:45 +0000</pubDate>
		<dc:creator>Anderson Straube</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Railo]]></category>

		<guid isPermaLink="false">http://blog.andersonstraube.com/?p=67</guid>
		<description><![CDATA[O acrônimo CFML significa (ColdFusion Markup Language) é uma linguagem de programação web (não-proprietária) tal como PHP, JSP, entre outras&#8230; ela é uma linguagem baseada em tags, o que proporciona um desenvolvimento rápido e integra-se facilmente com o HTML. Segue a filosofia de que o desenvolvimento web deve ser rápido e descomplicado.
Para utilizar todos os [...]]]></description>
			<content:encoded><![CDATA[<p>O acrônimo CFML significa (ColdFusion Markup Language) é uma linguagem de programação web (não-proprietária) tal como PHP, JSP, entre outras&#8230; ela é uma linguagem baseada em tags, o que proporciona um desenvolvimento rápido e integra-se facilmente com o HTML. Segue a filosofia de que o desenvolvimento web deve ser rápido e descomplicado.</p>
<p>Para utilizar todos os benefícios e facilidades que a cfml proporciona é necessário alguma engine para rodá-lo. Há várias iniciativas para o desenvolvimento de servidores de aplicações cfml (engine), uma delas (mais conhecida) é o <a href="http://www.adobe.com/products/coldfusion/" target="_blank">ColdFusion</a> (ou somente CF para os íntimos). O ColdFusion é um servidor de aplicações que compila e executa a CFML. A Adobe Systems possui os direitos sobre o termo ColdFusion Server, porém existem outros servidores de aplicação que interpretam CFML, veja alguns:</p>
<p><span id="more-67"></span></p>
<ul>
<li><a href="http://www.newatlanta.com/products/bluedragon/"> BlueDragon;</a></li>
<li><a href="http://www.railo-technologies.com/">Railo;</a></li>
<li><a href="http://www.ignitefusion.com/">IgniteFusion;</a></li>
<li><a href="http://www.smithproject.org/">Smith </a> &#8211; opensource;</li>
</ul>
<p>Dentre eles um que me chamou bastante a atenção foi o Railo:</p>
<p>O Railo é uma engine CFML que converte o código CFML em Java byte code executável que pode ser implantado e executado em qualquer tipo servlet Java. Isto fornece os ganhos de produtividade que a CFML proporciona aos desenvolvedores bem como com a performance e escalabilidade do ambiente Java.</p>
<p>O Railo possui 4 versões (atualmente):</p>
<ul>
<li><a href="http://www.railo-technologies.com/en/index.cfm?treeID=149" target="_blank">Railo Community</a>: (Versão Free que pode ser usada para fins comerciais de pequeno porte e para ambiente de desenvolvimento. Possui algumas restrições quanto ao uso do CFML);</li>
<li><a href="http://www.railo-technologies.com/en/index.cfm?treeID=150" target="_blank">Railo Professional:</a> (Versão comercial completa, tem suporte a múltiplas instâncias. É comercializada pelo número de instâncias);</li>
<li><a href="http://www.railo-technologies.com/en/index.cfm?treeID=151" target="_blank">Railo Enterprise:</a> (Versão comercial completa, e é mais indicada para aplicações de grande porte. Tem suporte a criação de múltiplas instâncias (ilimitadas). Possui suporte a cluster);</li>
<li><a href="http://www.railo-technologies.com/en/index.cfm?treeID=148" target="_blank">Railo Develop:</a> (Versão de desenvolvimento, indicada para usuários que tem mais probabilidade de usar o CFML em suas aplicações. É semelhante a versão Enterprise, porém suporta acesso de apenas 10 ips simultaneamente e não pode ser usada para fins comerciais);</li>
</ul>
<p><em></em></p>
<p>Atualmente o Railo está na versão 2, porém a versão 3.0 já está em desenvolvimento (está na <span class="hometitle">Release Candidate</span>).</p>
<p>Foi anunciado (certo tempo atrás) que a versão 3.1 do Railo será Open Source sob a licença LGPL e hospedado no JBoss.org. Com a participação da comundade e desenvolvedores jBoss, irão trabalhar em diversas melhorias e métodos de acesso à infraestrutura do JBoss, incluindo JBoss Cache e Messaging via tags CFML. A versão Open do Railo está prevista para o final deste ano.</p>
<p>Com a versão Open do Railo creio que a popularização do CFML irá aumentar consideravelmente.</p>
<p>Há um bom tempo estou fazendo alguns testes com a versão 2 do Railo em um sistema que está rodando atualmente em ColdFusion 8. Até o presente momento estou bem feliz com os resultados e principalmente com a compatibilidade com o CF. Há algumas adaptações e alguns bugs ainda para ser corrigido no Railo, até porque a versão 2 é compatível com o ColdFusion 7. Para o Railo 3 já temos várias novidades e mais suporte a tags cfml do CF8.</p>
<p>Segue alguns screenshots do Ambiente Administrativo do Railo:</p>

<a href='http://blog.andersonstraube.com/2008/09/09/railo-engine-cfml/application/' title='application'><img width="150" height="150" src="http://blog.andersonstraube.com/wp-content/uploads/2008/09/application-150x150.png" class="attachment-thumbnail" alt="Application" title="application" /></a>
<a href='http://blog.andersonstraube.com/2008/09/09/railo-engine-cfml/datasource/' title='datasource'><img width="150" height="150" src="http://blog.andersonstraube.com/wp-content/uploads/2008/09/datasource-150x150.png" class="attachment-thumbnail" alt="datasource" title="datasource" /></a>
<a href='http://blog.andersonstraube.com/2008/09/09/railo-engine-cfml/overview/' title='overview'><img width="150" height="150" src="http://blog.andersonstraube.com/wp-content/uploads/2008/09/overview-150x150.png" class="attachment-thumbnail" alt="overview" title="overview" /></a>
<a href='http://blog.andersonstraube.com/2008/09/09/railo-engine-cfml/schedule/' title='schedule'><img width="150" height="150" src="http://blog.andersonstraube.com/wp-content/uploads/2008/09/schedule-150x150.png" class="attachment-thumbnail" alt="schedule" title="schedule" /></a>
<a href='http://blog.andersonstraube.com/2008/09/09/railo-engine-cfml/setting-regional/' title='setting-regional'><img width="150" height="150" src="http://blog.andersonstraube.com/wp-content/uploads/2008/09/setting-regional-150x150.png" class="attachment-thumbnail" alt="setting-regional" title="setting-regional" /></a>
<a href='http://blog.andersonstraube.com/2008/09/09/railo-engine-cfml/update/' title='update'><img width="150" height="150" src="http://blog.andersonstraube.com/wp-content/uploads/2008/09/update-150x150.png" class="attachment-thumbnail" alt="Update" title="update" /></a>

<p>Para maiores informações acesse o site do Railo:</p>
<p><a href="http://www.railo-technologies.com/en/index.cfm" target="_blank">http://www.railo-technologies.com/en/index.cfm</a></p>
<p>Valeu,<br />
Um abraço.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.andersonstraube.com/2008/09/09/railo-engine-cfml/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>70 Wallpapers do Firefox</title>
		<link>http://blog.andersonstraube.com/2008/07/18/70-wallpapers-do-firefox/</link>
		<comments>http://blog.andersonstraube.com/2008/07/18/70-wallpapers-do-firefox/#comments</comments>
		<pubDate>Fri, 18 Jul 2008 03:48:10 +0000</pubDate>
		<dc:creator>Anderson Straube</dc:creator>
				<category><![CDATA[Firefox]]></category>
		<category><![CDATA[wallpapers]]></category>

		<guid isPermaLink="false">http://blog.andersonstraube.com/?p=63</guid>
		<description><![CDATA[Cansado dos seus papéis de parede?
No site Hongkiat.com você encontra uma lista com 70 wallpapers do Firefox.





Fica aí a dica.
Um abraço.
]]></description>
			<content:encoded><![CDATA[<p>Cansado dos seus papéis de parede?</p>
<p>No site <a href="http://www.hongkiat.com/blog/70-nice-and-beautiful-firefox-wallpapers/" target="_blank">Hongkiat.com</a> você encontra uma lista com 70 wallpapers do Firefox.</p>
<div class="mceTemp mceIEcenter">
<dl class="wp-caption aligncenter" style="width: 290px;">
<dt class="wp-caption-dt"><a href="http://www.hongkiat.com/blog/70-nice-and-beautiful-firefox-wallpapers/"><img src="http://www.hongkiat.com/blog/wp-content/uploads/beautiful-firefox.png" alt="beautiful-firefox" width="280" height="177" /></a></dt>
</dl>
</div>
<p>Fica aí a dica.</p>
<p>Um abraço.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.andersonstraube.com/2008/07/18/70-wallpapers-do-firefox/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
