<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Diego Plentz &#187; javascript</title>
	<atom:link href="http://plentz.org/category/javascript/feed/" rel="self" type="application/rss+xml" />
	<link>http://plentz.org</link>
	<description>plentiful thoughts from my empty head</description>
	<lastBuildDate>Sat, 03 Jul 2010 06:17:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>JSUnit</title>
		<link>http://plentz.org/2007/02/09/jsunit/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=jsunit</link>
		<comments>http://plentz.org/2007/02/09/jsunit/#comments</comments>
		<pubDate>Sat, 10 Feb 2007 01:14:23 +0000</pubDate>
		<dc:creator>Diego Plentz</dc:creator>
				<category><![CDATA[coding]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://plentz.org/2007/02/09/js-tambem-precisa-de-teste-unitario/</guid>
		<description><![CDATA[Depois de quebrar a cabeça por um bom tempo, descobri que após adicionar a lib Prototype ao projeto, algumas validações javascript simplesmente deixaram de funcionar. O for in, que antes funcionava corretamente, muda seu comportamento devido à magia negra que o Prototype faz, adicionando algumas propriedades extras aos objetos (e também à arrays). Se eu [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://flickr.com/photos/joomanji/153911268/" title="Crash Test Anyone?"><img src="http://farm1.static.flickr.com/72/153911268_7ba3fcbdc3_m.jpg" alt="Crash Test Anyone?" height="160" width="240" style="border: 2px solid rgb(0, 0, 0);float: right; margin-left: 10px; margin-bottom: 10px;"/></a></p>
<p>Depois de quebrar a cabeça por um bom tempo, descobri que após adicionar a lib <a href="http://prototypejs.org/">Prototype</a> ao projeto, algumas validações javascript simplesmente deixaram de funcionar. O <em>for in</em>, que antes funcionava corretamente, muda seu comportamento devido à magia negra que o <a href="http://prototypejs.org/">Prototype</a> faz, adicionando algumas propriedades extras aos objetos (e também à arrays).</p>
<p>Se eu tivesse feito uma dúzia de <a href="http://jsunit.net/">JSUnit</a>s teria evitado mais de duas horas de tempo perdido, literalmente.</p>
<p>O que antes era:</p>
<p><code>  o.isCNPJ = function(){<br />
    var d = this.split("");<br />
    var m1 = [d[0]*5,d[1]*4,d[2]*3,d[3]*2,d[4]*9,d[5]*8,d[6]*7,d[7]*6,d[8]*5,d[9]*4,d[10]*3,d[11]*2];<br />
    var s1 = 0;<br />
    for(i in m1){ s1 += m1[i]; }<br />
    var d1 = (s1%11&lt;2)?0:11-(s1%11);<br />
    var m2 = [d[0]*6,d[1]*5,d[2]*4,d[3]*3,d[4]*2,d[5]*9,d[6]*8,d[7]*7,d[8]*6,d[9]*5,d[10]*4,d[11]*3,d1*2];<br />
    var s2 = 0;<br />
    for(i in m2){ s2 += m2[i]; }<br />
    var d2 = (s2%11&lt;2)?0:11-(s2%11);<br />
    return (d1 == d[12] &#038;&#038; d2 == d[13])? true: false;<br />
  } </code></p>
<p>Teve que virar:</p>
<p><code>o.isCNPJ = function(){<br />
  var d = this.split("");<br />
  var m1 = [d[0]*10,d[1]*9,d[2]*8,d[3]*7,d[4]*6,d[5]*5,d[6]*4,d[7]*3,d[8]*2];<br />
  var s1 = 0;<br />
  for(var i=0;i < m1.length; i++){ s1 += m1[i]; }<br />
  var d1 = (s1 % 11 < 2)?0:11-(s1 % 11);<br />
  var m2 = [d[0]*11,d[1]*10,d[2]*9,d[3]*8,d[4]*7,d[5]*6,d[6]*5,d[7]*4,d[8]*3,d1*2];<br />
  var s2 = 0;<br />
  for(var i=0;i < m2.length; i++){ s2 += m2[i]; }<br />
  var d2 = (s2%11&lt;2)?0:11-(s2%11);<br />
  return (d1 == d[9] &#038;&#038; d2 == d[10])? true: false;<br />
}</code></p>
<p>Nessas horas que vemos que <a href="http://martinfowler.com/bliki/TestDrivenDevelopment.html">testes unitários</a> sempre se pagam.</p>
<p></code></p>
<div class="acc_license"><a href="http://creativecommons.org/licenses/by-nc-nd/3.0/"><img src="http://i.creativecommons.org/l/by-nc-nd/3.0/88x31.png" alt="by-nc-nd" /></a></div><!--<rdf:RDF xmlns="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><Work rdf:about=""><license rdf:resource="http://creativecommons.org/licenses/by-nc-nd/3.0/" /></Work><License rdf:about="http://creativecommons.org/licenses/by-nc-nd/3.0/"><requires rdf:resource="http://creativecommons.org/ns#Attribution" /><permits rdf:resource="http://creativecommons.org/ns#Reproduction" /><permits rdf:resource="http://creativecommons.org/ns#Distribution" /><prohibits rdf:resource="http://creativecommons.org/ns#CommercialUse" /><requires rdf:resource="http://creativecommons.org/ns#Notice" /></License></rdf:RDF>--><img src="http://plentz.org/wordpress/?ak_action=api_record_view&id=151&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://plentz.org/2007/02/09/jsunit/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Pro Javascript Techniques</title>
		<link>http://plentz.org/2006/11/26/141/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=141</link>
		<comments>http://plentz.org/2006/11/26/141/#comments</comments>
		<pubDate>Sun, 26 Nov 2006 10:01:30 +0000</pubDate>
		<dc:creator>Diego Plentz</dc:creator>
				<category><![CDATA[books]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://plentz.org/2006/11/26/141/</guid>
		<description><![CDATA[Javascript já não é mais o mesmo faz um bom tempo. Com a explosão de popularidade de sites falando sobre Ajax, a forma como é vista o (aparentemente só agora) bom e velho Javascript mudou muito. Frameworks não param de aparecer: Prototype, Dojo toolkit, moo.fx, Backbase, OpenRico, script.aculo.us… Mas e onde estão as referências decentes [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.amazon.com/Pro-JavaScript-Techniques-John-Resig/dp/1590597273" title="Pro Javascript Techniques"><img src="http://ec1.images-amazon.com/images/P/1590597273.01._AA180_SCLZZZZZZZ_V39393451_.jpg" alt="Pro Javascript Techniques" style="float: right; margin-left: 10px; margin-bottom: 10px;" /></a></p>
<p>Javascript já não é mais o mesmo faz um bom tempo. Com a explosão de popularidade de sites falando sobre Ajax, a forma como é vista o (aparentemente só agora) bom e velho Javascript mudou muito.</p>
<p>Frameworks não param de aparecer: <a href="http://prototype.conio.net/">Prototype</a>, <a href="http://dojotoolkit.org/">Dojo toolkit</a>, <a href="http://www.moofx.mad4milk.net/">moo.fx</a>, <a href="http://www.backbase.com">Backbase</a>, <a href="http://openrico.org/">OpenRico</a>, <a href="http://script.aculo.us/">script.aculo.us</a>…</p>
<p>Mas e onde estão as referências decentes falando desse Javascript recém-saído do spa que estamos vendo poraí? A maioria dos livros já estão mais do que ultrapassados (a maioria falando até do já morto-e-enterrado Netscape).</p>
<p>Dando uma pesquisada, achei um trabalho que está sendo feito pelo <a href="http://ejohn.org/">John Resig</a> justamente sobre isso: um livro com técnicas avançadas de javascript e bem atualizado.</p>
<p><a href="http://www.amazon.com/Pro-JavaScript-Techniques-John-Resig/dp/1590597273">Pro Javascript Techniques</a> ainda não foi lançado, mas só pelo <a href="http://jspro.org/about/">conteúdo</a> foi direto pra <a href="http://www.amazon.com/gp/registry/registry.html/ref=cm_wl_reg-item/103-9776861-2339043?&amp;sort=priority&amp;id=1WEUQKBPZ5N8S">wishlist</a>.</p>
<div class="acc_license"><a href="http://creativecommons.org/licenses/by-nc-nd/3.0/"><img src="http://i.creativecommons.org/l/by-nc-nd/3.0/88x31.png" alt="by-nc-nd" /></a></div><!--<rdf:RDF xmlns="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><Work rdf:about=""><license rdf:resource="http://creativecommons.org/licenses/by-nc-nd/3.0/" /></Work><License rdf:about="http://creativecommons.org/licenses/by-nc-nd/3.0/"><requires rdf:resource="http://creativecommons.org/ns#Attribution" /><permits rdf:resource="http://creativecommons.org/ns#Reproduction" /><permits rdf:resource="http://creativecommons.org/ns#Distribution" /><prohibits rdf:resource="http://creativecommons.org/ns#CommercialUse" /><requires rdf:resource="http://creativecommons.org/ns#Notice" /></License></rdf:RDF>--><img src="http://plentz.org/wordpress/?ak_action=api_record_view&id=141&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://plentz.org/2006/11/26/141/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Para o alto e avante</title>
		<link>http://plentz.org/2006/03/29/para-o-alto-e-avante/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=para-o-alto-e-avante</link>
		<comments>http://plentz.org/2006/03/29/para-o-alto-e-avante/#comments</comments>
		<pubDate>Wed, 29 Mar 2006 04:20:06 +0000</pubDate>
		<dc:creator>Diego Plentz</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://plentz.org/2006/03/29/para-o-alto-e-avante/</guid>
		<description><![CDATA[Duas ótimas notícias para quem simpatiza com Ruby. A primeira é o lançamento do livro do Taq. Perfeito para quem está querendo começar, mas não tem uma boa base de inglês. Ponto para a comunidade brasileira. A outra é o lançamento do Rails 1.1. Algumas features que chamam atenção (além é claro, dos 500+ bugfixes [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://flickr.com/photos/rostev/303842665/" title="Para o alto e avante!!!"><img src="http://farm1.static.flickr.com/115/303842665_aa70a10ff5_m.jpg" alt="Para o alto e avante!!!" height="180" width="240"   style="border: 2px solid rgb(0, 0, 0);float: right; margin-left: 10px; margin-bottom: 10px;" /></a></p>
<p>Duas ótimas notícias para quem simpatiza com <a href="http://ruby-lang.org/">Ruby</a>. A primeira é o <a href="http://beam.to/taq/blog.php?id=255">lançamento do livro do Taq</a>. Perfeito para quem está querendo começar, mas não tem uma boa base de inglês. Ponto para a comunidade brasileira.</p>
<p>A outra é o <a href="http://weblog.rubyonrails.org/articles/2006/03/28/rails-1-1-rjs-active-record-respond_to-integration-tests-and-500-other-things">lançamento do Rails 1.1</a>. Algumas features que chamam atenção (além é claro, dos 500+ bugfixes e tweaks):</p>
<ul>
<li>
<p>RJS &#8211; JavaScript escrito em Ruby: que tal um bocado de Ajax/Javascript só com Ruby?</p>
<pre># Chamada para efeitos do script.aculo.us
page[:cart].visual_effect(@cart.size == 1 ? :appear : :highlight)

# Atualiza um pedaço de html
page[:cart].replace_html :partial => "cart"
</pre>
</li>
<li>
<p>Active Record &#8211; Cascading eager loading: busca em cascata.</p>
<pre># Single database query:
companies = Company.find(:all, :include => {
  :groups => { :members=> { :favorites } } })

companies[0].groups[0].members[0].favorites[0].name
</pre>
</li>
<li>
<p>Active Record &#8211; Polymorphic associations and join models: possibilidade de relacionamentos many-to-many mais complexos.</p>
<pre>class Author &lt; ActiveRecord::Base
  has_many :authorships
  has_many :books, :through =&gt; :authorships
end

class Book &lt; ActiveRecord::Base
  has_many :authorships
  has_many :authors, :through =&gt; :authorships
end

class Authorship &lt; ActiveRecord::Base
  belongs_to :author
  belongs_to :book
end
</pre>
</li>
</ul>
<p>Confira mais novidades no blog do <a href="http://scottraymond.net/articles/2006/02/28/rails-1.1">Scott Raymond</a>.</p>
<div class="acc_license"><a href="http://creativecommons.org/licenses/by-nc-nd/3.0/"><img src="http://i.creativecommons.org/l/by-nc-nd/3.0/88x31.png" alt="by-nc-nd" /></a></div><!--<rdf:RDF xmlns="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><Work rdf:about=""><license rdf:resource="http://creativecommons.org/licenses/by-nc-nd/3.0/" /></Work><License rdf:about="http://creativecommons.org/licenses/by-nc-nd/3.0/"><requires rdf:resource="http://creativecommons.org/ns#Attribution" /><permits rdf:resource="http://creativecommons.org/ns#Reproduction" /><permits rdf:resource="http://creativecommons.org/ns#Distribution" /><prohibits rdf:resource="http://creativecommons.org/ns#CommercialUse" /><requires rdf:resource="http://creativecommons.org/ns#Notice" /></License></rdf:RDF>--><img src="http://plentz.org/wordpress/?ak_action=api_record_view&id=132&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://plentz.org/2006/03/29/para-o-alto-e-avante/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Firefox utils</title>
		<link>http://plentz.org/2005/11/15/firefox-utils/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=firefox-utils</link>
		<comments>http://plentz.org/2005/11/15/firefox-utils/#comments</comments>
		<pubDate>Tue, 15 Nov 2005 05:47:35 +0000</pubDate>
		<dc:creator>Diego Plentz</dc:creator>
				<category><![CDATA[Unsorted]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[util]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://plentz.org/?p=121</guid>
		<description><![CDATA[Postizinho rápido pra passar algumas tools que uso junto com o Firefox e que tornam meu dia-a-dia na web bem mais agradável: Adblock: permite que você bloqueie aqueles banners enormes e extremamente desagradáveis que alguns sites continuam usando. Download Statusbar: simples, ao invés do Firefox abrir uma janelinha nova com os dowloads essa extension joga [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://flickr.com/photos/doesrails/141780294/" title="Kokoro the Shiba Inu Puppy - Profile"><img src="http://farm1.static.flickr.com/55/141780294_38b0d946fc_m.jpg" alt="Kokoro the Shiba Inu Puppy - Profile" height="161" width="240" style="border: 2px solid rgb(0, 0, 0);float: right; margin-left: 10px; margin-bottom: 10px;" /></a></p>
<p>Postizinho rápido pra passar algumas tools que uso junto com o Firefox e que tornam meu dia-a-dia na web bem mais agradável:</p>
<ul>
<li><strong><a href="https://addons.mozilla.org/extensions/moreinfo.php?id=10">Adblock</a></strong>: permite que você bloqueie aqueles banners enormes e extremamente desagradáveis que alguns sites continuam usando.</li>
<li><strong><a href="https://addons.mozilla.org/extensions/moreinfo.php?id=26">Download Statusbar</a></strong>: simples, ao invés do Firefox abrir uma janelinha nova com os dowloads essa extension joga eles na sua status bar.</li>
<li><strong><a href="https://addons.mozilla.org/extensions/moreinfo.php?id=684">FireFTP</a></strong>: não é nenhum client espetacular de FTP, mas quebra um galhão.</li>
<li><strong><a href="https://addons.mozilla.org/extensions/moreinfo.php?id=220">Flashgot</a></strong>: integrado com o <a href="http://www.amazesoft.com/">Flashget</a> é perfeito para quem gosta de fazer uma pá de downloads e odeia ficar clicando emt trocentos links. Clique direito, flashgot all, e pimba, tudo no seu gerenciador de downloads.</li>
<li><strong><a href="https://addons.mozilla.org/extensions/moreinfo.php?id=532">linkChecker</a></strong>: Verifica a página atual atrás de links quebrados. Mais útil pra quem trabalha com web.</li>
<li><strong><a href="http://livehttpheaders.mozdev.org/">LiveHTTPHeader</a></strong>: uma maravilha pra dar debugar aplicações que tem, er, Ajax.</li>
<li><strong><a href="https://addons.mozilla.org/extensions/moreinfo.php?id=710">Menu Editor</a></strong>: não sei se é só comigo, mas tem muita opção no menu do Firefox que eu <em>nunca</em> uso. Essa extension serve justamente pra isso, fazer uma faxina na casa.</li>
<li><strong><a href="https://addons.mozilla.org/extensions/moreinfo.php?id=436">SessionSaver</a></strong>: sabe quando você está recém abriu seu bloglines, e já ta com 20 tabs abertas recheadas de conteúdo de alta qualidade e do nada, pum, o Firefox tranca. Usando ele o Firefox pode pendurar igual, mas ao menos seus cabelos ficam.</li>
<li><strong><a href="https://addons.mozilla.org/extensions/moreinfo.php?id=495">TargetKiller</a></strong>: você odeia quem inventou target=&#8221;_new&#8221;? Eu também.</li>
<li><strong><a href="https://addons.mozilla.org/extensions/moreinfo.php?id=60">WebDeveloper</a></strong>: Instala uma barrinha cheia de utilidades pra quem precisa dar uma de designer de vez enquando.</li>
<li><strong><a href="https://addons.mozilla.org/extensions/moreinfo.php?id=748">GreaseMonkey</a></strong>: esse carinha dispença aprensentações, mas caso alguém não conheça, ainda, é uma extension que permite que os usuários insiram código javascript diretamente no fonte do seu site, podendo alterar e fazer o escambal. Perfeito. Seguem alguns scripts que eu uso:</li>
</ul>
<ul>
<li><strong><a href="http://userscripts.org/scripts/show/1050">Auto-login</a></strong>: para os sites que você já deixou a senha salva porque é tão insignificante que não vale nem o trabalho de digitar a senha? Bom, se a senha já ta salva, ele faz o serviço chato. Ele aperta o submit pra você.</li>
<li><strong><a href="http://userscripts.org/scripts/show/1487">Orkut album zoom</a></strong>: pra dar uma passeada no orkut sem muita encomodação na hora de ver as fotos dos outros, esse script joga todas as fotos tamanho normal direto na página principal do album. Facilita e muito.</li>
</ul>
<p>Done.</p>
<div class="acc_license"><a href="http://creativecommons.org/licenses/by-nc-nd/3.0/"><img src="http://i.creativecommons.org/l/by-nc-nd/3.0/88x31.png" alt="by-nc-nd" /></a></div><!--<rdf:RDF xmlns="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><Work rdf:about=""><license rdf:resource="http://creativecommons.org/licenses/by-nc-nd/3.0/" /></Work><License rdf:about="http://creativecommons.org/licenses/by-nc-nd/3.0/"><requires rdf:resource="http://creativecommons.org/ns#Attribution" /><permits rdf:resource="http://creativecommons.org/ns#Reproduction" /><permits rdf:resource="http://creativecommons.org/ns#Distribution" /><prohibits rdf:resource="http://creativecommons.org/ns#CommercialUse" /><requires rdf:resource="http://creativecommons.org/ns#Notice" /></License></rdf:RDF>--><img src="http://plentz.org/wordpress/?ak_action=api_record_view&id=121&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://plentz.org/2005/11/15/firefox-utils/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>JavaScript Library 1.0</title>
		<link>http://plentz.org/2005/03/25/javascript-library-10/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=javascript-library-10</link>
		<comments>http://plentz.org/2005/03/25/javascript-library-10/#comments</comments>
		<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate>
		<dc:creator>Diego Plentz</dc:creator>
				<category><![CDATA[geek]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://plentz.org/wordpress/?p=110</guid>
		<description><![CDATA[Um tempo atrás, eu estava desenvolvendo um sistema e notei que muitas validações eram as mesmas usadas em muitos outros que eu já tinha desenvolvido. Então resolvi começar a desenvolver uma bibliotequinha de validações/utilidades, para que quando eu fosse iniciar o desenvolvimento de um novo sistema, pudesse utilizar ela de base, facilitando o trabalho e [...]]]></description>
			<content:encoded><![CDATA[<p>Um tempo atrás, eu estava desenvolvendo um sistema e notei que muitas validações eram as mesmas usadas em muitos outros que eu já tinha desenvolvido. Então resolvi começar a desenvolver uma bibliotequinha de validações/utilidades, para que quando eu fosse iniciar o desenvolvimento de um novo sistema, pudesse utilizar ela de base, facilitando o trabalho e economizando tempo.</p>
<p><a href="http://plentz.org/unsorted/functions.js.html">Estou disponibilizando ela aqui</a> e quem quizer utilizar/melhorar/dar sugestões é só falar.</p>
<div class="acc_license"><a href="http://creativecommons.org/licenses/by-nc-nd/3.0/"><img src="http://i.creativecommons.org/l/by-nc-nd/3.0/88x31.png" alt="by-nc-nd" /></a></div><!--<rdf:RDF xmlns="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><Work rdf:about=""><license rdf:resource="http://creativecommons.org/licenses/by-nc-nd/3.0/" /></Work><License rdf:about="http://creativecommons.org/licenses/by-nc-nd/3.0/"><requires rdf:resource="http://creativecommons.org/ns#Attribution" /><permits rdf:resource="http://creativecommons.org/ns#Reproduction" /><permits rdf:resource="http://creativecommons.org/ns#Distribution" /><prohibits rdf:resource="http://creativecommons.org/ns#CommercialUse" /><requires rdf:resource="http://creativecommons.org/ns#Notice" /></License></rdf:RDF>--><img src="http://plentz.org/wordpress/?ak_action=api_record_view&id=110&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://plentz.org/2005/03/25/javascript-library-10/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Eclipsed</title>
		<link>http://plentz.org/2005/02/27/eclipsed/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=eclipsed</link>
		<comments>http://plentz.org/2005/02/27/eclipsed/#comments</comments>
		<pubDate>Sun, 30 Oct 2005 00:11:53 +0000</pubDate>
		<dc:creator>Diego Plentz</dc:creator>
				<category><![CDATA[eclipse]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[subversion]]></category>

		<guid isPermaLink="false">http://plentz.org/wordpress/?p=106</guid>
		<description><![CDATA[Logo que comecei a programar, conheci o Dreamweaver. Achei ótimo clicar e arrastar componentes pra cá e pra lá, colocar formatação, tudo muito prático. Felizmente, as pessoas evoluem. Aos poucos começei a entender melhor o que acontecia por baixo dos panos, e entender também o significado daquela monstruiosidade de tags que eram criadas. Conforme fui [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://flickr.com/photos/mark_k_nj/523623785/" title="Total Eclipse Of The Contrast"><img src="http://farm1.static.flickr.com/245/523623785_48da573b9b_m.jpg" alt="Total Eclipse Of The Contrast" height="167" width="240" style="border: 2px solid rgb(0, 0, 0);float: right; margin-left: 10px; margin-bottom: 10px;"/></a></p>
<p>Logo que comecei a programar, conheci o <a href="http://www.macromedia.com/software/dreamweaver/">Dreamweaver</a>. Achei ótimo clicar e arrastar componentes pra cá e pra lá, colocar formatação, tudo muito prático. Felizmente, as pessoas evoluem. Aos poucos começei a entender melhor o que acontecia por baixo dos panos, e entender também o significado daquela monstruiosidade de tags que eram criadas. Conforme fui evoluindo, mais cresceu meu desafeto com ele, devido ao código porcalhão que ele gera. A facilidade de ver as alterações <em>on-the-fly</em> continuava lá, mas já começava a fazer tudo no braço.</p>
<p>A partir dai, cada vez mais busquei editores que facilitassem minha vida, não visualmente, mas que permitissem gerar um código elegante com maior velocidade e facilidade.</p>
<p>Experimentei de tudo, <a href="http://www.scintilla.org/">Scite</a> (recomendação do <a href="http://www.jonasgalvez.com/">Jonas</a>), <a href="http://www.crimsoneditor.com/">Crimson Editor</a>, <a href="http://www.ultraedit.com/">UltraEdit</a>, <a href="http://www.adobe.com/products/dreamweaver/">Dreamweaver</a>, entre muitos outros, mas sempre sentia falta de algo, fosse um <em>code completion</em> decente ou um syntax highlighter pra alguma linguagem. E ficar trocando de editor pra cada tipo de arquivo que for editar, além de ser improdutivo (você acaba não sabendo usar nenhum bem), obriga você a ter mais que um editor no computador &#8211; e pior, ficar alternando entre eles.</p>
<p>Felizmente, chegou ao meu conhecimento um editor que estava ganhando espaço &#8211; e fazendo bastante sucesso: o <a href="http://www.eclipse.org">Eclipse</a>. No começo, não me chamou a atenção, parecia ser mais um editor com uma interface legal e com um code complete aguçado. Pesquisando um pouco mais sobre ele, descobri que sabendo usá-lo corretamente &#8211; e por completo, pode fazer chover. Tirando proveito da plataforma super extensível dele, com alguns plugins ele pode ser tornar um ambiente de trabalho muito produtivo.</p>
<p>Antes de partir para os plugins, vou dar algumas dicas referentes ao funcionamento e utilização dele como um todo. Para começar, entre no site do <a href="http://www.eclipse.org">Eclipse</a>, e <a href="http://download.eclipse.org/eclipse/downloads/">faça o download dele</a>, selecionando conforme o seu sistema operacional. Feito isto, recomendo que descompacte ele em alguma pasta de fácil acesso (algo como c:\dev\eclipse\). Abra ele e use por um tempo, crie um projeto, alguns arquivos, altere as opções, salve, edite, bagunce mesmo &#8211; mas lembre-se, sempre tenha uma cópia do arquivo de instalação dele para um eventual “acidente&#8221;.</p>
<h3>Atalhos do editor</h3>
<p>* alguns funcionam somente no editor Java</p>
<ul>
<li>&lt;Ctrl&gt; + &lt;Space&gt; &#8211; Abre o code completion. Lembre-se, anote, marque na sua testa, control-espaço é seu amigo;</li>
<li>&lt;Ctrl&gt; + &lt;Shift&gt; + &lt;r&gt; &#8211; Open Resource. Abre uma janela para abrir qualquer arquivo (xml, properties, jsp, etc);</li>
<li>&lt;Ctrl&gt; + &lt;Shift&gt; + &lt;t&gt; &#8211; Open Type. Abre uma janela para pesquisa das classes disponíveis;</li>
<li>&lt;Ctrl&gt; + &lt;/&gt; &#8211; (des)Comenta bloco de código;</li>
<li>&lt;Alt&gt; + (&lt;up&gt; ou &lt;down&gt;) &#8211; Move bloco de código;</li>
<li>&lt;Shift&gt; + &lt;Enter&gt; &#8211; Insere linhas em branco abaixo da atual;</li>
<li>&lt;Ctrl&gt; + &lt;Shift&gt; + &lt;Enter&gt; &#8211; Insere linhas em branco acima da atual.</li>
<li>&lt;Ctrl&gt; + &lt;d&gt; &#8211; Remove linha atual;</li>
<li>&lt;Ctrl&gt; + &lt;1&gt; &#8211; Exibe possíveis soluções para um problema que ele encontrou no seu código;</li>
<li>&lt;Ctrl&gt; + &lt;Shift&gt; + &lt;o&gt; &#8211; Ajusta seus imports(no caso do Java ao menos);</li>
<li>&lt;Ctrl&gt; + &lt;Shift&gt; + &lt;f&gt; &#8211; Formata o código conforme configuração de padrão definida;</li>
<li>&lt;Ctrl&gt; + &lt;m&gt; &#8211; Altera entre maximizada/default para uma view, muito útil quando se está trabalhando com arquivo com muito código;</li>
<li>&lt;Ctrl&gt; + &lt;h&gt; &#8211; Busca por referências do elemento(método,atributo&#8230;) que o cursor está posicionado sobre, em todo projeto;</li>
<li>&lt;Ctrl&gt; + &lt;i&gt; &#8211; Corrige identação de um pedaço de código;</li>
<li>&lt;Ctrl&gt; + &lt;3&gt; &#8211; Quick Access&#8230; quase um <a href="http://www.blacktree.com/projects/quicksilver.html">Quicksilver</a> para o Eclipse;</li>
<li>&lt;Ctrl&gt; + &lt;3&gt; &#8211; Quick Outline&#8230; exibe a lista de métodos/atributos da classe. Se pressionado 2 vezes, exibe também das classes mães;</li>
</ul>
<h3>Eclipse Plugins</h3>
<p>Bom, depois de toda essa ladainha, vamos ao que interessa, os plugins. O Eclipse conta com uma estrutura muito boa no quesito extensibilidade &#8211; mesmo sua API sendo criticada por alguns. Pode-se adicionar features para praticamente qualquer propósito nele. A instalação de plugins é muito fácil e pode ser feita de duas maneiras:</p>
<ul>
<li>Via update site – abra o Eclipse, vá em “Help&#8221;, “Software Updates&#8230;&#8221;, “Find and Instal…&#8221; Na tela que abre, selecione a segunda opção e de next. Clique agora em “New Remote Site&#8230;&#8221;. No campo “Name&#8221; coloque o nome do plugin que será instalado, e no campo URL coloque o endereço do update site(quando existir um). Clique agora no íncone de “+&#8221; ao lado do nome do plugin e selecione o “pacote&#8221; que você deseja instalar. Clique em “Next&#8221;. Selecione a versão do plugin, dê “Next&#8221;, aceite os termos do plugin e vá em “Finish&#8221;. Ele vai baixar automaticamente os arquivos necessários e provavelmente vai pedir para você restartar o Eclipse.</li>
<li>Via download – entre no site do desenvolvedor do plugin, baixe o arquivo contendo o plugin e descompacte ele. Normalmente, os pluguins vem com uma ou duas pastas dentro: &#8220;plugins&#8221; e &#8220;features&#8221;. Coloque os arquivos nas suas devidas pastas e entre novamente no Eclipse.</li>
</ul>
<p>Procurei deixar os plugins com funcionalidades semelhantes próximos para facilitar a localização. O nome do plugin é também um link para o site do desenvolvedor/projeto, ficando ao seu lado o link para download ou update site, seguido de uma pequena descrição.</p>
<p><strong><a href="http://eclipse.org/webtools/">Eclipse Web Tools Plataform (WTP)</a></strong> &#8211; <a href="http://download.eclipse.org/webtools/downloads/">Download</a><br />
Provavelmente quem já usa o Eclipse à mais tempo deve conhecer o <a href="http://www.objectlearn.com/">Lomboz</a>. O WebTools na verdade é uma &#8220;continuação&#8221; do projeto <a href="http://www.objectlearn.com/">Lomboz</a>, mas agora como sub-projeto da Eclipse Foundation. Vem com editores para JSP, HTML, Javascript, CSS, SQL, XML, DTD, XSD e WSDL.</p>
<p><strong><a href="http://run-jetty-run.googlecode.com/">Run Jetty Run</a></strong> &#8211; <a href="http://run-jetty-run.googlecode.com/svn/trunk/updatesite">Update site</a><br />
Uma forma decente e simples de usar o <a href="http://www.eclipse.org/jetty/">Jetty</a> para desenvolvimento, já que o connector atual disponível pro WTP é uma piada de mal gosto.</p>
<p><strong><a href="http://www.aptana.com/">Aptana</a></strong> &#8211; <a href="http://update.aptana.com/update/">Update site</a><br />
Excelente plugin para coding e debug <a href="http://www.aptana.com/rails">Ruby + Rails (antigo RadRails)</a>, <a href="http://www.aptana.com/python">Python+Jython(antigo PyDev)</a>, <a href="http://www.aptana.com/jaxer">JavaScript/Ajax (Jaxer)</a>, <a href="http://www.aptana.com/php">PHP</a>, xHTML/RHTML e CSS, além de <a href="http://www.aptana.com/air">Adobe Air</a> e <a href="http://www.aptana.com/iphone">iPhone</a>. Seu <a href="http://www.aptana.tv/">site conta com diversos <em>screencasts</em></a> demonstrando a <a href="http://www.aptana.com/docs/">utilização do plugin</a>.</p>
<p><strong><a href="http://tools.hibernate.org">Hibernate Tools</a></strong> &#8211; <a href="http://download.jboss.org/jbosside/updates/development">Update site</a><br />
Auxilia o desenvolvedor que utiliza Hibernate na sua aplicação, facilitando <a href="http://www.hibernate.org/hib_docs/tools/viewlets/hbmxml_editing.htm">a edição dos hbm.xmls</a> (com syntax highlighting, <em>code-completion</em>), <a href="http://www.hibernate.org/hib_docs/tools/viewlets/entity_model_zoom_and_print.htm">permite navegação e impressão do <em>entity model</em></a>, <a href="http://www.hibernate.org/hib_docs/tools/viewlets/custom_reverse_engineering.htm">engenharia reversa e geração de código</a>,  <a href="http://www.hibernate.org/hib_docs/tools/viewlets/java_hql_editing_and_validation.htm"><em>code completion</em> para HQL/JPA-QL queries diretamente no editor Java</a>, editor para testes para <a href="http://www.hibernate.org/hib_docs/tools/viewlets/edit_and_run_criteria.htm"><em>Criteria queries</em></a> e <a href="http://www.hibernate.org/hib_docs/tools/viewlets/edit_and_run_hql.htm">HQL/JPA-QL queries</a>. A criação do <a href="http://www.hibernate.org/hib_docs/tools/viewlets/create_console_configuration_jpa.htm"><em>console configuration</em></a> para você poder utilizar o plugin também é mostrada no site.</p>
<p><strong><a href="http://springide.org/">Spring IDE</a></strong> &#8211; <a href="http://springide.org/updatesite">Update site</a><br />
Interface gráfica para trabalhar com arquivos de configuração do <a href="http://www.springframework.com/">Spring Framework</a>. Conta com diversas <a href="http://springide.org/project/wiki/SpringideFeatures">features</a> como <a href="http://springide.org/project/wiki/BeansXmlEditor">editor para os arquivos de configuração dos beans</a>, <a href="http://springide.org/project/wiki/BeansConfigValidator">validação dos arquivos de configuração</a>, etc.</p>
<p><strong><a href="http://www.eclipse.org/pdt/">Eclipse PDT</a></strong> &#8211; <a href="http://download.eclipse.org/tools/pdt/updates/2.0/releases/">Update site</a><br />
Plugin oficial da Eclipse Foundation para quem desenvolve PHP. <a href="http://www.zend.com/en/community/pdt">Inicialmente criado</a> pela Zend (empresa de dois grandes contribuidores do PHP).</p>
<p><strong><a href="http://www.phpeclipse.de/">PHPEclipse</a></strong> &#8211; <a href="http://update.phpeclipse.net/update/stable/1.2.x">Update site</a><br />
Pra quem desenvolve PHP, este plugin é uma legítima <a href="http://phpeclipse.de/tiki-browse_gallery.php?galleryId=1">mão na roda</a>. O code assist dele é ótimo, tendo praticamente todas (se não todas) as funções nativas. Possui integração com <a href="http://www.mysql.com/">MySQL</a> e com o <a href="http://httpd.apache.org/">Apache</a>. No seu site explica como instalar o <a href="http://dd.cron.ru/dbg/downloads.php">debbuger</a> e o pacotão <a href="http://www.apachefriends.org/en/xampp.html">WAMPP</a>. No <a href="http://www.plog4u.org/index.php/Using_PHPEclipse">Wiki do site Plog4u</a> existe um ótimo tutorial para este plugin.</p>
<p><strong><a href="http://groovy.codehaus.org/Eclipse+Plugin">Groovy Eclipse Plugin</a></strong> &#8211; <a href="http://dist.codehaus.org/groovy/distributions/update/">Update site</a><br />
Plugin para suporte à Groovy desenvolvido pelo pessoal da <a href="http://codehaus.org/">Codehaus</a>.</p>
<p><strong><a href="http://www.epic-ide.org/">EPIC &#8211; Eclipse Perl Integration</a></strong> &#8211; <a href="http://e-p-i-c.sf.net/updates">Update site</a><br />
Plugin bem completo para <a href="http://www.perl.com/">Perl</a>, vem com o mesmo tester de regular expressions do <a href="http://rubyeclipse.sourceforge.net/">Ruby Development Tools</a>(o código foi cedido por eles). Pra quem ainda usa Perl <a href="http://e-p-i-c.sourceforge.net/main.html#Features">é uma boa pedida</a>.</p>
<p><strong><a href="http://www.cfeclipse.org/">CFEclipse</a></strong> &#8211; <a href="http://www.cfeclipse.org/update">Update site</a><br />
Possui <a href="http://cfeclipse.tigris.org/images/winbeta.jpg">syntax<br />
 highlighting</a>, code insight, content outline e auxilia a encontrar problemas no código. Substitui perfeitamente qualquer editor proprietário da <a href="htttp://www.macromedia.com/">Macromedia</a> como o HomeSite, Dreamweaver e o próprio ColdFusion. Talvez o pessoal do <a href="http://www.cfgigolo.com/">CFGigolô</a> conheça.</p>
<p><strong><a href="http://www.eclipse.org/cdt/">C/C++ Development Tools</a></strong> &#8211; <a href="http://download.eclipse.org/tools/cdt/releases/eclipse3.1">Update site</a><br />
Adiciona funcionalidades para desenvolvimento em C/C++ ao Eclipse.</p>
<p><strong><a href="http://www.eclipse.org/subversive/">Subversive</a></strong> &#8211; <a href="http://download.eclipse.org/technology/subversive/0.7/update-site/">Update site</a> / <a href="http://www.polarion.org/projects/subversive/download/eclipse/2.0/update-site/">Connectors update site</a><br />
Oferece suporte ao <a href="http://subversion.tigris.org/">Subversion</a> de forma similar ao suporte à CVS que já vem integrado com o Eclipse. Conta com diversas <a href="http://www.polarion.org/index.php?page=features&#038;project=subversive">features</a> legais, além de ter uma <a href="http://www.polarion.org/index.php?page=screenshots&#038;project=subversive">interface</a> simples de usar.</p>
<p><strong><a href="http://eclipseme.org/">EclipseME</a></strong> &#8211; <a href="http://eclipseme.org/updates/">Update site</a><br />
Plugin para auxiliar no desenvolvimento de MIDlets <a href="http://java.sun.com/javame/">J2ME</a>, permitindo que o desenvolvedor se preocupe mais com o desenvolvimento da aplicação do que com requisitos específicos da plataforma J2ME.</p>
<p><strong><a href="http://quantum.sourceforge.net/">QuantumDB</a></strong> &#8211; <a href="http://quantum.sourceforge.net/update-site/">Update site</a><br />
Quantum é um plugin para acesso à banco de dados, através de um driver JDBC padrão. Sua interface mostra tabelas, views e sequences em <a href="http://quantum.sourceforge.net/perspective.html">formato de árvore</a> (como a maioria) e possui também um SQL editor com <a href="http://quantum.sourceforge.net/editor.html">syntax highlighting</a>.</p>
<p><strong><a href="http://www.azzurri.jp/en/clay">Clay Database Modeling</a></strong> &#8211; <a href="http://www.azzurri.jp/en/clay/download.html">Download</a><br />
O Clay é um plugin que ajuda no design de um banco de dados. Ele possui <a href="http://www.azzurri.jp/en/software/clay/screenshots.jsp">algumas features bem interessantes</a>, como: <a href="http://www.azzurri.jp/en/software/clay/images/clay_eclipse_1.png">interface super intuitiva</a>, <a href="http://www.azzurri.jp/en/software/clay/images/wiz_reverse_connection_list.png">engenharia</a> <a href="http://www.azzurri.jp/en/software/clay/images/wiz_reverse_tables.png">reversa</a> e <a href="http://www.azzurri.jp/en/software/clay/images/dialog_edit_fk_cols.png">editores gráficos</a>.</p>
<p><strong><a href="http://andrei.gmxhome.de/anyedit/">AnyEdit tools</a></strong> &#8211; <a href="http://andrei.gmxhome.de/eclipse/">Update site</a><br />
Adicionar algumas funções para facilitar o desenvolvimento, como conversão caracteres para entidades HTML, maiúscula/minúscula, espaços/tabulações, <a href="http://plentz.org/2005/09/17/remove-trailing-spaces/">remover espaços no final das linhas</a>.</p>
<p><strong><a href="http://www.eclipse.org/tptp/">TPTP Testing Tools</a></strong> &#8211; <a href="http://eclipse.org/tptp/updates/site.xml">Update site</a><br />
Como o nome sugere, o TPTP é um pacote de ferramentas voltadas para ciclos de testes, que se extende de testes manuais à testes para aplicações web. Possui integração com o JUnit.</p>
<p><strong><a href="http://pmd.sourceforge.net/">PMD</a></strong> &#8211; <a href="http://pmd.sourceforge.net/eclipse/">Update site</a><br />
Acredito que o PMD seja o plugin de verificação/análise de bugs e estilo de código <a href="http://www-128.ibm.com/developerworks/java/library/j-pmd/">mais usado na atualidade</a>. Possui uma série de verificações legais como busca por blocos vazios de try/catch/finally/switch, variáveis não usadas, entre outras. Dica de amigo: mantenha ele longe do seu analista se você não conhece o código à fundo.</p>
<p><strong><a href="http://eclipse-cs.sourceforge.net">Eclipse-CS</a></strong> &#8211; <a href="http://eclipse-cs.sourceforge.net/update">Update site</a><br />
O plugin integra o já famoso code analyzer <a href="http://checkstyle.sourceforge.net/">Checkstyle</a>, ferramenta para ajudar você a garantir que seu código Java adere à alguns padrões de codificação. O Checkstyle faz isso inspencionando seus códigos fontes e apontando os itens que foram selecionados no conjunto de regras disponíveis. Além disso, você pode usar o Checkstyle diretamente da linha de comando, ou como parte do seu nt build.</p>
<p><strong><a href="http://findbugs.sourceforge.net">Find Bugs</a></strong> &#8211; <a href="http://findbugs.cs.umd.edu/eclipse">Update site</a><br />
Ferramenta que ajuda à detectar bugs em potencial para códigos Java.</p>
<h3>Outras distribuições do Eclipse</h3>
<ul>
<li><a href="http://www.aptana.com/studio">Aptana Studio</a></li>
<li><a href="http://www.jboss.org/tools/">JBoss Tools</a></li>
<li><a href="http://www.myeclipseide.com/">MyEclipse</a></li>
<li><a href="http://www.ibm.com/software/rational/eclipse/">IBM Rational software</a></li>
<li><a href="http://www.bea.com/framework.jsp?CNT=index.htm&#038;FP=/content/products/workshop/">BEA Workshop Studio</a></li>
<li><a href="http://www.easyeclipse.org/">EasyEclipse</a></li>
<li><a href="http://www.exadel.com/">Exadel Studio</a></li>
<li><a href="http://www.yoxos.com/">Yoxos</a></li>
<li><a href="http://www.eclipsedownload.com/">Omondo UML</a></li>
</ul>
<h3>Dicas</h3>
<ul>
<li>Se você instalar dois ou mais plugins que possuam editor’s para o mesmo tipo de arquivo (ex: DBEdit e DBExplorer, para *.sql), você pode facilmente editar o default entrando em “Window” &gt;&gt; “Preferences” &gt;&gt; “Workbench” &gt;&gt; “File Associatons”. Selecione o tipo de arquivo que você deseja alterar o padrão e logo abaixo irá aparecer os editor’s disponíveis. Marque o desejado e clique em “Dafault”.</li>
<li>Uma coisa que quem está começando não sabe, é que o Eclipse não usa o CLASSPATH do sistema. Então para adicionar libs / classes / projetos, você precisa fazer isso diretamente na IDE. Clique com o botão direito do mouse no nome projeto, entre em Properties -&gt; Java Build Path -&gt; Libraries. Feito isso, entre em “Add class folder” para adicionar um diretório com .class, e “add jars / add external jars” para adicionar jars.</li>
<li>Quando você instalar um plugin, pode ser que o Eclipse não reconheca automaticamente, então você deve usar o parâmetro <em>-clean</em> (&#8220;C:\eclipse\eclipse.exe -clean&#8221; por exemplo). Utilizando este parâmetro, você estará forçando o Eclipse a reconstruir o repositório no qual ele armazena todos os plugin.xml&#8217;s (ele faz isso como uma forma de tornar o load inicial mais rápido).</li>
<li>Além do <em>-clean</em>, o Eclipse oferece uma <a href="http://help.eclipse.org/help32/index.jsp?topic=/org.eclipse.platform.doc.isv/reference/misc/runtime-options.html">série de outros parâmetros</a> que podem ser utilizados na sua inicialização, que podem inclusive aumentar sua performance.</li>
</ul>
<h3>Links relacionados</h3>
<ul>
<li><a href="http://www.ubuntugeek.com/how-to-install-and-setup-eclipse-with-suns-java.html">How to Install and setup Eclipse with Sun’s Java &#8211; Ubuntu</a></li>
<li><a href="http://www-106.ibm.com/developerworks/library/os-ecref/">Refactoring for everyone</a></li>
<li><a href="http://www-106.ibm.com/developerworks/library/os-ecov/">Getting started with the Eclipse Platform</a></li>
<li><a href="http://www-106.ibm.com/developerworks/library/os-ecvisual/">Build GUIs with the Eclipse Visual Editor project</a></li>
<li><a href="http://www.devx.com/opensource/Article/21562/0">Extending Eclipse with Helpful Views</a></li>
<li><a href="http://www.eclipsecon.org/tutorials.php">EclipseCON Tutorials</a></li>
<li><a href="https://eclipse-tutorial.dev.java.net/visual-tutorials/part1.html">Java Code Templates</a></li>
<li><a href="http://www-106.ibm.com/developerworks/opensource/library/os-ecspy1/">Tune Eclipse’s startup performance, Part 1</a> &amp; <a href="http://www-106.ibm.com/developerworks/opensource/library/os-ecspy2/">Part 2</a></li>
<li><a href="http://www-128.ibm.com/developerworks/library/os-eclplgndep/">Finding unresolved Plug-in dependencies in Eclipse</a></li>
</ul>
<div class="acc_license"><a href="http://creativecommons.org/licenses/by-nc-nd/3.0/"><img src="http://i.creativecommons.org/l/by-nc-nd/3.0/88x31.png" alt="by-nc-nd" /></a></div><!--<rdf:RDF xmlns="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><Work rdf:about=""><license rdf:resource="http://creativecommons.org/licenses/by-nc-nd/3.0/" /></Work><License rdf:about="http://creativecommons.org/licenses/by-nc-nd/3.0/"><requires rdf:resource="http://creativecommons.org/ns#Attribution" /><permits rdf:resource="http://creativecommons.org/ns#Reproduction" /><permits rdf:resource="http://creativecommons.org/ns#Distribution" /><prohibits rdf:resource="http://creativecommons.org/ns#CommercialUse" /><requires rdf:resource="http://creativecommons.org/ns#Notice" /></License></rdf:RDF>--><img src="http://plentz.org/wordpress/?ak_action=api_record_view&id=106&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://plentz.org/2005/02/27/eclipsed/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Markup e validações de formulário</title>
		<link>http://plentz.org/2005/02/01/markup-e-validacoes-de-formulario/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=markup-e-validacoes-de-formulario</link>
		<comments>http://plentz.org/2005/02/01/markup-e-validacoes-de-formulario/#comments</comments>
		<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate>
		<dc:creator>Diego Plentz</dc:creator>
				<category><![CDATA[geek]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://plentz.org/wordpress/?p=109</guid>
		<description><![CDATA[Já vi e pesquisei por diversas soluções de como validar formulários via javascript na internet, mas nunca encontrei uma que atendesse a todos as minhas necessidades e não fosse muito fora dos standards. Hoje lendo meus feeds no bloglines.com, vi o artigo publicado no List Apart, que fala justamente sobre isso. As formas que são [...]]]></description>
			<content:encoded><![CDATA[<div style="clear:both;"></div>
<p>Já vi e pesquisei por diversas soluções de como validar formulários via javascript na internet, mas nunca encontrei uma que atendesse a todos as minhas necessidades e não fosse muito fora dos standards.</p>
<p>Hoje lendo meus feeds no <a href="http://bloglines.com/">bloglines.com</a>, <a href="http://www.alistapart.com/articles/scripttriggers/">vi o artigo publicado</a> no <a href="http://www.alistapart.com/">List Apart</a>, que fala justamente sobre isso. As formas que são apresentadas ficaram muito agráveis na minha opinião.</p>
<p>Uma das soluções é adicionar ao class do elemento à ser validado tags que indicam o que deve ser validado. Ex:<br /><code><br />&lt;input class="required inputs" type="text"&gt;<br /></code><br />E validar da seguinte forma<br /><code><br />if ( x[i].className.indexOf('required') != -1 &&amp;  !x[i].value ) //alerta usuário<br /></code><br />A solução funciona legal, mas como o autor comenta, tipicamente o<br />atributo class é usado somente para elementos de apresentação.</p>
<p>Logo abaixo, é mostrado uma solução utilizando custom atributtes, ex:<br /><code><br />&lt;input required="true" type="text"&gt;<br /></code><br />O exemplo não valida no w3 tipicamente, mas é mostrada uma solução um tanto quanto legal. Criar um custom DTD, que inclui as propriedades criadas por você. E praticamente todos browsers suportam o método getAttribute(), que permite que estas propriedades sejam capturadas.</p>
<p>Com estas dicas, fica possível criar um framework&#8217;zinho javascript para validar qualquer tipo de dados e adicionar muitas funcionalidades aos formulários.</p>
<p>Aguardem mais dicas toscas nos próximos episódios&#8230;
<div style="clear:both; padding-bottom: 0.25em;"></div>
<div class="acc_license"><a href="http://creativecommons.org/licenses/by-nc-nd/3.0/"><img src="http://i.creativecommons.org/l/by-nc-nd/3.0/88x31.png" alt="by-nc-nd" /></a></div><!--<rdf:RDF xmlns="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><Work rdf:about=""><license rdf:resource="http://creativecommons.org/licenses/by-nc-nd/3.0/" /></Work><License rdf:about="http://creativecommons.org/licenses/by-nc-nd/3.0/"><requires rdf:resource="http://creativecommons.org/ns#Attribution" /><permits rdf:resource="http://creativecommons.org/ns#Reproduction" /><permits rdf:resource="http://creativecommons.org/ns#Distribution" /><prohibits rdf:resource="http://creativecommons.org/ns#CommercialUse" /><requires rdf:resource="http://creativecommons.org/ns#Notice" /></License></rdf:RDF>--><img src="http://plentz.org/wordpress/?ak_action=api_record_view&id=109&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://plentz.org/2005/02/01/markup-e-validacoes-de-formulario/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
