<?xml version="1.0" encoding="utf-8"?>
<feed
    xmlns="http://www.w3.org/2005/Atom"
    xmlns:at="http://www.sixapart.com/ns/at"
    xmlns:icbm="http://postneo.com/icbm"
    xmlns:rvw="http://purl.org/NET/RVW/0.2/"
    xml:lang="en">
    <title>     Bla do Senra </title>
    <link rel="self" type="application/atom+xml" title="     Bla do Senra  (Atom)" href="http://rodsenra.vox.com/library/posts/page/1/atom.xml" />
    <link rel="alternate" type="text/html" title="     Bla do Senra " href="http://rodsenra.vox.com/library/posts/page/1/"/> 
    <link rel="service.post" type="application/atom+xml" title="     Bla do Senra " href="http://www.vox.com/services/atom/svc=post/collection_id=6a00cd978c2ba7f9cc00cd978c2ba8f9cc" /> 
    <link rel="service.subscribe" type="application/atom+xml" title="     Bla do Senra " href="http://rodsenra.vox.com/library/posts/atom.xml" />    
    <link rel="next" type="application/atom+xml" title="     Bla do Senra " href="http://rodsenra.vox.com/library/posts/page/2/atom.xml" /> 
    <link rel="last" type="application/atom+xml" title="     Bla do Senra " href="http://rodsenra.vox.com/library/posts/page/2/atom.xml" />  
    <generator uri="http://www.vox.com/">Vox</generator>
    <updated>2009-10-27T13:40:17Z</updated> 
    <author>
        <name>rodsenra</name>
        <uri>http://rodsenra.vox.com/?_c=feed-atom-full</uri>
    </author> 
    <id>tag:vox.com,2006:6p00cd978c2ba7f9cc/</id> 
    <subtitle>http://rodrigo.senra.nom.br (Home)</subtitle>  
    
    <entry>
        <title>Convite pessoal de Rodrigo Senra</title>   
        <link rel="alternate" type="text/html" title="Convite pessoal de Rodrigo Senra" href="http://rodsenra.vox.com/library/post/convite-pessoal-de-rodrigo-senra-1.html?_c=feed-atom-full" />  
        <link rel="service.post" type="application/atom+xml" title="Convite pessoal de Rodrigo Senra" href="http://rodsenra.vox.com/library/post/convite-pessoal-de-rodrigo-senra-1.html?_c=feed-atom-full#comments" /> 
        <link rel="service.edit" type="application/atom+xml" title="Convite pessoal de Rodrigo Senra" href="http://www.vox.com/atom/svc=post/asset_id=6a00cd978c2ba7f9cc0123f173e437860f" />          <id>tag:vox.com,2009-10-27:asset-6a00cd978c2ba7f9cc0123f173e437860f</id>
        <published>2009-10-27T13:40:17Z</published>
        <updated>2009-10-27T13:40:17Z</updated>
    
        <author>
            <name>rodsenra</name>
            <uri>http://rodsenra.vox.com/?_c=feed-atom-full</uri>
        </author>
    
        
        <content type="html" xml:base="http://rodsenra.vox.com/?_c=feed-atom-full">
            <![CDATA[
                <div xmlns="http://www.w3.org/1999/xhtml" xmlns:at="http://www.sixapart.com/ns/at">
        <p></p>

<p>    Ol\xE1,</p>

<p>Voc\xEA ainda n\xE3o respondeu ao convite de Rodrigo Senra, enviado em 9/29/2009 10:28:13 PM !</p>

<p>Para aceitar de fazer parte do caderno de endere\xE7os dele(a) e dar a ele(a) acesso aos seus dados no UNYK, clique aqui.<br />
http://www.unyk.com/ml/77/3/?i=4456EBD761654F1CA1BB6556D3FF5F26&amp;s=16441086</p>

<p></p>

<p>UNYK \xE9 um caderno de endere\xE7os inteligente e completamente privado. O caderno de endere\xE7os de seus contatos \xE9 atualizado automaticamente quando voc\xEA altera seus dados no site UNYK.com. Do mesmo modo, voc\xEA n\xE3o precisa mais gerenciar os dados de seus contatos, j\xE1 que o far\xE3o isto por voc\xEA.</p>

<p>Simples e gratuito\x85  UNYK j\xE1 conquistou 10 milh\xF5es de usu\xE1rios.</p>

<p></p>

<p>N\xE3o responda diretamente a esta mensagem.  Caso voc\xEA tenha perguntas ou d\xFAvidas, por favor, entre em contato conosco: http://unyk.com/pt/Entre-em-contato-conosco<br />
UNYK Inc., 1010 de Serigny, bureau 820, Longueuil, QC, J4K 5G7, Canada.</p>

<p>N\xE3o quero mais receber nenhum convite para utilizar UNYK da parte de Rodrigo Senra: cancelar minha inscri\xE7\xE3o <br />
http://www.unyk.com/ml/250/74/?mid=9E97A6A87A748BA3&amp;email=d1b2ea430fce4ada@moblog.vox.com&amp;s=16441086</p>

<p>N\xE3o quero mais receber nenhum convite para utilizar UNYK: cancelar minha inscri\xE7\xE3o<br />
http://www.unyk.com/ml/77/4/?i=4456EBD761654F1CA1BB6556D3FF5F26&amp;s=16441086</p>

<p></p>

<p>UNYK, o primeiro caderno de endere\xE7os inteligente que se atualiza sozinho!</p>   <p style="clear:both;"> 
    <a href="http://rodsenra.vox.com/library/post/convite-pessoal-de-rodrigo-senra-1.html?_c=feed-atom-full#comments">Read and post comments</a>   |   
    <a href="http://www.vox.com/share/6a00cd978c2ba7f9cc0123f173e437860f?_c=feed-atom-full">Send to a friend</a> 
</p>

                </div>
            ]]>
        </content> 
    </entry> 
    
    <entry>
        <title>Convite pessoal de Rodrigo Senra</title>   
        <link rel="alternate" type="text/html" title="Convite pessoal de Rodrigo Senra" href="http://rodsenra.vox.com/library/post/convite-pessoal-de-rodrigo-senra.html?_c=feed-atom-full" />  
        <link rel="service.post" type="application/atom+xml" title="Convite pessoal de Rodrigo Senra" href="http://rodsenra.vox.com/library/post/convite-pessoal-de-rodrigo-senra.html?_c=feed-atom-full#comments" /> 
        <link rel="service.edit" type="application/atom+xml" title="Convite pessoal de Rodrigo Senra" href="http://www.vox.com/atom/svc=post/asset_id=6a00cd978c2ba7f9cc0123ddadef39860b" />          <id>tag:vox.com,2009-10-14:asset-6a00cd978c2ba7f9cc0123ddadef39860b</id>
        <published>2009-10-14T05:15:43Z</published>
        <updated>2009-10-14T05:15:43Z</updated>
    
        <author>
            <name>rodsenra</name>
            <uri>http://rodsenra.vox.com/?_c=feed-atom-full</uri>
        </author>
    
        
        <content type="html" xml:base="http://rodsenra.vox.com/?_c=feed-atom-full">
            <![CDATA[
                <div xmlns="http://www.w3.org/1999/xhtml" xmlns:at="http://www.sixapart.com/ns/at">
        <p></p>

<p>    Ol\xE1,
    </p><p>
    Em 9/29/2009 10:28:13 PM, Rodrigo Senra lhe pediu para fazer parte do seu caderno de endere\xE7os Unyk para ter sempre acesso aos seus dados, e para que voc\xEA tenha sempre acesso aos dados dele(a).
    </p><p>
    Para aceitar o pedido dele(a), clique aqui.<br />
http://www.unyk.com/ml/70/5/?i=4456EBD761654F1CA1BB6556D3FF5F26&amp;s=16441086</p>

<p></p>

<p>    Unyk \xE9 um sistema inteligente e simples que lhe permite gerenciar seus contatos e nunca perd\xEA-los de vista.
    </p><p>
    Agora voc\xEA n\xE3o precisa mais se preocupar com os dados dos seus contatos. Daqui pra frente, eles se encarregar\xE3o da gest\xE3o dos pr\xF3prios dados deles em seu caderno de endere\xE7os. Quando os dados deles forem modificados no site Unyk.com, o seu caderno de endere\xE7os ser\xE1 atualizado automaticamente. Quando voc\xEA modificar seus dados no site Unyk.com, o caderno de endere\xE7os deles no Unyk ser\xE1 atualizado automaticamente.
    </p><p>
    \xC9 realmente simples e \xE9 gratuito... UNYK j\xE1 tem 10 milh\xF5es de usu\xE1rios.</p>

<p></p>

<p>N\xE3o responda diretamente a esta mensagem.  Caso voc\xEA tenha perguntas ou d\xFAvidas, por favor, entre em contato conosco: http://unyk.com/pt/Entre-em-contato-conosco<br />
UNYK Inc., 1010 de Serigny, bureau 820, Longueuil, QC, J4K 5G7, Canada.</p>

<p>N\xE3o quero mais receber nenhum convite para utilizar UNYK da parte de Rodrigo Senra: cancelar minha inscri\xE7\xE3o <br />
http://www.unyk.com/ml/250/74/?mid=9E97A6A87A748BA3&amp;email=d1b2ea430fce4ada@moblog.vox.com&amp;s=16441086</p>

<p>N\xE3o quero mais receber nenhum convite para utilizar UNYK: cancelar minha inscri\xE7\xE3o<br />
http://www.unyk.com/ml/70/6/?i=4456EBD761654F1CA1BB6556D3FF5F26&amp;s=16441086</p>

<p></p>

<p>UNYK, o primeiro caderno de endere\xE7os inteligente que se atualiza sozinho!</p>   <p style="clear:both;"> 
    <a href="http://rodsenra.vox.com/library/post/convite-pessoal-de-rodrigo-senra.html?_c=feed-atom-full#comments">Read and post comments</a>   |   
    <a href="http://www.vox.com/share/6a00cd978c2ba7f9cc0123ddadef39860b?_c=feed-atom-full">Send to a friend</a> 
</p>

                </div>
            ]]>
        </content> 
    </entry> 
    
    <entry>
        <title>Convite pessoal de Rodrigo</title>   
        <link rel="alternate" type="text/html" title="Convite pessoal de Rodrigo" href="http://rodsenra.vox.com/library/post/convite-pessoal-de-rodrigo.html?_c=feed-atom-full" />  
        <link rel="service.post" type="application/atom+xml" title="Convite pessoal de Rodrigo" href="http://rodsenra.vox.com/library/post/convite-pessoal-de-rodrigo.html?_c=feed-atom-full#comments" /> 
        <link rel="service.edit" type="application/atom+xml" title="Convite pessoal de Rodrigo" href="http://www.vox.com/atom/svc=post/asset_id=6a00cd978c2ba7f9cc0123dda73d49860b" />          <id>tag:vox.com,2009-09-30:asset-6a00cd978c2ba7f9cc0123dda73d49860b</id>
        <published>2009-09-30T03:48:04Z</published>
        <updated>2009-09-30T03:48:04Z</updated>
    
        <author>
            <name>rodsenra</name>
            <uri>http://rodsenra.vox.com/?_c=feed-atom-full</uri>
        </author>
    
        
        <content type="html" xml:base="http://rodsenra.vox.com/?_c=feed-atom-full">
            <![CDATA[
                <div xmlns="http://www.w3.org/1999/xhtml" xmlns:at="http://www.sixapart.com/ns/at">
        <p>Convite pessoal de Rodrigo</p>   <p style="clear:both;"> 
    <a href="http://rodsenra.vox.com/library/post/convite-pessoal-de-rodrigo.html?_c=feed-atom-full#comments">Read and post comments</a>   |   
    <a href="http://www.vox.com/share/6a00cd978c2ba7f9cc0123dda73d49860b?_c=feed-atom-full">Send to a friend</a> 
</p>

                </div>
            ]]>
        </content> 
    </entry> 
    
    <entry>
        <title>Rodrigo.senra.nom.br temporariamente fora do ar!</title>   
        <link rel="alternate" type="text/html" title="Rodrigo.senra.nom.br temporariamente fora do ar!" href="http://rodsenra.vox.com/library/post/rodrigosenranombr-temporariamente-fora-do-ar.html?_c=feed-atom-full" />  
        <link rel="service.post" type="application/atom+xml" title="Rodrigo.senra.nom.br temporariamente fora do ar!" href="http://rodsenra.vox.com/library/post/rodrigosenranombr-temporariamente-fora-do-ar.html?_c=feed-atom-full#comments" /> 
        <link rel="service.edit" type="application/atom+xml" title="Rodrigo.senra.nom.br temporariamente fora do ar!" href="http://www.vox.com/atom/svc=post/asset_id=6a00cd978c2ba7f9cc0123ddcbae1e860d" />          <id>tag:vox.com,2009-09-17:asset-6a00cd978c2ba7f9cc0123ddcbae1e860d</id>
        <published>2009-09-17T10:21:37Z</published>
        <updated>2009-09-17T10:21:37Z</updated>
    
        <author>
            <name>rodsenra</name>
            <uri>http://rodsenra.vox.com/?_c=feed-atom-full</uri>
        </author>
    
        
        <content type="html" xml:base="http://rodsenra.vox.com/?_c=feed-atom-full">
            <![CDATA[
                <div xmlns="http://www.w3.org/1999/xhtml" xmlns:at="http://www.sixapart.com/ns/at">
        <p>Galera,<br />o site http://rodrigo.senra.nom.br está temporariamente fora do ar. Peço a paciência de todos enquanto termino a reformulação do site (e termino a migração de dados).</p>    <p style="clear:both;"> 
    <a href="http://rodsenra.vox.com/library/post/rodrigosenranombr-temporariamente-fora-do-ar.html?_c=feed-atom-full#comments">Read and post comments</a>   |   
    <a href="http://www.vox.com/share/6a00cd978c2ba7f9cc0123ddcbae1e860d?_c=feed-atom-full">Send to a friend</a> 
</p>

                </div>
            ]]>
        </content> 
    </entry> 
    
    <entry>
        <title>Aguardando ansiosamente o aquecimento global...</title>   
        <link rel="alternate" type="text/html" title="Aguardando ansiosamente o aquecimento global..." href="http://rodsenra.vox.com/library/post/aguardando-ansiosamente-o-aquecimento-global.html?_c=feed-atom-full" />  
        <link rel="service.post" type="application/atom+xml" title="Aguardando ansiosamente o aquecimento global..." href="http://rodsenra.vox.com/library/post/aguardando-ansiosamente-o-aquecimento-global.html?_c=feed-atom-full#comments" /> 
        <link rel="service.edit" type="application/atom+xml" title="Aguardando ansiosamente o aquecimento global..." href="http://www.vox.com/atom/svc=post/asset_id=6a00cd978c2ba7f9cc00e3989906700005" />            <id>tag:vox.com,2007-07-31:asset-6a00cd978c2ba7f9cc00e3989906700005</id>
        <published>2007-07-31T03:03:00Z</published>
        <updated>2008-06-15T11:54:06Z</updated>
    
        <author>
            <name>rodsenra</name>
            <uri>http://rodsenra.vox.com/?_c=feed-atom-full</uri>
        </author>
    
        
        <content type="html" xml:base="http://rodsenra.vox.com/?_c=feed-atom-full">
            <![CDATA[
                <div xmlns="http://www.w3.org/1999/xhtml" xmlns:at="http://www.sixapart.com/ns/at">
        
 <div>Enquanto o tal do aquecimento global está de férias em Campinas, estamos passando um frío muito localizado. No nosso quarto de dormir, graças a &quot;perfeição&quot; da engenharia da Encol, o termômetro marca 14oC à sombra. Digo perfeição considerando que mesmo <strong>fechada</strong>, a janela permite que a natureza siga seu curso, conduzindo o vento polar patagônico (me desculpem os argentinos) diretamente para a cama.<br /><br />Como sou inimigo da pneumonia e fã do Macgyver, resolvi improvisar o dispositivo abaixo.<br />Damas e Cavalheiros, lhes apresento o Sistema Isolante Térmico Tabajara:<br />&#160;<br />
    
    
    
<div at:enclosure="asset" at:xid="6a00cd978c2ba7f9cc00e39898f7590004" at:format="large" at:align="center"
    class="enclosure enclosure-center enclosure-large photo-enclosure" 
     style="text-align: center;">
<div class="enclosure-inner"
    
        style="padding: 9px; border: 1px solid; width: px; margin: 10px auto;"
    >
    <div class="enclosure-list">
        <div class="enclosure-item photo-asset last">
    
            <div class="enclosure-image">
        
                <a href="http://rodsenra.vox.com/library/photo/6a00cd978c2ba7f9cc00e39898f7590004.html"><img src="http://a1.vox.com/6a00cd978c2ba7f9cc00e39898f7590004-320pi" alt="A_invencao" title="A_invencao" /></a>
        
            </div>
            <div class="enclosure-meta">
                <div class="enclosure-asset-name"><a href="http://rodsenra.vox.com/library/photo/6a00cd978c2ba7f9cc00e39898f7590004.html" title="A_invencao">A_invencao</a></div>
            </div>
    
        </div>
    </div>
</div>
</div><!-- end enclosure -->

</div>   <p style="clear:both;"> 
    <a href="http://rodsenra.vox.com/library/post/aguardando-ansiosamente-o-aquecimento-global.html?_c=feed-atom-full#comments">Read and post comments</a>   |   
    <a href="http://www.vox.com/share/6a00cd978c2ba7f9cc00e3989906700005?_c=feed-atom-full">Send to a friend</a> 
</p>

                </div>
            ]]>
        </content> 
    <category term="personal" scheme="http://rodsenra.vox.com/tags/personal/" label="personal" /> 
    </entry> 
    
    <entry>
        <title>Criando tabelas dinamicamente no Django</title>   
        <link rel="alternate" type="text/html" title="Criando tabelas dinamicamente no Django" href="http://rodsenra.vox.com/library/post/criando-tabelas-dinamicamente-no-django.html?_c=feed-atom-full" />  
        <link rel="service.post" type="application/atom+xml" title="Criando tabelas dinamicamente no Django" href="http://rodsenra.vox.com/library/post/criando-tabelas-dinamicamente-no-django.html?_c=feed-atom-full#comments" /> 
        <link rel="service.edit" type="application/atom+xml" title="Criando tabelas dinamicamente no Django" href="http://www.vox.com/atom/svc=post/asset_id=6a00cd978c2ba7f9cc00cd973fa0724cd5" />          <id>tag:vox.com,2007-07-12:asset-6a00cd978c2ba7f9cc00cd973fa0724cd5</id>
        <published>2007-07-12T22:36:48Z</published>
        <updated>2007-08-19T03:54:48Z</updated>
    
        <author>
            <name>rodsenra</name>
            <uri>http://rodsenra.vox.com/?_c=feed-atom-full</uri>
        </author>
    
        
        <content type="html" xml:base="http://rodsenra.vox.com/?_c=feed-atom-full">
            <![CDATA[
                <div xmlns="http://www.w3.org/1999/xhtml" xmlns:at="http://www.sixapart.com/ns/at">
        <p><strong>Caso de Uso</strong></p><p>Estava eu criando um sistema comercial&#160; sobre Django. O Django possui uma ferramenta de mapeamento objeto-relacional (ORM)&#160; onde vc define classes em Python (modelos no Djargão)&#160; que serão mapeadas para tabelas no banco de dados. Os modelos (classes e instâncias) são usadas para manipular os dados em um banco relacional sem que seja necessário entrar no mérito do SQL. O fluxo de trabalho consiste em definir uma classe em Python (que herda de Model) e rodar um script de sincronização com o Banco de Dados (python manage.py syncdb), esta ação cria as respectivas tabelas no Banco. </p><p>Este sistema comercial tem o de sempre: produtos, categorias de produtos, clientes, fornecedores, etc.&#160; O interessante são as &quot;tabelas&#160; de preço&quot;. </p><p><br /><strong>O Problema</strong></p><p>Me deparei com duas&#160; opções na hora de criar as tabelas de preço:<br /><ol><li>criar uma tabelona de preços que possua uma coluna para designar agrupamentos lógicos de preços.</li><li>criar&#160; diversas tabelinhas de preço cada uma representando um agrupamento lógico.</li></ol>A opção 1) não teria mistério quanto a implementação usando o ORM, mas é ineficiente pois a tabelona de preços seria potencialmente <strong>muito comprida. </strong>A opção 2) é mais interessante do ponto de vista do desempenho, mas exige que as tabelas sejam criadas sob demanda e dinamicamente. Aí surge o problema, pois estas tabelas de preços pequenas são criadas por uma <em>stored procedure</em> dentro do banco e não tem uma classe correspondente nos modelos do ORM. Ainda é possível manipular estas tabelas via SQL, porém o desejável seria usar o ferramental do ORM.</p><p><br /><strong>A Solução</strong></p><p>Resolvi realizar o seguinte experimento: criar classes dinamicamente correspondendo as tabelas criadas dinamicamente, e assim restaurar o mapeamento objeto-relacional em tempo de execução. E rolou!<span style="color: #3075fb"></p><p><span style="color: #000000">O trecho interessante do código é:</span><br /></span><br /><blockquote><p><span style="color: #3075fb">def create_tp_model(table_names, namespace):<br />&#160;&#160;&#160; template =<span style="color: #339933"> &quot;&quot;&quot;<br />class %s(models.Model):<br />&#160;&#160;&#160; preco = models.DecimalField(&quot;Preço&quot;, max_digits=10, decimal_places=3)<br />&#160;&#160;&#160; produto = models.ForeignKey(&#39;Produto&#39;)<br />&#160;&#160;&#160; class Meta:<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; db_table = &#39;%s&#39;<br />&quot;&quot;&quot; </span><br />&#160;&#160;&#160; for i in table_names:<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; exec template%(i,i) in namespace&#160;&#160;&#160;&#160;&#160;&#160;&#160; </p><p><span style="color: #cc0000"># Create classes for pre-existing TP&#39;s<br /><span style="color: #3075fb">from django.db import connection, get_introspection_module</span><br /></span>introspection_module = get_introspection_module()<br />cursor = connection.cursor()<br />table_names = [i for i in&#160; introspection_module.get_table_list(cursor) \<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if i.startswith(&#39;tp_&#39;)]&#160;&#160;&#160;&#160; <br />create_tp_model(table_names, globals())<br /></span></p></blockquote><span style="color: #000000"><br /></span>Deste ponto em diante eu posso obter uma referência para uma destas tabelas e usar o ORM normalmente.<span style="color: #000000"></p></span><blockquote><p><span style="color: #3075fb">tp_obj = getattr(sys.modules[module_holding_tp_objs], tp_name)<br /></span><span style="color: #3075fb">count = tp_obj.objects.count()</p></span></blockquote><p>Algumas semanas depois de escrever o texto acima, eu encontrei uma documentação no site do DJango sobre esta abordagem: <a href="http://code.djangoproject.com/wiki/DynamicModels">http://code.djangoproject.com/wiki/DynamicModels</a><br /><span style="color: #000000"><span style="color: #3075fb"></p></span></span>   <p style="clear:both;"> 
    <a href="http://rodsenra.vox.com/library/post/criando-tabelas-dinamicamente-no-django.html?_c=feed-atom-full#comments">Read and post comments</a>   |   
    <a href="http://www.vox.com/share/6a00cd978c2ba7f9cc00cd973fa0724cd5?_c=feed-atom-full">Send to a friend</a> 
</p>

                </div>
            ]]>
        </content> 
    <category term="python django web" scheme="http://rodsenra.vox.com/tags/python+django+web/" label="python django web" /> 
    </entry> 
    
    <entry>
        <title>Uma breve História no TemPOO</title>   
        <link rel="alternate" type="text/html" title="Uma breve História no TemPOO" href="http://rodsenra.vox.com/library/post/uma-breve-hist%C3%B3ria-no-tempoo.html?_c=feed-atom-full" />  
        <link rel="service.post" type="application/atom+xml" title="Uma breve História no TemPOO" href="http://rodsenra.vox.com/library/post/uma-breve-hist%C3%B3ria-no-tempoo.html?_c=feed-atom-full#comments" /> 
        <link rel="service.edit" type="application/atom+xml" title="Uma breve História no TemPOO" href="http://www.vox.com/atom/svc=post/asset_id=6a00cd978c2ba7f9cc00cd971193454cd5" />            <id>tag:vox.com,2007-02-08:asset-6a00cd978c2ba7f9cc00cd971193454cd5</id>
        <published>2007-02-08T02:58:08Z</published>
        <updated>2009-03-23T16:06:47Z</updated>
    
        <author>
            <name>rodsenra</name>
            <uri>http://rodsenra.vox.com/?_c=feed-atom-full</uri>
        </author>
    
        
        <content type="html" xml:base="http://rodsenra.vox.com/?_c=feed-atom-full">
            <![CDATA[
                <div xmlns="http://www.w3.org/1999/xhtml" xmlns:at="http://www.sixapart.com/ns/at">
        <p>No princípio havia o caos, <br />instruções de branch para cima e para baixo, <br />O código-fonte ficava tão enrolado, <br />que foi oficialmente denominado spaghetti. <br />Isso se fosse longo, se fosse curto era miojo.</p><p>Mas um antigo Shaman veio com um novo mandamento,<br />Edsger Wybe Djkistra &quot;O Impronunciável&quot;,<br />Essa falta de estrutura é coisa de jumento,<br />determinou que Goto era mau e com ele acabaria.<br />Aparentemente abolido, mas no fundo só escondido,<br />Criar procedimento e funções virou rotina ou subrotina,<br />Estruturando e compilando era só alegria.<br />O pobre do dado, ao segundo plano relegado.<br />O foco estava no controle, e o coitado só manipulado.<br />&#160;<br />Novos tempos, novo profeta,<br />lá da terra dos Vikings veio um novo vendaval<br />um tal de Kristen Nygaard com ajuda de Ole-Johan Dahl<br />Criaram primeiro SIMULA, e depois Beta,<br />Botando em primeiro plano o dado,<br />nem nu nem pelado, bem vestido: encapsulado.<br />E o controle como é que fica ?<br />Em segundo plano, no objeto pendurado.</p><p>POO, não entendi ? Não tem mistério<br />A classe define um novo tipo de dado.<br />define e fabrica instância,<br />à sua forma e semelhança,<br />cada instância com seu próprio estado.</p><p>O conceito fica meio etéreo<br />se faltar polimorfismo e herança.<br />Para especializar, não reescreva o fonte <br />Herdando de outra classe você ganha confiança<br />Respeite a interface e mensagens não causam desastre</p><p>Sem versos alexandrinos e com rima pobre,<br />fica difícil expressar esta arte tão nobre<br />Se aqui aprendeu orientação a objeto,<br />então é bem grande seu intelecto,<br />Mas a história não tem um fim tão abjeto<br />pois surgiu a orientação a aspecto<br />Para que não sofras com tão longo poema,<br />Fica para outra este outro tema</p><p>Encerro esta breve história no temPOO,<br />dando a pré-história um new look:<br />Encostado em seu menir preferido,<br />estava Homo Hackeris com seu notebook<br />apoiado sobre o dolmen de rocha<br />modelando a natureza a sua volta.</p><p>class bicho { nasce(); come(); copula(); dorme(); }<br />class roedor(bicho) { mama(); }<br />class ave(bicho) { voa(); }</p><p>Foi ficando escuro, e de tão entretido<br />Homo hackeris tomou um susto com um zumbido<br />Vi, qt C this? (ou vixe o que é que é isso)&#160; <br />Não era o Superhomi nem o Supla.<br />Era só um morcego! Mas que droga!<br />Ei, Stroustrupitecus: precisamos de herança múltipla.<br />     

    
     

    

    
    
    
<div at:enclosure="asset" at:xid="6a00cd978c2ba7f9cc00d414192125685e" at:format="medium" at:align="right"
    class="enclosure enclosure-right enclosure-medium photo-enclosure" 
     style="text-align: center; float: right;">
<div class="enclosure-inner"
    
        style="padding: 9px; border: 1px solid; width: px; margin: 0 0 20px 20px;"
    >
    <div class="enclosure-list">
        <div class="enclosure-item photo-asset last">
    
            <div class="enclosure-image">
        
                <a href="http://rodsenra.vox.com/library/photo/6a00cd978c2ba7f9cc00d414192125685e.html"><img src="http://a5.vox.com/6a00cd978c2ba7f9cc00d414192125685e-200pi" alt="Hackeris" title="Hackeris" /></a>
        
            </div>
            <div class="enclosure-meta">
                <div class="enclosure-asset-name"><a href="http://rodsenra.vox.com/library/photo/6a00cd978c2ba7f9cc00d414192125685e.html" title="Hackeris">Hackeris</a></div>
            </div>
    
        </div>
    </div>
</div>
</div><!-- end enclosure -->


&#160;<div><br /></div></p>   <p style="clear:both;"> 
    <a href="http://rodsenra.vox.com/library/post/uma-breve-hist%C3%B3ria-no-tempoo.html?_c=feed-atom-full#comments">Read and post comments</a>   |   
    <a href="http://www.vox.com/share/6a00cd978c2ba7f9cc00cd971193454cd5?_c=feed-atom-full">Send to a friend</a> 
</p>

                </div>
            ]]>
        </content> 
    <category term="humor oo" scheme="http://rodsenra.vox.com/tags/humor+oo/" label="humor oo" /> 
    </entry> 
    
    <entry>
        <title>FISL7 - Terceiro Dia</title>   
        <link rel="alternate" type="text/html" title="FISL7 - Terceiro Dia" href="http://rodsenra.vox.com/library/post/fisl7-terceiro-dia.html?_c=feed-atom-full" />  
        <link rel="service.post" type="application/atom+xml" title="FISL7 - Terceiro Dia" href="http://rodsenra.vox.com/library/post/fisl7-terceiro-dia.html?_c=feed-atom-full#comments" /> 
        <link rel="service.edit" type="application/atom+xml" title="FISL7 - Terceiro Dia" href="http://www.vox.com/atom/svc=post/asset_id=6a00cd978c2ba7f9cc00d41419624c6a47" />          <id>tag:vox.com,2007-01-23:asset-6a00cd978c2ba7f9cc00d41419624c6a47</id>
        <published>2007-01-23T18:23:08Z</published>
        <updated>2007-01-23T18:23:09Z</updated>
    
        <author>
            <name>rodsenra</name>
            <uri>http://rodsenra.vox.com/?_c=feed-atom-full</uri>
        </author>
    
        
        <content type="html" xml:base="http://rodsenra.vox.com/?_c=feed-atom-full">
            <![CDATA[
                <div xmlns="http://www.w3.org/1999/xhtml" xmlns:at="http://www.sixapart.com/ns/at">
        <p class="documentDescription">Caracas! Cada dia fica melhor. Pela
manhã me encontrei com a galera no meio dos estandes e comecei a
revisar a programação do dia.</p>

        

        

        <div class="stx">
            <div class="section" id="o-borg">
<h3><a name="o-borg">O Borg</a></h3>
<p>Fui interrompido pelo Borg solitário da M$ (um cara vestido de preto
com umas ropuas reluzentes e fantasia cyberpunk) que veio me assimilar,
mas o Binhara do projeto MONO (vestindo a sua capa que é a bandeira do
brasil com um símio no centro) em seguida me colou um carimbo do MONO
que aparentemente cura a assimilação. Acho que é por isso que o Borg,
apesar de estar assimilando todo-mundo, continuava uma coletividade de
um único indivíduo.</p>
</div>
<div class="section" id="a-programa-o">
<h3><a name="a-programa-o">A Programação</a></h3>
<p>Escolhi ver as seguintes palestras:</p>
<blockquote>
<ul class="simple"><li>Front-end do gcc do Barbieri ( não conseguimos nem entrar, a lotação transbordou até o corredor)</li><li>Gnome Stuff pelo Miguel de Icaza (absolutamente show)</li><li>Plone no Desktop: Integração com Nautilus do Sidnei da Silva (screencasts, live action demos, muito massa)</li><li>Best practices for Python GUI development do  Johan Dahlin (+d400 pessoas aplaudindo Python/Gtk/Gazpacho)</li><li>Resolvendo Quebra-cabeças com Python do Niemeyer (despensa comentários, só tenho pena de quem perdeu)</li><li>Xen-3: o estado da arte em virtualização  do Murillo Bernardes (me decepcionei um pouco com esssa)</li><li>Common Lisp para o Homem Comum do Pedro Kroger ( bastante interessante, e Python foi muito citado!)</li><li>XUL - Desenvolvendo Apps para Mozilla/Firefox  do Marcio Vieira (acho que já estava cansado e não aproveitei
bem esta palestra, mas a tecnologia me interessa).</li></ul>
</blockquote>
</div>

        </div>    <p style="clear:both;"> 
    <a href="http://rodsenra.vox.com/library/post/fisl7-terceiro-dia.html?_c=feed-atom-full#comments">Read and post comments</a>   |   
    <a href="http://www.vox.com/share/6a00cd978c2ba7f9cc00d41419624c6a47?_c=feed-atom-full">Send to a friend</a> 
</p>

                </div>
            ]]>
        </content> 
    <category term="fisl7 python zope plone" scheme="http://rodsenra.vox.com/tags/fisl7+python+zope+plone/" label="fisl7 python zope plone" /> 
    </entry> 
    
    <entry>
        <title>Fisl 7 - Segundo Dia</title>   
        <link rel="alternate" type="text/html" title="Fisl 7 - Segundo Dia" href="http://rodsenra.vox.com/library/post/fisl-7-segundo-dia.html?_c=feed-atom-full" />  
        <link rel="service.post" type="application/atom+xml" title="Fisl 7 - Segundo Dia" href="http://rodsenra.vox.com/library/post/fisl-7-segundo-dia.html?_c=feed-atom-full#comments" /> 
        <link rel="service.edit" type="application/atom+xml" title="Fisl 7 - Segundo Dia" href="http://www.vox.com/atom/svc=post/asset_id=6a00cd978c2ba7f9cc00d4141541c1685e" />          <id>tag:vox.com,2007-01-23:asset-6a00cd978c2ba7f9cc00d4141541c1685e</id>
        <published>2007-01-23T18:22:12Z</published>
        <updated>2007-01-23T18:22:12Z</updated>
    
        <author>
            <name>rodsenra</name>
            <uri>http://rodsenra.vox.com/?_c=feed-atom-full</uri>
        </author>
    
        
        <content type="html" xml:base="http://rodsenra.vox.com/?_c=feed-atom-full">
            <![CDATA[
                <div xmlns="http://www.w3.org/1999/xhtml" xmlns:at="http://www.sixapart.com/ns/at">
        <p class="documentDescription">Até umas 2:12 am, eu e o Dorneles &quot;Deo&quot;
Tremea estavamos ainda trabalhando nos notebooks no quarto de hotel,
diminuindo o prejuízo nos mailboxes abarrotados.</p>

        

        

        <div class="stx">
            <p>Resolvi fazer uma pausa,  e gravar para a posteridade algumas pérolas do dia de hoje:</p>
<blockquote>
<ul class="simple"><li>O Glauber me contou <a href="http://mike.wordpress.com/2005/12/05/chuck-norris-the-facts/">diversos fatos</a> a respeito da idolatrada figura de &quot;Chuck Norris&quot;:&#160;<span class="link-external"></span></li><li>Greg &quot;Google/ApacheChairman/SubversionMan&quot; Stein veio dar um blá para a comunidade Python/Zope/Plone! Simpático, humilde, 
jeitão tranquilão compatível com o cabelo. Contou fofocas  dos bastidores  de uso de Python (entre outras tecnologias) no 
inner sanctum do quartel-general do Google.  No fim,  prometeu  tentar liberar  a versão do PEP-8  anabolizada, com
guidelines internas de programação  em Python adotada pelo Google.</li><li>No  finzinho da dupla apresentação do LeoRochael e Jean &quot;BigKahuna&quot; Ferri sobre uso de Plone,  depois de mostrarem  como 
cadastrar eventos, notícias,  incorporar  páginas externas, mudar o main_template do Plone, e através do windowZ embutir
um outro site (no caso foi o do Google) dentro de um Plone... um cara se levanta da platéia e pergunta: &quot;O Plone suporta
a geração de conteúdo dinâmico&quot; ?</li></ul>
</blockquote>

        </div>    <p style="clear:both;"> 
    <a href="http://rodsenra.vox.com/library/post/fisl-7-segundo-dia.html?_c=feed-atom-full#comments">Read and post comments</a>   |   
    <a href="http://www.vox.com/share/6a00cd978c2ba7f9cc00d4141541c1685e?_c=feed-atom-full">Send to a friend</a> 
</p>

                </div>
            ]]>
        </content> 
    <category term="fisl7 python zope plone" scheme="http://rodsenra.vox.com/tags/fisl7+python+zope+plone/" label="fisl7 python zope plone" /> 
    </entry> 
    
    <entry>
        <title>FISL 7 - Primeiro Dia</title>   
        <link rel="alternate" type="text/html" title="FISL 7 - Primeiro Dia" href="http://rodsenra.vox.com/library/post/fisl-7-primeiro-dia.html?_c=feed-atom-full" />  
        <link rel="service.post" type="application/atom+xml" title="FISL 7 - Primeiro Dia" href="http://rodsenra.vox.com/library/post/fisl-7-primeiro-dia.html?_c=feed-atom-full#comments" /> 
        <link rel="service.edit" type="application/atom+xml" title="FISL 7 - Primeiro Dia" href="http://www.vox.com/atom/svc=post/asset_id=6a00cd978c2ba7f9cc00d09e4f92eabe2b" />          <id>tag:vox.com,2007-01-23:asset-6a00cd978c2ba7f9cc00d09e4f92eabe2b</id>
        <published>2007-01-23T18:20:34Z</published>
        <updated>2007-01-23T18:20:34Z</updated>
    
        <author>
            <name>rodsenra</name>
            <uri>http://rodsenra.vox.com/?_c=feed-atom-full</uri>
        </author>
    
        
        <content type="html" xml:base="http://rodsenra.vox.com/?_c=feed-atom-full">
            <![CDATA[
                <div xmlns="http://www.w3.org/1999/xhtml" xmlns:at="http://www.sixapart.com/ns/at">
        <p class="documentDescription">Como sempre o FISL está muito massa. No
primeiro dia (2006-04-19) rolaram 3 palestras relacionadas a Python: a
do Dorneles (i18n e Plone), a minha (introdutória a ling.) e a do
Humberto (TurboGears). A impressão que fica é de que o interesse pela
linguagem tem aumentado.</p>

        

        

        <div class="stx">
            <p>Na
parte da tarde, a rapaziada investiu um bom tempo em planejar o
encontro PZP que irá ocorrer no segundo dia (2006-04-20), quem sabe se
teremos a ilustre presença do Greg Stein ? Por conta dessa reunião
preparatória perdi muitas palestras, acho que hj vou assistir mais.</p>
<p>O dia terminou com um jantar bacana, uma partida de Go entre o Klaus
(aka Chuck Norris) e o LeoRochael (aka L-Array), e mais uma investida
contra o PythonChallenge, na qual tenho a alegria de anunciar que o Deo
acaba de avançar para o nível 22.</p>

        </div>    <p style="clear:both;"> 
    <a href="http://rodsenra.vox.com/library/post/fisl-7-primeiro-dia.html?_c=feed-atom-full#comments">Read and post comments</a>   |   
    <a href="http://www.vox.com/share/6a00cd978c2ba7f9cc00d09e4f92eabe2b?_c=feed-atom-full">Send to a friend</a> 
</p>

                </div>
            ]]>
        </content> 
    <category term="fisl7 python zope plone" scheme="http://rodsenra.vox.com/tags/fisl7+python+zope+plone/" label="fisl7 python zope plone" /> 
    </entry> 
</feed>


