<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1929193622244619068</id><updated>2012-02-07T13:28:04.304-04:00</updated><category term='sonyericsson'/><category term='us intl'/><category term='us-intl'/><category term='distributed compiling'/><category term='n82'/><category term='s40'/><category term='multisync'/><category term='admin'/><category term='devel'/><category term='padrão'/><category term='cedilla'/><category term='development'/><category term='avatar'/><category term='locale'/><category term='sincronização'/><category term='localeconf'/><category term='feisty'/><category term='edgy'/><category term='xterm'/><category term='dbus'/><category term='sync'/><category term='from scratch'/><category term='quality assurance'/><category term='test'/><category term='permissão de arquivos'/><category term='nokia'/><category term='opensource'/><category term='localedef'/><category term='configuration'/><category term='python'/><category term='ati'/><category term='symbian'/><category term='pysvn'/><category term='locales'/><category term='smaps'/><category term='beryl'/><category term='script'/><category term='keyboard'/><category term='debian'/><category term='pyret'/><category term='dapper'/><category term='gimp'/><category term='smaps-plotter'/><category term='python-svn'/><category term='code'/><category term='motorola'/><category term='compilação distribuida'/><category term='default'/><category term='eslam'/><category term='file permission'/><category term='linux'/><category term='scripting'/><category term='monospace'/><category term='distcc'/><category term='6125'/><category term='hackergotchi'/><category term='idioma'/><category term='programming'/><category term='usintl'/><category term='compilação'/><category term='language'/><category term='celular'/><category term='software livre'/><category term='django'/><category term='enviroment'/><category term='font'/><category term='blog'/><category term='br-linux'/><category term='config'/><category term='xorg'/><category term='python-subversion'/><category term='free software'/><category term='n95'/><category term='terminal'/><category term='pydistcc'/><category term='Xdefaults'/><category term='qa'/><category term='unix'/><category term='xorg.conf'/><category term='x-terminal-emulator'/><category term='administration'/><category term='coding'/><category term='us'/><category term='cedilha'/><category term='dev'/><category term='gcc'/><category term='s60'/><category term='compiling'/><category term='ubuntu'/><category term='opensync'/><category term='svn'/><category term='subversion'/><category term='x200'/><title type='text'>Rodrigo Belem's journal</title><subtitle type='html'>O Vórtice da Perspectiva Total</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://rbelem.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1929193622244619068/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://rbelem.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Rodrigo Belem</name><uri>http://www.blogger.com/profile/08980033023830021425</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_7V0nOcW0Boc/SUd_3piOQSI/AAAAAAAAAEU/qnIQEUc2hvc/S220/rodrigo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>26</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1929193622244619068.post-2076701194056876235</id><published>2009-03-02T21:01:00.001-04:00</published><updated>2009-03-02T21:04:30.753-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='smaps-plotter'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='br-linux'/><category scheme='http://www.blogger.com/atom/ns#' term='smaps'/><title type='text'>Smaps-Plotter no br-linux</title><content type='html'>Acabei de anunciar no br-linux o Smaps-Plotter, espero que aumente o número de usuários e contribuidores.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1929193622244619068-2076701194056876235?l=rbelem.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rbelem.blogspot.com/feeds/2076701194056876235/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1929193622244619068&amp;postID=2076701194056876235' title='18 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1929193622244619068/posts/default/2076701194056876235'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1929193622244619068/posts/default/2076701194056876235'/><link rel='alternate' type='text/html' href='http://rbelem.blogspot.com/2009/03/smaps-plotter-no-br-linux.html' title='Smaps-Plotter no br-linux'/><author><name>Rodrigo Belem</name><uri>http://www.blogger.com/profile/08980033023830021425</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_7V0nOcW0Boc/SUd_3piOQSI/AAAAAAAAAEU/qnIQEUc2hvc/S220/rodrigo.jpg'/></author><thr:total>18</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1929193622244619068.post-1586671826004940231</id><published>2009-02-08T08:44:00.000-04:00</published><updated>2009-02-08T11:53:58.655-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sincronização'/><category scheme='http://www.blogger.com/atom/ns#' term='opensync'/><category scheme='http://www.blogger.com/atom/ns#' term='s40'/><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><category scheme='http://www.blogger.com/atom/ns#' term='6125'/><category scheme='http://www.blogger.com/atom/ns#' term='multisync'/><category scheme='http://www.blogger.com/atom/ns#' term='celular'/><category scheme='http://www.blogger.com/atom/ns#' term='sonyericsson'/><category scheme='http://www.blogger.com/atom/ns#' term='sync'/><category scheme='http://www.blogger.com/atom/ns#' term='n95'/><category scheme='http://www.blogger.com/atom/ns#' term='nokia'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='motorola'/><category scheme='http://www.blogger.com/atom/ns#' term='n82'/><category scheme='http://www.blogger.com/atom/ns#' term='s60'/><category scheme='http://www.blogger.com/atom/ns#' term='symbian'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Sincronizando telefone celular com o evolution</title><content type='html'>Recentemente precisei sincronizar os dados do meu celular com o computador e então fui atrás de como fazer isso. Encontrei vários posts que ensinavam como fazer a sincronização, mas não obtive sucesso, até anteontem.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;O seguinte processo foi feito em um computador com Ubuntu Intrepid instalado.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Obtendo informações e instalação de pacotes&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;1. Pegando o mac address do seu celular.&lt;br /&gt;&lt;blockquote&gt;$ hcitool scan&lt;br /&gt;Scanning ...&lt;br /&gt;XX:XX:XX:XX:XX:XX       Nokia&lt;/blockquote&gt;2. Pegando informações sobre os canais do bluetooth.&lt;br /&gt;&lt;blockquote&gt;$ sdptool browse XX:XX:XX:XX:XX&lt;/blockquote&gt;Vai aparecer um bocado de coisa, então você deve fazer um scroll buscando por um bloco semelhante a este.&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-weight: bold;"&gt;Service Name: SyncML Client&lt;/span&gt;&lt;br /&gt;Service RecHandle: 0x1000e&lt;br /&gt;Service Class ID List:&lt;br /&gt; UUID 128: 00000002-0000-1000-8000-0002ee000002&lt;br /&gt;Protocol Descriptor List:&lt;br /&gt; "L2CAP" (0x0100)&lt;br /&gt; "RFCOMM" (0x0003)&lt;br /&gt;   &lt;span style="font-weight: bold;"&gt;Channel: 11&lt;/span&gt;&lt;br /&gt; "OBEX" (0x0008)&lt;br /&gt;Language Base Attr List:&lt;br /&gt; code_ISO639: 0x656e&lt;br /&gt; encoding:    0x6a&lt;br /&gt; base_offset: 0x100&lt;/blockquote&gt;Note que marquei com negrito as informações relevantes.&lt;br /&gt;&lt;br /&gt;3. Instalando os pacotes necessários.&lt;br /&gt;&lt;blockquote&gt;$ sudo aptitude install multisync-tools multisync0.90 opensync-plugin-evolution opensync-plugin-syncml&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Configurando e sincronizando&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;1. Nomeando a sessão e adicionando o plugin pra sincronizar com o evolution. Você pode chamar a sua sessão do que mais lhe for conveniente.&lt;br /&gt;&lt;blockquote&gt;$ msynctool --addgroup evolution-6125&lt;br /&gt;$ msynctool --addmember evolution-6125 evo2-sync&lt;br /&gt;&lt;/blockquote&gt;2. Configurando a sessão.&lt;br /&gt;&lt;blockquote&gt;$ msynctool --configure evolution-6125 1&lt;/blockquote&gt;Um editor de texto aparecerá com o conteúdo abaixo. Não é preciso alterar nada, basta salvar.&lt;br /&gt;&lt;blockquote&gt;&amp;lt;config&amp;gt;&lt;br /&gt; &amp;lt;address_path&amp;gt;default&amp;lt;/address_path&amp;gt;&lt;br /&gt; &amp;lt;calendar_path&amp;gt;default&amp;lt;/calendar_path&amp;gt;&lt;br /&gt; &amp;lt;tasks_path&amp;gt;default&amp;lt;/tasks_path&amp;gt;&lt;br /&gt;&amp;lt;/config&amp;gt;&lt;br /&gt;&lt;/blockquote&gt;3. Adicionando o plugin para sincronizar o telefone via bluetooth&lt;br /&gt;&lt;blockquote&gt;$ msynctool --addmember evolution-6125 syncml-obex-client&lt;/blockquote&gt;4. Configurando o plugin de comunicação com o telefone&lt;br /&gt;&lt;blockquote&gt;$ msynctool --configure evolution-6125 2&lt;/blockquote&gt;Aqui você insere as informações obtidas no item 2 da seção anterior.&lt;br /&gt;&lt;blockquote&gt;&amp;lt;config&amp;gt;&lt;br /&gt;   &amp;lt;bluetooth_address&amp;gt;XX:XX:XX:XX:XX:XX&amp;lt;/bluetooth_address&amp;gt;&lt;br /&gt;   (...)&lt;br /&gt;   &amp;lt;bluetooth_channel&amp;gt;11&amp;lt;/bluetooth_channel&amp;gt;&lt;br /&gt;   (...)&lt;br /&gt;&amp;lt;/config&amp;gt;&lt;br /&gt;&lt;/blockquote&gt;5. Agora é só sincronizar \o/&lt;br /&gt;&lt;blockquote&gt;$ msynctool --sync evolution-6125&lt;/blockquote&gt;&lt;br /&gt;Existe ainda a possibilidade de configurar e sincronizar utilizando a ferramente gráfica, &lt;span style="font-weight: bold;"&gt;multisync0.90&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Fonte: &lt;a href="http://ubuntuforums.org/showthread.php?s=7f022dc44f654d273afc382ae1452dcb&amp;amp;t=705103"&gt;Ubuntu Forums&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1929193622244619068-1586671826004940231?l=rbelem.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rbelem.blogspot.com/feeds/1586671826004940231/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1929193622244619068&amp;postID=1586671826004940231' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1929193622244619068/posts/default/1586671826004940231'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1929193622244619068/posts/default/1586671826004940231'/><link rel='alternate' type='text/html' href='http://rbelem.blogspot.com/2009/02/sincronizando-telefone-celular-com-o.html' title='Sincronizando telefone celular com o evolution'/><author><name>Rodrigo Belem</name><uri>http://www.blogger.com/profile/08980033023830021425</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_7V0nOcW0Boc/SUd_3piOQSI/AAAAAAAAAEU/qnIQEUc2hvc/S220/rodrigo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1929193622244619068.post-6665283726615539914</id><published>2008-12-16T06:09:00.000-04:00</published><updated>2008-12-16T06:12:17.282-04:00</updated><title type='text'>Capa do livro</title><content type='html'>A capa do livro já está disponível!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.wiley.com/WileyCDA/WileyTitle/productCd-047043676X.html"&gt;http://www.wiley.com/WileyCDA/WileyTitle/productCd-047043676X.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1929193622244619068-6665283726615539914?l=rbelem.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rbelem.blogspot.com/feeds/6665283726615539914/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1929193622244619068&amp;postID=6665283726615539914' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1929193622244619068/posts/default/6665283726615539914'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1929193622244619068/posts/default/6665283726615539914'/><link rel='alternate' type='text/html' href='http://rbelem.blogspot.com/2008/12/capa-do-livro.html' title='Capa do livro'/><author><name>Rodrigo Belem</name><uri>http://www.blogger.com/profile/08980033023830021425</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_7V0nOcW0Boc/SUd_3piOQSI/AAAAAAAAAEU/qnIQEUc2hvc/S220/rodrigo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1929193622244619068.post-6061730850754247061</id><published>2008-07-15T16:34:00.001-04:00</published><updated>2009-09-29T21:50:37.824-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blog'/><category scheme='http://www.blogger.com/atom/ns#' term='django'/><title type='text'>Novo blog</title><content type='html'>Ola!&lt;br /&gt;&lt;br /&gt;Tempos atrás entrei numa paranóia de criar meu próprio gerenciador de blog em django e acabei criando. O gerenciador é baseado no PyLucid. Fiz uma série de modificações e adicionei mais um bocado de features.&lt;br /&gt;O endereço do novo blog é http://rbelem.info/. Vou ficar postando nos dois, pois percebi que já existem algumas referências a este blog.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1929193622244619068-6061730850754247061?l=rbelem.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rbelem.blogspot.com/feeds/6061730850754247061/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1929193622244619068&amp;postID=6061730850754247061' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1929193622244619068/posts/default/6061730850754247061'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1929193622244619068/posts/default/6061730850754247061'/><link rel='alternate' type='text/html' href='http://rbelem.blogspot.com/2008/07/novo-blog.html' title='Novo blog'/><author><name>Rodrigo Belem</name><uri>http://www.blogger.com/profile/08980033023830021425</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_7V0nOcW0Boc/SUd_3piOQSI/AAAAAAAAAEU/qnIQEUc2hvc/S220/rodrigo.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1929193622244619068.post-9092461134432301412</id><published>2007-06-04T17:57:00.000-04:00</published><updated>2007-06-04T18:04:27.449-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software livre'/><category scheme='http://www.blogger.com/atom/ns#' term='eslam'/><category scheme='http://www.blogger.com/atom/ns#' term='free software'/><title type='text'>Minhas fotos no IV ESLAM</title><content type='html'>Foram divulgadas as primeiras fotos do IV ESLAM. Aproveitei para caçar as minhas fotos:&lt;br /&gt;&lt;a href="http://www.comunidadesol.org/gallery/main.php?g2_itemId=4048"&gt;&lt;br /&gt;&lt;/a&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://www.comunidadesol.org/gallery/main.php?g2_itemId=4048"&gt;Cantando o hino nacional ao lado do Oliva&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.comunidadesol.org/gallery/main.php?g2_itemId=3152"&gt;Júlio, Oliva e eu&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.comunidadesol.org/gallery/main.php?g2_itemId=3917"&gt;Um dos ganhadores de brinde :-P e eu&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.comunidadesol.org/gallery/main.php?g2_itemId=3680"&gt;Mini-curso de python :-D&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1929193622244619068-9092461134432301412?l=rbelem.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rbelem.blogspot.com/feeds/9092461134432301412/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1929193622244619068&amp;postID=9092461134432301412' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1929193622244619068/posts/default/9092461134432301412'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1929193622244619068/posts/default/9092461134432301412'/><link rel='alternate' type='text/html' href='http://rbelem.blogspot.com/2007/06/minhas-fotos-no-iv-eslam.html' title='Minhas fotos no IV ESLAM'/><author><name>Rodrigo Belem</name><uri>http://www.blogger.com/profile/08980033023830021425</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_7V0nOcW0Boc/SUd_3piOQSI/AAAAAAAAAEU/qnIQEUc2hvc/S220/rodrigo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1929193622244619068.post-3037070222341045536</id><published>2007-05-29T14:03:00.000-04:00</published><updated>2007-05-29T14:58:47.814-04:00</updated><title type='text'>IV ESLAM - Mini-curso de Python</title><content type='html'>Nesse ESLAM tive o prazer de ser convidado para ministrar o Mini-curso de python. Não tenho certeza se o mini-curso foi 100%, mas penso que deu para os participantes terem uma idéia de como o python funciona. Vou passar aqui a lista de sites recomendados que prometi.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Python Brasil&lt;/li&gt; &lt;ul&gt;&lt;li&gt;http://www.pythonbrasil.com.br/moin.cgi&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Python Wiki&lt;/li&gt; &lt;ul&gt;&lt;li&gt;http://wiki.python.org/moin/&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Documentação oficial&lt;/li&gt; &lt;ul&gt;&lt;li&gt;http://docs.python.org/&lt;/li&gt;     &lt;li&gt;PEPs - Python Enhancement Proposals&lt;/li&gt;         &lt;ul&gt;&lt;li&gt;Style Guide for Python Code - http://www.python.org/dev/peps/pep-0008/&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt; &lt;li&gt;Python side-bar&lt;/li&gt; &lt;ul&gt;&lt;li&gt;http://www.edgewall.org/python-sidebar/&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Documentação extra-oficial&lt;/li&gt; &lt;ul&gt;&lt;li&gt;http://www.effbot.org/zone/index.htm&lt;/li&gt;     &lt;li&gt;http://www.brpreiss.com/books/opus7/&lt;/li&gt;     &lt;li&gt;Quick Reference&lt;/li&gt;         &lt;ul&gt;&lt;li&gt;http://rgruet.free.fr/#QuickRef&lt;/li&gt;&lt;/ul&gt;     &lt;li&gt;Python na prática&lt;/li&gt;         &lt;ul&gt;&lt;li&gt;http://www.async.com.br/projects/python/pnp/&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt; &lt;li&gt;Comunidade&lt;/li&gt; &lt;ul&gt;&lt;li&gt;http://planet.python.org/&lt;/li&gt;     &lt;li&gt;http://www.pythonbrasil.com.br/planet/&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Cookbook&lt;/li&gt; &lt;ul&gt;&lt;li&gt;http://www.java2s.com/Code/Python/CatalogPython.htm&lt;/li&gt;     &lt;li&gt;http://www.activestate.com/ASPN/Python/Cookbook/&lt;/li&gt;     &lt;li&gt;http://www.phys.uu.nl/~haque/computing/WPark_recipes_in_python.html&lt;/li&gt;     &lt;li&gt;http://wiki.python.org/moin/NumericAndScientificRecipes&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Repositório de aplicações e bibliotecas&lt;/li&gt; &lt;ul&gt;&lt;li&gt;http://cheeseshop.python.org/pypi&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Posters&lt;/li&gt; &lt;ul&gt;&lt;li&gt;http://geekciphers.com/python-posters.html?gclid=CL3J3IrriooCFRTtPgodpV-BRA&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Design Patters&lt;/li&gt; &lt;ul&gt;&lt;li&gt;http://www.suttoncourtenay.org.uk/duncan/accu/pythonpatterns.html&lt;/li&gt;     &lt;li&gt;http://www.thinkware.se/cgi-bin/thinki.cgi/PythonPatterns&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;hints id="hah_hints"&gt;&lt;/hints&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1929193622244619068-3037070222341045536?l=rbelem.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rbelem.blogspot.com/feeds/3037070222341045536/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1929193622244619068&amp;postID=3037070222341045536' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1929193622244619068/posts/default/3037070222341045536'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1929193622244619068/posts/default/3037070222341045536'/><link rel='alternate' type='text/html' href='http://rbelem.blogspot.com/2007/05/iv-eslam-mini-curso-de-python.html' title='IV ESLAM - Mini-curso de Python'/><author><name>Rodrigo Belem</name><uri>http://www.blogger.com/profile/08980033023830021425</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_7V0nOcW0Boc/SUd_3piOQSI/AAAAAAAAAEU/qnIQEUc2hvc/S220/rodrigo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1929193622244619068.post-5577692422129354795</id><published>2007-04-30T16:40:00.000-04:00</published><updated>2007-04-30T16:45:42.806-04:00</updated><title type='text'>Que linguagem de programação eu sou?</title><content type='html'>Vendo os posts de várias pessoas, percebi que praticamente todos fizeram o quiz "Which Programming Lanuguage Are You?", resolvi fazer também e o resultado foi:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.bbspot.com/News/2006/08/language_quiz.php"&gt;&lt;br /&gt;&lt;img src="http://www.bbspot.com/Images/News_Features/2006/08/language/python.jpg" width="300" height="90" border="0" alt="You are Python You are slower than others, but easier to understand. You are a minimalist, who doesn't like clutter."&gt; &lt;br&gt;Which Programming Language are You? &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;\o/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1929193622244619068-5577692422129354795?l=rbelem.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rbelem.blogspot.com/feeds/5577692422129354795/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1929193622244619068&amp;postID=5577692422129354795' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1929193622244619068/posts/default/5577692422129354795'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1929193622244619068/posts/default/5577692422129354795'/><link rel='alternate' type='text/html' href='http://rbelem.blogspot.com/2007/04/que-linguagem-de-programao-eu-sou.html' title='Que linguagem de programação eu sou?'/><author><name>Rodrigo Belem</name><uri>http://www.blogger.com/profile/08980033023830021425</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_7V0nOcW0Boc/SUd_3piOQSI/AAAAAAAAAEU/qnIQEUc2hvc/S220/rodrigo.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1929193622244619068.post-3255855713625167035</id><published>2007-04-27T13:33:00.001-04:00</published><updated>2009-09-29T21:54:03.093-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='permissão de arquivos'/><category scheme='http://www.blogger.com/atom/ns#' term='dev'/><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='devel'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='script'/><category scheme='http://www.blogger.com/atom/ns#' term='scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='file permission'/><title type='text'>Mudando permissões de arquivos e diretórios</title><content type='html'>Alguns dias atrás tive que mudar as permissões de um diretório contendo muitos sub-diretórios e arquivos (com toda certeza eu não iria fazer isso na mão :-D), resolvi então escrever um pequeno script para fazer esse trabalho. Falta ainda colocar o módulo optparse ou semelhante pra trabalhar os dados recebidos como parâmetro da linha de comando.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="font-family:Lucida,Courier New;"&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;#!/usr/bin/env python&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 64, 128);"&gt;"""&lt;br /&gt;Change directory and file permission recursively.&lt;br /&gt;&lt;br /&gt;"""&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(192, 0, 0);"&gt;import&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;os&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(192, 0, 0);"&gt;def&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;changepermission&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;directory&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;dirperm&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;fileperm&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 64, 128);"&gt;"""&lt;br /&gt;This function change dir and file permission recursively.&lt;br /&gt;e.g.: changepermission(/home/user, 0775, 0664)&lt;br /&gt;"""&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;abspath&lt;/span&gt; &lt;span style="color: rgb(0, 0, 192);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;os&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;path&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;abspath&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;directory&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(192, 0, 0);"&gt;for&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;item&lt;/span&gt; &lt;span style="color: rgb(192, 0, 0);"&gt;in&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;os&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;listdir&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;abspath&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;:&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: rgb(192, 0, 0);"&gt;if&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;os&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;path&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;isfile&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;abspath&lt;/span&gt; &lt;span style="color: rgb(0, 0, 192);"&gt;+&lt;/span&gt; &lt;span style="color: rgb(0, 64, 128);"&gt;'/'&lt;/span&gt; &lt;span style="color: rgb(0, 0, 192);"&gt;+&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;item&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;:&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: rgb(0, 0, 0);"&gt;os&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 64, 128);"&gt;chmod&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;(os.path.join(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;abspath&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;item), &lt;span style="color: rgb(0, 0, 0); "&gt;fileperm&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 192); "&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-family:Lucida,Courier New;"&gt;     &lt;span style="color: rgb(192, 0, 0);"&gt;elif&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;os&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;path&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;isdir&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;abspath&lt;/span&gt; &lt;span style="color: rgb(0, 0, 192);"&gt;+&lt;/span&gt; &lt;span style="color: rgb(0, 64, 128);"&gt;'/'&lt;/span&gt; &lt;span style="color: rgb(0, 0, 192);"&gt;+&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;item&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;:&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: rgb(0, 0, 0); "&gt;os&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192); "&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 64, 128); "&gt;chmod&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192); "&gt;(os.path.join(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0); "&gt;abspath&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192); "&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); "&gt;item), &lt;span style="color: rgb(0, 0, 0); "&gt;fileperm&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 192); "&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-family:Lucida,Courier New;"&gt;&lt;span style="color: rgb(0, 0, 0); "&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 192); "&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="color:#0000C0;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;changepermission&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;abspath&lt;/span&gt; &lt;span style="color: rgb(0, 0, 192);"&gt;+&lt;/span&gt; &lt;span style="color: rgb(0, 64, 128);"&gt;'/'&lt;/span&gt; &lt;span style="color: rgb(0, 0, 192);"&gt;+&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;item&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;dirperm&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;fileperm&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-family:Lucida,Courier New;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(192, 0, 0);"&gt;if&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;__name__&lt;/span&gt; &lt;span style="color: rgb(0, 0, 192);"&gt;==&lt;/span&gt; &lt;span style="color: rgb(0, 64, 128);"&gt;'__main__'&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;changepermission&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 64, 128);"&gt;'/path/to/directory'&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 64, 128);"&gt;'775'&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 64, 128);"&gt;'664'&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;hints id="hah_hints"&gt;&lt;/hints&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1929193622244619068-3255855713625167035?l=rbelem.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rbelem.blogspot.com/feeds/3255855713625167035/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1929193622244619068&amp;postID=3255855713625167035' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1929193622244619068/posts/default/3255855713625167035'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1929193622244619068/posts/default/3255855713625167035'/><link rel='alternate' type='text/html' href='http://rbelem.blogspot.com/2007/04/mudando-permisses-de-arquivos-e.html' title='Mudando permissões de arquivos e diretórios'/><author><name>Rodrigo Belem</name><uri>http://www.blogger.com/profile/08980033023830021425</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_7V0nOcW0Boc/SUd_3piOQSI/AAAAAAAAAEU/qnIQEUc2hvc/S220/rodrigo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1929193622244619068.post-7072959432669388322</id><published>2007-04-27T13:30:00.001-04:00</published><updated>2007-04-27T13:33:38.897-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='distcc'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='dbus'/><category scheme='http://www.blogger.com/atom/ns#' term='pydistcc'/><title type='text'>Problemas com dbus</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;Passei esses tempos tentando resolver um problema no pydistcc relacionado ao dbus. Procurei a lista do python-brasil, existe uma solução aparente em C, mas quero saber se existe como resolver isso usando somente python. Alguem sabe?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;hints id="hah_hints"&gt;&lt;/hints&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1929193622244619068-7072959432669388322?l=rbelem.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rbelem.blogspot.com/feeds/7072959432669388322/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1929193622244619068&amp;postID=7072959432669388322' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1929193622244619068/posts/default/7072959432669388322'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1929193622244619068/posts/default/7072959432669388322'/><link rel='alternate' type='text/html' href='http://rbelem.blogspot.com/2007/04/problemas-com-dbus.html' title='Problemas com dbus'/><author><name>Rodrigo Belem</name><uri>http://www.blogger.com/profile/08980033023830021425</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_7V0nOcW0Boc/SUd_3piOQSI/AAAAAAAAAEU/qnIQEUc2hvc/S220/rodrigo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1929193622244619068.post-1795853108025242968</id><published>2007-03-30T18:21:00.000-04:00</published><updated>2007-03-30T18:35:53.186-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='distributed compiling'/><category scheme='http://www.blogger.com/atom/ns#' term='gcc'/><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><category scheme='http://www.blogger.com/atom/ns#' term='compilação distribuida'/><category scheme='http://www.blogger.com/atom/ns#' term='distcc'/><category scheme='http://www.blogger.com/atom/ns#' term='compilação'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><category scheme='http://www.blogger.com/atom/ns#' term='compiling'/><category scheme='http://www.blogger.com/atom/ns#' term='pydistcc'/><title type='text'>PyDistcc status</title><content type='html'>Aproveitando que estou por aqui ... :-)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Após o início do projeto, consegui evoluir um pouco mais o código. Ele já está anunciando  o serviço na rede e o daemon cliente já consegue listar os servidores anunciados ;-) Estou atualmente trabalhando no código para gerar os dados de cpu load, cpu queue lenght, network load e outras. O próximo trabalho é terminar a interface cliente com o usuário e conectá-la ao daemon cliente via dbus.&lt;br /&gt;Caso queria contribuir ou somente olhar, o projeto está hospedado no sourceforge no endereço &lt;a href="http://sourceforge.net/projects/pydistcc/"&gt;http://sourceforge.net/projects/pydistcc/&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1929193622244619068-1795853108025242968?l=rbelem.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rbelem.blogspot.com/feeds/1795853108025242968/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1929193622244619068&amp;postID=1795853108025242968' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1929193622244619068/posts/default/1795853108025242968'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1929193622244619068/posts/default/1795853108025242968'/><link rel='alternate' type='text/html' href='http://rbelem.blogspot.com/2007/03/pydistcc-status.html' title='PyDistcc status'/><author><name>Rodrigo Belem</name><uri>http://www.blogger.com/profile/08980033023830021425</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_7V0nOcW0Boc/SUd_3piOQSI/AAAAAAAAAEU/qnIQEUc2hvc/S220/rodrigo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1929193622244619068.post-2417354884525680891</id><published>2007-03-30T17:44:00.000-04:00</published><updated>2007-03-30T18:17:39.832-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='br-linux'/><title type='text'>Resposta aos comentários de um post no BR-Linux</title><content type='html'>O artigo em questão  é  &lt;a href="http://br-linux.org/linux/o-que-da-para-comprar-com-o-dinheiro-do-windows-vista"&gt;"O que dá pra comprar com o dinheiro do windows Vist&lt;/a&gt;&lt;a href="http://br-linux.org/linux/o-que-da-para-comprar-com-o-dinheiro-do-windows-vista"&gt;a"&lt;/a&gt;.  &lt;span style="text-decoration: underline;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Quero deixar bem claro que existem outros meios mais simples de configurar, &lt;a href="http://ostoolbox.blogspot.com/2007/03/ubuntus-restricted-drivers-manager.html"&gt;vídeo&lt;/a&gt;, teclado&lt;a href="http://raviratlami1.blogspot.com/2006/12/how-to-configure-ubuntu-linux-for.html"&gt;[1]&lt;/a&gt;&lt;a href="http://ubuntuguide.org/wiki/Ubuntu_Edgy#How_to_add_keyboard_layouts_for_other_languages"&gt;[2]&lt;/a&gt;, seja lá o que for. Os metódos apresentados neste blog, em geral, são a maneira mais difícil, pois gosto de entender como as coisas funcionam. Outra coisa... nem todo usuário avaçado é programador e nem todo programador é usuário avançado. :-P&lt;hints id="hah_hints"&gt;&lt;/hints&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1929193622244619068-2417354884525680891?l=rbelem.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rbelem.blogspot.com/feeds/2417354884525680891/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1929193622244619068&amp;postID=2417354884525680891' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1929193622244619068/posts/default/2417354884525680891'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1929193622244619068/posts/default/2417354884525680891'/><link rel='alternate' type='text/html' href='http://rbelem.blogspot.com/2007/03/resposta-aos-comentrios-de-um-post-do.html' title='Resposta aos comentários de um post no BR-Linux'/><author><name>Rodrigo Belem</name><uri>http://www.blogger.com/profile/08980033023830021425</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_7V0nOcW0Boc/SUd_3piOQSI/AAAAAAAAAEU/qnIQEUc2hvc/S220/rodrigo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1929193622244619068.post-5540219715608243470</id><published>2007-03-07T18:06:00.000-04:00</published><updated>2007-03-07T18:22:57.425-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='monospace'/><category scheme='http://www.blogger.com/atom/ns#' term='default'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><category scheme='http://www.blogger.com/atom/ns#' term='configuration'/><category scheme='http://www.blogger.com/atom/ns#' term='Xdefaults'/><category scheme='http://www.blogger.com/atom/ns#' term='font'/><category scheme='http://www.blogger.com/atom/ns#' term='x-terminal-emulator'/><category scheme='http://www.blogger.com/atom/ns#' term='config'/><category scheme='http://www.blogger.com/atom/ns#' term='terminal'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='xterm'/><title type='text'>xterm default config</title><content type='html'>Venho utilizando o  gnome-terminal faz alguns anos. Sempre tive vontade de usar o xterm, mas nunca tive paciência de  configurá-lo. Hoje, depois de alguns problemas com o gnome-terminal resolvi dar essa chance ao xterm.&lt;br /&gt;&lt;br /&gt;Para configurar, edite o arquivo ~/.Xdefaults e deixe-o com o conteúdo semelhante ao abaixo.&lt;br /&gt;XTerm*foreground: white&lt;br /&gt;XTerm*background: black&lt;br /&gt;XTerm*saveLines: 1500&lt;br /&gt;XTerm*faceName: monospace&lt;br /&gt;XTerm*faceSize: 12pt;&lt;br /&gt;XTerm*boldFont: monospace&lt;br /&gt;&lt;br /&gt;Pra finalizar rode o comando abaixo para carregar as configurações.&lt;br /&gt;xrdb -nocpp -load .Xdefaults&lt;br /&gt;&lt;br /&gt;Agora é só rodar o xterm ;-)&lt;br /&gt;&lt;br /&gt;Caso queira deixá-lo como terminal padrão do sistema, rode o comando abaixo&lt;br /&gt;sudo update-alternatives --config x-terminal-emulator&lt;br /&gt;&lt;br /&gt;e selecione o xterm.&lt;br /&gt;&lt;hints id="hah_hints"&gt;&lt;/hints&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1929193622244619068-5540219715608243470?l=rbelem.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rbelem.blogspot.com/feeds/5540219715608243470/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1929193622244619068&amp;postID=5540219715608243470' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1929193622244619068/posts/default/5540219715608243470'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1929193622244619068/posts/default/5540219715608243470'/><link rel='alternate' type='text/html' href='http://rbelem.blogspot.com/2007/03/xterm-default-config.html' title='xterm default config'/><author><name>Rodrigo Belem</name><uri>http://www.blogger.com/profile/08980033023830021425</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_7V0nOcW0Boc/SUd_3piOQSI/AAAAAAAAAEU/qnIQEUc2hvc/S220/rodrigo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1929193622244619068.post-8195530937373408271</id><published>2007-03-06T20:31:00.001-04:00</published><updated>2009-09-29T22:07:30.941-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><category scheme='http://www.blogger.com/atom/ns#' term='usintl'/><category scheme='http://www.blogger.com/atom/ns#' term='locales'/><category scheme='http://www.blogger.com/atom/ns#' term='locale'/><category scheme='http://www.blogger.com/atom/ns#' term='us'/><category scheme='http://www.blogger.com/atom/ns#' term='us intl'/><category scheme='http://www.blogger.com/atom/ns#' term='keyboard'/><category scheme='http://www.blogger.com/atom/ns#' term='xorg.conf'/><category scheme='http://www.blogger.com/atom/ns#' term='cedilha'/><category scheme='http://www.blogger.com/atom/ns#' term='enviroment'/><category scheme='http://www.blogger.com/atom/ns#' term='us-intl'/><category scheme='http://www.blogger.com/atom/ns#' term='xorg'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='cedilla'/><title type='text'>Resolvendo finalmente o problema do cedilha</title><content type='html'>Desde que  reinstalei meu computador, não tenho usado o c cedilha. Toda a configuração feita anteriormente foi perdida e eu tambem não lembrava como era. Revoltado com a situação resolvi  ir atrás da solução e registrar aqui para futuras consultas.&lt;br /&gt;&lt;br /&gt;Primeiro é necessário configurar o /etc/X11/xorg.conf:&lt;br /&gt;&lt;br /&gt;Section "InputDevice"&lt;br /&gt; Identifier  "Generic Keyboard"&lt;br /&gt; Driver      "kbd"&lt;br /&gt; Option      "CoreKeyboard"&lt;br /&gt; Option      "XkbRules" "xorg"&lt;br /&gt; Option      "XkbModel" "pc105"&lt;br /&gt; Option      "XkbLayout" "us"&lt;br /&gt; Option      "XkbVariant" "intl"&lt;br /&gt;EndSection&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;O /etc/enviroment:&lt;br /&gt;&lt;br /&gt;PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11:/usr/games"&lt;br /&gt;&lt;br /&gt;#LANG="en_GB"&lt;div&gt;LC_CTYPE="pt_BR.UTF-8"&lt;br /&gt;LANG="pt_BR.UTF-8"&lt;br /&gt;LANGUAGE="en_GB:en"&lt;br /&gt;&lt;br /&gt;&lt;hints id="hah_hints"&gt;&lt;/hints&gt;&lt;br /&gt;Para mim isso foi o suficiente ;-)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1929193622244619068-8195530937373408271?l=rbelem.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rbelem.blogspot.com/feeds/8195530937373408271/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1929193622244619068&amp;postID=8195530937373408271' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1929193622244619068/posts/default/8195530937373408271'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1929193622244619068/posts/default/8195530937373408271'/><link rel='alternate' type='text/html' href='http://rbelem.blogspot.com/2007/03/resolvendo-o-finalmente-o-problema-do.html' title='Resolvendo finalmente o problema do cedilha'/><author><name>Rodrigo Belem</name><uri>http://www.blogger.com/profile/08980033023830021425</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_7V0nOcW0Boc/SUd_3piOQSI/AAAAAAAAAEU/qnIQEUc2hvc/S220/rodrigo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1929193622244619068.post-2991137460933505374</id><published>2007-03-06T18:40:00.000-04:00</published><updated>2007-03-06T20:31:47.816-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='padrão'/><category scheme='http://www.blogger.com/atom/ns#' term='localeconf'/><category scheme='http://www.blogger.com/atom/ns#' term='default'/><category scheme='http://www.blogger.com/atom/ns#' term='feisty'/><category scheme='http://www.blogger.com/atom/ns#' term='idioma'/><category scheme='http://www.blogger.com/atom/ns#' term='locales'/><category scheme='http://www.blogger.com/atom/ns#' term='edgy'/><category scheme='http://www.blogger.com/atom/ns#' term='locale'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='language'/><category scheme='http://www.blogger.com/atom/ns#' term='localedef'/><title type='text'>Trocando o idioma padrão do Ubuntu Feisty ou Edgy</title><content type='html'>Após muito tempo gasto em busca de como trocar o idioma padrão do Ubuntu Feisty ou Edgy, pois o localeconf não funciona mais, encontrei um &lt;a href="http://blog.andrewbeacock.com/2007/01/how-to-change-your-default-locale-on.html"&gt;blog&lt;/a&gt; que realmente tem a solucão. Resume-se em:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;instalar o idioma desejado, ex. aptitude install language-support-en&lt;/li&gt;&lt;li&gt;adicionar ao /etc/enviroment, caso não exista:&lt;br /&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;LANG="en_GB"&lt;/li&gt;&lt;li&gt;LANGUAGE="en_GB:en"&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;deletar o arquivo /etc/locale.gen&lt;/li&gt;&lt;li&gt;sudo dpkg-reconfigure locales&lt;br /&gt;&lt;/li&gt;&lt;li&gt;reiniciar o computador&lt;br /&gt;&lt;/li&gt;&lt;li&gt;digitar no terminal locale para verificar o novo idioma padrão&lt;/li&gt;&lt;/ul&gt;&lt;hints id="hah_hints"&gt;&lt;/hints&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1929193622244619068-2991137460933505374?l=rbelem.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rbelem.blogspot.com/feeds/2991137460933505374/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1929193622244619068&amp;postID=2991137460933505374' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1929193622244619068/posts/default/2991137460933505374'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1929193622244619068/posts/default/2991137460933505374'/><link rel='alternate' type='text/html' href='http://rbelem.blogspot.com/2007/03/trocando-o-idioma-padro-do-ubuntu.html' title='Trocando o idioma padrão do Ubuntu Feisty ou Edgy'/><author><name>Rodrigo Belem</name><uri>http://www.blogger.com/profile/08980033023830021425</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_7V0nOcW0Boc/SUd_3piOQSI/AAAAAAAAAEU/qnIQEUc2hvc/S220/rodrigo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1929193622244619068.post-738834202262867607</id><published>2007-02-23T15:22:00.000-04:00</published><updated>2007-03-06T20:30:49.888-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='x200'/><category scheme='http://www.blogger.com/atom/ns#' term='feisty'/><category scheme='http://www.blogger.com/atom/ns#' term='ati'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><category scheme='http://www.blogger.com/atom/ns#' term='edgy'/><category scheme='http://www.blogger.com/atom/ns#' term='beryl'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='dapper'/><title type='text'>Ubuntu Feisty + beryl + ati x200</title><content type='html'>Há alguns meses atrás tentei instalar o compiz e o xgl no meu laptop. Tive muita dor de cabeça e perdi muito tempo, acabou que não funcionou. Hoje gastei quase toda manhã tentado configurar o beryl, o xgl e a minha placa de video, não consegui configurar novamente, mas descobri uma série de fatos:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;AIGLX não funciona com drivers proprietários da ati;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Drivers proprietários da ati não suportam o modo composite;&lt;/li&gt;&lt;li&gt;O beryl está com um &lt;a href="http://bugs.beryl-project.org/ticket/1091"&gt;bug&lt;/a&gt; que causa segfault, quando utilizado no ubuntu feisty, que roda xorg 7.1&lt;/li&gt;&lt;li&gt;Os drivers novos da ati fazem a x200 funcionar melhor ;-)&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;Como ainda não tenho conhecimento suficiente em C para tentar corrigir o bug, vou só ficar monitorando.&lt;hints id="hah_hints"&gt;&lt;/hints&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1929193622244619068-738834202262867607?l=rbelem.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rbelem.blogspot.com/feeds/738834202262867607/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1929193622244619068&amp;postID=738834202262867607' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1929193622244619068/posts/default/738834202262867607'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1929193622244619068/posts/default/738834202262867607'/><link rel='alternate' type='text/html' href='http://rbelem.blogspot.com/2007/02/ubuntu-feisty-beryl-ati-x200.html' title='Ubuntu Feisty + beryl + ati x200'/><author><name>Rodrigo Belem</name><uri>http://www.blogger.com/profile/08980033023830021425</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_7V0nOcW0Boc/SUd_3piOQSI/AAAAAAAAAEU/qnIQEUc2hvc/S220/rodrigo.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1929193622244619068.post-5091971583239329913</id><published>2007-02-17T17:21:00.000-04:00</published><updated>2007-02-17T17:37:42.824-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='qa'/><category scheme='http://www.blogger.com/atom/ns#' term='pyret'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><category scheme='http://www.blogger.com/atom/ns#' term='quality assurance'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='test'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><title type='text'>Pyret - Um caçador de regressões</title><content type='html'>Estes tempos venho trabalhando em um projeto chamado &lt;a href="http://pyret.sf.net/"&gt;pyret&lt;/a&gt;. Por conta disto venho aprendendo muito e tenho ganhado fluência em python e em seus módulos. Hoje terminei a primeira modificação, na parte servidora da aplicação, e enviei para o autor. Espero que ele aceite e me dê acesso ao cvs ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1929193622244619068-5091971583239329913?l=rbelem.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rbelem.blogspot.com/feeds/5091971583239329913/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1929193622244619068&amp;postID=5091971583239329913' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1929193622244619068/posts/default/5091971583239329913'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1929193622244619068/posts/default/5091971583239329913'/><link rel='alternate' type='text/html' href='http://rbelem.blogspot.com/2007/02/pyret-um-caador-de-regresses.html' title='Pyret - Um caçador de regressões'/><author><name>Rodrigo Belem</name><uri>http://www.blogger.com/profile/08980033023830021425</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_7V0nOcW0Boc/SUd_3piOQSI/AAAAAAAAAEU/qnIQEUc2hvc/S220/rodrigo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1929193622244619068.post-8304866163118113485</id><published>2007-02-09T17:56:00.000-04:00</published><updated>2007-02-09T20:57:37.954-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software livre'/><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><category scheme='http://www.blogger.com/atom/ns#' term='python-subversion'/><category scheme='http://www.blogger.com/atom/ns#' term='subversion'/><category scheme='http://www.blogger.com/atom/ns#' term='pysvn'/><category scheme='http://www.blogger.com/atom/ns#' term='svn'/><category scheme='http://www.blogger.com/atom/ns#' term='python-svn'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='free software'/><category scheme='http://www.blogger.com/atom/ns#' term='opensource'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><title type='text'>pysvn - subversion python binding</title><content type='html'>Depois de muito penar para conseguir fazer um checkout em um servidor subversion com autenticação usando pysvn, hoje finalmente consegui. É um bocado difícil de entender como funciona esse negócio, deveria ser um pouco mais intuitivo. Pra facilitar a vida de quem venha utilizar o pysvn e não queira perder muito tempo pra entender tudo, aqui vai um codigo que fiz. Melhorias são bem vindas.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="font-family:Lucida,Courier New;"&gt;&lt;span style="color: rgb(192, 0, 0);"&gt;import&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;os&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(192, 0, 0);"&gt;import&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;sys&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(192, 0, 0);"&gt;import&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;pysvn&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(192, 0, 0);"&gt;class&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;DownloadSubversion&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;object&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(192, 0, 0);"&gt;def&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;__init__&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;self&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;source&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;dest&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;username&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;password&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;:&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(0, 0, 0);"&gt;self&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;source&lt;/span&gt; &lt;span style="color: rgb(0, 0, 192);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;source&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(0, 0, 0);"&gt;self&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;dest&lt;/span&gt; &lt;span style="color: rgb(0, 0, 192);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;dest&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(0, 0, 0);"&gt;self&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;username&lt;/span&gt; &lt;span style="color: rgb(0, 0, 192);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;username&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(0, 0, 0);"&gt;self&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;password&lt;/span&gt; &lt;span style="color: rgb(0, 0, 192);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;password&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(192, 0, 0);"&gt;def&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;callback_ssl_server_trust_prompt&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;self&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;trust_data&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;:&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(0, 64, 128);"&gt;'''&lt;br /&gt;      trust_data: essa e' uma variavel, um dicionario, passado pelo pysvn&lt;br /&gt;                  contendo informacoes sobre o certificado ssl do servidor.&lt;br /&gt;                  Por exemplo: data de expiracao do certificado, empresa&lt;br /&gt;                  certificadora, nome do responsavel, fingerprint e etc.&lt;br /&gt;&lt;br /&gt;  '''&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;  &lt;span style="color: rgb(0, 128, 0);"&gt;#for key,value in trust_data.items():&lt;br /&gt;&lt;/span&gt;        &lt;span style="color: rgb(0, 128, 0);"&gt;#    print '%s: %s' % (key, value)&lt;br /&gt;&lt;/span&gt;        &lt;span style="color: rgb(0, 128, 0);"&gt;#print&lt;br /&gt;&lt;/span&gt;        &lt;span style="color: rgb(0, 0, 0);"&gt;answer&lt;/span&gt; &lt;span style="color: rgb(0, 0, 192);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 64, 128);"&gt;'t'&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(0, 128, 0);"&gt;#while answer.lower() not in ['p','t','r']:&lt;br /&gt;&lt;/span&gt;        &lt;span style="color: rgb(0, 128, 0);"&gt;#    sys.stdout.write( '(P)ermanent accept, (T)emporary accept or (R)eject: ' )&lt;br /&gt;&lt;/span&gt;        &lt;span style="color: rgb(0, 128, 0);"&gt;#    answer = sys.stdin.readline().strip()&lt;br /&gt;&lt;/span&gt;        &lt;span style="color: rgb(192, 0, 0);"&gt;if&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;answer&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;lower&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(0, 0, 192);"&gt;==&lt;/span&gt; &lt;span style="color: rgb(0, 64, 128);"&gt;'p'&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;:&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: rgb(192, 0, 0);"&gt;return&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;True&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;trust_data&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(0, 64, 128);"&gt;'failures'&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;]&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;True&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(192, 0, 0);"&gt;if&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;answer&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;lower&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(0, 0, 192);"&gt;==&lt;/span&gt; &lt;span style="color: rgb(0, 64, 128);"&gt;'t'&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;:&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: rgb(192, 0, 0);"&gt;return&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;True&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;trust_data&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(0, 64, 128);"&gt;'failures'&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;]&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;False&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(192, 0, 0);"&gt;return&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;False&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 128, 192);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;False&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(192, 0, 0);"&gt;def&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;callback_getLogin&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;self&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;realm&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;username&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;password&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;may_save&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;:&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(0, 64, 128);"&gt;'''&lt;br /&gt;      realm: essa variavel eh utilizado pelo pysvn pra informar o endereco do&lt;br /&gt;             servidor e o nome do servico, deixe ela ai'. Por exemplo:&lt;br /&gt;             "Subversion Repository" at http://111.222.333.444&lt;br /&gt;&lt;br /&gt;      username: usuario do subversion&lt;br /&gt;&lt;br /&gt;      password: senha do subversion&lt;br /&gt;&lt;br /&gt;      may_save: salvar ou nao o usuario e senha&lt;br /&gt;&lt;br /&gt;  '''&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;  &lt;span style="color: rgb(192, 0, 0);"&gt;if&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;len&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;username&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(0, 0, 192);"&gt;==&lt;/span&gt; &lt;span style="color: rgb(0, 128, 192);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;:&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: rgb(192, 0, 0);"&gt;return&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;False&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 64, 128);"&gt;''&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 64, 128);"&gt;''&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;False&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;  &lt;span style="color: rgb(192, 0, 0);"&gt;return&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;True&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;username&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;password&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;may_save&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(192, 0, 0);"&gt;def&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;downloadRepos&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;self&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;  &lt;span style="color: rgb(0, 0, 0);"&gt;client&lt;/span&gt; &lt;span style="color: rgb(0, 0, 192);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;pysvn&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Client&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;)&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(0, 0, 0);"&gt;client&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;exception_style&lt;/span&gt; &lt;span style="color: rgb(0, 0, 192);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 128, 192);"&gt;1&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(0, 0, 0);"&gt;client&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;set_default_username&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;self&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;username&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;)&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(0, 0, 0);"&gt;client&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;set_default_password&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;self&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;password&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;)&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(0, 0, 0);"&gt;client&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;callback_get_login&lt;/span&gt; &lt;span style="color: rgb(0, 0, 192);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;self&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;callback_getLogin&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(0, 0, 0);"&gt;client&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;callback_ssl_server_trust_prompt&lt;/span&gt; &lt;span style="color: rgb(0, 0, 192);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;self&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;callback_ssl_server_trust_prompt&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;  &lt;span style="color: rgb(192, 0, 0);"&gt;if&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;os&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;access&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;self&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;dest&lt;/span&gt; &lt;span style="color: rgb(0, 0, 192);"&gt;+&lt;/span&gt; &lt;span style="color: rgb(0, 64, 128);"&gt;'/.svn'&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;os&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;F_OK&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;:&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: rgb(0, 0, 0);"&gt;client&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;update&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;self&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;dest&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;)&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(192, 0, 0);"&gt;else&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;:&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: rgb(0, 0, 0);"&gt;client&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;checkout&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;self&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;source&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;self&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;dest&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(192, 0, 0);"&gt;if&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;__name__&lt;/span&gt; &lt;span style="color: rgb(0, 0, 192);"&gt;==&lt;/span&gt; &lt;span style="color: rgb(0, 64, 128);"&gt;'__main__'&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;subversion&lt;/span&gt; &lt;span style="color: rgb(0, 0, 192);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;DownloadSubversion&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 64, 128);"&gt;'https://www.com.br/svnroot/'&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 64, 128);"&gt;'.'&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 64, 128);"&gt;'usuario'&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 64, 128);"&gt;'senha'&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;subversion&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;downloadRepos&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1929193622244619068-8304866163118113485?l=rbelem.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rbelem.blogspot.com/feeds/8304866163118113485/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1929193622244619068&amp;postID=8304866163118113485' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1929193622244619068/posts/default/8304866163118113485'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1929193622244619068/posts/default/8304866163118113485'/><link rel='alternate' type='text/html' href='http://rbelem.blogspot.com/2007/02/pysvn-subversion-python-binding.html' title='pysvn - subversion python binding'/><author><name>Rodrigo Belem</name><uri>http://www.blogger.com/profile/08980033023830021425</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_7V0nOcW0Boc/SUd_3piOQSI/AAAAAAAAAEU/qnIQEUc2hvc/S220/rodrigo.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1929193622244619068.post-4617417529766725847</id><published>2007-02-09T17:52:00.000-04:00</published><updated>2007-02-09T20:58:25.777-04:00</updated><title type='text'>Comentarios liberados</title><content type='html'>Hoje a tarde um amigo disse que tentou deixar um comentário no blog, não conseguiu porque era necessário um registro. Logo pensei: "Por isso ninguém nunca comentou nada! :-/"&lt;br /&gt;&lt;br /&gt;Para facilitar a vida dos visitantes, deixei os comentários liberados.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Valeu Henry!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1929193622244619068-4617417529766725847?l=rbelem.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rbelem.blogspot.com/feeds/4617417529766725847/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1929193622244619068&amp;postID=4617417529766725847' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1929193622244619068/posts/default/4617417529766725847'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1929193622244619068/posts/default/4617417529766725847'/><link rel='alternate' type='text/html' href='http://rbelem.blogspot.com/2007/02/comentarios-liberados.html' title='Comentarios liberados'/><author><name>Rodrigo Belem</name><uri>http://www.blogger.com/profile/08980033023830021425</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_7V0nOcW0Boc/SUd_3piOQSI/AAAAAAAAAEU/qnIQEUc2hvc/S220/rodrigo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1929193622244619068.post-5851113692576058268</id><published>2007-02-02T18:52:00.000-04:00</published><updated>2007-02-02T18:54:13.304-04:00</updated><title type='text'>Provas na faculdade</title><content type='html'>Não farei novas postagens até que as coisas estejam mais tranquilas pela faculdade.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1929193622244619068-5851113692576058268?l=rbelem.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rbelem.blogspot.com/feeds/5851113692576058268/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1929193622244619068&amp;postID=5851113692576058268' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1929193622244619068/posts/default/5851113692576058268'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1929193622244619068/posts/default/5851113692576058268'/><link rel='alternate' type='text/html' href='http://rbelem.blogspot.com/2007/02/provas-na-faculdade.html' title='Provas na faculdade'/><author><name>Rodrigo Belem</name><uri>http://www.blogger.com/profile/08980033023830021425</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_7V0nOcW0Boc/SUd_3piOQSI/AAAAAAAAAEU/qnIQEUc2hvc/S220/rodrigo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1929193622244619068.post-8494703614727061564</id><published>2007-01-20T15:12:00.000-04:00</published><updated>2007-01-20T15:36:37.680-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='distcc'/><category scheme='http://www.blogger.com/atom/ns#' term='distributed compiling'/><category scheme='http://www.blogger.com/atom/ns#' term='dev'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><category scheme='http://www.blogger.com/atom/ns#' term='compilação'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='unix'/><category scheme='http://www.blogger.com/atom/ns#' term='compilação distribuida'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='compiling'/><title type='text'>Python Distcc</title><content type='html'>Ontem a noite terminei de escrever a primeira parte do python-distcc, uma alternativa ao &lt;a href="http://dmucs.sourceforge.net/"&gt;dmucs&lt;/a&gt;. Coincidentemente, hoje a tarde encontrei um velho amigo, Leonardo Marques, no gtalk e descobri que ele estava trabalhando em um projeto semelhante, o &lt;a href="http://analyx.ath.cx:8081/wiki/wakka.php?wakka=axdistcc&amp;v=1dq8"&gt;axdistcc&lt;/a&gt;, batemos um papo e decidimos unir as forças. Mais informações podem ser encontradas no &lt;a href="http://analyx.ath.cx:8081/wiki/wakka.php?wakka=PythonDistcc&amp;amp;v=3ql"&gt;wiki&lt;/a&gt;[2].&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1929193622244619068-8494703614727061564?l=rbelem.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rbelem.blogspot.com/feeds/8494703614727061564/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1929193622244619068&amp;postID=8494703614727061564' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1929193622244619068/posts/default/8494703614727061564'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1929193622244619068/posts/default/8494703614727061564'/><link rel='alternate' type='text/html' href='http://rbelem.blogspot.com/2007/01/python-distcc.html' title='Python Distcc'/><author><name>Rodrigo Belem</name><uri>http://www.blogger.com/profile/08980033023830021425</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_7V0nOcW0Boc/SUd_3piOQSI/AAAAAAAAAEU/qnIQEUc2hvc/S220/rodrigo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1929193622244619068.post-2785060516825647851</id><published>2007-01-10T18:44:00.000-04:00</published><updated>2007-01-12T13:58:35.046-04:00</updated><title type='text'>Python ConfigObj</title><content type='html'>Recentemente me daparei com o problema de reescrever o parser de arquivos de configuração de um software. Procurando na internet por um módulo que fizesse esse trabalho me deparei com o ConfigObj, que é perfeito para esta tarefa. Com apenas poucas linhas de código consegui lêr e verificar cada detalhe do arquivo de configuração. Das várias vantagens do ConfigObj, três são as mais marcantes:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;ótima documentação;&lt;/li&gt;&lt;li&gt;poucas linhas de código fazem tudo;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;e flexibilidade de criar novas verificações.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1929193622244619068-2785060516825647851?l=rbelem.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rbelem.blogspot.com/feeds/2785060516825647851/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1929193622244619068&amp;postID=2785060516825647851' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1929193622244619068/posts/default/2785060516825647851'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1929193622244619068/posts/default/2785060516825647851'/><link rel='alternate' type='text/html' href='http://rbelem.blogspot.com/2007/01/python-configobj.html' title='Python ConfigObj'/><author><name>Rodrigo Belem</name><uri>http://www.blogger.com/profile/08980033023830021425</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_7V0nOcW0Boc/SUd_3piOQSI/AAAAAAAAAEU/qnIQEUc2hvc/S220/rodrigo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1929193622244619068.post-6577550751493209075</id><published>2007-01-08T17:33:00.000-04:00</published><updated>2007-01-09T02:22:04.881-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='admin'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><category scheme='http://www.blogger.com/atom/ns#' term='from scratch'/><category scheme='http://www.blogger.com/atom/ns#' term='administration'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Ubuntu from scratch - instalando ubuntu com o cd danificado</title><content type='html'>Depois de enfrentar várias vezes problemas na instalação do ubuntu, por conta de erros no cd, resolvi buscar por uma maneira de instalar utilizando o cd danificado.&lt;br /&gt;Utilizando o cd do ubuntu edgy, por exemplo, siga os passos que descrevo nesta postagem:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Dê boot pelo cd e avance até chegar no particionamento hd(não entre no particionador);&lt;/li&gt;&lt;li&gt;aperte alt+&lt;f2&gt;F2&lt;f2&gt;;&lt;/f2&gt;&lt;/f2&gt;&lt;/li&gt;&lt;li&gt;particione o disco com o fdisk ou cfdisk&lt;/li&gt;&lt;li&gt;reinicie o computardor&lt;/li&gt;&lt;li&gt;execute os passos 1 e 2&lt;br /&gt;&lt;/li&gt;&lt;li&gt;mkdir /target&lt;/li&gt;&lt;li&gt;debootstrap edgy /target file:/cdrom/ubuntu/&lt;/li&gt;&lt;li&gt;mount -o bind -t proc /proc /target/proc&lt;/li&gt;&lt;li&gt;chroot /target /bin/bash&lt;/li&gt;&lt;li&gt;apt-get update&lt;/li&gt;&lt;li&gt;aptitude install grub&lt;br /&gt;&lt;/li&gt;&lt;li&gt;aptitude install linux-generic ou linux-image-generic&lt;/li&gt;&lt;li&gt;aptitude install ubuntu-standard&lt;/li&gt;&lt;li&gt;cp /proc/mounts /etc/mtab&lt;/li&gt;&lt;li&gt;mkdir /boot/grub&lt;/li&gt;&lt;li&gt;update-grub&lt;/li&gt;&lt;li&gt;grub-install --no-floppy /dev/hda&lt;/li&gt;&lt;li&gt;edite seu /etc/fstab&lt;/li&gt;&lt;li&gt;reinicie seu computador&lt;/li&gt;&lt;li&gt;logue como root sem senha&lt;/li&gt;&lt;li&gt;passwd root&lt;/li&gt;&lt;li&gt;vol_id -u /dev/hda1&lt;/li&gt;&lt;li&gt;troque as entradas do /dev/hdaX pelo UUID obtido pelo comando acima&lt;/li&gt;&lt;li&gt;edite o /etc/network/interfaces e adicione&lt;/li&gt;&lt;ol&gt;&lt;li&gt;auto lo&lt;/li&gt;&lt;li&gt;iface lo inet loopback&lt;/li&gt;&lt;/ol&gt;&lt;li&gt;aptitude install ubuntu-desktop&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;Pronto! Está instalado o ubuntu. Pode ser utilizado um livecd também, tento somente que ter uma conexão com a internet, um apt-cacher local ou os arquivos .deb necessários e fazendo pequenas alterações nos passos acima.&lt;br /&gt;&lt;br /&gt;* Esta postagem ainda está em edição. Espero comentários para melhorá-la.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1929193622244619068-6577550751493209075?l=rbelem.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rbelem.blogspot.com/feeds/6577550751493209075/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1929193622244619068&amp;postID=6577550751493209075' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1929193622244619068/posts/default/6577550751493209075'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1929193622244619068/posts/default/6577550751493209075'/><link rel='alternate' type='text/html' href='http://rbelem.blogspot.com/2007/01/ubuntu-from-scratch.html' title='Ubuntu from scratch - instalando ubuntu com o cd danificado'/><author><name>Rodrigo Belem</name><uri>http://www.blogger.com/profile/08980033023830021425</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_7V0nOcW0Boc/SUd_3piOQSI/AAAAAAAAAEU/qnIQEUc2hvc/S220/rodrigo.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1929193622244619068.post-5511418802937624539</id><published>2007-01-08T00:34:00.000-04:00</published><updated>2007-01-09T01:21:28.646-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gimp'/><category scheme='http://www.blogger.com/atom/ns#' term='avatar'/><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><category scheme='http://www.blogger.com/atom/ns#' term='hackergotchi'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Meu hackergotchi</title><content type='html'>Durante muito tempo deixei o espaço dedicado ao hackergotchi ou avatar vago, talvez pela falta de uma foto diferente ou preguiça mesmo. Finalmente ontem, 07/01/07, tirei uma foto e percebi que ela tinha o potencial pra se tornar meu hackergotchi. Busquei por boas &lt;a href="http://del.icio.us/rclbelem/hackergotchi"&gt;documentações&lt;/a&gt;, abri a foto no gimp e segui os howtos. Um pequeno descuido acabou gerando a idéia dos efeitos que mais gostei. O resultado está na minha página do &lt;a href="https://launchpad.net/%7Erclbelem"&gt;launchpad&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_7V0nOcW0Boc/RaHNrsds5ZI/AAAAAAAAAAY/8yj90H80vzM/s1600-h/rodrigo-head2.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_7V0nOcW0Boc/RaHNrsds5ZI/AAAAAAAAAAY/8yj90H80vzM/s200/rodrigo-head2.jpg" alt="" id="BLOGGER_PHOTO_ID_5017517610421249426" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1929193622244619068-5511418802937624539?l=rbelem.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rbelem.blogspot.com/feeds/5511418802937624539/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1929193622244619068&amp;postID=5511418802937624539' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1929193622244619068/posts/default/5511418802937624539'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1929193622244619068/posts/default/5511418802937624539'/><link rel='alternate' type='text/html' href='http://rbelem.blogspot.com/2007/01/meu-hackergotchi.html' title='Meu hackergotchi'/><author><name>Rodrigo Belem</name><uri>http://www.blogger.com/profile/08980033023830021425</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_7V0nOcW0Boc/SUd_3piOQSI/AAAAAAAAAEU/qnIQEUc2hvc/S220/rodrigo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_7V0nOcW0Boc/RaHNrsds5ZI/AAAAAAAAAAY/8yj90H80vzM/s72-c/rodrigo-head2.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1929193622244619068.post-421103951863118639</id><published>2007-01-08T00:03:00.000-04:00</published><updated>2007-01-09T01:22:40.929-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Python sidebar, documentação a um clique.</title><content type='html'>Quando se está programando, geralmente é necessário procurar por informações sobre módulos ou uso da linguagem. Pensando neste problema a &lt;a href="http://www.edgewall.com/"&gt;edgewall&lt;/a&gt;, mesma desenvolvedora do gerenciador de projetos &lt;a href="http://www.edgewall.com/"&gt;trac&lt;/a&gt;, criou o python sidebar. O intuito é de agilizar o acesso às informações e de maneira mais conveniente, podendo ainda realizar buscas nas documentações e listas de discussão.&lt;br /&gt;&lt;br /&gt;Para instalar, use o &lt;a href="http://www.edgewall.org/python-sidebar/"&gt;site oficial&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_7V0nOcW0Boc/RaHEzMds5YI/AAAAAAAAAAM/Tx3KuIIZu6g/s1600-h/python-sidebar.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_7V0nOcW0Boc/RaHEzMds5YI/AAAAAAAAAAM/Tx3KuIIZu6g/s200/python-sidebar.png" alt="" id="BLOGGER_PHOTO_ID_5017507843665618306" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1929193622244619068-421103951863118639?l=rbelem.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rbelem.blogspot.com/feeds/421103951863118639/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1929193622244619068&amp;postID=421103951863118639' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1929193622244619068/posts/default/421103951863118639'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1929193622244619068/posts/default/421103951863118639'/><link rel='alternate' type='text/html' href='http://rbelem.blogspot.com/2007/01/python-sidebar-documentao-um-clique.html' title='Python sidebar, documentação a um clique.'/><author><name>Rodrigo Belem</name><uri>http://www.blogger.com/profile/08980033023830021425</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_7V0nOcW0Boc/SUd_3piOQSI/AAAAAAAAAEU/qnIQEUc2hvc/S220/rodrigo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_7V0nOcW0Boc/RaHEzMds5YI/AAAAAAAAAAM/Tx3KuIIZu6g/s72-c/python-sidebar.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1929193622244619068.post-7389261598130017035</id><published>2007-01-07T23:01:00.000-04:00</published><updated>2007-01-22T12:16:29.078-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='free software'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='smaps'/><title type='text'>Python smaps e gtop</title><content type='html'>Como alternativa de acesso direto aos arquivos do smaps(/proc/\&lt;pid\&gt;/smaps), existe um módulo que acompanha o python-gobject, chamado de gtop, cuja função é oferecer ferramentas para manipulação de dados do proc.&lt;br /&gt;&lt;br /&gt;Segue abaixo um código feito por Ian Lawrence:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pid\&gt;&lt;pre&gt;&lt;span style="font-family:Lucida,Courier New;"&gt;&lt;span style="color: rgb(192, 0, 0);"&gt;import&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;os&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(192, 0, 0);"&gt;import&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;gtop&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(192, 0, 0);"&gt;def&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;print_maps&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;v&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;c&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;d&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;name&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;:&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(192, 0, 0);"&gt;if&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;c&lt;/span&gt; &lt;span style="color: rgb(0, 0, 192);"&gt;+&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;d&lt;/span&gt; &lt;span style="color: rgb(0, 0, 192);"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: rgb(0, 128, 192);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;:&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: rgb(192, 0, 0);"&gt;print&lt;/span&gt; &lt;span style="color: rgb(0, 64, 128);"&gt;"%d\t%d\t%d\t%s"&lt;/span&gt; &lt;span style="color: rgb(0, 0, 192);"&gt;%&lt;/span&gt; &lt;span style="color: rgb(0, 0, 192);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;v&lt;/span&gt; &lt;span style="color: rgb(0, 0, 192);"&gt;/&lt;/span&gt; &lt;span style="color: rgb(0, 128, 192);"&gt;1024&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;c&lt;/span&gt; &lt;span style="color: rgb(0, 0, 192);"&gt;/&lt;/span&gt; &lt;span style="color: rgb(0, 128, 192);"&gt;1024&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;d&lt;/span&gt; &lt;span style="color: rgb(0, 0, 192);"&gt;/&lt;/span&gt; &lt;span style="color: rgb(0, 128, 192);"&gt;1024&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;name&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(192, 0, 0);"&gt;for&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;pid&lt;/span&gt; &lt;span style="color: rgb(192, 0, 0);"&gt;in&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;gtop&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;proclist&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;gtop&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;PROCLIST_KERN_PROC_UID&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;os&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;getuid&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;:&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: rgb(0, 0, 0);"&gt;l&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;gtop&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;proc_map&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;pid&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(192, 0, 0);"&gt;print&lt;/span&gt; &lt;span style="color: rgb(0, 64, 128);"&gt;"SHARED"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(192, 0, 0);"&gt;print&lt;/span&gt; &lt;span style="color: rgb(0, 64, 128);"&gt;"vmsize\tclean\tdirty\tname"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(192, 0, 0);"&gt;for&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;x&lt;/span&gt; &lt;span style="color: rgb(192, 0, 0);"&gt;in&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;sorted&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;l&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;key&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(192, 0, 0);"&gt;lambda&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;x&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;:&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;x&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;shared_clean&lt;/span&gt; &lt;span style="color: rgb(0, 0, 192);"&gt;+&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;x&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;shared_dirty&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;reverse&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;True&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;:&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(0, 0, 0);"&gt;print_maps&lt;/span&gt; &lt;span style="color: rgb(0, 0, 192);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;x&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;size&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;x&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;shared_clean&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;x&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;shared_dirty&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;x&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;filename&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(192, 0, 0);"&gt;print&lt;/span&gt; &lt;span style="color: rgb(0, 64, 128);"&gt;""&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(192, 0, 0);"&gt;print&lt;/span&gt; &lt;span style="color: rgb(0, 64, 128);"&gt;""&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(192, 0, 0);"&gt;print&lt;/span&gt; &lt;span style="color: rgb(0, 64, 128);"&gt;"PRIVATE"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(192, 0, 0);"&gt;print&lt;/span&gt; &lt;span style="color: rgb(0, 64, 128);"&gt;"vmsize\tclean\tdirty\tname"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(192, 0, 0);"&gt;for&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;x&lt;/span&gt; &lt;span style="color: rgb(192, 0, 0);"&gt;in&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;sorted&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;l&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;key&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(192, 0, 0);"&gt;lambda&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;x&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;:&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;x&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;private_clean&lt;/span&gt; &lt;span style="color: rgb(0, 0, 192);"&gt;+&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;x&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;private_dirty&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;reverse&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;True&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;:&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(0, 0, 0);"&gt;print_maps&lt;/span&gt; &lt;span style="color: rgb(0, 0, 192);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;x&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;size&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;x&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;private_clean&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;x&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;private_dirty&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;x&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;filename&lt;/span&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;O próximo passo é mudar a maneira como atualmente smaps-plotter trata o /proc/&lt;pid&gt;/smaps para o método utilizando o gtop.&lt;/pid&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1929193622244619068-7389261598130017035?l=rbelem.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rbelem.blogspot.com/feeds/7389261598130017035/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1929193622244619068&amp;postID=7389261598130017035' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1929193622244619068/posts/default/7389261598130017035'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1929193622244619068/posts/default/7389261598130017035'/><link rel='alternate' type='text/html' href='http://rbelem.blogspot.com/2007/01/python-smaps-e-gtop.html' title='Python smaps e gtop'/><author><name>Rodrigo Belem</name><uri>http://www.blogger.com/profile/08980033023830021425</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_7V0nOcW0Boc/SUd_3piOQSI/AAAAAAAAAEU/qnIQEUc2hvc/S220/rodrigo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1929193622244619068.post-9113598678705779433</id><published>2006-12-29T19:32:00.000-04:00</published><updated>2007-01-09T01:24:45.684-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='free software'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='smaps'/><title type='text'>smaps-plotter</title><content type='html'>Recentemente peguei um projeto de um amigo, chamado smaps-plotter. Fiz algumas pequenas modificações e disponibilizei no sourceforge. Estou usando esse projeto para aprender python não como uma linguagem de script, como já conhecia anteriormente, mas como uma linguagem de programação poderosa. Tem muitas features a serem adicionadas, mas devagarinho chego lá &lt;img src="http://rbelem.wordpress.com/wp-includes/images/smilies/icon_wink.gif" alt=";-)" class="wp-smiley" /&gt; &lt;div class="storycontent"&gt;&lt;div class="snap_preview"&gt; &lt;p&gt;Você pode ter acesso ao smaps-plotter pelo endereço:  http://sourceforge.net/projects/smaps-plotter/&lt;/p&gt; &lt;p&gt;Pra fazer download é necessário o uso do svn(subversion), digitando o comando:&lt;/p&gt; &lt;p&gt;&lt;tt&gt;svn co https://svn.sourceforge.net/svnroot/smaps-plotter smaps-plotter&lt;/tt&gt;&lt;/p&gt; &lt;/div&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1929193622244619068-9113598678705779433?l=rbelem.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rbelem.blogspot.com/feeds/9113598678705779433/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1929193622244619068&amp;postID=9113598678705779433' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1929193622244619068/posts/default/9113598678705779433'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1929193622244619068/posts/default/9113598678705779433'/><link rel='alternate' type='text/html' href='http://rbelem.blogspot.com/2006/12/smaps-plotter.html' title='smaps-plotter'/><author><name>Rodrigo Belem</name><uri>http://www.blogger.com/profile/08980033023830021425</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_7V0nOcW0Boc/SUd_3piOQSI/AAAAAAAAAEU/qnIQEUc2hvc/S220/rodrigo.jpg'/></author><thr:total>0</thr:total></entry></feed>
