<?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>{:elf =&#62; &#34;Blog&#34;}</title>
	<atom:link href="http://edipolf.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://edipolf.wordpress.com</link>
	<description>Edipo L Federle Blog</description>
	<lastBuildDate>Fri, 11 Dec 2009 13:06:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='edipolf.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>{:elf =&#62; &#34;Blog&#34;}</title>
		<link>http://edipolf.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://edipolf.wordpress.com/osd.xml" title="{:elf =&#62; &#34;Blog&#34;}" />
	<atom:link rel='hub' href='http://edipolf.wordpress.com/?pushpress=hub'/>
		<item>
		<title>MUDEI !!!!</title>
		<link>http://edipolf.wordpress.com/2009/12/11/mudei/</link>
		<comments>http://edipolf.wordpress.com/2009/12/11/mudei/#comments</comments>
		<pubDate>Fri, 11 Dec 2009 13:06:36 +0000</pubDate>
		<dc:creator>Édipo Luis Féderle</dc:creator>
				<category><![CDATA[Geral]]></category>
		<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://edipolf.wordpress.com/?p=368</guid>
		<description><![CDATA[O Blog mudou de endereço É isso ai pessoas, mudei para um outro endereço agora, os posta que tem la são os menos que aqui(ja tem um novo la) irei manter esse link ativo por um tempo mas as postagens serão feitas no novo endereço. edipolf.com Obrigado.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=edipolf.wordpress.com&amp;blog=5265916&amp;post=368&amp;subd=edipolf&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h1>O Blog mudou de endereço</h1>
<p>É isso ai pessoas, mudei para um outro endereço agora, os posta que tem la são os menos que aqui(ja tem um novo la) irei manter esse link ativo por um tempo mas as postagens serão feitas no novo endereço.</p>
<h2><a href="http://edipolf.com">edipolf.com</a></h2>
<p>Obrigado.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/edipolf.wordpress.com/368/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/edipolf.wordpress.com/368/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/edipolf.wordpress.com/368/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/edipolf.wordpress.com/368/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/edipolf.wordpress.com/368/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/edipolf.wordpress.com/368/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/edipolf.wordpress.com/368/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/edipolf.wordpress.com/368/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/edipolf.wordpress.com/368/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/edipolf.wordpress.com/368/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/edipolf.wordpress.com/368/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/edipolf.wordpress.com/368/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/edipolf.wordpress.com/368/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/edipolf.wordpress.com/368/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=edipolf.wordpress.com&amp;blog=5265916&amp;post=368&amp;subd=edipolf&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://edipolf.wordpress.com/2009/12/11/mudei/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/298a659a2f87e10d6c3d0b1abf010f2e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">edipofederle</media:title>
		</media:content>
	</item>
		<item>
		<title>Recomendações do Édipo #1</title>
		<link>http://edipolf.wordpress.com/2009/11/16/recomendacaoes-do-edipo-1/</link>
		<comments>http://edipolf.wordpress.com/2009/11/16/recomendacaoes-do-edipo-1/#comments</comments>
		<pubDate>Mon, 16 Nov 2009 02:14:59 +0000</pubDate>
		<dc:creator>Édipo Luis Féderle</dc:creator>
				<category><![CDATA[Geral]]></category>
		<category><![CDATA[Leitura]]></category>
		<category><![CDATA[Programação]]></category>

		<guid isPermaLink="false">http://edipolf.wordpress.com/?p=364</guid>
		<description><![CDATA[Eu quase nunca faço recomendações aqui no blog, mas nos últimos dias eu estou simplesmente viciado na leitura dos artigos do Joel on Software, não vou ficar aqui descrevendo quem é o Joel porque no site tem sobre ele, o que eu posso deixar aqui registrando por hora é que o cara é MUITO BOM. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=edipolf.wordpress.com&amp;blog=5265916&amp;post=364&amp;subd=edipolf&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Eu quase nunca faço recomendações aqui no blog, mas nos últimos dias eu estou simplesmente viciado na leitura dos artigos do Joel on Software, não vou ficar aqui descrevendo quem é o Joel porque no site tem sobre ele, o que eu posso deixar aqui registrando por hora é que o cara é MUITO BOM.</p>
<p>Bom, dada essa pequena introdução vou deixar aqui registrado porque acho que você deveria começar a ler seus artigos AGORA.</p>
<p>Ele aborda os mais diferentes assunto do mundo do desenvolvimento de Softaware de forma com que você fique colado na tela lendo seus textos por hoars e mais horas( ao menos comigo), ele fala sobre arquitetura, sobre programação, sobre gerenciamento, sobre recursos, sobre testes, sobre processos, e muitas outras coisas que você provavelmente deve estar interessado em saber.</p>
<p>Outra coisa que é muito interessante nos seus artigos é a forma como ele os conduz, não é aqueles textos chatos de se ler, é algo bem &#8220;dinâmico&#8221; , divertido e engraçado algumas vezes.</p>
<p>Ontem li o último que faltava( do site em português, logo falo dele) que foi o <a href="http://brazil.joelonsoftware.com/Articles/BacktoBasics.html">&#8220;Voltando as Raizes&#8221;</a> onde ele trato de algo em parte muito interessante, algo mais baixo nível, lá nas profundezas dos bytes, e como ele mesmo diz no artigo, um pequeno exercício usando à linguagem C, e foi um dos mais interessantes que li dele. Muito bom , recomendo começar por ele.</p>
<p>Provavelmente você não irá concordar com tudo o que ele fala, mas aposto que em sua grande maioria você vai.</p>
<p>Então tenho que saber inglês para ler os posts? Bom, se você quizer ler todos vai ter que que saber, porque nem todos os textos estão traduzidos para o  português.</p>
<p><a href="http://brazil.joelonsoftware.com/">Neste Link</a> você pode encontrar o que tempos em português, e neste <a href="http://brazil.joelonsoftware.com/"> o endereco original</a> onde você encontra tudos.</p>
<p>Bom pessoal fica a dica. Abraço a todos.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/edipolf.wordpress.com/364/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/edipolf.wordpress.com/364/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/edipolf.wordpress.com/364/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/edipolf.wordpress.com/364/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/edipolf.wordpress.com/364/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/edipolf.wordpress.com/364/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/edipolf.wordpress.com/364/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/edipolf.wordpress.com/364/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/edipolf.wordpress.com/364/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/edipolf.wordpress.com/364/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/edipolf.wordpress.com/364/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/edipolf.wordpress.com/364/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/edipolf.wordpress.com/364/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/edipolf.wordpress.com/364/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=edipolf.wordpress.com&amp;blog=5265916&amp;post=364&amp;subd=edipolf&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://edipolf.wordpress.com/2009/11/16/recomendacaoes-do-edipo-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/298a659a2f87e10d6c3d0b1abf010f2e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">edipofederle</media:title>
		</media:content>
	</item>
		<item>
		<title>Ruby Série #3 &#8211; Operador Splat</title>
		<link>http://edipolf.wordpress.com/2009/11/10/ruby-serie-3-operador-splat/</link>
		<comments>http://edipolf.wordpress.com/2009/11/10/ruby-serie-3-operador-splat/#comments</comments>
		<pubDate>Tue, 10 Nov 2009 12:52:33 +0000</pubDate>
		<dc:creator>Édipo Luis Féderle</dc:creator>
				<category><![CDATA[Ruby/Rails]]></category>

		<guid isPermaLink="false">http://edipolf.wordpress.com/?p=357</guid>
		<description><![CDATA[Olá pessoal vamos para o terceiro post da série de Ruby, este post irá ser um pouco mais pequeno porque irá tratar apenas de um operador, esse operador é o Splat. O Operador Splat é usado quando queremos em uma atribução fazer com que vários valores de um array se tornem rvalues, como por exemplo: [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=edipolf.wordpress.com&amp;blog=5265916&amp;post=357&amp;subd=edipolf&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Olá pessoal vamos para o terceiro post da série de Ruby, este post irá ser um pouco mais pequeno porque<br />
irá tratar apenas de um operador, esse operador é o Splat.</p>
<p>O Operador Splat é usado quando queremos em uma atribução fazer com que vários valores de um array se tornem<br />
rvalues, como por exemplo:</p>
<pre class="brush: ruby;">
a, b, c, d = 10, 11, *[12,13]
</pre>
<p>Como da para se notar o que mudou foi o último rvalue sendo precedido por um <strong>*</strong>.</p>
<p>No Ruby 1.8 Arrays e Rangs podem ser splatted, ele também fornece um método to_ary que retorna um array de valores.</p>
<p>Também podemos fazer ao contrário, fazer um ivalue ter um <strong>*</strong>, quando isso acontece os rvlues extras são postos em um array e são atribuidos a tal valor.</p>
<pre class="brush: ruby;">
x, *y = 1, 2, 3
</pre>
<p>Aqui x = 1 e y = [2,3]</p>
<p>OBS: No Ruby 1.9, você pode ter quantos splats quizer, para ver mais sobre Splat no 1.9 veja esse link:<br />
<a href="http://ruby.about.com/od/newinruby191/qt/MultipleSplats.htm">http://ruby.about.com/od/newinruby191/qt/MultipleSplats.htm </a></p>
<p>Bom pessoal esse post foi rápito espero que deu para aprender algo com ele <img src='http://s0.wp.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>Até o Mais.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/edipolf.wordpress.com/357/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/edipolf.wordpress.com/357/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/edipolf.wordpress.com/357/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/edipolf.wordpress.com/357/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/edipolf.wordpress.com/357/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/edipolf.wordpress.com/357/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/edipolf.wordpress.com/357/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/edipolf.wordpress.com/357/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/edipolf.wordpress.com/357/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/edipolf.wordpress.com/357/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/edipolf.wordpress.com/357/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/edipolf.wordpress.com/357/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/edipolf.wordpress.com/357/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/edipolf.wordpress.com/357/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=edipolf.wordpress.com&amp;blog=5265916&amp;post=357&amp;subd=edipolf&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://edipolf.wordpress.com/2009/11/10/ruby-serie-3-operador-splat/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/298a659a2f87e10d6c3d0b1abf010f2e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">edipofederle</media:title>
		</media:content>
	</item>
		<item>
		<title>Série Ruby #2 &#8211; Atribuições</title>
		<link>http://edipolf.wordpress.com/2009/11/06/serie-ruby-2-atribuicoes/</link>
		<comments>http://edipolf.wordpress.com/2009/11/06/serie-ruby-2-atribuicoes/#comments</comments>
		<pubDate>Fri, 06 Nov 2009 14:36:31 +0000</pubDate>
		<dc:creator>Édipo Luis Féderle</dc:creator>
				<category><![CDATA[Ruby/Rails]]></category>

		<guid isPermaLink="false">http://edipolf.wordpress.com/?p=348</guid>
		<description><![CDATA[No último post foi visto como o Ruby trabalha com os 5 tipos de varíaveis, falamos bastante sobre atribuições também, então neste post iremos falar um pouco mais sobre isso. Atribuições Uma atribuição é um expressão que pode especificar um ou mais de um valor para uma dada varíavel ou mais corretamente de um Ivalue. IValue [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=edipolf.wordpress.com&amp;blog=5265916&amp;post=348&amp;subd=edipolf&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>No último post foi visto como o Ruby trabalha com os 5 tipos de varíaveis, falamos bastante sobre atribuições também, então neste post iremos falar um pouco mais sobre isso.</p>
<h2>Atribuições</h2>
<p>Uma atribuição é um expressão que pode especificar um ou mais de um valor para uma dada varíavel ou mais corretamente<br />
de um Ivalue.<br />
IValue é um termo para indicar o que aparece antes de um operador de atribuição, por exemplo:</p>
<p><strong>x = 10</strong></p>
<p>Na expressão acima x é um ivalue e um rvalue que é 10.<br />
No Ruby existem três tipos de expressões de atribuição, a mais simples vista acima e outras duas que vamos ver agora.</p>
<p>As atribuições abreviadas que são expressões que além de atualizar um valor ainda aplicam alguma matemática sobre o ivalue<br />
certamente você já fez isso:</p>
<p><strong>x *= 10</strong></p>
<p>Também tempos as atribuições paralelas que são aquelas em que um rvalue é atribuido a n ivalues, por exemplo:</p>
<p><strong>x, y, z = 10</strong></p>
<p>Também é possivel tem n ivalues e n rvalues, assim:</p>
<p><strong>x, y, z = 2, 4, 6</strong></p>
<p>Aqui x recebe 2, t recebe 4 e z recebe 6.<br />
O que um ivalue recebe como conteúdo é o valor ou array de valores que é à ela atribuido. Um operador de atribuição é righ-assiciative ou seja, a atribuição é avalidada da direita para a esquerda, com isso podemos fazer isso:</p>
<p><strong>a = b = 4</strong></p>
<p>Aqui  b recebe 4 e a também recebe 4.</p>
<h2>Efeitos colaterias &#8211; Idempotent.</h2>
<p>Como vimos uma atribuição muda o estado de uma varíavel isso muda o estado de um programa por exemplo,<br />
existem várias expressões que não tem efeitos colaterais algum, pois toda a vez que são avalidas irão retornar o mesmo valor ,por exemplo:</p>
<p>Dado um método para calcular a raiz quadrada de um número inteiro e positivo:</p>
<pre class="brush: ruby;">
	def raiz(x)
	   return x * x
	end
</pre>
<p>Esse método não tem efeitos colaterais, esse tipo de expressão é chamado de idempotent, você pode<br />
avaliar o método acima n vezes e ele sempre irá retornar o mesmo valor, já a seguinte expressão irá mudar a cada vez que for executada:</p>
<p><strong>x += 1</strong></p>
<p>Você pode ler mais sobre isso em: http://en.wikipedia.org/wiki/Idempotence<br />
Bom pessoal, esse foi o segundo post da série Ruby. Até mais e Obrigado.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/edipolf.wordpress.com/348/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/edipolf.wordpress.com/348/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/edipolf.wordpress.com/348/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/edipolf.wordpress.com/348/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/edipolf.wordpress.com/348/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/edipolf.wordpress.com/348/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/edipolf.wordpress.com/348/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/edipolf.wordpress.com/348/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/edipolf.wordpress.com/348/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/edipolf.wordpress.com/348/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/edipolf.wordpress.com/348/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/edipolf.wordpress.com/348/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/edipolf.wordpress.com/348/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/edipolf.wordpress.com/348/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=edipolf.wordpress.com&amp;blog=5265916&amp;post=348&amp;subd=edipolf&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://edipolf.wordpress.com/2009/11/06/serie-ruby-2-atribuicoes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/298a659a2f87e10d6c3d0b1abf010f2e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">edipofederle</media:title>
		</media:content>
	</item>
		<item>
		<title>Série Ruby #1 &#8211; Varíaveis não inicializadas</title>
		<link>http://edipolf.wordpress.com/2009/11/03/serie-ruby-1-variaveis-nao-inicializadas/</link>
		<comments>http://edipolf.wordpress.com/2009/11/03/serie-ruby-1-variaveis-nao-inicializadas/#comments</comments>
		<pubDate>Tue, 03 Nov 2009 02:01:53 +0000</pubDate>
		<dc:creator>Édipo Luis Féderle</dc:creator>
				<category><![CDATA[Programação]]></category>
		<category><![CDATA[Ruby/Rails]]></category>

		<guid isPermaLink="false">http://edipolf.wordpress.com/?p=341</guid>
		<description><![CDATA[Varíaveis não inicializadas Olá esse será o primeiro post de uma série que pretendo fazer falando sobre Ruby(A Linguagem) Tentarei manter em posts pequenos com exemplos de código ou não,  não terá uma ordem do tipo: básico &#8211; intermediário &#8211; avançado, irei postando conforme eu achar melhor, ou se alguem vier a ler também gostaria [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=edipolf.wordpress.com&amp;blog=5265916&amp;post=341&amp;subd=edipolf&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h2><strong><strong>Varíaveis não inicializadas</strong></strong></h2>
<p><img class="aligncenter size-full wp-image-342" title="cplx" src="http://edipolf.files.wordpress.com/2009/11/cplx.gif?w=465&#038;h=216" alt="cplx" width="465" height="216" /></p>
<p>Olá esse será o primeiro post de uma série que pretendo fazer falando sobre Ruby(A Linguagem)<br />
Tentarei manter em posts pequenos com exemplos de código ou não,  não terá uma ordem do tipo: básico &#8211; intermediário &#8211; avançado, irei postando conforme eu achar melhor, ou se alguem vier a ler também gostaria de ouvir comentários sobre assuntos que poderiam serem abordados nos posts.</p>
<p>Para começar irei falar um pouco sobre <strong>&#8220;Varíaveis Não Inicializadas&#8221;</strong>. Então chega de bate papo e vamos ao post.</p>
<p>Se você já programa em alguma linguagem digamos assim mais conhecida como Java ou C sempre após a declaração de uma varíavel é recomendado que você à inicialize antes de fazer seu uso, uma das razões para se fazer isso é que pode acontecer de o local(na memória(1.a)) onde tal varíavel foi alocada já tenha sido usada por outra váriavel e posivelmente pode conter algum tipo de LIXO, então é uma boa prática inicializa-las.</p>
<h3>1.a)</h3>
<p>Básicamente falando a memória é vista pelo processador como uma tabela cada &#8220;entrada&#8221; desta tabela pode guardar um byte e cada entrada é referenciada pela sua posicão.</p>
<p><strong>1 Byte</strong> é um conjunto de<strong> 8 bits</strong> pode representar um número de ate <strong>255(na base 10).</strong></p>
<p>Veja mais sobre essa matemática <a href="http://informatica.hsw.uol.com.br/bits-bytes.htm">aqui</a>.</p>
<p>Então no Ruby  em linhas gerais você sempre deve atribuir algum valor antes que de fato usar tal varíavel, mas como vamos ver existem alguns tipos de varíaveis no Ruby que não necessariamente precisam ser inicializadas.</p>
<p>Vejamos os tipos de váriaveis presentes no Ruby.</p>
<pre> - Varíaveis de Classe.
 - Varíaveis de instância.
 - Varíaveis globais.
 - Varíavies locais.</pre>
<h4>Varíaveis de Classe.</h4>
<p>Sempre devem ter um valor atribuido antes de serem usadas, caso você à utilize sem inicializar irá receber um <strong>NameError</strong>, Como isso:</p>
<pre class="brush: ruby;">
 class Class_Variable
puts @@var
 end
</pre>
<p><em>NameError: uninitialized class variable @@var in Class_Variable</em></p>
<p><em><br />
</em></p>
<h4>Varíavies de Instância</h4>
<p>Quando você tentar usar um varíiavel de instância sem ela ter sido devidamente inicializada o Ruby irá retornar um Nil, veja:</p>
<pre class="brush: ruby;">
 def instance_variable
puts @name
 end

instance_variable

=&gt; Nil
&lt;pre&gt;</pre>
<p>Veja passando a opção<strong> -W</strong> para o comando Ruby em linha de comando, ele irá dar um aviso que você possue a varíavel não inicializada:</p>
<p>ruby -W teste.rb<br />
teste.rb:2: warning: instance variable @x not initialized<br />
nil</p>
<p><em><strong>DICA</strong>: Sempre use a opção -W para testar seus código maiores, assim você pode verificar de forma fácil a presença desse tipo de coisa.</em></p>
<p><em><br />
</em></p>
<h4>Varíaveis Globais.</h4>
<p>Para esse tipo de varíavel vale a mesma regra que das de instância.</p>
<h4>Varíaveis Locais.</h4>
<p>Aqui temos que ter cuidado, em todos os outros tipos de varíaveis no Ruby temos um caractere de pontuação servindo como prefixo, isso quer dizer que as varíaveis locais se parecem com uma chamada de método, caso o Ruby &#8220;veja&#8221; uma atribuição para tal varíavel ele irá saber que se trata de uma varíavel e não de uma invocação de método, caso ele não ver, ele irá invocar o método, e caso o método não exista temos um <strong>NameError</strong>.</p>
<p>Por Exemplo se simplesmente fizermos isso:</p>
<pre class="brush: ruby;">
 a
 NameError: undefined local variable or method `a' for main:Object
 from (irb):1
&lt;pre&gt;</pre>
<p>Viram?</p>
<p>Então, a varíavel passa a existir apartir do momento em que ela recebe uma atribuição, e não necessita que a atribuição seja de fato executada, veja um exemplo:</p>
<pre class="brush: ruby;">
 &gt;&gt; a = 0.0 if false
 =&gt; nil
 &gt;&gt; puts a
 nil
</pre>
<p>Bom pessoal é isso por hoje, espero que alguem leia isso <img src='http://s2.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>Referencia: Livro &#8211; &#8220;A linguagem de Programação Ruby&#8221; &#8211; David Flanagan &amp; Yukihiro Matsumoto.</p>
<p>Até Mais Pessoa e Orbrigado.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/edipolf.wordpress.com/341/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/edipolf.wordpress.com/341/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/edipolf.wordpress.com/341/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/edipolf.wordpress.com/341/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/edipolf.wordpress.com/341/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/edipolf.wordpress.com/341/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/edipolf.wordpress.com/341/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/edipolf.wordpress.com/341/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/edipolf.wordpress.com/341/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/edipolf.wordpress.com/341/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/edipolf.wordpress.com/341/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/edipolf.wordpress.com/341/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/edipolf.wordpress.com/341/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/edipolf.wordpress.com/341/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=edipolf.wordpress.com&amp;blog=5265916&amp;post=341&amp;subd=edipolf&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://edipolf.wordpress.com/2009/11/03/serie-ruby-1-variaveis-nao-inicializadas/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/298a659a2f87e10d6c3d0b1abf010f2e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">edipofederle</media:title>
		</media:content>

		<media:content url="http://edipolf.files.wordpress.com/2009/11/cplx.gif" medium="image">
			<media:title type="html">cplx</media:title>
		</media:content>
	</item>
		<item>
		<title>Pequena Intro BDD com Cucumber</title>
		<link>http://edipolf.wordpress.com/2009/10/22/pequena-intro-bdd-com-cucumber/</link>
		<comments>http://edipolf.wordpress.com/2009/10/22/pequena-intro-bdd-com-cucumber/#comments</comments>
		<pubDate>Thu, 22 Oct 2009 22:28:14 +0000</pubDate>
		<dc:creator>Édipo Luis Féderle</dc:creator>
				<category><![CDATA[Programação]]></category>
		<category><![CDATA[Ruby/Rails]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://edipolf.wordpress.com/?p=338</guid>
		<description><![CDATA[Neste post vamos ver um pouco(bem pouco) sobre BDD ou Behavior Driven Development utilizando o Cucumber. Aqui você ira escrever os testes antes de escrever Primeiramente vamos começar criando uma &#8220;funcionalidade&#8221; para descrever qual o comportamente que queremos que nosso codigo tenha, isso é representado através de features, features são arquivos em pleno inglês ou [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=edipolf.wordpress.com&amp;blog=5265916&amp;post=338&amp;subd=edipolf&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Neste post vamos ver um pouco(bem pouco) sobre BDD ou Behavior Driven Development utilizando o Cucumber.</p>
<p>Aqui você ira escrever os testes antes de escrever</p>
<p>Primeiramente vamos começar criando uma &#8220;funcionalidade&#8221; para descrever qual o comportamente que queremos que nosso codigo tenha, isso é representado através de features, features são arquivos em pleno inglês ou português(sim tem como) para descrever o comportamente de um requesito, por exemplo.</p>
<p>Uma feature no cucumber tem seu esqueleto assim:</p>
<p>Feature: Be Awesome (Fazer alguam coisa, Responder alguma coisa, funcionalidade)</p>
<pre class="brush: ruby;">
Senario: Delete products
   Given a list with 5 products
   When I select three items
   And I click delete
   Then I should see only 2 products
</pre>
<p>Ou no bom Português:</p>
<pre class="brush: ruby;">
Cenário: Deletar produtos
 Dada uma lista com 5 produtos   Quando eu selecionar três itens
 E eu clicar em excluir
 Então eu deveria ver apenas 2 produtos
</pre>
<p>Como você pode ver isso é facilmente compreendido por qualquer um, não precisa ser técnico nem nada para saber realmente o que o cenário faz.</p>
<p>Nosso pequeno exemplo:</p>
<p>Vamos criar um exemplo bem simples, nosso código irá ser uma calculadora, essa calculadora irá somente multiplicar(nosso cliente não sabe multiplicar ainda então&#8230;. <img src='http://s2.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ).</p>
<p>Com uma conversa de uns minutos com o cliente juntos criamos uma feature assim:</p>
<pre class="brush: ruby;">
Feature: Multiplication Operation
   In order to to learn math
   As a math idiot
   I want multiply two numbers

Scenario: Add two numbers
   I initialize calculator with 10 and 10
   When I press go
   Then I should see 100

Scenario: Add two negative numbers
   Given I initialize calculator with -2 and -2
   When I press go
   Then I should see 4
</pre>
<p>Vamos começar executando nossa feature, inicialmente somente com o primeiro cenário, crie um arquivo chamado calculadora.feature e coloque o seguinte conteudo:</p>
<pre class="brush: ruby;">
Feature: Multiplication Operation
   In order to to learn math
   As a math idiot
   I want multiply two numbers

Scenario: Add two numbers
   I initialize calculator with 10 and 10
   When I press go
   Then I should see 100
</pre>
<p>Agora vá até um terminal e execute:</p>
<pre class="brush: ruby;">
cucumber calculadora.feature

Feature: Multiplication Operation
 In order to learn math
 As a math idiot
 I want to be told the multiply tow numbers

  Scenario: Add two numbers                      # calculadora.feature:6
    Given I initialize calculator with 10 and 10 # calculadora.feature:7
    When I press go                              # calculadora.feature:8
    Then I should see 100                        # calculadora.feature:9

1 scenario (1 undefined)
3 steps (3 undefined)
0m0.002s

You can implement step definitions for undefined steps with these snippets:

Given /^I initialize calculator with 10 and 10$/ do
  pending
end

When /^I press go$/ do
  pending
end

Then /^I should see 100$/ do
  pending
end
</pre>
<p>Bom, como vemos, temos 1 cenário que ainda não está definido, também tempos os três passos que também não estão definidos, logo abaixo o cucumber já nos da os passos para implementar, vamos copiar esse código e colocar dentro de um arquivo chamado calculadora_steps.rb, e então executar novamente nossa feature.</p>
<p>Rodando a feature iremos receber algo do tipo:</p>
<pre class="brush: ruby;">
$ cucumber calculadora.feature
Feature: Multiplication Operation
 In order to learn math
 As a math idiot
 I want to be told the multiply tow numbers

  Scenario: Add two numbers                      # calculadora.feature:6
    Given I initialize calculator with 10 and 10 # calculador_steps.rb:1
      TODO (Cucumber::Pending)
      ./calculador_steps.rb:2:in `/^I initialize calculator with 10 and 10$/'
      calculadora.feature:7:in `Given I initialize calculator with 10 and 10'
    When I press go                              # calculador_steps.rb:5
    Then I should see 100                        # calculador_steps.rb:9

1 scenario (1 pending)
3 steps (2 skipped, 1 pending)
0m0.003s
</pre>
<p>Bom, vimos que ao pegar o código que o cucumber nos deu ele está usando o método pedding em todos os três passos, isso obviamente quer dizer que eles estão pendentes, vamos começar implementando o comportamento do primeiro passo, que é:</p>
<pre class="brush: ruby;">
Given /^I initialize calculator with 10 and 10$/ do
  pending
end
[/sourcecode&quot;]

Fazemos isso:

[sourcecode language=&quot;ruby&quot;]
Given /^I initialize calculator with 10 and 10$/ do
  @c = Clac.new(x,y)
end
</pre>
<p>E rodamos nossa feature:</p>
<pre class="brush: ruby;">
 cucumber calculadora.feature
Feature: Multiplication Operation
 In order to learn math
 As a math idiot
 I want to be told the multiply tow numbers

  Scenario: Add two numbers                      # calculadora.feature:6
    Given I initialize calculator with 10 and 10 # calculador_steps.rb:1
      uninitialized constant Calc (NameError)
      ./calculador_steps.rb:2:in `/^I initialize calculator with 10 and 10$/'
      calculadora.feature:7:in `Given I initialize calculator with 10 and 10'
    When I press go                              # calculador_steps.rb:5
    Then I should see 100                        # calculador_steps.rb:9

Failing Scenarios:
cucumber calculadora.feature:6 # Scenario: Add two numbers

1 scenario (1 failed)
3 steps (1 failed, 2 skipped)
0m0.003s
</pre>
<p>OPS, parece que não temos a classe calc, e de fato não temos, vamos cria-la, para isso, nesse caso, iremos escrever a classe no mesmo arquivo que temos nossos passos, isso não é uma boa prática, então não o faça, fiz aqui somente para fins de explicação <img src='http://s0.wp.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> .</p>
<p>Então no começo do arquivo calculadora_steps.rb iremos ter:</p>
<pre class="brush: ruby;">
class Calc
	def initialize(x,y)
		@x =x
		@y = y
	end
end
</pre>
<p>Certamente isso irá fazer com que o teste passe, rodando a feature:</p>
<pre class="brush: ruby;">
cucumber calculadora.feature
Feature: Multiplication Operation
 In order to learn math
 As a math idiot
 I want to be told the multiply tow numbers

  Scenario: Add two numbers                      # calculadora.feature:6
    Given I initialize calculator with 10 and 10 # calculador_steps.rb:8
      undefined local variable or method `x' for #&lt;Object:0x8df61c&gt; (NameError)
      ./calculador_steps.rb:9:in `/^I initialize calculator with 10 and 10$/'
      calculadora.feature:7:in `Given I initialize calculator with 10 and 10'
    When I press go                              # calculador_steps.rb:12
    Then I should see 100                        # calculador_steps.rb:16

Failing Scenarios:
cucumber calculadora.feature:6 # Scenario: Add two numbers

1 scenario (1 failed)
3 steps (1 failed, 2 skipped)
0m0.003s
</pre>
<p>E como diria Dave Thomas em Agile Web Development With Rails &#8220;&#8230;&#8221;, erro:</p>
<p>Ele está nos dizendo que a variavel x nao esta definida, vamos alterar um pouco nosso passo e no lugar do 10 and 10, vamos colocar um expresao regular, e passar para um bloco, assim:</p>
<pre class="brush: ruby;">
Given /^I initialize calculator with (.*) and (.*)$/ do |x,y|
  @c = Calc.new(x.to_i, y.to_i)
end
</pre>
<p>Tambem utilizamos o metodo para converter os valores para inteiros, o to_i. E agora sim rodamos novamente nossa features, e esperamos que os testes passem.</p>
<pre class="brush: ruby;">
cucumber calculadora.feature
Feature: Multiplication Operation
 In order to learn math
 As a math idiot
 I want to be told the multiply tow numbers

  Scenario: Add two numbers                      # calculadora.feature:6
    Given I initialize calculator with 10 and 10 # calculador_steps.rb:8
    When I press go                              # calculador_steps.rb:12
      TODO (Cucumber::Pending)
      ./calculador_steps.rb:13:in `/^I press go$/'
      calculadora.feature:8:in `When I press go'
    Then I should see 100                        # calculador_steps.rb:16

1 scenario (1 pending)
3 steps (1 skipped, 1 pending, 1 passed)
0m0.003s
</pre>
<p>E Bingo, passou! Vamos para o segundo passo:</p>
<pre class="brush: ruby;">
When /^I press go$/ do
  @result = @c.go
end
</pre>
<p>Quermos o resultado do metodo go na variavel result, vamos executar a feature:</p>
<pre class="brush: ruby;">
cucumber calculadora.feature
Feature: Multiplication Operation
 In order to learn math
 As a math idiot
 I want to be told the multiply tow numbers

  Scenario: Add two numbers                      # calculadora.feature:6
    Given I initialize calculator with 10 and 10 # calculador_steps.rb:8
    When I press go                              # calculador_steps.rb:12
      undefined method `go' for #&lt;Calc:0x11c5358 @y=10, @x=10&gt; (NoMethodError)
      ./calculador_steps.rb:13:in `/^I press go$/'
      calculadora.feature:8:in `When I press go'
    Then I should see 100                        # calculador_steps.rb:16

Failing Scenarios:
cucumber calculadora.feature:6 # Scenario: Add two numbers

1 scenario (1 failed)
3 steps (1 failed, 1 skipped, 1 passed)
0m0.003s
</pre>
<p>Olha, não temos ainda o metodo go, então vamos cirar-lo e fazer ele multiplicar os dois numeros.</p>
<pre class="brush: ruby;">
def go
 @x * @y
end
</pre>
<p>E rodando mais um vez nossa feature, passou!</p>
<pre class="brush: ruby;">
cucumber calculadora.feature
Feature: Multiplication Operation
 In order to learn math
 As a math idiot
 I want to be told the multiply tow numbers

  Scenario: Add two numbers                      # calculadora.feature:6
    Given I initialize calculator with 10 and 10 # calculador_steps.rb:11
    When I press go                              # calculador_steps.rb:15
    Then I should see 100                        # calculador_steps.rb:19
      TODO (Cucumber::Pending)
      ./calculador_steps.rb:20:in `/^I should see 100$/'
      calculadora.feature:9:in `Then I should see 100'

1 scenario (1 pending)
3 steps (1 pending, 2 passed)
0m0.003s
</pre>
<p>Vamos para o ultimo mas não menos importante passo, agora queremos verificar se o resultado da multiplicacao que esta na variavel @result eh igual ao que esperamos que seja, então vamos implementar.</p>
<pre class="brush: ruby;">
Then /^I should see (.*)$/ do |result|
  @result.should == result.to_i
end
</pre>
<p>Aqui usamos o metodo should(deveria) para verificar se o resultado bate com o que definimos, se rodarmos o teste veremos que tudo passou.</p>
<pre class="brush: ruby;">
cucumber calculadora.feature

Feature: Multiplication Operation
 In order to learn math
 As a math idiot
 I want to be told the multiply tow numbers

  Scenario: Add two numbers                      # calculadora.feature:6
    Given I initialize calculator with 10 and 10 # calculador_steps.rb:11
    When I press go                              # calculador_steps.rb:15
    Then I should see 100                        # calculador_steps.rb:19

1 scenario (1 passed)
3 steps (3 passed)
0m0.003s
</pre>
<p>Lega, tudo passou! Obviamente isso eh muito superficial, mas acredito que isso possa ser uma boa introducao de como isso funciona, também não vimos nada profundamente de como o cucumber funciona, acredito que não seja o objetivo desse post(e eu nao sei muito tambem <img src='http://s2.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ), Novamente recomendo a leitura dos textos sobre bdd e afims.</p>
<p>Também fiz um pequeno screencast demostrando o que foi postado aqui:</p>
<p><a href="http://vimeo.com/7164228">http://vimeo.com/7164228</a></p>
<p>Não deixe de ver o seguinte link:</p>
<p>http://en.wikipedia.org/wiki/Behavior_Driven_Development</p>
<p>Até mais pessoal e não deixem de comentar!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/edipolf.wordpress.com/338/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/edipolf.wordpress.com/338/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/edipolf.wordpress.com/338/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/edipolf.wordpress.com/338/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/edipolf.wordpress.com/338/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/edipolf.wordpress.com/338/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/edipolf.wordpress.com/338/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/edipolf.wordpress.com/338/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/edipolf.wordpress.com/338/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/edipolf.wordpress.com/338/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/edipolf.wordpress.com/338/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/edipolf.wordpress.com/338/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/edipolf.wordpress.com/338/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/edipolf.wordpress.com/338/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=edipolf.wordpress.com&amp;blog=5265916&amp;post=338&amp;subd=edipolf&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://edipolf.wordpress.com/2009/10/22/pequena-intro-bdd-com-cucumber/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/298a659a2f87e10d6c3d0b1abf010f2e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">edipofederle</media:title>
		</media:content>
	</item>
		<item>
		<title>Desculpas&#8230;</title>
		<link>http://edipolf.wordpress.com/2009/09/23/desculpas/</link>
		<comments>http://edipolf.wordpress.com/2009/09/23/desculpas/#comments</comments>
		<pubDate>Wed, 23 Sep 2009 15:33:24 +0000</pubDate>
		<dc:creator>Édipo Luis Féderle</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://edipolf.wordpress.com/2009/09/23/desculpas/</guid>
		<description><![CDATA[Aos poucos que chegam ate esse blog, em especial a quem cai em posts sobre o GIT, queria dizer que o novo post de git, vai sair sim, iria sair essa semana ainda, tava tudo pronto(mias de 9 paginas) e BUUM perdi deu pau aqui e perdi o texto todo&#8230;. falha minha, espero que os [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=edipolf.wordpress.com&amp;blog=5265916&amp;post=328&amp;subd=edipolf&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Aos poucos que chegam ate esse blog, em especial a quem cai em posts sobre o GIT, queria dizer que o novo post de git, vai sair sim, iria sair essa semana ainda, tava tudo pronto(mias de 9 paginas) e BUUM perdi deu pau aqui e perdi o texto todo&#8230;. falha minha, espero que os poucos que frequentam esse blog nao o deixem sozinho <img src='http://s2.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> &#8230; logo estarei postando um novo post sobre git&#8230;</p>
<p>Abraços.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/edipolf.wordpress.com/328/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/edipolf.wordpress.com/328/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/edipolf.wordpress.com/328/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/edipolf.wordpress.com/328/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/edipolf.wordpress.com/328/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/edipolf.wordpress.com/328/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/edipolf.wordpress.com/328/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/edipolf.wordpress.com/328/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/edipolf.wordpress.com/328/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/edipolf.wordpress.com/328/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/edipolf.wordpress.com/328/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/edipolf.wordpress.com/328/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/edipolf.wordpress.com/328/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/edipolf.wordpress.com/328/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=edipolf.wordpress.com&amp;blog=5265916&amp;post=328&amp;subd=edipolf&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://edipolf.wordpress.com/2009/09/23/desculpas/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/298a659a2f87e10d6c3d0b1abf010f2e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">edipofederle</media:title>
		</media:content>
	</item>
		<item>
		<title>Rails for Kids 2009&#8230;.</title>
		<link>http://edipolf.wordpress.com/2009/08/14/rails-for-kids-2009/</link>
		<comments>http://edipolf.wordpress.com/2009/08/14/rails-for-kids-2009/#comments</comments>
		<pubDate>Fri, 14 Aug 2009 01:14:17 +0000</pubDate>
		<dc:creator>Édipo Luis Féderle</dc:creator>
				<category><![CDATA[Ruby/Rails]]></category>

		<guid isPermaLink="false">http://edipolf.wordpress.com/?p=325</guid>
		<description><![CDATA[Irá sair no dia 12/09/2009 o Rails for Kids 2009,  se trata de uma série de palestras sobre assuntos relacionados com o mundo rails, as palestras irão ser mistradas por grandes nomes da comunidade Rails nacional e internacional, para participar do evento você deve fazer uma doação no  valor simbólico de R$ 30,00 , toda [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=edipolf.wordpress.com&amp;blog=5265916&amp;post=325&amp;subd=edipolf&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-326" title="2929102250_a1ac31a20f" src="http://edipolf.files.wordpress.com/2009/08/2929102250_a1ac31a20f.jpg?w=375&#038;h=500" alt="2929102250_a1ac31a20f" width="375" height="500" /></p>
<p>Irá sair no dia 12/09/2009 o<a href="http://www.railsforkids.com/inscriptions"> Rails for Kids 2009</a>,  se trata de uma série de palestras sobre assuntos relacionados com o mundo rails, as palestras irão ser mistradas por <a href="http://www.railsforkids.com/site/programming">grandes nomes da comunidade Rails</a> nacional e internacional, para participar do evento você deve fazer uma doação no  valor simbólico de R$ 30,00 , toda grana será destinada a Cotolengo de Mato Grosso do Sul. Para saber mais sobre a Cotolengo clique <a href="http://www.cotolengo.com.br/" target="_blank"> aqui</a>.</p>
<p>Acesse o site <a href="http://www.railsforkids.com/">Rails for Kids</a> e de uma olhada nas palestras e palestrantes e realize sua inscrição.</p>
<p>Para se escrever clique nesse <a href="http://www.railsforkids.com/inscriptions">link</a>.</p>
<p>É isso ai pessoal agente se encontra por lá&#8230; OPS, eh online tinha me esquecido <img src='http://s2.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/edipolf.wordpress.com/325/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/edipolf.wordpress.com/325/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/edipolf.wordpress.com/325/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/edipolf.wordpress.com/325/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/edipolf.wordpress.com/325/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/edipolf.wordpress.com/325/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/edipolf.wordpress.com/325/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/edipolf.wordpress.com/325/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/edipolf.wordpress.com/325/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/edipolf.wordpress.com/325/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/edipolf.wordpress.com/325/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/edipolf.wordpress.com/325/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/edipolf.wordpress.com/325/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/edipolf.wordpress.com/325/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=edipolf.wordpress.com&amp;blog=5265916&amp;post=325&amp;subd=edipolf&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://edipolf.wordpress.com/2009/08/14/rails-for-kids-2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/298a659a2f87e10d6c3d0b1abf010f2e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">edipofederle</media:title>
		</media:content>

		<media:content url="http://edipolf.files.wordpress.com/2009/08/2929102250_a1ac31a20f.jpg" medium="image">
			<media:title type="html">2929102250_a1ac31a20f</media:title>
		</media:content>
	</item>
		<item>
		<title>O curioso caso do IE 6 e os usuários.</title>
		<link>http://edipolf.wordpress.com/2009/08/03/o-curioso-caso-do-ie-6-e-os-usuarios/</link>
		<comments>http://edipolf.wordpress.com/2009/08/03/o-curioso-caso-do-ie-6-e-os-usuarios/#comments</comments>
		<pubDate>Mon, 03 Aug 2009 14:06:43 +0000</pubDate>
		<dc:creator>Édipo Luis Féderle</dc:creator>
				<category><![CDATA[Geral]]></category>
		<category><![CDATA[Padrões Web]]></category>

		<guid isPermaLink="false">http://edipolf.wordpress.com/?p=320</guid>
		<description><![CDATA[Hoje venho até aqui para falar um pouco sobre algo que não deveria nem haver discussões ou nada do tipo, pois se trata de algo muito lógico. Esse post fala sobre o do porque( minha opinião ) o IE 6 ( Internet Explorer 6 ) ainda é usado por muitos usuários, o que leva quem [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=edipolf.wordpress.com&amp;blog=5265916&amp;post=320&amp;subd=edipolf&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div id="xxkd" style="text-align:left;"><img src="http://docs.google.com/File?id=dc2nn55m_33fkfv4jfg_b" alt="" width="482" height="331" /></div>
<p>Hoje venho até aqui para falar um pouco sobre algo que não deveria nem haver discussões ou nada do tipo, pois se trata de algo muito lógico. Esse post fala sobre o do porque( minha opinião ) o IE 6 ( Internet Explorer 6 ) ainda é usado por muitos usuários, o que leva quem desenvolve( ou não ) para web a ter grande problemas com o navegador em questão, eu espero que esse post não fique muito grande, tentarei minimizar ao maximo ele, para começar vamos falar em números.</p>
<p><strong><br />
Falando em Números.</strong></p>
<p>Números nos dizem muitas coisas, se tratando do IE <strong>6</strong>, que é um navegador que tem aproximadamente&#8230; vejamos ele &#8220;nasceu&#8221; em <strong>2001</strong>, e hoje estamos em<strong> 2009</strong>(quase 2010), pela<br />
subtração básica isso da <strong>8 ANOS</strong>, todos sabemos que em 8 anos as coisas mudam, ainda mais em termos de tecnologia e internet, bom somente esse argumento da idade já seria o bastante para as pessoas começarem a pensar seriamente a atualizar seus navegadores, mas vamos a mais algumas.</p>
<p style="text-align:center;"><strong>Web Browsers</strong><br />
1  	Internet Explorer 7.0     	<strong>31.12%</strong><br />
2 	Internet Explorer 6.0     	<strong>26.78%</strong><br />
3 	Firefox 3.0                    <strong>14.69%</strong><br />
4 	Firefox 2.0                    <strong>14.14%</strong><br />
5 	Firefox 1.5                    	<strong>1.87%</strong><br />
6 	Safari 3.1                      	<strong>1.15%</strong><br />
7 	Safari 3.0                      	<strong>0.79%</strong><br />
8 	Opera 9.2                      	<strong>0.67%</strong><br />
9 	Mozilla 1.9                     	<strong>0.56%</strong><br />
10 	Safari 2.0                     	<strong>0.50%</strong></p>
<p style="text-align:center;">
<p style="text-align:left;">
<p style="text-align:left;">Eu não sei o quanto esses números tem validade correta, mas&#8230; vamos lá. eles foram gerados pela: <a href="http://www.w3counter.com/globalstats.php">W3Counter</a> em Janeiro de 2009 ( lembram das coisas mudando rapidamente a analisar esses numeros ), sobre as ultimas <strong>55,274,276</strong> visitas  <a style="color:#0099cc;" href="http://marcio.whodesigner.com.br/2009/03/confira-o-uso-dos-navegadores-em-2009/#"><span style="text-decoration:underline;">originais</span></a> e em <strong>20,428</strong> Web Sites. Como infelizmente podemos ver acima o <strong>IE 7</strong> ainda esta no topo seguindo pelo não menos odiado<strong> IE 6</strong>, você que não tem muito conhecimentos histórico sobre o que aconteceu, simplesmente chega a uma conclusão falsa de que o que mais tem usúarios é o melhor e por consequência deve ser  usado.</p>
<p style="text-align:left;">Não tenho intenção de contar o que aconteceu mas deixou aqui um link para os que não sabem( <a id="pko1" title="GUERRA DOS NAVEGADORES" href="http://pt.wikipedia.org/wiki/Guerra_dos_navegadores">GUERRA DOS NAVEGADORES</a> )</p>
<p style="text-align:left;"><strong>Mas se tanta gente usa o IE porque ele é tão ruim.</strong></p>
<p style="text-align:left;"><strong> </strong>Bom, se você leu o link que passei acima sobre a guerra dos navegadores a pergunta sobre o porque muita gente usa o IE ja esta respondida, ja a quetão de ele ser tão ruim, é algo um pouco técnico, minha intenção é ser o menos técnico possivel nesse post, então vamos a alguns itens:</p>
<p style="text-align:left;"><strong>Segurança:</strong></p>
<p style="text-align:left;">Todos se preocupam com segurança certo? Você faz manutenção regularmente em seu carro afim de descobrir se algo está errado, e que possa a fim lhe prejudicar num futuro próximo, você lava as <em>mãos </em>com alcool gel( ou não ) o tempo todo para não correr o risco de pegar a tão famosa gripe suína, enfim, muitas outras coisas, agora vem minha pergunta, porque ser diferente em ralação a atualização de uma software em seu computador? o IE, principalmente o 6, tem centenas de falhas de segurança por toda a parte, o que pode deixar seu computador facilmente vulnerável a ataques de criminosos e outros FDPs <img src='http://s2.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Mas não, você acha que isso é conversa fiada, você diz &#8220;Esta bom para min, e todo mundo usa mesmo&#8221;. Mas não tem problema só não reclame quando coisas estranhar acontecerem e você não ter idéia porque toda aquela economia de anos no banco simplemente sumiu <img src='http://s2.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  .</p>
<p style="text-align:left;"><strong>Ajude para ser ajudado:</strong></p>
<p style="text-align:left;">
Todo mundo gosta de navegar pela internet o tempo todo certo? acessar seus sites favoritos, usar suar aplicações web favoritas, e você gosta de ter uma boa experiência nisso não?, gosta de ver todos os elementos em seus devido lugar, gosta de quando você clicar em algo tudo ocorra de forma esperada,  gosta que cada requisição ocorra no menos tempo possivel, <strong>mas por algum maldito motivo não gosta de atualizar a porra do  navegador. </strong>Por favor amado usuário, <strong>atulize seu navegador</strong> e ajude quem desenvolve para web fazer que todos, e muitos outros itens citados acima aconteçam da melhor forma possivel.</p>
<p style="text-align:left;"><strong>Algums Problemas:</strong></p>
<p style="text-align:left;">Tem um suporte MUITO precário a muitos elementos CSS.</p>
<p style="text-align:left;">Não suporta imagem PNG&#8217;s de 24 Bits(ele não processa o<a id="wf0g" title="canal Alpha" href="http://pt.wikipedia.org/wiki/Canal_alfa">canal Alpha</a> da imagem).</p>
<p style="text-align:left;">Não segue os padrões da W3C.</p>
<p style="text-align:left;">Esse da w3c inclui centenas de coisas(<a id="i590" title="leia esse outro post meu" href="../2009/01/25/porque-eu-odeio-o-ie-e-a-importancia-dos-padroes/">leia esse outro post meu</a> ).</p>
<p style="text-align:left;"><strong>Comodismo</strong> <strong>e Preguiça.</strong></p>
<p style="text-align:left;">Esse acho que é o principal motivo para as pessoas não atualizarem seus navegadores, as pessoas são muito acomodadas, se elas tem algo funcinando mal e porcamente elas irão continuar usando essa coisa ruim por toda a vida, elas não se importam, não querem evoluir e ponto. Outras são preguiçosas mesmo, tem a incrível preguiça de baixar um navegador novo, ou atualizar( USE FIREFOX ) o que não leva mais de 10 minutos incluindo a instalaçao. Mas se você é desse tipo eu realmente não quero saber como você trata outras coisas em sua vida.</p>
<p style="text-align:left;"><strong>NOTA</strong>: O que disse acima obviamente não se inclue todas as pessoas, para quem servir&#8230;. bom uso.</p>
<p style="text-align:left;">
<p style="text-align:left;"><strong> Bons sites estão dando adeus ao IE 6</strong></p>
<p style="text-align:left;">Uma grande quantidade de bons sites estão simplesmente não dando mais suporte para o IE 6 ou funcionam de maneira muito ruim(logo quem nunca usou outro navegador acha que esta tudo certo), a maioria já exibe um alerta na página dizendo para o usúario atualizar seu navegador, mas lembre-se à qualquer momento você simplmente não vai mais poder acessar aquele site que tanto gosta como o YouTube por exemplo, veja:</p>
<div id="ye_." style="text-align:left;"><img src="http://docs.google.com/File?id=dc2nn55m_28f3x2nwfn_b" alt="" width="836" height="234" /></div>
<p style="text-align:left;">Bom, acho que isso já é o bastante, vai lá continue usando o IE 6, mas depois não diga que não avisei.</p>
<p style="text-align:left;"><strong><br />
</strong></p>
<p style="text-align:left;"><strong>ATUALIZE SEU NAVEGADOR AGORA:</strong></p>
<p style="text-align:left;">Baixe um dos navegadores abaixo e seja mais feliz:</p>
<div id="gdav" style="text-align:left;"><a href="http://pt-br.www.mozilla.com/pt-BR/firefox/"><img style="width:100px;height:100px;" src="http://docs.google.com/File?id=dc2nn55m_29dnqk6fhh_b" alt="" /></a><strong>FIREFOX ( O MELHOR)</strong></p>
<div id="rldb" style="text-align:left;"><a href="http://www.microsoft.com/brasil/windows/internet-explorer/default.aspx"><img src="http://docs.google.com/File?id=dc2nn55m_30d4hvtffs_b" alt="" width="100" height="100" /></a><strong>Internet Explorer 8 ( o menos pior da Microsoft )</strong></p>
<div id="fc:d" style="text-align:left;"><a href="http://www.opera.com/"><img src="http://docs.google.com/File?id=dc2nn55m_31dmvf47dp_b" alt="" width="107" height="96" /></a><strong>Opera ( Bom  )</strong></p>
<div id="vdsr" style="text-align:left;"><a onclick="return mugicPopWin(this,event);" oncontextmenu="mugicRightClick(this);" href="http://www.apple.com/safari/"><img src="http://docs.google.com/File?id=dc2nn55m_32gd6c7dpz_b" alt="" width="107" height="122" /></a> <strong>Safari ( só a versão para Mac )<br />
</strong></div>
</div>
</div>
</div>
<p style="text-align:left;">Abraço pessoal.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/edipolf.wordpress.com/320/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/edipolf.wordpress.com/320/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/edipolf.wordpress.com/320/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/edipolf.wordpress.com/320/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/edipolf.wordpress.com/320/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/edipolf.wordpress.com/320/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/edipolf.wordpress.com/320/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/edipolf.wordpress.com/320/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/edipolf.wordpress.com/320/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/edipolf.wordpress.com/320/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/edipolf.wordpress.com/320/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/edipolf.wordpress.com/320/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/edipolf.wordpress.com/320/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/edipolf.wordpress.com/320/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=edipolf.wordpress.com&amp;blog=5265916&amp;post=320&amp;subd=edipolf&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://edipolf.wordpress.com/2009/08/03/o-curioso-caso-do-ie-6-e-os-usuarios/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/298a659a2f87e10d6c3d0b1abf010f2e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">edipofederle</media:title>
		</media:content>

		<media:content url="http://docs.google.com/File?id=dc2nn55m_33fkfv4jfg_b" medium="image" />

		<media:content url="http://docs.google.com/File?id=dc2nn55m_28f3x2nwfn_b" medium="image" />

		<media:content url="http://docs.google.com/File?id=dc2nn55m_29dnqk6fhh_b" medium="image" />

		<media:content url="http://docs.google.com/File?id=dc2nn55m_30d4hvtffs_b" medium="image" />

		<media:content url="http://docs.google.com/File?id=dc2nn55m_31dmvf47dp_b" medium="image" />

		<media:content url="http://docs.google.com/File?id=dc2nn55m_32gd6c7dpz_b" medium="image" />
	</item>
		<item>
		<title>Primeira &#8216;Olhada&#8217; em Clojure &#8211; Fatorial Exemplo</title>
		<link>http://edipolf.wordpress.com/2009/07/04/primeira-olhada-em-clojure-fatorial-examplo/</link>
		<comments>http://edipolf.wordpress.com/2009/07/04/primeira-olhada-em-clojure-fatorial-examplo/#comments</comments>
		<pubDate>Sat, 04 Jul 2009 23:25:37 +0000</pubDate>
		<dc:creator>Édipo Luis Féderle</dc:creator>
				<category><![CDATA[Clojure]]></category>

		<guid isPermaLink="false">http://edipolf.wordpress.com/?p=308</guid>
		<description><![CDATA[A alguns meses atrás eu dei uma olhada em Clojure, mas não testei nada, agora voltei a dar uma olhada mais com calma nessa linguagem, para quem não sabe do que se trata lá vai uma descricao direta do site: “ Clojure is a dynamic programming language that targets the Java Virtual Machine. It is [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=edipolf.wordpress.com&amp;blog=5265916&amp;post=308&amp;subd=edipolf&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><!-- 		@page { margin: 0.79in } 		P { margin-bottom: 0.08in } 		A:link { so-language: zxx } --></p>
<p style="margin-bottom:0;"><span style="font-family:Trebuchet MS,sans-serif;"><span style="font-size:small;">A alguns meses atrás eu dei uma olhada em Clojure, mas não testei nada, agora voltei a dar uma olhada mais com calma nessa linguagem, para quem não sabe do que se trata lá vai uma descricao direta do <a href="http://clojure.org/">site</a>:</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;">“ <span style="font-size:small;"><span style="font-family:Trebuchet MS,sans-serif;">Clojure is a dynamic programming language that targets the Java Virtual Machine. It is designed to be a general-purpose language, combining the approachability and interactive development of a scripting language with an efficient and robust infrastructure for multithreaded programming. Clojure is a compiled language &#8211; it compiles directly to JVM bytecode, yet remains completely dynamic. Every feature supported by Clojure is supported at runtime. Clojure provides easy access to the Java frameworks, with optional type hints and type inference, to ensure that calls to Java can avoid reflection. ”</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span style="font-size:small;"><span style="font-family:Trebuchet MS,sans-serif;">Você pode encontrar mais informações detalhadamete visitando o site(inglês).</span></span></p>
<p style="margin-bottom:0;"><strong><span style="font-size:small;"> </span></strong></p>
<p style="margin-bottom:0;"><strong><span style="font-size:small;"><span style="font-family:Trebuchet MS,sans-serif;">Instalando:</span></span></strong></p>
<p style="margin-bottom:0;"><span style="font-size:small;"><span style="font-family:Trebuchet MS,sans-serif;">Se você estiver usando Ubuntu você pode seguir o seguinte <a href="http://riddell.us/tutorial/clojure/clojure.html">link</a> onde tem todas informações para a instalação ( Inglês).</span></span></p>
<p style="margin-bottom:0;"><span style="font-size:small;"><span style="font-family:Trebuchet MS,sans-serif;">Você pode entrar agora num ambiente onde você pode ir digitando seus codigo e ver o resultado, estilo IRB(RUBY), no terminal faça:</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span style="font-size:small;"><span style="font-family:Trebuchet MS,sans-serif;"> <img class="aligncenter size-full wp-image-312" title="ex" src="http://edipolf.files.wordpress.com/2009/07/ex.jpg?w=361&#038;h=249" alt="ex" width="361" height="249" /><br />
</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span style="font-size:small;"><span style="font-family:Trebuchet MS,sans-serif;"> </span></span></p>
<p style="margin-bottom:0;"><span style="font-size:small;"><span style="font-family:Trebuchet MS,sans-serif;">Você provavelmente deve tar achando estranho o modo como foi feitas as operações matemáticas aqui, mas pessoalmente é muito elegante desse mudo, vamos dar uma olhada na sintaxe da Clojure comprando com outras linguagens.</span></span></p>
<p style="margin-bottom:0;"><span style="font-size:small;"><span style="font-family:Trebuchet MS,sans-serif;">Em Clojure a definição de uma função/método, é a seguinte:</span></span></p>
<p><img class="aligncenter size-full wp-image-311" title="2" src="http://edipolf.files.wordpress.com/2009/07/2.jpg?w=450&#038;h=129" alt="2" width="450" height="129" /></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span style="font-size:small;"><span style="font-family:Trebuchet MS,sans-serif;">Temos tres coisas a se analisar nesse pequeno exemplo:</span></span></p>
<p style="margin-bottom:0;"><span style="font-size:small;"><span style="font-family:Trebuchet MS,sans-serif;"> 1 – Palavra chave para definição da função é </span><span style="font-family:Trebuchet MS,sans-serif;"><strong>defni </strong></span></span></p>
<p style="margin-bottom:0;"><span style="font-size:small;"><span style="font-family:Trebuchet MS,sans-serif;"><span style="font-weight:normal;"> 2 – Os argumentos são colocados dentro de colchetes ( </span></span><span style="font-family:Trebuchet MS,sans-serif;"><strong>[ ]</strong></span><span style="font-family:Trebuchet MS,sans-serif;"><span style="font-weight:normal;"> )</span></span></span></p>
<p style="margin-bottom:0;"><span style="font-size:small;"><span style="font-family:Trebuchet MS,sans-serif;"><span style="font-weight:normal;"> 3 – A forma como é realizada a soma do caso, </span></span><span style="font-family:Trebuchet MS,sans-serif;"><strong>primeiro usamos</strong></span><span style="font-family:Trebuchet MS,sans-serif;"><span style="font-weight:normal;"> o operador desejado e logo após colocamos os argumetos(elegante não ?).</span></span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span style="font-size:small;"><span style="font-family:Trebuchet MS,sans-serif;"><span style="font-weight:normal;">Definição de variavéis:</span></span></span></p>
<p style="margin-bottom:0;"><span style="font-size:small;"><span style="font-family:Trebuchet MS,sans-serif;"><span style="font-weight:normal;"> </span></span></span></p>
<p style="margin-bottom:0;"><span style="font-size:small;"><strong><span style="font-family:Trebuchet MS,sans-serif;"> (def minha-variavel 10)</span></strong></span></p>
<p style="margin-bottom:0;"><span style="font-size:small;"><strong><span style="font-family:Trebuchet MS,sans-serif;"><br />
</span></strong><span style="font-family:Trebuchet MS,sans-serif;"><span style="font-weight:normal;">Definição de uma lista:</span></span></span></p>
<p style="margin-bottom:0;"><span style="font-size:small;"><span style="font-family:Trebuchet MS,sans-serif;"><span style="font-weight:normal;"> </span></span></span></p>
<p style="margin-bottom:0;"><span style="font-size:small;"><strong><span style="font-family:Trebuchet MS,sans-serif;"> (def minha-lista &#8216;(1 2 3 4 5 6) )</span></strong></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span style="font-size:small;"><span style="font-family:Trebuchet MS,sans-serif;"><span style="font-weight:normal;">Definição de um vetor:</span></span></span></p>
<p style="margin-bottom:0;"><span style="font-size:small;"><span style="font-family:Trebuchet MS,sans-serif;"><span style="font-weight:normal;"> </span></span><strong><span style="font-family:Trebuchet MS,sans-serif;">[ 1 2 3 4 </span></strong><span style="font-family:Trebuchet MS,sans-serif;"><span style="font-weight:normal;">]</span></span></span></p>
<p style="margin-bottom:0;"><span style="font-size:small;"><span style="font-family:Trebuchet MS,sans-serif;"><span style="font-weight:normal;">Definição de Maps:</span></span></span></p>
<p style="margin-bottom:0;"><span style="font-size:small;"><span style="font-family:Trebuchet MS,sans-serif;"><span style="font-weight:normal;"> Maps são zero ou mais chaves/valores definidos entre chaves.</span></span></span></p>
<p style="margin-bottom:0;"><span style="font-size:small;"><span style="font-family:Trebuchet MS,sans-serif;"><span style="font-weight:normal;"> </span></span><strong><span style="font-family:Trebuchet MS,sans-serif;">{:a 1 :b 2 :c 3}</span></strong></span></p>
<p style="margin-bottom:0;"><span style="font-size:small;"><strong><span style="font-family:Trebuchet MS,sans-serif;"> </span></strong></span></p>
<p style="margin-bottom:0;"><span style="font-size:small;"><strong><span style="font-family:Trebuchet MS,sans-serif;"> </span></strong><span style="font-family:Trebuchet MS,sans-serif;"><span style="font-weight:normal;">em Clojure virgulas são considerados espaços em branco, então pode-se usar para organizar de melhor forma os maps, assim:</span></span></span></p>
<p style="margin-bottom:0;"><span style="font-size:small;"><span style="font-family:Trebuchet MS,sans-serif;"><span style="font-weight:normal;"> </span></span><strong><span style="font-family:Trebuchet MS,sans-serif;">{:a 1,  :b 2,  :c 3}</span></strong></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;font-weight:normal;"><span style="font-size:small;"><span style="font-family:Trebuchet MS,sans-serif;">Existem outros você deve olhar diretamento no web site para estudar com mais detalhe.</span></span></p>
<p><!-- 		@page { margin: 0.79in } 		P { margin-bottom: 0.08in } --></p>
<p style="margin-bottom:0;"><span style="font-size:small;"><span style="font-family:Trebuchet MS,sans-serif;">Um exemplo usando algo vindo do mundo Java:</span></span></p>
<p style="margin-bottom:0;"><img class="aligncenter size-full wp-image-313" title="jc" src="http://edipolf.files.wordpress.com/2009/07/jc.jpg?w=531&#038;h=133" alt="jc" width="531" height="133" /></p>
<p style="margin-bottom:0;font-weight:normal;"><span style="font-size:small;"><span style="font-family:Trebuchet MS,sans-serif;">Para finalizar esse pequeno post sobre clojure vamos ao exemplo que faz parte do título, </span></span></p>
<p style="margin-bottom:0;font-weight:normal;"><span style="font-size:small;"><span style="font-family:Trebuchet MS,sans-serif;">o famoso fatorial.</span></span></p>
<p style="margin-bottom:0;font-weight:normal;">
<p style="margin-bottom:0;font-weight:normal;"><span style="font-size:small;"><span style="font-family:Trebuchet MS,sans-serif;"><img class="aligncenter size-full wp-image-314" title="fact" src="http://edipolf.files.wordpress.com/2009/07/fact1.jpg?w=536&#038;h=128" alt="fact" width="536" height="128" /><br />
</span></span></p>
<p><!-- 		@page { margin: 0.79in } 		P { margin-bottom: 0.08in } --></p>
<p style="margin-bottom:0;"><span style="font-size:small;"><span style="font-family:Trebuchet MS,sans-serif;">Abaixo como o exemplo é executado:</span></span></p>
<p style="margin-bottom:0;font-weight:normal;"><img class="aligncenter size-full wp-image-315" title="jp" src="http://edipolf.files.wordpress.com/2009/07/jp.jpg?w=381&#038;h=516" alt="jp" width="381" height="516" /></p>
<p style="margin-bottom:0;font-weight:normal;">
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/edipolf.wordpress.com/308/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/edipolf.wordpress.com/308/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/edipolf.wordpress.com/308/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/edipolf.wordpress.com/308/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/edipolf.wordpress.com/308/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/edipolf.wordpress.com/308/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/edipolf.wordpress.com/308/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/edipolf.wordpress.com/308/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/edipolf.wordpress.com/308/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/edipolf.wordpress.com/308/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/edipolf.wordpress.com/308/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/edipolf.wordpress.com/308/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/edipolf.wordpress.com/308/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/edipolf.wordpress.com/308/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=edipolf.wordpress.com&amp;blog=5265916&amp;post=308&amp;subd=edipolf&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://edipolf.wordpress.com/2009/07/04/primeira-olhada-em-clojure-fatorial-examplo/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/298a659a2f87e10d6c3d0b1abf010f2e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">edipofederle</media:title>
		</media:content>

		<media:content url="http://edipolf.files.wordpress.com/2009/07/ex.jpg" medium="image">
			<media:title type="html">ex</media:title>
		</media:content>

		<media:content url="http://edipolf.files.wordpress.com/2009/07/2.jpg" medium="image">
			<media:title type="html">2</media:title>
		</media:content>

		<media:content url="http://edipolf.files.wordpress.com/2009/07/jc.jpg" medium="image">
			<media:title type="html">jc</media:title>
		</media:content>

		<media:content url="http://edipolf.files.wordpress.com/2009/07/fact1.jpg" medium="image">
			<media:title type="html">fact</media:title>
		</media:content>

		<media:content url="http://edipolf.files.wordpress.com/2009/07/jp.jpg" medium="image">
			<media:title type="html">jp</media:title>
		</media:content>
	</item>
	</channel>
</rss>
