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

<channel>
	<title>Alexandre Marinho &#187; software livre</title>
	<atom:link href="http://alexandre.cuboestudioweb.com/tag/software-livre/feed/" rel="self" type="application/rss+xml" />
	<link>http://alexandre.cuboestudioweb.com</link>
	<description>Tecnologia, Programação, Gadgets, etc...</description>
	<lastBuildDate>Fri, 18 Jun 2010 12:49:15 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Um pouco de metaprogramação</title>
		<link>http://alexandre.cuboestudioweb.com/2009/10/um-pouco-de-metaprogramacao/</link>
		<comments>http://alexandre.cuboestudioweb.com/2009/10/um-pouco-de-metaprogramacao/#comments</comments>
		<pubDate>Thu, 01 Oct 2009 13:39:32 +0000</pubDate>
		<dc:creator>alexandre</dc:creator>
				<category><![CDATA[django]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[metaprogramacao]]></category>
		<category><![CDATA[software livre]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://alexandre.cuboestudioweb.com/?p=99</guid>
		<description><![CDATA[Quem assina a lista django-brasil recebeu essa mensagem do Luciano Ramalho sobre metaprogramação. Achei muito interressante e demonstra perfeitamente o quão poderosa é a linguagem Python. Estou reproduzindo o texto sem alterações: Em geral não é tedioso programar com o &#8230; <a href="http://alexandre.cuboestudioweb.com/2009/10/um-pouco-de-metaprogramacao/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Quem assina a lista <a href="http://groups.google.com.br/group/django-brasil" target="_blank">django-brasil</a> recebeu essa mensagem do <a href="http://blog.ramgarlic.com/" target="_blank">Luciano Ramalho</a> sobre metaprogramação. Achei muito interressante e demonstra perfeitamente o quão poderosa é a linguagem Python.</p>
<p>Estou reproduzindo o texto sem alterações:</p>
<p>Em geral não é tedioso programar com o Django, mas às vezes é, veja só quanta repetição:</p>
<p># <a href="http://pastebin.com/f2fc7b238" target="_blank">http://pastebin.com/f2fc7b238</a></p>
<pre>class DescriptorInline(admin.TabularInline):
   model = Descriptor

class RecruitmentCountryInline(admin.TabularInline):
   model = RecruitmentCountry

class OutcomeInline(admin.StackedInline):

   model = Outcome

class TrialInterventionCodeInline(admin.TabularInline):

   model = TrialInterventionCode

class SecondaryNumberInline(admin.TabularInline):

   model = TrialNumber

class TrialContactInline(admin.TabularInline):

   model = TrialContact

class TrialInstitutionInline(admin.TabularInline):

   model = TrialInstitution

class ClinicalTrialAdmin(admin.ModelAdmin):

   inlines = [SecondaryNumberInline, RecruitmentCountryInline,

              OutcomeInline, TrialContactInline, TrialInstitutionInline,

              DescriptorInline, TrialInterventionCodeInline]</pre>
<p>No código acima, cada nome de modelo aparece três vezes&#8230; (uma vez ao<br />
declarar a classe XXXInline, no atributo model do inline, e mais uma<br />
vez no atributo inlines).</p>
<p>Além disso, quase todas as declarações de inlines são idênticas&#8230; E o<br />
princípio DRY, como fica?</p>
<p>Felizmente Django é Python. Então aquilo pode ser reescrito de uma<br />
maneira mais legal assim:</p>
<p># <a href="http://pastebin.com/f5af2bd28" target="_blank">http://pastebin.com/f5af2bd28</a></p>
<pre>tabular_inline_models = [Descriptor, RecruitmentCountry, TrialInterventionCode,

                        TrialNumber, TrialContact, TrialInstitution]

tabular_inlines = []

for model in tabular_inline_models:

   cls_name = model.__name__+'Inline'

   cls = type(cls_name, (admin.TabularInline,), {'model':model})

   tabular_inlines.append(cls)

class OutcomeInline(admin.StackedInline):

   model = Outcome

class ClinicalTrialAdmin(admin.ModelAdmin):

   inlines = tabular_inlines + [OutcomeInline]</pre>
<p>O truque aqui foi usar a função type(), que pode ser usada para criar<br />
classes dinamicamente. Para isso a gente passa três argumentos para a<br />
função type():</p>
<p>- uma string que será o __name__ da classe<br />
- uma tupla de super-classes (importante: a vírgula dentro do<br />
parêntesis indica que é uma tupla de um elemento)<br />
- um dicionário com os atributos da classe (métodos e variáveis)</p>
<p>Não tente fazer isso em Java <img src='http://alexandre.cuboestudioweb.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> .</p>
<p>[ ]s<br />
Luciano</p>
]]></content:encoded>
			<wfw:commentRss>http://alexandre.cuboestudioweb.com/2009/10/um-pouco-de-metaprogramacao/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FISL 10 foi mara!</title>
		<link>http://alexandre.cuboestudioweb.com/2009/07/fisl-10-foi-mara/</link>
		<comments>http://alexandre.cuboestudioweb.com/2009/07/fisl-10-foi-mara/#comments</comments>
		<pubDate>Wed, 08 Jul 2009 23:07:00 +0000</pubDate>
		<dc:creator>alexandre</dc:creator>
				<category><![CDATA[eventos]]></category>
		<category><![CDATA[fisl]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[software livre]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://alexandre.cuboestudioweb.com/?p=77</guid>
		<description><![CDATA[Bom, já passou uma semana do FISL10, foi uma semana muito corrida em POA, entre palestras, feira de tecnologia, saídas a noite, ida ao Beira Rio, etc&#8230;.. Com tudo isso não deu para atualizar o blog. Mas agora estou de &#8230; <a href="http://alexandre.cuboestudioweb.com/2009/07/fisl-10-foi-mara/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Bom, já passou uma semana do FISL10, foi uma semana muito corrida em POA, entre palestras, feira de tecnologia, saídas a noite, ida ao Beira Rio, etc&#8230;.. Com tudo isso não deu para atualizar o blog. Mas agora estou de volta ao calor de Maceió e aqui estão minhas impressões da décima edição do Fórum Internacional de Software Livre.</p>
<div id="attachment_78" class="wp-caption alignright" style="width: 160px"><a href="http://alexandre.cuboestudioweb.com/wp-content/uploads/2009/07/SDC12296.JPG"><img class="size-thumbnail wp-image-78" title="FISL 10" src="http://alexandre.cuboestudioweb.com/wp-content/uploads/2009/07/SDC12296-150x150.jpg" alt="FISL 10" width="150" height="150" /></a><p class="wp-caption-text">FISL 10 - Multidão</p></div>
<p>Pra comecar vale dizer que tinha MUITA gente no evento, 7 mil pessoas num so lugar é um pouco claustrofóbico, porém não faltaram atividades para todos durante os 4 dias de evento.</p>
<p>Tinhamos representantes de várias áreas no suporte a causa do Software Livre, como: Free Software Foundation, Mozilla, Ubuntu-br, Fedora, Sun, Oracle, Associação Python Brasil, Globo.com e vários outros.</p>
<p>Muitos brindes! Vai a dica a que se aventurar nas próximas edições do FISL, gaste as primeiras horas do dia inicial para &#8220;caçar&#8221; os brindes. Eles têm de tudo, camisas, adesivos, cds. Nem sempre é de graça, a Mozilla, por exemplo, estava distribuindo camisetas a quem achasse pistas escondidas no galpão da PUC. No último caso pode-se comprar algumas lembraças, mas é bom correr também pois acabam rápido.</p>
<p>As palestras estavam pouas, porém é tanta coisa acontecendo ao mesmo tempo que fica dicifil acompanhar as quem você quer assistir, precisa-se de um pouco de prática. Da proxima vez estarei mais esperto.</p>
<p>Ainda teve a visita do lula, que eu não vi&#8230;. mas foi muito importante para a causa Software Livre o apoio do Goveno Federal.</p>
<p>No final das contas o FISL vale muito a pena, quem tiver a oportunidade de ir não vai se arrepender. Abaixo tem algumas fotos que tirei no evento.</p>
<div id="attachment_79" class="wp-caption alignleft" style="width: 160px"><a href="http://alexandre.cuboestudioweb.com/wp-content/uploads/2009/07/DSC00522.JPG"><img class="size-thumbnail wp-image-79" title="Jogo da Mente" src="http://alexandre.cuboestudioweb.com/wp-content/uploads/2009/07/DSC00522-150x150.jpg" alt="Jogo da Mente" width="150" height="150" /></a><p class="wp-caption-text">Jogo da Mente</p></div>
<div id="attachment_80" class="wp-caption alignleft" style="width: 160px"><a href="http://alexandre.cuboestudioweb.com/wp-content/uploads/2009/07/DSC00524.JPG"><img class="size-thumbnail wp-image-80" title="Placas" src="http://alexandre.cuboestudioweb.com/wp-content/uploads/2009/07/DSC00524-150x150.jpg" alt="Não entendi muito, mas achei legal!" width="150" height="150" /></a><p class="wp-caption-text">PLACAS</p></div>
<div id="attachment_81" class="wp-caption alignleft" style="width: 160px"><a href="http://alexandre.cuboestudioweb.com/wp-content/uploads/2009/07/DSC00529.JPG"><img class="size-thumbnail wp-image-81" title="Richard Stallman" src="http://alexandre.cuboestudioweb.com/wp-content/uploads/2009/07/DSC00529-150x150.jpg" alt="Richard Stallman" width="150" height="150" /></a><p class="wp-caption-text">Richard Stallman</p></div>
<div id="attachment_82" class="wp-caption alignleft" style="width: 160px"><a href="http://alexandre.cuboestudioweb.com/wp-content/uploads/2009/07/DSC00541.JPG"><img class="size-thumbnail wp-image-82" title="CAIXA" src="http://alexandre.cuboestudioweb.com/wp-content/uploads/2009/07/DSC00541-150x150.jpg" alt="CAIXA" width="150" height="150" /></a><p class="wp-caption-text">CAIXA</p></div>
<div id="attachment_83" class="wp-caption alignleft" style="width: 160px"><a href="http://alexandre.cuboestudioweb.com/wp-content/uploads/2009/07/SDC12282.JPG"><img class="size-thumbnail wp-image-83" title="Credenciamento" src="http://alexandre.cuboestudioweb.com/wp-content/uploads/2009/07/SDC12282-150x150.jpg" alt="Credenciamento" width="150" height="150" /></a><p class="wp-caption-text">Credenciamento</p></div>
<div id="attachment_84" class="wp-caption alignleft" style="width: 160px"><a href="http://alexandre.cuboestudioweb.com/wp-content/uploads/2009/07/SDC12290.JPG"><img class="size-thumbnail wp-image-84" title="SERPRO" src="http://alexandre.cuboestudioweb.com/wp-content/uploads/2009/07/SDC12290-150x150.jpg" alt="SERPRO" width="150" height="150" /></a><p class="wp-caption-text">SERPRO</p></div>
<div id="attachment_85" class="wp-caption alignleft" style="width: 160px"><a href="http://alexandre.cuboestudioweb.com/wp-content/uploads/2009/07/SDC12297.JPG"><img class="size-thumbnail wp-image-85" title="Bolinhas da SUN" src="http://alexandre.cuboestudioweb.com/wp-content/uploads/2009/07/SDC12297-150x150.jpg" alt="Bolinhas da SUN" width="150" height="150" /></a><p class="wp-caption-text">Bolinhas da SUN</p></div>
<div class="clear"></div>
]]></content:encoded>
			<wfw:commentRss>http://alexandre.cuboestudioweb.com/2009/07/fisl-10-foi-mara/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Chegamos em POA</title>
		<link>http://alexandre.cuboestudioweb.com/2009/06/chegamos-em-poa/</link>
		<comments>http://alexandre.cuboestudioweb.com/2009/06/chegamos-em-poa/#comments</comments>
		<pubDate>Tue, 23 Jun 2009 22:51:25 +0000</pubDate>
		<dc:creator>alexandre</dc:creator>
				<category><![CDATA[eventos]]></category>
		<category><![CDATA[fisl]]></category>
		<category><![CDATA[software livre]]></category>

		<guid isPermaLink="false">http://alexandre.cuboestudioweb.com/?p=74</guid>
		<description><![CDATA[Depois de um vôo meio turbulento pousamos em POA agora a noite. Muita chuva e frio nessa noite de terça feira. Amanhã começa o FISL. Em breve as fotos!!]]></description>
			<content:encoded><![CDATA[<p>Depois de um vôo meio turbulento pousamos em POA agora a noite. Muita chuva e frio nessa noite de terça feira. Amanhã começa o FISL.</p>
<p>Em breve as fotos!!</p>
]]></content:encoded>
			<wfw:commentRss>http://alexandre.cuboestudioweb.com/2009/06/chegamos-em-poa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rumo ao FISL</title>
		<link>http://alexandre.cuboestudioweb.com/2009/06/rumo-ao-fisl/</link>
		<comments>http://alexandre.cuboestudioweb.com/2009/06/rumo-ao-fisl/#comments</comments>
		<pubDate>Tue, 16 Jun 2009 16:22:00 +0000</pubDate>
		<dc:creator>alexandre</dc:creator>
				<category><![CDATA[eventos]]></category>
		<category><![CDATA[fisl]]></category>
		<category><![CDATA[software livre]]></category>

		<guid isPermaLink="false">http://alexandre.cuboestudioweb.com/?p=70</guid>
		<description><![CDATA[Passagem comprada, hotel reservado e inscrição confirmada. Agora só falta chegar lá em POA. Estou indo pela primeria vez participar do evento que considerado a Meca do desenvolvimento de software livre. Com presenças confirmadas de Richard Stallman, Peter Sunde Kolmisoppi &#8230; <a href="http://alexandre.cuboestudioweb.com/2009/06/rumo-ao-fisl/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Passagem comprada, hotel reservado e inscrição confirmada. Agora só falta chegar lá em POA.</p>
<p>Estou indo pela primeria vez participar do evento que considerado a Meca do desenvolvimento de software livre. Com presenças confirmadas de Richard Stallman, Peter Sunde Kolmisoppi (The Pirate Bay), Jon &#8220;Maddog&#8221; Hall e vários outros entusiastas do software livre do Brasil e do mundo.</p>
<p>Quem quiser ir ainda da tempo, pois as inscrições pelo site acabam dia 18 e a as passagens de avião estão em conta. Essa 10¬™ edição do <a href="http://fisl.softwarelivre.org/" target="_blank">FISL</a> promete bastante, em breve muitas fotos do evento.</p>
]]></content:encoded>
			<wfw:commentRss>http://alexandre.cuboestudioweb.com/2009/06/rumo-ao-fisl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
