<?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>echo 'mfandrade' &#62; /dev/net</title>
	<atom:link href="http://mfandrade.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://mfandrade.wordpress.com</link>
	<description>http://mfandrade.wordpress.com</description>
	<lastBuildDate>Tue, 17 Jan 2012 16:47:52 +0000</lastBuildDate>
	<language>pt-br</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='mfandrade.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://1.gravatar.com/blavatar/988756eb381b8986550c10267ec156e6?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>echo 'mfandrade' &#62; /dev/net</title>
		<link>http://mfandrade.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://mfandrade.wordpress.com/osd.xml" title="echo &#039;mfandrade&#039; &#62; /dev/net" />
	<atom:link rel='hub' href='http://mfandrade.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Criar arquivos .zip em Python</title>
		<link>http://mfandrade.wordpress.com/2012/01/17/criar-arquivos-zip-em-python/</link>
		<comments>http://mfandrade.wordpress.com/2012/01/17/criar-arquivos-zip-em-python/#comments</comments>
		<pubDate>Tue, 17 Jan 2012 16:29:44 +0000</pubDate>
		<dc:creator>mfandrade</dc:creator>
				<category><![CDATA[Programação]]></category>
		<category><![CDATA[arquivos]]></category>
		<category><![CDATA[compactados]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[zip]]></category>

		<guid isPermaLink="false">http://mfandrade.wordpress.com/?p=101</guid>
		<description><![CDATA[Estou fazendo minhas primeiras excursões em Python.  Realmente é uma linguagem bastante suscinta e também muito elegante.  Descobrir o jeito &#8220;pythonico&#8221; de fazer as coisas, especialmente para nós que viemos de outras linguagens como Java, chega a ser revelador (Não é raro se ter alguns momentos do tipo: Puxa, só isso!). Como novato querendo aprender [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mfandrade.wordpress.com&amp;blog=5993977&amp;post=101&amp;subd=mfandrade&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Estou fazendo minhas primeiras excursões em Python.  Realmente é uma linguagem bastante suscinta e também muito elegante.  Descobrir o jeito &#8220;pythonico&#8221; de fazer as coisas, especialmente para nós que viemos de outras linguagens como Java, chega a ser revelador (Não é raro se ter alguns momentos do tipo: <q>Puxa, só isso!</q>).</p>
<p>Como novato querendo aprender a mexer em <a href="http://www.python.org">Python</a>, vou relatar aqui meus progressos.  Basicamente o objetivo é anotar para eu mesmo me lembrar, mas se puder ajudar a mais alguém, sem dúvida será bom.</p>
<p>Enfim, chega de papo.  Estou montando uma solução para criação e transferência de arquivos compactados entre dois hosts.  Eu poderia implementá-la em Java, Shell ou mesmo PHP sem problemas, mas optei por Python justamente para me forçar a aprender um pouco mais.</p>
<p>A primeira coisa que precisei foi apenas criar arquivos zip.  Em Python é bastante simples:</p>
<p><code>&gt;&gt;&gt; import zipfile.ZipFile<br />
&gt;&gt;&gt; meuzip = ZipFile('arquivo.zip', 'a')<br />
&gt;&gt;&gt; meuzip.write('conteudo.txt')<br />
&gt;&gt;&gt; meuzip.close()</code></p>
<p>Neste código, <code>ZipFile</code> é a classe que manipula arquivos compactados, <code>arquivo.zip</code> é o nome do arquivo no qual os demais serão adicionados (neste caso, apenas o arquivo <code>conteudo.txt</code> que está no mesmo diretório).  O segundo parâmetro do construtor da classe (&#8216;a&#8217;ppend) é um flag bem no estilo dos flags de <a href="http://www.vivaolinux.com.br/artigo/Manipulando-arquivos-em-C-(parte-1)/">manipulação de arquivos em C</a>.</p>
<p>Ao fechar o arquivo depois de gravar, se você vir o diretório corrente, lá já estará o arquivo.zip recém-criado.</p>
<p>Simples, não!?  E o que é melhor: nada dos chatos <a href="http://java.sun.com/developer/technicalArticles/Streams/ProgIOStreams/">streams de Java</a>. <img src='http://s2.wp.com/wp-includes/images/smilies/icon_razz.gif' alt=':-P' class='wp-smiley' /> </p>
<p>Para mais informações, não deixe de ler a documentação do <a href="http://docs.python.org/library/zipfile.html">módulo zipfile do Python</a>.</p>
<br />Filed under: <a href='http://mfandrade.wordpress.com/category/programacao/'>Programação</a> Tagged: <a href='http://mfandrade.wordpress.com/tag/arquivos/'>arquivos</a>, <a href='http://mfandrade.wordpress.com/tag/compactados/'>compactados</a>, <a href='http://mfandrade.wordpress.com/tag/java/'>java</a>, <a href='http://mfandrade.wordpress.com/tag/python/'>python</a>, <a href='http://mfandrade.wordpress.com/tag/zip/'>zip</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mfandrade.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mfandrade.wordpress.com/101/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mfandrade.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mfandrade.wordpress.com/101/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mfandrade.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mfandrade.wordpress.com/101/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mfandrade.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mfandrade.wordpress.com/101/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mfandrade.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mfandrade.wordpress.com/101/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mfandrade.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mfandrade.wordpress.com/101/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mfandrade.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mfandrade.wordpress.com/101/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mfandrade.wordpress.com&amp;blog=5993977&amp;post=101&amp;subd=mfandrade&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mfandrade.wordpress.com/2012/01/17/criar-arquivos-zip-em-python/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/32c1bda5b57a65cc1c63f312f1fdf8a0?s=96&#38;d=identicon&#38;r=PG" medium="image">
			<media:title type="html">mfandrade</media:title>
		</media:content>
	</item>
		<item>
		<title>A Maneira de Testivus</title>
		<link>http://mfandrade.wordpress.com/2009/06/27/a-maneira-de-testivus/</link>
		<comments>http://mfandrade.wordpress.com/2009/06/27/a-maneira-de-testivus/#comments</comments>
		<pubDate>Sat, 27 Jun 2009 20:30:44 +0000</pubDate>
		<dc:creator>mfandrade</dc:creator>
				<category><![CDATA[Programação]]></category>

		<guid isPermaLink="false">http://mfandrade.wordpress.com/?p=71</guid>
		<description><![CDATA[Em algum tempo remoto, exploradores perdidos numa excursão ao Himalaia fizeram uma descoberta surpreendente.  Num ambiente peculiar dentro de uma antiga caverna, encontraram, entre outras coisas, um inusitado livrinho velho e desgastado, contendo dizeres de sabedoria ancestrais.  Ao longo dos tempos, tais ensinamentos perduraram e, qual a surpresa ao ver-se que ainda podem ser diretamente [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mfandrade.wordpress.com&amp;blog=5993977&amp;post=71&amp;subd=mfandrade&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div class="mceTemp">
<dl class="wp-caption alignleft">
<dt class="wp-caption-dt"><a href="http://mfandrade.files.wordpress.com/2009/06/amaneiradetestivus.pdf"><img class="size-full wp-image-73" title="A Maneira de Testivus" src="http://mfandrade.files.wordpress.com/2009/06/maneira.jpg?w=510" alt="A Maneira de Testivus"   /></a></dt>
</dl>
</div>
<p>Em algum tempo remoto, exploradores perdidos numa excursão ao Himalaia fizeram uma descoberta surpreendente.  Num ambiente peculiar dentro de uma antiga caverna, encontraram, entre outras coisas, um inusitado livrinho velho e desgastado, contendo dizeres de sabedoria ancestrais.  Ao longo dos tempos, tais ensinamentos perduraram e, qual a surpresa ao ver-se que ainda podem ser diretamente aplicados até em ambientes de desenvolvimento de software modernos.</p>
<p>Você confere uma réplica (recuperada, digitalizada e agora traduzida para o português) deste pequeno livrinho, intitulado <strong>&#8220;A Maneira de Testivus&#8221;</strong>, para <a href="http://mfandrade.files.wordpress.com/2009/06/amaneiradetestivus.pdf">download aqui</a>.  Você pode ver mais referências sobre este antigo livrinho <a href="http://searchsoftwarequality.techtarget.com/generic/0,295582,sid92_gci1261688,00.html">aqui</a>.</p>
<p>Boa leitura!</p>
<br />Publicado em Programação  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mfandrade.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mfandrade.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mfandrade.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mfandrade.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mfandrade.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mfandrade.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mfandrade.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mfandrade.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mfandrade.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mfandrade.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mfandrade.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mfandrade.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mfandrade.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mfandrade.wordpress.com/71/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mfandrade.wordpress.com&amp;blog=5993977&amp;post=71&amp;subd=mfandrade&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mfandrade.wordpress.com/2009/06/27/a-maneira-de-testivus/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/32c1bda5b57a65cc1c63f312f1fdf8a0?s=96&#38;d=identicon&#38;r=PG" medium="image">
			<media:title type="html">mfandrade</media:title>
		</media:content>

		<media:content url="http://mfandrade.files.wordpress.com/2009/06/maneira.jpg" medium="image">
			<media:title type="html">A Maneira de Testivus</media:title>
		</media:content>
	</item>
		<item>
		<title>Vai a Alemanha em julho?  Participe do CakeFest</title>
		<link>http://mfandrade.wordpress.com/2009/03/24/vai-a-alemanha-em-julho-participe-do-cakefest/</link>
		<comments>http://mfandrade.wordpress.com/2009/03/24/vai-a-alemanha-em-julho-participe-do-cakefest/#comments</comments>
		<pubDate>Tue, 24 Mar 2009 16:29:53 +0000</pubDate>
		<dc:creator>mfandrade</dc:creator>
				<category><![CDATA[Geral]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[2009]]></category>
		<category><![CDATA[Berlin]]></category>
		<category><![CDATA[CakeFest]]></category>
		<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[evento]]></category>

		<guid isPermaLink="false">http://mfandrade.wordpress.com/?p=65</guid>
		<description><![CDATA[Acontecerá entre 9 e 12 de julho em Berlin, na Alemanha, o maior evento da comunidade CakePHP mundial: CakeFest 2009. A programação já está disponível, mas até o dia 17 de abril ainda é possível submeter sua proposta de palestra ao evento. Ajude a divulgar o CakeFest Berlin 2009 você também, e ainda concorra a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mfandrade.wordpress.com&amp;blog=5993977&amp;post=65&amp;subd=mfandrade&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div id="attachment_66" class="wp-caption aligncenter" style="width: 452px"><a href="http://cakefest.org/"><img class="size-full wp-image-66" title="CakeFest Berlin 2009" src="http://mfandrade.files.wordpress.com/2009/03/cakefest_berlin_offwhite_huge.png?w=510" alt="cakefest_berlin_offwhite_huge"   /></a><p class="wp-caption-text">Logo do evento</p></div>
<p style="text-align:left;">Acontecerá entre 9 e 12 de julho em Berlin, na Alemanha, o maior evento da comunidade CakePHP mundial: CakeFest 2009.</p>
<p style="text-align:left;">A <a href="http://cakefest.org/talks">programação</a> já está disponível, mas até o dia <strong>17 de abril</strong> ainda é possível <a href="http://cakefest.org/talks/add">submeter sua proposta</a> de palestra ao evento.</p>
<p style="text-align:left;">Ajude a divulgar o CakeFest Berlin 2009 você também, e ainda <a href="http://cakefest.org/pages/badges">concorra</a> a uma inscrição de graça no evento!</p>
<p style="text-align:left;">Nos vemos em Berlin!</p>
<br />Publicado em Geral, Web Tagged: 2009, Berlin, CakeFest, CakePHP, evento <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mfandrade.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mfandrade.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mfandrade.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mfandrade.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mfandrade.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mfandrade.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mfandrade.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mfandrade.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mfandrade.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mfandrade.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mfandrade.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mfandrade.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mfandrade.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mfandrade.wordpress.com/65/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mfandrade.wordpress.com&amp;blog=5993977&amp;post=65&amp;subd=mfandrade&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mfandrade.wordpress.com/2009/03/24/vai-a-alemanha-em-julho-participe-do-cakefest/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/32c1bda5b57a65cc1c63f312f1fdf8a0?s=96&#38;d=identicon&#38;r=PG" medium="image">
			<media:title type="html">mfandrade</media:title>
		</media:content>

		<media:content url="http://mfandrade.files.wordpress.com/2009/03/cakefest_berlin_offwhite_huge.png" medium="image">
			<media:title type="html">CakeFest Berlin 2009</media:title>
		</media:content>
	</item>
		<item>
		<title>&#8220;Eu amo o mundo!&#8221;. Discovery 15 anos</title>
		<link>http://mfandrade.wordpress.com/2009/03/22/eu-amo-o-mundo-discover-15-anos/</link>
		<comments>http://mfandrade.wordpress.com/2009/03/22/eu-amo-o-mundo-discover-15-anos/#comments</comments>
		<pubDate>Sun, 22 Mar 2009 04:17:10 +0000</pubDate>
		<dc:creator>mfandrade</dc:creator>
				<category><![CDATA[Geral]]></category>
		<category><![CDATA[15 anos]]></category>
		<category><![CDATA[comercial]]></category>
		<category><![CDATA[discovery]]></category>
		<category><![CDATA[vídeo]]></category>

		<guid isPermaLink="false">http://mfandrade.wordpress.com/?p=53</guid>
		<description><![CDATA[Uma área em que também gostaria de atuar, sem dúvida, seria publicidade! O canal Discovery Channel comemora 15 anos no ar de muitos documentários, conteúdo científico, informativo, curiosidades e programas educativos.  Entretenimento inteligente garantido!  Mas não dediquei um post de meu blog a isso, mas sim à sensacional vinheta que vem sendo vinculada pelo canal: [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mfandrade.wordpress.com&amp;blog=5993977&amp;post=53&amp;subd=mfandrade&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Uma área em que também gostaria de atuar, sem dúvida, seria publicidade!</p>
<p>O canal <a href="http://discoverybrasil.com">Discovery Channel</a> comemora 15 anos no ar de muitos documentários, conteúdo científico, informativo, curiosidades e programas educativos.  Entretenimento inteligente garantido!  Mas não dediquei um post de meu blog a isso, mas sim à sensacional vinheta que vem sendo vinculada pelo canal: uma declaração de amor ao mundo, à diversidade e ao conhecimento.  Uma verdadeira ode à tudo que a vida tem de bom!  Um comercial simples, instigador, divertido e muitíssimo agradável!  Particularmente, me desperta bons sentimentos (e até uma pontinha de nostalgia!).</p>
<p>Confira o vídeo abaixo!</p>
<span style="text-align:center; display: block;"><a href="http://mfandrade.wordpress.com/2009/03/22/eu-amo-o-mundo-discover-15-anos/"><img src="http://img.youtube.com/vi/5rWB7Px5Hks/2.jpg" alt="" /></a></span>
<p>E a letra da música:</p>
<blockquote><p><em>Eu amo a Terra<br />
Todo o azul do mar<br />
Pontes incríveis<br />
Ver tubarão saltar.</em></p>
<p><em>Eu amo o mundo<br />
Tudo o que nele há<br />
Boom, de ya da. Boom, de ya da. (bis).</em></p>
<p><em>Eu amo as ondas<br />
Eu amo me sujar<br />
Amo correr assim<br />
E múmias estudar.</em></p>
<p><em>Eu amo o mundo<br />
Mistérios desvendar<br />
Boom, de ya da. Boom, de ya da. (bis).</em></p>
<p><em>Amo os tornados<br />
Eu amo as aranhas<br />
Eu amo magma<br />
E coisas estranhas.</em></p>
<p><em>Eu amo o mundo<br />
É um lugar legal<br />
Boom, de ya da. Boom, de ya da.<br />
Boom, </em><span title="Trechinho cantado pelo Dr. Stephen Hawking!">de ya da</span><em>. Boom, de ya daaaaaa&#8230;</em></p></blockquote>
<p>Parabéns ao Discovery Channel!  À <a href="http://72andsunny.com/#/work/discovery_channel/">72andSunny</a> pela excelente peça publicitária! E aos responsáveis pela versão em português (melhor que <a href="http://www.youtube.com/watch?v=at_f98qOGY0">o original</a>, aliás).<em><br />
</em></p>
<br />Publicado em Geral Tagged: 15 anos, comercial, discovery, vídeo <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mfandrade.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mfandrade.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mfandrade.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mfandrade.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mfandrade.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mfandrade.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mfandrade.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mfandrade.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mfandrade.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mfandrade.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mfandrade.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mfandrade.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mfandrade.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mfandrade.wordpress.com/53/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mfandrade.wordpress.com&amp;blog=5993977&amp;post=53&amp;subd=mfandrade&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mfandrade.wordpress.com/2009/03/22/eu-amo-o-mundo-discover-15-anos/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/32c1bda5b57a65cc1c63f312f1fdf8a0?s=96&#38;d=identicon&#38;r=PG" medium="image">
			<media:title type="html">mfandrade</media:title>
		</media:content>
	</item>
		<item>
		<title>DateFormatter. Um behaviour simples e útil</title>
		<link>http://mfandrade.wordpress.com/2009/03/17/dateformatter-um-behaviour-simples-e-util/</link>
		<comments>http://mfandrade.wordpress.com/2009/03/17/dateformatter-um-behaviour-simples-e-util/#comments</comments>
		<pubDate>Wed, 18 Mar 2009 02:30:38 +0000</pubDate>
		<dc:creator>mfandrade</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[behaviour]]></category>
		<category><![CDATA[DateFormatter]]></category>
		<category><![CDATA[DRY]]></category>

		<guid isPermaLink="false">http://mfandrade.wordpress.com/?p=47</guid>
		<description><![CDATA[Desenvolvimento de sistemas envolve boa parte de planejamento e também de engenharia.  Uma das piores coisas que se pode ter, especialmente ao se dar manutenção em aplicações feitas inadequadamente é precisar alterar algo no sistema que não foi desenvolvido com o princípio DRY em mente, geralmente porque o &#8220;desenvolvedor&#8221; baseava-se na programação orientada a copiar-e-colar. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mfandrade.wordpress.com&amp;blog=5993977&amp;post=47&amp;subd=mfandrade&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Desenvolvimento de sistemas envolve boa parte de planejamento e também de engenharia.  Uma das piores coisas que se pode ter, especialmente ao se dar manutenção em aplicações feitas inadequadamente é precisar alterar algo no sistema que não foi desenvolvido com o princípio <acronym title="Don't Repeat Yourself">DRY</acronym> em mente, geralmente porque o &#8220;desenvolvedor&#8221; baseava-se na <a href="http://en.wikipedia.org/wiki/Copy_and_paste_programming">programação orientada a copiar-e-colar</a>.</p>
<p>Um exemplo ilustrativo do que quero dizer, p.ex., é a formatação de datas e horas.  Geralmente o formato de data e hora que deve ser apresentado ao usuário depende da localização do site, do público alvo, além de outros fatores.  Por exemplo, para um site de notícias em português talvez seja bom mostrar-se datas por extenso, (como &#8220;17 de março de 2009&#8243;) ou no formato <em>dd/mm/aaaa</em>.<span id="more-47"></span>Supondo que você já tenha iniciado a construção do sistema neste formato de data em todas os 50 scripts de páginas de sua aplicação até que um dia decidiu-se que as datas deveriam ficar num formato <em>mm/dd/aaaa</em> (por exemplo 03/17/2009).  E agora?</p>
<p>Além disso, geralmente os dados são armazenados de forma diferente da maneira como são exibidos.  Os bancos de dados usam por padrão o formato <em>aaaa-mm-dd</em> para datas.  Nas mãos de um programador displicente, conversão de formatos de datas pode facilmente se tornar um problema chato.</p>
<p>Por hora, o <a href="http://www.cakephp.org">CakePHP</a> é minha ferramenta de opção.  Além de ter uma comunidade de desenvolvedores e usuários muito numerosa e atuante, uma das coisas que me fascinam no CakePHP é a clareza e a facilidade propiciadas para uso de boas práticas de programação.  Um dos melhores exemplos disso é o behaviour <a href="http://nik.chankov.net/2007/12/20/using-different-date-format-in-cakephp-12/">DateFormatter</a>.</p>
<p>DateFormatter é um dos <a href="http://book.cakephp.org/pt/view/88/Behaviors">behaviours</a> mais simples e ao mesmo tempo mais úteis que já encontrei para CakePHP.  Ele nos permite especificar a o formato de seus dados temporais tal como você deseje exibí-los aos usuários e o formato adequado para armazenamento em banco de dados de uma maneira <a href="http://en.wikipedia.org/wiki/Don%27t_repeat_yourself">centralizada</a>, organizada e gerenciável.  Tudo o que você precisa é definir os formatos desejados para exibição de suas datas (o que pode depender da localização de sua aplicação) e o formato no banco de dados que o behaviour pode lidar com as formatações transparentemente.</p>
<p><strong>Formatando Datas</strong><br />
Para utilizar o DateFormatter behaviour em sua aplicação, <a href="http://nik.chankov.net/2007/12/20/using-different-date-format-in-cakephp-12/#more-44">copie o código</a> do site, salvando-o num arquivo em <em>/app/models/behaviours/date_formatter.php.</em></p>
<p>Como o nome indica, um behaviour em CakePHP é um comportamento que agrupa uma funcionalidade comum a vários models.  Para usá-lo em toda a sua aplicação, aplique-o a seu <em>app_model.php</em>:</p>
<blockquote><p>&lt;?php<br />
class AppModel extends Model {<br />
// &#8230;<br />
var $actsAs = array(&#8216;DateFormatter&#8217;, &#8230;);<br />
// &#8230;<br />
}</p></blockquote>
<p>E pronto!</p>
<p>Como definido no código do behaviour, or padrão, suas datas para o usuário estarão no formato <em>dd/mm/aaaa</em> e para o banco em <em>aaaa-mm-dd</em> (como mesmos <a href="http://br2.php.net/date#function.date.parameters">parâmetros do comando date</a> do PHP).  O código está muito bem comentado e você pode modificar seus formatos de data nos atributos do behaviour sem qualquer dificuldade, mas você também pode definir estes formatos nas configurações do CakePHP.</p>
<p>Se você analisar o código da implementação do behaviour, verá que é de uma simplicidade ímpar!  Essencialmente, antes de salvar um registro de um model no banco (callback<em> <a href="http://api.cakephp.org/class/model-behavior#method-ModelBehaviorbeforeSave">beforeSave</a></em> do AppModel), ele converterá os campos de data para o formato de banco definido e aplicará o formato de data de exibição depois de obtê-lo no banco (callback <a href="http://api.cakephp.org/class/model-behavior#method-ModelBehaviorafterFind"><em>afterFind</em></a>).</p>
<p>O que é melhor é que o DateFormatter, com os formatos consistentes, pode ser utilizado transparentemente sem qualquer problema de compatibilidade com máscaras em javascript (como, p.ex., plugins <a href="digitalbush.com/projects/masked-input-plugin">MaskedInput</a> e <a href="www.meiocodigo.com/projects/meiomask">MeioMask</a> do <a href="http://jquery.com/">jQuery</a>) ou elementos de formulário para seleção de data (como o <a href="http://nik.chankov.net/2007/09/13/advanced-datepicker-helper-for-cakephp/">Advanced DatePicker Helper</a> ou <a href="cakeforge.org/projects/annodomini">AnnoDommini</a> para CakePHP).</p>
<p>O CakePHP também tem o <a href="http://book.cakephp.org/pt/view/217/Time">TimeHelper</a> para ajudar na formatação de datas e horas, mas como é aplicado na camada de visão, não há definição centralizada de formato.</p>
<p>DateFormatter passou a ser imprescindível em minhas aplicações CakePHP.  Espero que lhe ajude também!</p>
<br />Publicado em Web Tagged: behaviour, DateFormatter, DRY <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mfandrade.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mfandrade.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mfandrade.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mfandrade.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mfandrade.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mfandrade.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mfandrade.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mfandrade.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mfandrade.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mfandrade.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mfandrade.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mfandrade.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mfandrade.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mfandrade.wordpress.com/47/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mfandrade.wordpress.com&amp;blog=5993977&amp;post=47&amp;subd=mfandrade&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mfandrade.wordpress.com/2009/03/17/dateformatter-um-behaviour-simples-e-util/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/32c1bda5b57a65cc1c63f312f1fdf8a0?s=96&#38;d=identicon&#38;r=PG" medium="image">
			<media:title type="html">mfandrade</media:title>
		</media:content>
	</item>
		<item>
		<title>Guia definitivo da codificação de caracteres no CakePHP</title>
		<link>http://mfandrade.wordpress.com/2009/03/05/guia-definitivo-da-codificacao-de-caracteres-no-cakephp/</link>
		<comments>http://mfandrade.wordpress.com/2009/03/05/guia-definitivo-da-codificacao-de-caracteres-no-cakephp/#comments</comments>
		<pubDate>Thu, 05 Mar 2009 04:00:05 +0000</pubDate>
		<dc:creator>mfandrade</dc:creator>
				<category><![CDATA[Programação]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://mfandrade.wordpress.com/?p=26</guid>
		<description><![CDATA[Codificação de caracteres é talvez o problema mais comum para quem está iniciando no CakePHP.  Os &#8220;sintomas&#8221; podem ir desde simplesmente da exibição de caracteres estranhos (como quadrados ou interrogações) onde deveriam estar caracteres acentuados, até a não exibição de certos registros em listagens, por exemplo. Entendendo o problema A codificação de caracteres mais primitiva [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mfandrade.wordpress.com&amp;blog=5993977&amp;post=26&amp;subd=mfandrade&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Codificação de caracteres <a href="http://groups.google.com/group/cakephp-pt/search?&amp;q=codificação">é talvez o problema mais comum</a> para quem está iniciando no CakePHP.  Os &#8220;sintomas&#8221; podem ir desde simplesmente da exibição de caracteres estranhos (como quadrados ou interrogações) onde deveriam estar caracteres acentuados, até a não exibição de certos registros em listagens, por exemplo.</p>
<p><strong>Entendendo o problema</strong></p>
<p>A codificação de caracteres mais primitiva é a chamada codificação <a href="http://equipe.nce.ufrj.br/adriano/c/apostila/tabascii.htm">ASCII</a>.  ASCII é uma codificação de 7 bits, ou (2<sup>7</sup>) 128 caracteres.  Essa quantidade de caracteres é mais que suficiente para representar as letras do alfabeto inglês em maiúsculas e minúsculas (de<strong> a-z</strong> e de <strong>A-Z</strong>, ou 52 caracteres no total), os dígitos de <strong>0-9</strong>, alguns sinais de pontuação (como <strong>.;:?!@#$%&amp;</strong>, e outros) além de alguns caracteres não imprimíveis para funções de controle (como quebras de linha, tabulações, espaçamento, fim de arquivo, etc).</p>
<p><span id="more-26"></span>Porém, não havia como representar, em ASCII, caracteres comuns nos idiomas latinos, como os acentos comuns nos idiomas portugu<em>ê</em>s e espa<em>ñ</em>ol.  Essa deficiência foi contornada com uma <a href="http://www.asciitable.com/asciifull.gif">versão estendida da tabela ASCII</a> em 8 bits, ou 256 posições &#8211; o dobro da capacidade.</p>
<p>Mas a tabela ASCII estendida não era uma solução definitiva para codificações de caracteres.  Principalmente com a popularização da Internet, tornou-se mais do que necessário unificar as representações de caracteres.  Afinal, ainda havia problema de compatibilização com caracteres para idiomas orientais tais como <a href="http://translate.google.com/translate_t#ja|pt|日本語">日本語</a> (japonês), <a href="http://translate.google.com/translate_t#ru|pt|Русский">Русский</a> (russo), <a href="http://translate.google.com/translate_t#el|pt|Ελληνικά">Ελληνικά</a> (grego), <a href="http://translate.google.com/translate_t#ar|pt|%D8%A7%D9%84%D8%B9%D8%B1%D8%A8%D9%8A%D8%A9">العربية</a> (árabe) e muitos outros.</p>
<p>Uma solução adotada pelo organismo internacional de padronização &#8211; ISO &#8211; consistia em definir o que se chamou de <a href="http://en.wikipedia.org/wiki/Character_encoding#Popular_character_encodings">páginas de conjuntos de caracteres</a>, que eram padronizadas e específicas para cada um dos diferentes idiomas.  No padrão da ISO, a página para o conjunto de caracteres dos idiomas latinos é a <a href="http://en.wikipedia.org/wiki/ISO/IEC_8859-1">ISO-8859-1</a>.</p>
<p>Apesar de o uso de páginas de caracteres ter sido bastante difundido a partir de sua adoção como padrão ISO, havia o inconveniente do gerenciamento de páginas de codificação.  Por exemplo, se você deseja ter um site em idiomas com 4 codificações distintas, a rigor, deveria criar cada página, salvando-as na codificação devida e <a href="http://vancouver-webpages.com/multilingual/howto.html">configurando seu servidor</a> e sua aplicação para chavear entre as páginas de caracteres.  Esse tipo de tarefa, ainda que simples, pode representar bastante trabalho.</p>
<p>Surgiu então a iniciativa <a href="http://unicode.org/">Unicode</a>, ou conjunto de caracteres universal.   Um consórcio de diversas entidades se formou com a ideia de definir uma representação unificada e padronizada para todos caracteres de todos os diferentes idiomas.  Um grande desafio!  Mas hoje a maioria dos sites web que estão no ar já utilizam Unicode e seu crescente suporte já é amplamente difundido em muitas aplicações.  Você pode aprender mais sobre Unicode na <a href="http://en.wikipedia.org/wiki/Unicode">Wikipedia</a>,  ou neste excelente artigo do <a href="http://local.joelonsoftware.com/wiki/O_Mínimo_Absoluto_Que_Todos_os_Programadores_de_Software_Precisam,_Absolutamente,_Positivamente_de_Saber_Sobre_Unicode_e_Conjuntos_de_Caracteres_(Sem_Desculpas!)">Joel on Software</a>.</p>
<p><strong>E o &#8220;cake&#8221; isso tudo tem a ver com o CakePHP?</strong></p>
<p>Para evitar a ocorrência de problemas de codificação de caracteres com sua aplicação em CakePHP, a recomendação definitiva é: utilize UTF-8 em todo local que você vir relacionado a codificação de caracteres e você não vai ter problema.  (É claro que se você tem certeza de que nunca vai ter conteúdo escrito em outro idioma que não o português do Brasil, ao invés de UTF-8, pode utilizar tudo na codificação ISO-8859-1).</p>
<p>Abaixo segue um checklist sobre todos os locais que você deve conferir para esta codificação, em ordem do mais simples e que provavelmente já deve estar okay, até o mais inusitado e que você só vai querer mexer em caso de paranoia total.  Se você estiver enfrentando problemas com codificação de caracteres, vá fazendo uma de cada vez e verifique até que ponto o problema ainda persiste:</p>
<ol>
<li><strong><em>App.encoding</em> no arquivo </strong><strong>core.php</strong><br />
Por padrão, o CakePHP já vem configurado para trabalhar com UTF-8.  Esta configuração é feita no arquivo <strong>core.php</strong> (em <em>/app/config</em>).  Confira se este arquivo contém uma linha como a abaixo:</p>
<blockquote><p>Configure::write(&#8216;App.encoding&#8217;, &#8216;UTF-8&#8242;);</p></blockquote>
<p>Vale lembrar também que este é o valor que é retornado quando se utiliza <code>$html-&gt;charset()</code> numa view ou num layout.</li>
<li><strong>Codificação de seus arquivos .php</strong><br />
Os arquivos .php que você escrever (particularmente seus models, suas views e seus controllers) devem ser gravados na codificação UTF-8.  Esta é uma questão comum já que em alguns editores a configuração da codificação de caracteres acaba ficando escondida.  Portanto, dê preferência para usar um editor de código &#8220;esperto&#8221; que especificar adequadamente a codificação de caracteres ao salvar seus arquivos.Um detalhe um pouco mais técnico é que a codificação de seus arquivo deve ser &#8220;UTF-8 sem BOM&#8221;.  <a href="http://unicode.org/faq/utf_bom.html#BOM">BOM significa <em>byte order mark</em></a>.  É que UTF-8 por padrão utiliza uma marcação escondida antes de cada caracter apenas para que os byte da representação interna possam ficar ordenados.  O problema é que essa marcação interna não é compreendida pelo PHP que acaba inserindo uns caracteres estranhos como lixo no começo da página.  Se você vir algo como</p>
<blockquote><p>ï»¿</p></blockquote>
<p>então abra seus arquivos .php em um editor de texto <em>esperto</em> e salve-os novamente na codificação &#8220;UTF-8 sem BOM&#8221; (procure por algo correlato no seu editor de texto, geralmente em Preferências, algum item de menu, barra de status ou até no próprio diálogo Salvar).  Citando <a href="http://www.tuliofaria.net/">Túlio Faria</a>, <q>nunca use BOM, porque BOM é ruim&#8230;</q> <img src='http://s2.wp.com/wp-includes/images/smilies/icon_razz.gif' alt=':-P' class='wp-smiley' /> </li>
<li><strong>Metatag de codificação de caracteres no layout</strong><br />
A especificação da linguagem (X)HTML define informações de metadados referentes à própria página, as chamadas metatags.  Certifique-se de que seus arquivos de layout (em <em>/app/views/layouts</em>) possuam esta tag meta em seu cabeçalho:</p>
<blockquote><p>&lt;meta http-equiv=&#8221;content-type&#8221; content=&#8221;text/html; charset=UTF-8&#8243; /&gt;</p></blockquote>
</li>
<li><strong>Codificação do servidor web Apache</strong><br />
A metatag acima é a forma de indicar, no padrão (X)HTML, em que codificação de caracteres está o conteúdo da página.  Mas necessariamente isto não significa (infelizmente) que o navegador irá utilizar esta codificação.  No Mozilla Firefox, a definição da codificação de caracteres pode ser trocada no menu <em>Exibir &gt; Codificação</em> (a propósito, ficar experimentando com as opções deste menu é uma boa maneira de se descobrir em que codificação de caracteres o conteúdo está).Assim, para que as páginas de sua aplicação já venham por padrão com a codificação correta definida, você deve configurar o servidor web também para serví-las em UTF-8.  No caso do Apache (sem esquecer de reiniciá-lo depois), adicione a seguinte ao arquivo <strong>httpd.conf</strong> (ou onde vir ser mais adequado):</p>
<blockquote><p>AddDefaultCharset UTF-8</p></blockquote>
<p>Se você não tiver acesso às configurações do servidor Apache (uma aplicação já em produção, p.ex.), pode adicionar a linha acima ao final de seus arquivos <strong>.htaccess</strong> na raiz do CakePHP.</li>
<li><strong>Codificação no banco de dados MySQL</strong><br />
Problemas de codificação no banco de dados são um pouco mais sérios porque podem até fazer com que dados contendo caracteres especiais não apareçam em algumas listagens.  No caso do MySQL, a codificação pode ser <a href="http://dev.mysql.com/doc/refman/5.1/en/create-table.html">definida na criação da tabela</a> com a opção CHARACTER SET.  Para definir todos os campos textuais da tabela em UTF-8, crie-a como no exemplo:</p>
<blockquote><p>CREATE TABLE posts (<br />
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,<br />
title VARCHAR(50),<br />
body TEXT,<br />
created DATETIME DEFAULT NULL,<br />
modified DATETIME DEFAULT NULL<br />
) CHARACTER SET utf8 COLLATE utf8_bin;</p></blockquote>
<p><strong>PS:</strong> A parte &#8220;COLLATE utf8_bin&#8221; é opcional.  Mas se por acaso você quiser deixar seu banco insensível à diferença entre maiúsculas e minúsculas, você poderia deixar &#8220;COLLATE utf8_unicode_ci&#8221; (o sufixo &#8220;_ci&#8221; significa <em>case insensitive</em>).</li>
<li><strong>Alterando a codificação padrão do interpretador PHP via php.ini</strong><br />
Se você seguiu os cinco itens anteriores corretamente, então com 99,9% de certeza seu problema com codificação de caracteres já terá sido resolvido.  Todavia, se você está certo de que fez tudo corretamente, e está arrancando os cabelos porque ainda vê quadrados, pontos de interrogação ou caracteres estranhos onde deveriam estar acentos.  Se já perguntou na <a href="http://groups.google.com/group/cakephp-pt">lista</a> e não teve a solução do problema.  Se você já estiver ficando louco e não sabe mais o que fazer, tente modificar a codificação padrão do interpretador PHP.  No arquivo <strong>php.ini</strong> de sua instalação do PHP, deve haver um trecho semelhante a este:</p>
<blockquote><p>; PHP&#8217;s built-in default is text/html<br />
default_mimetype = &#8220;text/html&#8221;<br />
;default_charset = &#8220;iso-8859-1&#8243;</p></blockquote>
<p>Você pode retirar o ponto-e-vírgula da frente da diretiva &#8220;default_charset&#8221; e modificar seu valor para &#8220;utf-8&#8243;, reiniciando seu servidor web em seguida.  <strong>Mas novamente, só faça isto  em último caso!</strong></li>
</ol>
<p>É isso!  Embora longo, espero que este artigo lhe seja útil!</p>
<br />Publicado em Programação, Web  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mfandrade.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mfandrade.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mfandrade.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mfandrade.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mfandrade.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mfandrade.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mfandrade.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mfandrade.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mfandrade.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mfandrade.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mfandrade.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mfandrade.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mfandrade.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mfandrade.wordpress.com/26/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mfandrade.wordpress.com&amp;blog=5993977&amp;post=26&amp;subd=mfandrade&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mfandrade.wordpress.com/2009/03/05/guia-definitivo-da-codificacao-de-caracteres-no-cakephp/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/32c1bda5b57a65cc1c63f312f1fdf8a0?s=96&#38;d=identicon&#38;r=PG" medium="image">
			<media:title type="html">mfandrade</media:title>
		</media:content>
	</item>
		<item>
		<title>Slides de &#8220;Apresentando o CakePHP&#8221;</title>
		<link>http://mfandrade.wordpress.com/2009/03/03/slides-de-apresentando-o-cakephp/</link>
		<comments>http://mfandrade.wordpress.com/2009/03/03/slides-de-apresentando-o-cakephp/#comments</comments>
		<pubDate>Tue, 03 Mar 2009 12:59:30 +0000</pubDate>
		<dc:creator>mfandrade</dc:creator>
				<category><![CDATA[Programação]]></category>
		<category><![CDATA[apresentação]]></category>
		<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[slides]]></category>

		<guid isPermaLink="false">http://mfandrade.wordpress.com/?p=28</guid>
		<description><![CDATA[Ao longo do ano de 2008 tive meus primeiros contatos com o framework CakePHP e foi amor à primeira vista!  O GWOO diz que &#8220;depois de começar no CakePHP você não vai mais querer parar&#8221;, e isso faz muito sentido para mim! . Fiz algumas apresentações sobre esta sensacional ferramenta durante o último ano.  Na [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mfandrade.wordpress.com&amp;blog=5993977&amp;post=28&amp;subd=mfandrade&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Ao longo do ano de 2008 tive meus primeiros contatos com o framework CakePHP e foi amor à primeira vista!  O <acronym title="Garret J. Woodworth">GWOO</acronym> diz que <em>&#8220;depois de começar no CakePHP você não vai mais querer parar&#8221;</em>, e isso faz muito sentido para mim! <img src='http://s2.wp.com/wp-includes/images/smilies/icon_razz.gif' alt=':-P' class='wp-smiley' /> .</p>
<p>Fiz algumas apresentações sobre esta sensacional ferramenta durante o último ano.  Na Semana Acadêmica da Faculdade <a href="http://www.esamaz.com">ESAMAZ</a>, no PHP Pattern do <a href="http://eqsrv.amazonweb.net/~ausla/">Fórum Paraense de Software Livre</a> e na <a href="http://www.sepai.com.br">Semana Paraense de Informática</a>.  Os slides são um pouco antigos (antes do lançamento oficial da versão 1.2) mas ainda válidos como palestra introdutória e acho que é importante disponibilizá-los aqui por referência.</p>
<p>Os <a href="http://www.slideshare.net/mfandrade/apresentando-o-cakephp-presentation?type=presentation" title="Apresentando o CakePHP">slides estão disponíveis</a> para visualização e download no <a href="http://www.slideshare.net">Slideshare</a>.  Confira!</p>
<br />Publicado em Programação Tagged: apresentação, CakePHP, slides <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mfandrade.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mfandrade.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mfandrade.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mfandrade.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mfandrade.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mfandrade.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mfandrade.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mfandrade.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mfandrade.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mfandrade.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mfandrade.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mfandrade.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mfandrade.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mfandrade.wordpress.com/28/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mfandrade.wordpress.com&amp;blog=5993977&amp;post=28&amp;subd=mfandrade&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mfandrade.wordpress.com/2009/03/03/slides-de-apresentando-o-cakephp/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/32c1bda5b57a65cc1c63f312f1fdf8a0?s=96&#38;d=identicon&#38;r=PG" medium="image">
			<media:title type="html">mfandrade</media:title>
		</media:content>
	</item>
		<item>
		<title>12 passos para se tornar um especialista em CakePHP</title>
		<link>http://mfandrade.wordpress.com/2009/03/01/12-passos-para-se-tornar-um-especialista-em-cakephp/</link>
		<comments>http://mfandrade.wordpress.com/2009/03/01/12-passos-para-se-tornar-um-especialista-em-cakephp/#comments</comments>
		<pubDate>Sun, 01 Mar 2009 03:08:53 +0000</pubDate>
		<dc:creator>mfandrade</dc:creator>
				<category><![CDATA[Programação]]></category>
		<category><![CDATA[Software Livre]]></category>

		<guid isPermaLink="false">http://mfandrade.wordpress.com/?p=19</guid>
		<description><![CDATA[Um breve guia relacionando os passos para se tornar um &#8220;expert&#8221; em CakePHP. Traduzido do original em: http://teknoid.wordpress.com/2009/02/04/12-step-program-to-get-addicted-to-cakephp/ Passo 1. &#8211; Abandone seus velhos hábitos Tendo você ou não ótimos hábitos, a familiaridade com diversos outros frameworks, ou de fato até nenhuma experiência&#8230; ainda assim será muito benéfico para você abrir sua mente e experimentar [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mfandrade.wordpress.com&amp;blog=5993977&amp;post=19&amp;subd=mfandrade&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Um breve guia relacionando os passos para se tornar um &#8220;expert&#8221; em CakePHP.<br />
Traduzido do original em: <a href="http://teknoid.wordpress.com/2009/02/04/12-step-program-to-get-addicted-to-cakephp/">http://teknoid.wordpress.com/2009/02/04/12-step-program-to-get-addicted-to-cakephp/</a></p>
<p><strong>Passo 1. &#8211; Abandone seus velhos hábitos</strong></p>
<p>Tendo você ou não ótimos hábitos, a familiaridade com diversos outros frameworks, ou de fato até nenhuma experiência&#8230; ainda assim será muito benéfico para você abrir sua mente e experimentar o modo &#8220;Cake&#8221; de fazer as coisas.  Você pode não concordar, você pode não gostar, mas se você quiser vislumbrar o poder do CakePHP, ponha seus conhecimentos prévios de lado por um instante e tente entender porque as coisas são feitas da forma que devem ser feitas.  No fim das contas, você deverá concordar, gostar ou mesmo começar a se sentir um pouco mais por dentro dos novos paradigmas e das novas oportunidades que se abrirão a você como desenvolvedor.</p>
<blockquote><p>“É muito mais fácil criar uma obra de arte em uma tela em branco do que pintar sobre algo que alguém já começou.”</p></blockquote>
<p><strong>Passo 2. &#8211; Ler a documentação ajuda muito<br />
</strong></p>
<p>Volta e meia chego a ouvir que a documentação do CakePHP &#8220;não presta&#8221;.  Pessoalmente, eu acho que isso não poderia estar mais longe da realidade (mas vamos focar no assunto).  O novo manual em <a title="O livro de receitas do CakePHP" href="http://book.cakephp.org">http://book.cakephp.org</a> &#8211; chamado de &#8220;The Book&#8221; (&#8220;O Livro&#8221;) ou &#8220;Cookbook&#8221; (&#8220;Livro de Receitas&#8221;) &#8211; está melhor do que nunca.  E o que é mais importante é que ele é fruto de um trabalho coletivo da comunidade.  Qualquer parte do livro pode ser editara e você mais do que ninguém é convidado a contribuir e melhorar a documentação como bem quiser.  Seja corrigindo erros de ortografia, incluindo algum código de exemplo ou esclarecendo alguma explicação, tudo conta e não há nada que não seja importante de ser colocada no framework.  Em outras palavras, se você encontrar um problema ou algo faltando, você tem o poder para melhorá-la você mesmo.</p>
<p><strong>Passo 3. &#8211; Entre na lista de discussão (Google Group)</strong></p>
<p>O CakePHP é uma comunidade bem abrangente, atuante e colaborativa: <a href="http://groups.google.com/group/cakephp-pt">http://groups.google.com/group/cakephp-pt</a>.  Entre na lista, poste suas dúvidas quando você estiver engatado em alguma coisa para obter ajuda de outros usuários.  Participando da lista, você não só tem a chance de trocar conhecimento com outras pessoas (o que, no mínimo, é uma boa sensação), mas também de aprender um pouco mais apenas lendo as mensagens e possivelmente ajudando nos problemas que os outros estejam tendo.</p>
<p>(N.T.: Se o idioma inglês não é problema para você, participe também da comunidade internacional do CakePHP em <a href="http://groups.google.com/group/cake-php">http://groups.google.com/group/cake-php</a>)<a href="http://groups.google.com/group/cake-php"><br />
</a></p>
<p><strong>Passo 5. &#8211; Entre no amigável canal IRC da comunidade</strong></p>
<p>Para coisas em geral, o CakePHP tem um <a title="Sala do canal IRC #cakephp da comunidade internacional" href="irc://irc.freenode.net/cakephp">canal IRC</a> (#cakephp na rede irc.freenode.net) excelente e bastante ativo, o que é perfeito para quando você precisar de algum suporte em tempo real.  Além de bastante amistoso e colaborativo, o canal também é um ambiente de bastante descontração e certamente pode ser usado como uma ótima ferramenta de aprendizado para aprofundar seus conhecimentos.</p>
<p><strong>Passo 5. &#8211; Comece a programar, logo</strong></p>
<p>Toda a leitura e preparativos são incentivadas, mas a parte mais importante para entrar de fato no mundo do CakePHP é sentar e começar a programar nele.  Mesmo se você simplesmente seguir o <a title="Tutorial do blog em CakePHP" href="http://book.cakephp.org/pt/view/219/Blog">tutorial do blog</a>.  Mesmo se você não tiver segurança se a abordagem que está seguindo é a melhor.  Programar é algo que envolve melhoramentos constantes e refatoração é mais uma parte natural da vida de um desenvolvedor.  Quanto mais cedo você começar, mais cedo você estará se aprimorando.  Talvez não precisasse se dizer, mas é claro que você pode não conseguir fazer um bom bolo a menos que você tente realmente pôr a mão na massa.</p>
<p><strong>Passo 6. &#8211; Fique íntimo da API</strong></p>
<p>No momento em que escrevia este artigo, o CakePHP tinha acabado de ganhar uma nova API (apenas alguns dias atrás), graças a Mark Story e outros colaboradores.  Sim, ainda há uns poucos ajustes a serem feitos, mas a API é uma ferramenta indispensável para qualquer desenvolvedor.  Ela pode lhe parecer um pouco indimidadora no início, mas é bom você se acostumar a ela e aprender a gostar dela.  A API é a resposta definitiva para muitas de suas perguntas sobre o desenvolvimento com CakePHP.  Seguir em frente para compreendê-la pode até ser um pouco difícil no começo, mas vale muito a pena no fim das contas.</p>
<p><strong>Passo 7. &#8211; Apaixone-se você também pelos casos de teste</strong></p>
<p>Existe alguma coisa melhor para um desenvolvedor do que a API do CakePHP?<br />
De faro, há os casos de teste.  Os casos de teste principais (aos que me refiro aqui), cobrem cerca de 90% de todo o código do framework.  Eles lhe mostram cada pequeno detalhe sobre como usar este ou aquele método no CakePHP e depois de dedicar seu tempo no Passo 6, dar uma olhada nos casos de teste irá melhorar em muito o seu grau de conhecimento.</p>
<p><strong>Passo 8. &#8211; Submeta um artigo para o Bakery</strong></p>
<p>Agora você está quase lá&#8230; pode ser que você tenha tido dificuldade em algum ponto ou outro, mas deve tê-los superado.  É o momento perfeito para compartilhar sua experiência com a comunidade.</p>
<p>Você desenvolveu alguma aplicação interessante que gostaria de mostrar ao mundo? &#8230;compatilhe-a como um caso de estudo.<br />
Criou algum pequeno helper que outras pessoas também poderiam aproveitar? &#8230;escreva sobre ele em um artigo.<br />
Precisou fazer algum código em algum método que facilitou a sua vida? &#8230;submeta um trecho de código.</p>
<p><a href="http://bakery.cakephp.org/">O Bakery</a> (a padaria) é o local definitivo para compartilhar seu conhecimento com outros e aprender uma coisa ou outra no processo e ao mesmo tempo apresentar o que você aprendeu à comunidade&#8230; além de exercitar sua mente.</p>
<p><strong>Passo 9. &#8211; Acompanhe os tíquetes na linha de tempo do trac</strong></p>
<p>Aqui, você já está em um bom nível dentro do CakePHP.  Neste ponto, acompanhar o trac do CakePHP é algo de caráter educativo&#8230; e também importante, se você quiser estar antenado sobre as novidades e o futuro do framework.  A linha do tempo em  <a href="https://trac.cakephp.org/timeline">https://trac.cakephp.org/timeline</a> lhe oferece uma perfeita visão geral sobre o que está acontecendo diariamente na vida dos desenvolvedores do CakePHP.  Você vai ver a maior parte do código submetido diariamente sendo incorporado ao núcleo do framework e os diversos tíquetes sendo respondidos e fechados pelas mais variadas (e &#8220;divertidas&#8221;) razões.  Além disso, o que é mais importante, você percebe que o framework como uma coisa viva e se desenvolvendo ao longo do tempo.</p>
<p>É reconfortante saber que quando você estiver cumprido todos esses passos, ao final, você não está sozinho.  Os desenvolvedores do CakePHP estão trabalhando duro e incansavelmente para estar sempre facilitando e aprimorando as coisas.</p>
<p><strong>Passo 10. &#8211; Escreva um caso de teste e submeta um patch</strong></p>
<p>Posso imaginar que você é um verdadeiro especialista no CakePHP, não?  Bem, diga o que quiser mas nada é perfeito.  Se você vir algo no framework de que você não goste ou se tiver uma idéia brilhante de como otimizar algo no código, seja benevolente e submeta um tíquete com um patch e um caso de teste.  Mas, por favor, <a title="Orientaçoes sobre como relatar bugs no CakePHP" href="https://trac.cakephp.org/wiki/bugreport">faça as coisas direito</a>! &#8230; Dizer que &#8220;Isto não está funcionando!&#8221; não é um tíquete muito útil para ninguém.</p>
<p>Dedique algum tempo, sente-se e pense sobre como seria uma correção e um caso de teste neste caso.  Assim, sua idéia poderá rapidamente ser relacionada e implementada.  No fim das contas, ninguém gosta de ficar esperar pela correção de problemas.</p>
<p><strong>Passo 12. &#8211; Contribua</strong></p>
<p>Não importa se você já for um guru do CakePHP, um mestre da orientação a objetos ou um entusiasta do PHP.  É possível contribuir com o projeto de diferentes formas, por diversos meios e de várias maneiras.  Como já dito&#8230; desde uma pequena ajuda com a documentação, com projetos relacionados, com algum componente esperto que você tenha criado, com um bom trecho de código (ou mesmo um artigo em seu blog, se for o caso)&#8230; são todas contribuições úteis.  Cada pessoa trabalhando nisto em em outros projetos semelhantes é um voluntário.  Respeite isso, e se torne voluntário você também.  Pode não ser um hábito simples de se adquirir mas que pode representar um impacto positivo muito grande em sua vida como um todo.</p>
<p><strong>Passo 12. &#8211; Comece a estudar outros frameworks</strong></p>
<p>É, não é brincadeira.  Não importa o quanto você se aprofunde como um especialista em CakePHP, sempre é importante ter em mente que nenhuma ferramenta é perfeita para qualquer tarefa.  Há muitos outros ótimos frameworks construídos por excelentes programadores e que certamente podem ajudar você a se aprimorar como programador.  É claro que eu apoiar que você grite sempre: &#8220;Cake é o MELHOR!&#8221; sempre que puder, mas seja respeitoso com os demais, que não tenham tanta sorte! <img src='http://s2.wp.com/wp-includes/images/smilies/icon_razz.gif' alt=':-P' class='wp-smiley' /> </p>
<p>P.S. Atualização!  Este guia simples de 12-passos está disponível livremente e sem custos, mas se você quiser, sinta-se à vontade para me enviar duas contribuições de $9.95 ou apenas uma de $12.35…</p>
<br />Publicado em Programação, Software Livre  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mfandrade.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mfandrade.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mfandrade.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mfandrade.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mfandrade.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mfandrade.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mfandrade.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mfandrade.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mfandrade.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mfandrade.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mfandrade.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mfandrade.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mfandrade.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mfandrade.wordpress.com/19/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mfandrade.wordpress.com&amp;blog=5993977&amp;post=19&amp;subd=mfandrade&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mfandrade.wordpress.com/2009/03/01/12-passos-para-se-tornar-um-especialista-em-cakephp/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/32c1bda5b57a65cc1c63f312f1fdf8a0?s=96&#38;d=identicon&#38;r=PG" medium="image">
			<media:title type="html">mfandrade</media:title>
		</media:content>
	</item>
		<item>
		<title>Bem-vindo!</title>
		<link>http://mfandrade.wordpress.com/2008/12/30/bem-vindo/</link>
		<comments>http://mfandrade.wordpress.com/2008/12/30/bem-vindo/#comments</comments>
		<pubDate>Tue, 30 Dec 2008 04:15:15 +0000</pubDate>
		<dc:creator>mfandrade</dc:creator>
				<category><![CDATA[Geral]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Olá!  Eu sou Marcelo e este é o meu blog.  Seja bem-vindo! Hi!  My name&#8217;s Marcelo.  Welcome to my blog! Publicado em Geral<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mfandrade.wordpress.com&amp;blog=5993977&amp;post=1&amp;subd=mfandrade&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Olá!  Eu sou <a href="http://mfandrade.wordpress.com/sobre">Marcelo</a> e este é o <a href="http://mfandrade.wordpress.com">meu blog</a>.  Seja bem-vindo!</p>
<hr />Hi!  My name&#8217;s <a href="http://mfandrade.wordpress.com/sobre">Marcelo</a>.  Welcome to <a href="http://mfandrade.wordpress.com">my blog</a>!</p>
<br />Publicado em Geral  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mfandrade.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mfandrade.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mfandrade.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mfandrade.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mfandrade.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mfandrade.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mfandrade.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mfandrade.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mfandrade.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mfandrade.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mfandrade.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mfandrade.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mfandrade.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mfandrade.wordpress.com/1/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mfandrade.wordpress.com&amp;blog=5993977&amp;post=1&amp;subd=mfandrade&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mfandrade.wordpress.com/2008/12/30/bem-vindo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/32c1bda5b57a65cc1c63f312f1fdf8a0?s=96&#38;d=identicon&#38;r=PG" medium="image">
			<media:title type="html">mfandrade</media:title>
		</media:content>
	</item>
	</channel>
</rss>
