<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>OlhoNoBit</title>
	<atom:link href="http://olhonobit.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://olhonobit.wordpress.com</link>
	<description></description>
	<lastBuildDate>Tue, 14 Feb 2012 16:42:41 +0000</lastBuildDate>
	<language>pt-br</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='olhonobit.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>OlhoNoBit</title>
		<link>http://olhonobit.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://olhonobit.wordpress.com/osd.xml" title="OlhoNoBit" />
	<atom:link rel='hub' href='http://olhonobit.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Web &#8211; Resolvendo conflitos no jQuery</title>
		<link>http://olhonobit.wordpress.com/2011/03/23/web-resolvendo-conflitos-no-jquery/</link>
		<comments>http://olhonobit.wordpress.com/2011/03/23/web-resolvendo-conflitos-no-jquery/#comments</comments>
		<pubDate>Wed, 23 Mar 2011 21:07:06 +0000</pubDate>
		<dc:creator>Tomamais</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://olhonobit.wordpress.com/?p=234</guid>
		<description><![CDATA[O jQuery é uma biblioteca tão bacana que é usada intensamente por desenvolvedores e web designers. Isso é ótimo por um lado, pois além de todas as vantagens, traz certa uniformidade para o desenvolvimento, e impede que um dos dois suje demais o código. O lado péssimo é que, se desenvolvedores e designers não se [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=olhonobit.wordpress.com&amp;blog=15756712&amp;post=234&amp;subd=olhonobit&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>O <strong>jQuery </strong>é uma biblioteca tão bacana que é usada intensamente por desenvolvedores e web designers.</p>
<p>Isso é ótimo por um lado, pois além de todas as vantagens, traz certa  uniformidade para o desenvolvimento, e impede que um dos dois suje  demais o código.</p>
<p>O lado péssimo é que, se desenvolvedores e designers não se  conversam, o que é comum, cada um acaba por usar versões diferentes do  jQuery, o que pode gerar conflitos. Algumas vezes nem dá para chegar em  um acordo, pois a depender a implementação, a dependência gerada de uma  determinada biblioteca pode tornar inevitável o uso de duas versões. O  erro mais comum é passar a não encontrar determinadas funções, mesmo as  padrões do jQuery, obtendo resultados como:</p>
<blockquote><p>$(&#8220;#datepicker&#8221;).datepicker() is not a function</p></blockquote>
<p>Isso acontece porque, com mais de uma versão do jQuery, cada uma  tenta declarar a variável &#8220;$&#8221;. Na segunda tentativa de usá-la, o erro  acima aparece. A solução? Veja o código abaixo:<br />
<pre class="brush: jscript;">
var $j = jQuery.noConflict();
$j(&quot;#datepicker&quot;).datepicker();
</pre><br />
O que isso faz? Cria um novo contexto para o jQuery, permitindo que  você trabalhe com ele a partir desta nova variável. Uma explicação  melhor do que o método noConflict() faz pode ser vista no link abaixo:</p>
<p><a href="http://api.jquery.com/jQuery.noConflict/" target="_blank">http://api.jquery.com/jQuery.noConflict/</a></p>
<p>Pronto! Seu jQuery voltará a funcionar.</p>
<h3>Referências</h3>
<p><a title="http://stackoverflow.com/questions/1212696/jquery-ui-datepicker-datepicker-is-not-a-function" href="http://stackoverflow.com/questions/1212696/jquery-ui-datepicker-datepicker-is-not-a-function" target="_blank">http://stackoverflow.com/questions/1212696/jquery-ui-datepicker-datepicker-is-not-a-function</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/olhonobit.wordpress.com/234/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/olhonobit.wordpress.com/234/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/olhonobit.wordpress.com/234/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/olhonobit.wordpress.com/234/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/olhonobit.wordpress.com/234/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/olhonobit.wordpress.com/234/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/olhonobit.wordpress.com/234/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/olhonobit.wordpress.com/234/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/olhonobit.wordpress.com/234/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/olhonobit.wordpress.com/234/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/olhonobit.wordpress.com/234/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/olhonobit.wordpress.com/234/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/olhonobit.wordpress.com/234/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/olhonobit.wordpress.com/234/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=olhonobit.wordpress.com&amp;blog=15756712&amp;post=234&amp;subd=olhonobit&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://olhonobit.wordpress.com/2011/03/23/web-resolvendo-conflitos-no-jquery/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d0ad11d5ddefb48cde28d39feb980b59?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">tomamais</media:title>
		</media:content>
	</item>
		<item>
		<title>SQL &#8211; Multiplos Bancos no Contexto do Linq To Sql</title>
		<link>http://olhonobit.wordpress.com/2011/01/24/sql_multiplos_bancos_no_contexto_do_linq_to_sql/</link>
		<comments>http://olhonobit.wordpress.com/2011/01/24/sql_multiplos_bancos_no_contexto_do_linq_to_sql/#comments</comments>
		<pubDate>Mon, 24 Jan 2011 19:51:04 +0000</pubDate>
		<dc:creator>Stupied4ever</dc:creator>
				<category><![CDATA[SQL]]></category>
		<category><![CDATA[Linq]]></category>

		<guid isPermaLink="false">http://olhonobit.wordpress.com/?p=221</guid>
		<description><![CDATA[Dependendo da arquitetura da empresa, é comum encontrarmos sistemas que acessam dados em bancos de dados separados, como uma forma de integração. A query abaixo mostra um exemplo disso sendo feito: No caso do MS SQL Server, o &#8220;..&#8221; permite ter acesso a um banco de dados específico, não se atendo ao contexto da query [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=olhonobit.wordpress.com&amp;blog=15756712&amp;post=221&amp;subd=olhonobit&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Dependendo da arquitetura da empresa, é comum encontrarmos sistemas que acessam dados em bancos de dados separados, como uma forma de integração. A query abaixo mostra um exemplo disso sendo feito:</p>
<p><pre class="brush: sql;">
USE ECOMMERCE
SELECT
	pes.Nome,
	cid.Nome
FROM
Pessoa pes
	INNER JOIN BANCO_CORREIOS..Cidades cid ON pes.cidade = cid.id
WHERE
	pes.id = 123
</pre></p>
<p>No caso do MS SQL Server, o &#8220;..&#8221; permite ter acesso a um banco de dados específico, não se atendo ao contexto da query que está sendo construída, no caso, ECOMMERCE.</p>
<p>Usando LINQ To SQL, criaríamos um contexto (DBML) para o banco ECOMMERCE, porem como seria realizado o JOIN com o BANCO_CORREIOS?</p>
<p>Uma solução seria criar dois contextos, um para cada banco, consultar a pessoa de id = ‘123’ no xontexto do banco ECOMMERCE e consultarmos a cidade onde o id = pessoa .cidade no contextos do banco CORREIOS.</p>
<p>O seu arquivo de contexto pode ser o responsável também por consultar as cidades, desde que o usuário usado para conectar no banco de ECOMMERCE tenha acesso ao banco dos CORREIOS.  Dessa maneira poderiamos realizar apenas uma consulta com join nas tabelas necessarias.</p>
<p>Para fazer isso, basta inserirmos a tabela de Cidade no xml do arquivo de contexto:</p>
<p>1)	Clique com o botão direito no arquivo de contexto e selecione “abrir com/Open with“.<br />
<a href="http://olhonobit.files.wordpress.com/2011/01/dbml_dois_bancos_1.jpg"><img class="alignnone size-medium wp-image-222" title="Exição XMLS de DMBL " src="http://olhonobit.files.wordpress.com/2011/01/dbml_dois_bancos_1.jpg?w=300&#038;h=196" alt="Exição XMLS de DMBL " width="300" height="196" /></a><br />
2)	Selecione “Automatic Editor Selector (XML)”.<br />
3)	Insira o bloco XML referente a tabela desejada. A propriedade Name deve ser preenchida da mesma maneira como fazemos em uma query simples no SQL. [NomeDoBanco].[Usuario].[Tabela].</p>
<p><pre class="brush: xml;">
&lt;Table Name=&quot;BANCO_CORREIOS.dbo.Cidades&quot; Member=&quot;Cidades&quot;&gt;
	&lt;Type Name=&quot;Cidades&quot;&gt;
		&lt;Column Name=&quot;id&quot; Type=&quot;System.Int32&quot; DbType=&quot;Int NOT NULL&quot; IsPrimaryKey=&quot;true&quot; CanBeNull=&quot;false&quot; /&gt;
		&lt;Column Name=&quot;nome&quot; Type=&quot;System.String&quot; DbType=&quot;VarChar(60) NOT NULL&quot; CanBeNull=&quot;false&quot; /&gt;
		&lt;Column Name=&quot;uf&quot; Type=&quot;System.String&quot; DbType=&quot;VarChar(2) NOT NULL&quot; CanBeNull=&quot;false&quot; /&gt;
	&lt;/Type&gt;
&lt;/Table&gt;
</pre></p>
<p>4)	Na sua tabela de Pessoa, voce pode inserir uma associação:</p>
<p><pre class="brush: xml;">
&lt;Association Name=&quot;Pessoa_Cidade&quot; Member=&quot;Cidade&quot; ThisKey=&quot;Cidade&quot; OtherKey=&quot;ID&quot; Type=&quot;Cidade&quot; /&gt;
</pre></p>
<p>Salve e verifique que a tabela cidade já esta em seu contexto.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/olhonobit.wordpress.com/221/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/olhonobit.wordpress.com/221/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/olhonobit.wordpress.com/221/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/olhonobit.wordpress.com/221/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/olhonobit.wordpress.com/221/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/olhonobit.wordpress.com/221/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/olhonobit.wordpress.com/221/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/olhonobit.wordpress.com/221/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/olhonobit.wordpress.com/221/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/olhonobit.wordpress.com/221/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/olhonobit.wordpress.com/221/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/olhonobit.wordpress.com/221/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/olhonobit.wordpress.com/221/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/olhonobit.wordpress.com/221/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=olhonobit.wordpress.com&amp;blog=15756712&amp;post=221&amp;subd=olhonobit&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://olhonobit.wordpress.com/2011/01/24/sql_multiplos_bancos_no_contexto_do_linq_to_sql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1eb9b500bbf85599f404c92417a450a4?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">olhonobit</media:title>
		</media:content>

		<media:content url="http://olhonobit.files.wordpress.com/2011/01/dbml_dois_bancos_1.jpg?w=300" medium="image">
			<media:title type="html">Exição XMLS de DMBL </media:title>
		</media:content>
	</item>
		<item>
		<title>MVC &#8211; MVC Scaffolding</title>
		<link>http://olhonobit.wordpress.com/2011/01/18/mvc-mvc-scaffolding/</link>
		<comments>http://olhonobit.wordpress.com/2011/01/18/mvc-mvc-scaffolding/#comments</comments>
		<pubDate>Tue, 18 Jan 2011 16:16:15 +0000</pubDate>
		<dc:creator>Stupied4ever</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[MVC]]></category>
		<category><![CDATA[mvc]]></category>

		<guid isPermaLink="false">http://olhonobit.wordpress.com/?p=213</guid>
		<description><![CDATA[Se você esta usando o MVS Scaffolding [http://mvcscaffolding.codeplex.com/] e não sabe como mudar a connection string, vale à pena dar uma lida no blog [Matt's work blog]. A solução é simples, basta adicionar no seu “web.config” uma connection string para o banco desejado. A única restrição é que o nome da connectionString deve ser o [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=olhonobit.wordpress.com&amp;blog=15756712&amp;post=213&amp;subd=olhonobit&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Se você esta usando o MVS Scaffolding [<a href="http://mvcscaffolding.codeplex.com/">http://mvcscaffolding.codeplex.com/</a>] e não sabe como mudar a connection string, vale à pena dar uma lida no blog [<a href="http://mattfrear.com/2011/01/01/system-data-providerincompatibleexception-was-unhandled-by-user-code/">Matt's work blog</a>].<br />
A solução é simples, basta adicionar no seu “web.config” uma connection string para o banco desejado. A única restrição é que o nome da connectionString deve ser o nome do seu contexto</p>
<p><pre class="brush: xml;">
&lt;connectionStrings&gt;
	&lt;add name=&quot;BlogContext&quot; connectionString=&quot;Data Source=.; Initial Catalog= Blog; Integrated Security=SSPI;&quot; providerName=&quot;System.Data.SqlClient&quot; /&gt;
 &lt;/connectionStrings&gt;
</pre></p>
<p>isso para um contexto de nome BlogContext<br />
<pre class="brush: csharp;">
public partial class BlogContext : DbContext
</pre></p>
<p>Devidos méritos ao Matt.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/olhonobit.wordpress.com/213/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/olhonobit.wordpress.com/213/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/olhonobit.wordpress.com/213/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/olhonobit.wordpress.com/213/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/olhonobit.wordpress.com/213/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/olhonobit.wordpress.com/213/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/olhonobit.wordpress.com/213/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/olhonobit.wordpress.com/213/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/olhonobit.wordpress.com/213/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/olhonobit.wordpress.com/213/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/olhonobit.wordpress.com/213/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/olhonobit.wordpress.com/213/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/olhonobit.wordpress.com/213/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/olhonobit.wordpress.com/213/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=olhonobit.wordpress.com&amp;blog=15756712&amp;post=213&amp;subd=olhonobit&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://olhonobit.wordpress.com/2011/01/18/mvc-mvc-scaffolding/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1eb9b500bbf85599f404c92417a450a4?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">olhonobit</media:title>
		</media:content>
	</item>
		<item>
		<title>jQuery &#8211; Truncando texto</title>
		<link>http://olhonobit.wordpress.com/2010/12/02/jquery-truncando-texto/</link>
		<comments>http://olhonobit.wordpress.com/2010/12/02/jquery-truncando-texto/#comments</comments>
		<pubDate>Thu, 02 Dec 2010 19:06:05 +0000</pubDate>
		<dc:creator>Stupied4ever</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[Boas Práticas]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://olhonobit.wordpress.com/?p=191</guid>
		<description><![CDATA[Diversas vezes precisei truncar um texto para não quebrar o layout. Criei uma função JQuery para resolver tal problema. A função busca por uma classe CSS especifica e verifica em um atributo no elemento HTML o limite (em caracteres). HTML jQuery Ficou bem simples e resolveu o problema. Porem, quantas pessoas precisam truncar um texto [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=olhonobit.wordpress.com&amp;blog=15756712&amp;post=191&amp;subd=olhonobit&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Diversas vezes precisei truncar um texto para não quebrar o layout. Criei uma função JQuery para resolver tal problema. A função busca por uma classe CSS especifica e verifica em um atributo no elemento HTML o limite (em caracteres).</p>
<p>HTML</p>
<p><pre class="brush: plain;">
&lt;span limite=&quot;20&quot;&gt;Esse texto vai ser truncado de acordo com o limite.&lt;/span&gt;
</pre></p>
<p>jQuery</p>
<p><pre class="brush: jscript;">
$().ready(function() {
     truncarTextos();
 });

 function truncarTextos(){
     $('.truncar').each(function(){
         truncarTexto($(this));
     });
 }

 function truncarTexto(elementoHtml){
     var limite = elementoHtml.attr(&quot;limite&quot;)

     if(elementoHtml.html().length &gt; limite)
     {
         elementoHtml.html(elementoHtml.html().substring(0,limite) + &quot;...&quot;);
     }
 }
</pre></p>
<p><strong>Ficou bem simples e resolveu o problema</strong>. Porem, <strong>quantas pessoas precisam truncar um texto e tomam a mesma atitude</strong>? Depois de uma busca percebi que isso acontece freqüentemente e para resolver o problema existem plugins dojQuery que funcionam de uma forma muito mais inteligentes do que a função acima, eles limitam o texto por tamanho e não por caracteres.</p>
<p>O que achei mais bacana é o <a href="http://www.jeremymartin.name/projects.php?project=jTruncate">jTruncate</a></p>
<p>Se você precisa truncar um texto, <strong>use um plugin do jQuery, não faça seu próprio código</strong>, isso implica em <em>mais testes e duplicidade de código</em> toda vez que precisar truncar um texto. <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Vou publicar o código para fins educativos, mas <strong>seja mais inteligente e produtivo que eu e use um plugin</strong>.</p>
<p><a title="Truncando texto jQuery" href="http://www.rafaelalmeida.net/Content/Exemplos/jQuery/jquery_truncar_texto.zip" target="_blank">Download do meu código</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/olhonobit.wordpress.com/191/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/olhonobit.wordpress.com/191/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/olhonobit.wordpress.com/191/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/olhonobit.wordpress.com/191/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/olhonobit.wordpress.com/191/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/olhonobit.wordpress.com/191/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/olhonobit.wordpress.com/191/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/olhonobit.wordpress.com/191/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/olhonobit.wordpress.com/191/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/olhonobit.wordpress.com/191/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/olhonobit.wordpress.com/191/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/olhonobit.wordpress.com/191/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/olhonobit.wordpress.com/191/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/olhonobit.wordpress.com/191/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=olhonobit.wordpress.com&amp;blog=15756712&amp;post=191&amp;subd=olhonobit&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://olhonobit.wordpress.com/2010/12/02/jquery-truncando-texto/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1eb9b500bbf85599f404c92417a450a4?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">olhonobit</media:title>
		</media:content>
	</item>
		<item>
		<title>Exceptions &#8211; Um caso real de seu uso, ou não</title>
		<link>http://olhonobit.wordpress.com/2010/11/25/exceptions-uma-caso-real-de-seu-uso-ou-nao/</link>
		<comments>http://olhonobit.wordpress.com/2010/11/25/exceptions-uma-caso-real-de-seu-uso-ou-nao/#comments</comments>
		<pubDate>Thu, 25 Nov 2010 17:49:50 +0000</pubDate>
		<dc:creator>Tomamais</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Boas Práticas]]></category>
		<category><![CDATA[Exceptions]]></category>

		<guid isPermaLink="false">http://olhonobit.wordpress.com/?p=185</guid>
		<description><![CDATA[Outro dia, discutia com alguns colegas do trabalho sobre o correto uso de exceptions em uma aplicação. Para ficar um pouco mais explícito, o contexto era mais ou menos o seguinte: Havia um código em aplicação, já pronto, com toda a lógica necessária para o que ele precisava fazer. Foi preciso, no entanto, adicionar um [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=olhonobit.wordpress.com&amp;blog=15756712&amp;post=185&amp;subd=olhonobit&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Outro dia, discutia com alguns colegas do trabalho sobre o correto uso de exceptions em uma aplicação. Para ficar um pouco mais explícito, o contexto era mais ou menos o seguinte:</p>
<p>Havia um código em aplicação, já pronto, com toda a lógica necessária para o que ele precisava fazer. Foi preciso, no entanto, adicionar um comportamento que invalidaria o fluxo atual, que estava funcionando bem. Nem preciso dizer que tal mudança no código faria ter que testá-lo novamente na íntegra. No desejo de diminuir o impacto que a mudança causaria no código existente (conceito do programador preguiçoso), pensou-se na solução mais simples que consistia no fato de que, se a nova verificação desejada não fosse feita, causaria um erro na execução do programa. Erro? Oras? Porque não try/catch? Resolveria, não?</p>
<p>Sim, é a resposta rápida a esta pergunta.</p>
<p>Vamos então aos argumentos para torná-la válida.</p>
<p>Primeiro, defendo (na esperança dos ditos colegas concordarem comigo) o uso de todo e qualquer recurso disponível para uso nas linguagens de programação. Se eles estão lá, é para serem usados. O que tem ocorrido ultimamente é que, tendo nós programadores sido bombardeados por tudo que é tipo de filosofia, mais comumente chamadas &#8220;boas práticas&#8221;, acabamos por somente segui-las, esquecendo a grande parte das possibilidades que as tecnologias nos proporcionam. Aqui, vale um parênteses. Particularmente, acho isso triste, já que uma das características marcantes desta profissão, é a liberdade de se poder fazer o que quiser, como quiser, ou seja, todas as possibilidades. São fatores como esses que acredito ser o que faz com que nosso trabalho nos aproxime mais dos artistas, pintores e músicos do que dos engenheiros e projetistas.</p>
<p>Voltando ao foco do texto, se o try/catch resolve o problema citado, e rápido, porque não usá-lo? Insatisfeitos com a resposta, decidimos assumir esta última como uma possibilidade e partimos para analisar o código mais de perto, fazendo do ocorrido praticamente um Coding Dojo.</p>
<p>A resposta do porque usar a exception para resolver o caso nós já tínhamos. É rápido e fácil de implementar, e resolve pontualmente o problema. Agora, mais do que justamente, vamos ao porque não utilizar essa alternativa.</p>
<p>Primeiro, vale citar um caso típico oferecido pelo próprio .NET Framework. Uma Exception que deve ser conhecida da maioria, é a DivideByZeroException. Seu nome é auto explicativo. Ela é disparada toda vez que ocorre um erro de divisão aritmética por zero em um código .NET. Há alguns evangelistas (amigos inclusive) que defendem que os códigos que podem gerar tal Exception fossem tratados por esta, pois isso o deixaria mais claro e legível a respeito do que está acontecendo, aplicando o mesmo pensamento para outras situações. De todos os argumentos, só defendo e mesmo assim, parcialmente, o último.</p>
<p>O problema de usar Exceptions é que, ao se trabalhar com o disparo destas, estamos causando um overhead no processamento do programa. Convido-o a parar para pensar por um minuto. Se você já depurou um aplicativo, no caso do .NET, no Visual Studio, você provavelmente parou para analisar a pilha de execução de uma Exception, seja ela qual for, e analisar as informações que lá haviam para ajudar a identificar um erro. Pois é. Quando você dispara mesmo que voluntariamente uma Exception, você está carregando a memória e o processamento do seu aplicativo com toda essa informação e os objetos que a acompanham. O mecanismo de Exceptions do .NET Framework é excelente, mas traz consigo uma considerável carga. Não que este nunca deva ser utilizado, até porque, algumas vezes ele é inevitável, mas o fato é que, se você não precisa mesmo da Exception, evite-a!</p>
<p>No caso mais simples, que é o do DivideByZeroException, apesar de ilustrativo, é muito mais simples antes de fazer a divisão, verificar se o divisor tem o valor zero.</p>
<p>Curiosamente, frameworks de teste como NUnit vem ao encontro de necessidades como esta. Um código bem testado precisa de menos tratamento de erros, certo?</p>
<p>Finalmente, após nosso &#8220;Dojo&#8221;, o resultado foi a reescrita do código, que ficou com menos da metade das linhas da primeira versão, atendendo a nova necessidade e sem nenhum tratamento de Exceptions!</p>
<p>Enfim, apesar do texto ter fugido um pouco ao título, o que ficou de lição neste caso foram os seguintes pontos:</p>
<ul>
<li>Utilize tratamento de Exceptions com muito cuidado. Não envolva seu código em um try/catch só porque você acha que ele pode levar a um erro.</li>
<li>A inserção descuidada de um bloco try/catch causa uma quebra lógica na sequência de execução do aplicativo, sendo em vários casos pior do que um if/else. Quando da ocorrência de um erro, praticamente todo o contexto criado dentro do try é perdido, sendo preciso externalizar muita coisa, o que já nos levaria a uma manutenção considerável do código.</li>
<li>Sempre, sempre submeta seu código à avaliação dos colegas. Várias cabeças (mas não muitas) pensam melhor do que uma. O pior que pode acontecer é ter que reescrever o código, o que não é essencialmente ruim, já que o resultado utilizando este tipo de cooperação é potencialmente melhor. A certeza é de aprendizado por todos, pois, como somos artistas (:p), cada um provavelmente pensaria em uma solução diferente.</li>
</ul>
<p>Por fim, o que gostaria de deixar aqui é a vivência que tive com a situação, juntamente com a equipe, mais no sentido como encarar um problema de programação, como no exemplo citado, do que dar uma opção de resposta para este.</p>
<p>Deixo aqui também meus agradecimentos aos amigos @arnascimento e @stupied4ever, com quem vivi e compartilhei a ocasião acima citada.</p>
<p>Curiosidade: escrevi a maior parte deste artigo direto no celular enquanto estava no transporte público. Local atípico para se pensar e escrever um artigo desses, não? <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/olhonobit.wordpress.com/185/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/olhonobit.wordpress.com/185/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/olhonobit.wordpress.com/185/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/olhonobit.wordpress.com/185/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/olhonobit.wordpress.com/185/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/olhonobit.wordpress.com/185/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/olhonobit.wordpress.com/185/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/olhonobit.wordpress.com/185/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/olhonobit.wordpress.com/185/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/olhonobit.wordpress.com/185/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/olhonobit.wordpress.com/185/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/olhonobit.wordpress.com/185/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/olhonobit.wordpress.com/185/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/olhonobit.wordpress.com/185/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=olhonobit.wordpress.com&amp;blog=15756712&amp;post=185&amp;subd=olhonobit&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://olhonobit.wordpress.com/2010/11/25/exceptions-uma-caso-real-de-seu-uso-ou-nao/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d0ad11d5ddefb48cde28d39feb980b59?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">tomamais</media:title>
		</media:content>
	</item>
		<item>
		<title>RubyConf &#8211; Agenda</title>
		<link>http://olhonobit.wordpress.com/2010/10/25/rubyconf-agenda/</link>
		<comments>http://olhonobit.wordpress.com/2010/10/25/rubyconf-agenda/#comments</comments>
		<pubDate>Mon, 25 Oct 2010 13:52:51 +0000</pubDate>
		<dc:creator>Stupied4ever</dc:creator>
		
		<guid isPermaLink="false">http://olhonobit.wordpress.com/?p=174</guid>
		<description><![CDATA[Amanha o @tomamais e eu estaremos no RubyConf. Na agenda do site a grade não mostra o titulo das palestras então resolvi colocar em uma planilha. Você pode ver a imagem ou fazer o download da planilha.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=olhonobit.wordpress.com&amp;blog=15756712&amp;post=174&amp;subd=olhonobit&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Amanha o @tomamais e eu estaremos no RubyConf. Na agenda do site a grade não mostra o titulo das palestras então resolvi colocar em uma planilha. Você pode ver a imagem ou fazer o download da <a title="Agenda RubyConf" href="http://www.rafaelalmeida.net/Content/Download/Agenda_ruby_conf.xls">planilha</a>.</p>
<p><a href="http://www.rafaelalmeida.net/Content/Download/Agenda_ruby_conf.JPG"><img class="alignnone" title="Agenda RubyConf" src="http://www.rafaelalmeida.net/Content/Download/Agenda_ruby_conf.JPG" alt="RubyConf Agenda" width="700" height="541" /></a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/olhonobit.wordpress.com/174/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/olhonobit.wordpress.com/174/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/olhonobit.wordpress.com/174/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/olhonobit.wordpress.com/174/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/olhonobit.wordpress.com/174/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/olhonobit.wordpress.com/174/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/olhonobit.wordpress.com/174/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/olhonobit.wordpress.com/174/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/olhonobit.wordpress.com/174/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/olhonobit.wordpress.com/174/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/olhonobit.wordpress.com/174/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/olhonobit.wordpress.com/174/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/olhonobit.wordpress.com/174/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/olhonobit.wordpress.com/174/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=olhonobit.wordpress.com&amp;blog=15756712&amp;post=174&amp;subd=olhonobit&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://olhonobit.wordpress.com/2010/10/25/rubyconf-agenda/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1eb9b500bbf85599f404c92417a450a4?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">olhonobit</media:title>
		</media:content>

		<media:content url="http://www.rafaelalmeida.net/Content/Download/Agenda_ruby_conf.JPG" medium="image">
			<media:title type="html">Agenda RubyConf</media:title>
		</media:content>
	</item>
		<item>
		<title>DotNet – Sitemap simples e eficiente</title>
		<link>http://olhonobit.wordpress.com/2010/10/07/dotnet-sitemap-simples-e-eficiente/</link>
		<comments>http://olhonobit.wordpress.com/2010/10/07/dotnet-sitemap-simples-e-eficiente/#comments</comments>
		<pubDate>Thu, 07 Oct 2010 18:31:02 +0000</pubDate>
		<dc:creator>Stupied4ever</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[SiteMap]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[C#]]></category>

		<guid isPermaLink="false">http://olhonobit.wordpress.com/?p=169</guid>
		<description><![CDATA[Google sitemap, agora para WebForms. Vale a pena dar uma olhada, ficou bem simples e dinâmico. <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=olhonobit.wordpress.com&amp;blog=15756712&amp;post=169&amp;subd=olhonobit&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Faz uma semana, eu postei sobre <a href="http://olhonobit.wordpress.com/2010/09/20/mvc_sitemap_simples_e_eficiente/">sitemap no MVC</a>, e ontem o @arnascimento precisou de um sitemap, mas tinha que ser para WebForms. Para isso eu fiz uma adaptação do meu código e ele funciona também para WebForms.</p>
<p>O código pode ser encontrado em <a href="http://www.rafaelalmeida.net/Content/Exemplos/googlesitemap.zip">http://www.rafaelalmeida.net/Content/Exemplos/googlesitemap.zip</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/olhonobit.wordpress.com/169/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/olhonobit.wordpress.com/169/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/olhonobit.wordpress.com/169/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/olhonobit.wordpress.com/169/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/olhonobit.wordpress.com/169/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/olhonobit.wordpress.com/169/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/olhonobit.wordpress.com/169/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/olhonobit.wordpress.com/169/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/olhonobit.wordpress.com/169/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/olhonobit.wordpress.com/169/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/olhonobit.wordpress.com/169/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/olhonobit.wordpress.com/169/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/olhonobit.wordpress.com/169/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/olhonobit.wordpress.com/169/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=olhonobit.wordpress.com&amp;blog=15756712&amp;post=169&amp;subd=olhonobit&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://olhonobit.wordpress.com/2010/10/07/dotnet-sitemap-simples-e-eficiente/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1eb9b500bbf85599f404c92417a450a4?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">olhonobit</media:title>
		</media:content>
	</item>
		<item>
		<title>SQL – Apagando todos os registros de um banco de dados SQL Server</title>
		<link>http://olhonobit.wordpress.com/2010/10/05/sql-%e2%80%93-apagando-todos-os-registros-de-um-banco-de-dados-sql-server/</link>
		<comments>http://olhonobit.wordpress.com/2010/10/05/sql-%e2%80%93-apagando-todos-os-registros-de-um-banco-de-dados-sql-server/#comments</comments>
		<pubDate>Tue, 05 Oct 2010 12:57:36 +0000</pubDate>
		<dc:creator>Tomamais</dc:creator>
				<category><![CDATA[SQL]]></category>
		<category><![CDATA[sp_MSForEachTable]]></category>
		<category><![CDATA[sql server]]></category>
		<category><![CDATA[stored procedure]]></category>
		<category><![CDATA[T-SQL]]></category>

		<guid isPermaLink="false">http://olhonobit.wordpress.com/?p=161</guid>
		<description><![CDATA[Tirado fundo do baú. As experiências que tive em um projeto me levaram a ter que descobrir alguns macetes do SQL Server. A pressão realmente faz diamantes e a &#8220;experiência&#8221; é definitivamente algo insubstituível. Uma das necessidades da aplicação era a constante troca de ambiente. Uma hora desenvolvimento, outra produção, outra qualidade, enfim. Como o [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=olhonobit.wordpress.com&amp;blog=15756712&amp;post=161&amp;subd=olhonobit&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Tirado fundo do baú. <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>As  experiências que tive em um projeto me levaram a ter que  descobrir alguns macetes do SQL Server. A pressão realmente faz diamantes e a &#8220;experiência&#8221; é definitivamente algo insubstituível.</p>
<p>Uma das necessidades da aplicação era a constante troca de  ambiente. Uma hora desenvolvimento, outra produção, outra qualidade,  enfim.</p>
<p>Como o acesso era extramente restrito, não era algo trivial ficar  &#8220;dropando&#8221; a base de dados, até porque nem era possível. O jeito era  trabalhar direto no SQL para substituir algumas rotinas que a ferramenta  e o acesso em nível administrativo facilitavam.</p>
<p>Por exemplo, para facilmente excluir todos os dados de todas a  tabelas de um banco de dados SQL Server, a seguinte query resolve o  problema:</p>
<p><pre class="brush: sql;">
-- desativa a integridade referencial
EXEC sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'
GO

EXEC sp_MSForEachTable '
IF OBJECTPROPERTY(object_id(''?''), ''TableHasForeignRef'') = 1
DELETE FROM ?
else
TRUNCATE TABLE ?
'
GO

-- reativa a integridade refencial
EXEC sp_MSForEachTable 'ALTER TABLE ? CHECK CONSTRAINT ALL'
GO
</pre></p>
<p>Em detalhes, o que a query faz: ela usa uma stored procedure não  documentada do SQL Server chamada <strong>sp_MSForEachTable</strong>. Resumidamente, esta  stored procedure dispara um comando SQL passado por parâmetro em todas  as tabelas de um database, sendo o nome da tabela substituído pelo  caracter &#8220;?&#8221;, como pode ser visto na query anterior. Se além de de  apagar os dados das tabelas, quiser também reiniciar a contagem dos  campos de chave primária, mais conhecido como RESEED, bastaria colocar a  seguinte query antes da reativação da integridade referencial:</p>
<p><pre class="brush: sql;">
-- Reinicia o contador de chave primária de todas as tabelas
EXEC sp_MSForEachTable '
IF OBJECTPROPERTY(object_id(''?''), ''TableHasIdentity'') = 1
DBCC CHECKIDENT (''?'', RESEED, 0)
'
GO
</pre></p>
<p>Na falta de ferramentas ou privilégios, esse tipo de macete é uma mão na roda.</p>
<p>Referência:</p>
<p><a title="http://blogs.officezealot.com/mauro/archive/2006/03/12/9402.aspx" href="http://blogs.officezealot.com/mauro/archive/2006/03/12/9402.aspx" target="_blank">http://blogs.officezealot.com/mauro/archive/2006/03/12/9402.aspx</a></p>
<p>Bom proveito!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/olhonobit.wordpress.com/161/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/olhonobit.wordpress.com/161/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/olhonobit.wordpress.com/161/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/olhonobit.wordpress.com/161/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/olhonobit.wordpress.com/161/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/olhonobit.wordpress.com/161/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/olhonobit.wordpress.com/161/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/olhonobit.wordpress.com/161/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/olhonobit.wordpress.com/161/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/olhonobit.wordpress.com/161/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/olhonobit.wordpress.com/161/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/olhonobit.wordpress.com/161/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/olhonobit.wordpress.com/161/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/olhonobit.wordpress.com/161/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=olhonobit.wordpress.com&amp;blog=15756712&amp;post=161&amp;subd=olhonobit&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://olhonobit.wordpress.com/2010/10/05/sql-%e2%80%93-apagando-todos-os-registros-de-um-banco-de-dados-sql-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d0ad11d5ddefb48cde28d39feb980b59?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">tomamais</media:title>
		</media:content>
	</item>
		<item>
		<title>JQuery &#8211; Campo de texto aceitando só números</title>
		<link>http://olhonobit.wordpress.com/2010/10/01/jquery-campo-de-texto-aceitando-so-numeros/</link>
		<comments>http://olhonobit.wordpress.com/2010/10/01/jquery-campo-de-texto-aceitando-so-numeros/#comments</comments>
		<pubDate>Sat, 02 Oct 2010 00:53:11 +0000</pubDate>
		<dc:creator>leonardoobaptistaa</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Numerico]]></category>
		<category><![CDATA[Validação]]></category>

		<guid isPermaLink="false">http://olhonobit.wordpress.com/?p=155</guid>
		<description><![CDATA[como um campo aceitar só números com javascript e jquery<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=olhonobit.wordpress.com&amp;blog=15756712&amp;post=155&amp;subd=olhonobit&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Uma coisa que sempre precisamos pesquisar ou em projetos antigos ou no google é como deixar um input text só aceitando números, iremos fazer isso utilizando o jquery <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Primeiro crie a função:<br />
<pre class="brush: jscript;">
function verificaNumero(e) {
                if (e.which != 8 &amp;&amp; e.which != 0 &amp;&amp; (e.which &lt; 48 || e.which &gt; 57)) {
                    return false;
                }
            }
</pre></p>
<p>Pode ser dentro da página dentro de tags &#8221;, mas eu aconselho criar sempre em um arquivo separado e linkar no html.</p>
<p>Após isso, é só colocar no document.ready quais campos devem ter essa função no keypress:<br />
<pre class="brush: jscript;">
$(document).ready(function() {
				$(&quot;#txtCEP&quot;).keypress(verificaNumero);
				$(&quot;#txtCEP2&quot;).keypress(verificaNumero);
				$(&quot;#txtCEP3&quot;).keypress(verificaNumero);
			});
</pre></p>
<p>Simples!<br />
Testado em: IE, Firefox e Chrome!</p>
<p>Pra quem está tento erros de sintaxe, segue o html completo:<br />
<pre class="brush: plain;">
&lt;html&gt;
	&lt;head&gt;
		&lt;title&gt;Teste só numeros&lt;/title&gt;
		&lt;script type=&quot;text/javascript&quot; src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js&quot;&gt;&lt;/script&gt; 
		&lt;script&gt;
			function verificaNumero(e) {
                if (e.which != 8 &amp;&amp; e.which != 0 &amp;&amp; (e.which &lt; 48 || e.which &gt; 57)) {
                    return false;
                }
            }
			
			$(document).ready(function() {
				$(&quot;#txtCEP&quot;).keypress(verificaNumero);
				$(&quot;#txtCEP2&quot;).keypress(verificaNumero);
				$(&quot;#txtCEP3&quot;).keypress(verificaNumero);
			});
		&lt;/script&gt;
	&lt;/head&gt;
	&lt;body&gt;
		&lt;input id=&quot;txtCEP&quot; type=&quot;text&quot;/&gt;
		&lt;input id=&quot;txtCEP2&quot; type=&quot;text&quot;/&gt;
		&lt;input id=&quot;txtCEP3&quot; type=&quot;text&quot;/&gt;
	&lt;/body&gt;
&lt;/html&gt;
</pre></p>
<p>Abraço!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/olhonobit.wordpress.com/155/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/olhonobit.wordpress.com/155/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/olhonobit.wordpress.com/155/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/olhonobit.wordpress.com/155/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/olhonobit.wordpress.com/155/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/olhonobit.wordpress.com/155/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/olhonobit.wordpress.com/155/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/olhonobit.wordpress.com/155/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/olhonobit.wordpress.com/155/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/olhonobit.wordpress.com/155/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/olhonobit.wordpress.com/155/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/olhonobit.wordpress.com/155/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/olhonobit.wordpress.com/155/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/olhonobit.wordpress.com/155/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=olhonobit.wordpress.com&amp;blog=15756712&amp;post=155&amp;subd=olhonobit&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://olhonobit.wordpress.com/2010/10/01/jquery-campo-de-texto-aceitando-so-numeros/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/890f1e6fd76bd1dd6953b4978254cb3e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">leonardoobaptistaa</media:title>
		</media:content>
	</item>
		<item>
		<title>DotNet &#8211; Porque usar o &#8220;ref&#8221; para &#8220;ReferenceTypes&#8221; ?</title>
		<link>http://olhonobit.wordpress.com/2010/09/30/dotnet-porque-usar-o-ref-para-referencetypes/</link>
		<comments>http://olhonobit.wordpress.com/2010/09/30/dotnet-porque-usar-o-ref-para-referencetypes/#comments</comments>
		<pubDate>Thu, 30 Sep 2010 21:40:34 +0000</pubDate>
		<dc:creator>Stupied4ever</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[DotNet]]></category>
		<category><![CDATA[Parametros]]></category>
		<category><![CDATA[referencia]]></category>

		<guid isPermaLink="false">http://olhonobit.wordpress.com/?p=140</guid>
		<description><![CDATA[ReferenceTypes precisam da palavra reservada "ref" para serem passados por parametro ?? Porque preciso indicar que é por referencia se é um ReferenceType ?<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=olhonobit.wordpress.com&amp;blog=15756712&amp;post=140&amp;subd=olhonobit&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Esses dias eu estava conversando com um amigo sobre a necessidade de usar “ref” para passar por referência objetos “ReferenceType” [<a href="http://msdn.microsoft.com/en-us/library/490f96s2.aspx">LINK</a>]. Ele me dizia que não era necessário, e eu dizia que mesmo que não fosse necessário, o ideal era utilizar para aumentar a legibilidade.<br />
Hoje conversando sobre isso na empresa o @tomamais me enviou essa pagina do MSDN <a href="http://msdn.microsoft.com/en-us/library/0f66670z%28v=vs.71%29.aspx#vclrfpassingmethodparameters_example4">[LINK]</a> onde os exemplos 4 e 5 respondem a dúvida.</p>
<p>A RESPOSTA:<br />
Um parâmetro do tipo “reference type” será tratado como passagem por referencia mesmo que não use a palavra reservada “ref”, porem se essa variável for “reinstanciada”, as modificações posteriores não vão refletir fora do método.<br />
<pre class="brush: csharp;">class Program
{
    static void Change(int[] arr)
    {
        arr[0] = 888;   // Essa mudança afeta o elemento original.
        arr = new int[5] { -3, -1, -2, -3, -4 };   // Essa mudança é local.
        Console.WriteLine(&quot;Dentro do metodo, o primeiro valor é: {0}&quot;, arr[0]);
    }

    public static void Main()
    {
        int[] myArray = { 1, 4, 5 }; /// Array de 3 posições
        Console.WriteLine(&quot;Na Main, antes da chamada do metodo, o primeiro valor é: {0}&quot;, myArray[0]);
        Change(myArray);
        Console.WriteLine(&quot;Na Main, depois da chamada do metoro, o primeiro valor é: {0}&quot;, myArray[0]);
        Console.Read();
    }
}</pre></p>
<p>Saída no console:<br />
<em>Na Main, antes da chamada do metodo, o primeiro valor é: 1<br />
Dentro do metodo, o primeiro valor é: -3<br />
Na Main, depois da chamada do metoro, o primeiro valor é: 888</em></p>
<p>É por esse motivo que precisamos usar o “ref”.<br />
Repare que com o uso da palavra reservada, o valor é alterado mesmo reinstanciando a variável.<br />
<pre class="brush: csharp;">class Program
{
    static void Change(ref int[] arr)
    {
        arr[0] = 888;   // Essa mudança afeta o elemento original.
        arr = new int[5] { -3, -1, -2, -3, -4 };   // Essa mudança é global.
        Console.WriteLine(&quot;Dentro do metodo, o primeiro valor é: {0}&quot;, arr[0]);
    }

    public static void Main()
    {
        int[] myArray = { 1, 4, 5 }; /// Array de 3 posições
        Console.WriteLine(&quot;Na Main, antes da chamada do metodo, o primeiro valor é: {0}&quot;, myArray[0]);
        Change(ref myArray);
        Console.WriteLine(&quot;Na Main, depois da chamada do metoro, o primeiro valor é: {0}&quot;, myArray[0]);
        Console.Read();
    }
}</pre><br />
Saída no console:<br />
<em>Na Main, antes da chamada do metodo, o primeiro valor é: 1<br />
Dentro do metodo, o primeiro valor é: -3<br />
Na Main, depois da chamada do metoro, o primeiro valor é: -3</em></p>
<p>CONCLUSÃO:<br />
O uso da palavra reservada “ref” é obrigatório não somente pela legibilidade do código, mas também quando acontece a reinstanciação de uma variável. Quando reinstanciamos a variável dentro método no contexto global, o valor será diferente do desejado.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/olhonobit.wordpress.com/140/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/olhonobit.wordpress.com/140/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/olhonobit.wordpress.com/140/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/olhonobit.wordpress.com/140/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/olhonobit.wordpress.com/140/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/olhonobit.wordpress.com/140/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/olhonobit.wordpress.com/140/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/olhonobit.wordpress.com/140/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/olhonobit.wordpress.com/140/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/olhonobit.wordpress.com/140/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/olhonobit.wordpress.com/140/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/olhonobit.wordpress.com/140/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/olhonobit.wordpress.com/140/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/olhonobit.wordpress.com/140/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=olhonobit.wordpress.com&amp;blog=15756712&amp;post=140&amp;subd=olhonobit&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://olhonobit.wordpress.com/2010/09/30/dotnet-porque-usar-o-ref-para-referencetypes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1eb9b500bbf85599f404c92417a450a4?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">olhonobit</media:title>
		</media:content>
	</item>
	</channel>
</rss>
