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

<channel>
	<title>ScrapBook</title>
	<atom:link href="http://bruno.tuy.com.br/blog/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://bruno.tuy.com.br/blog</link>
	<description></description>
	<lastBuildDate>Mon, 29 Aug 2011 12:51:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>Relógio binário com 8051 e RTC</title>
		<link>http://bruno.tuy.com.br/blog/?p=159</link>
		<comments>http://bruno.tuy.com.br/blog/?p=159#comments</comments>
		<pubDate>Wed, 01 Dec 2010 01:29:34 +0000</pubDate>
		<dc:creator>BrunoTuy</dc:creator>
				<category><![CDATA[Sem categoria]]></category>

		<guid isPermaLink="false">http://bruno.tuy.com.br/blog/?p=159</guid>
		<description><![CDATA[Tirei do guarda-roupas o 8051, 0 rtc e a matriz de LED. Dessa vez termino o relógio binário. O problema era que eu queria fazer o programa do 8051 em asm e não esta sendo fácil, resolvi fazer logo em C e depois se conseguir passo pra asm. Nos primeiros testes aqui consegui fazer funcionar. [...]]]></description>
			<content:encoded><![CDATA[<p>Tirei do guarda-roupas o 8051, 0 rtc e a matriz de LED.</p>
<p>Dessa vez termino o relógio binário. O problema era que eu queria fazer o programa do 8051 em asm e não esta sendo fácil, resolvi fazer logo em C e depois se conseguir passo pra asm.</p>
<p>Nos primeiros testes aqui consegui fazer funcionar. Não esta 100% como eu quero mais vou fazer logo as placas e colocar o leds maiores e depois vou melhorando.</p>
<p>Ai a baixo vai um breve vídeo dele.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="640" height="372" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/o6FY7c3kuYQ?fs=1&amp;hl=en_US&amp;hd=1" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="640" height="372" src="http://www.youtube.com/v/o6FY7c3kuYQ?fs=1&amp;hl=en_US&amp;hd=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://bruno.tuy.com.br/blog/?feed=rss2&#038;p=159</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Translate Python no seu terminal</title>
		<link>http://bruno.tuy.com.br/blog/?p=155</link>
		<comments>http://bruno.tuy.com.br/blog/?p=155#comments</comments>
		<pubDate>Wed, 30 Jun 2010 21:43:29 +0000</pubDate>
		<dc:creator>BrunoTuy</dc:creator>
				<category><![CDATA[Programação]]></category>
		<category><![CDATA[GoogleTranslate]]></category>
		<category><![CDATA[htmlparser]]></category>
		<category><![CDATA[pycurl]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://bruno.tuy.com.br/blog/?p=155</guid>
		<description><![CDATA[Meu interesse inicial era encontrar algum tradutor, inglês -&#62; português, que rode via terminal. Não encontrei nada que me agradasse então resolvi fazer algo aqui. O script em python pega a palavra que for digitada submet ao google translate e te mostra o resultado. Pra fazer isso usei o curl pra fazer a requisição fingindo [...]]]></description>
			<content:encoded><![CDATA[<p>Meu interesse inicial era encontrar algum tradutor, inglês -&gt; português, que rode via terminal. Não encontrei nada que me agradasse então resolvi fazer algo aqui.</p>
<p>O script em python pega a palavra que for digitada submet ao google translate e te mostra o resultado. Pra fazer isso usei o curl pra fazer a requisição fingindo ser o mozilla. Depois fiz um parser procurando uma tag span que tem o atributo title com valor igual a palavra passada ao google.</p>
<p>Pronto, bem simples e funciona.<br />
A partir desse da pra fazer muita coisa&#8230;</p>
<p>esta disponível para todos <a href="http://bruno.tuy.com.br/desenv/translate.py">http://bruno.tuy.com.br/desenv/translate.py</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bruno.tuy.com.br/blog/?feed=rss2&#038;p=155</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Girar Matriz com Python</title>
		<link>http://bruno.tuy.com.br/blog/?p=142</link>
		<comments>http://bruno.tuy.com.br/blog/?p=142#comments</comments>
		<pubDate>Fri, 11 Jun 2010 18:01:50 +0000</pubDate>
		<dc:creator>BrunoTuy</dc:creator>
				<category><![CDATA[Programação]]></category>
		<category><![CDATA[matriz]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[vector]]></category>

		<guid isPermaLink="false">http://bruno.tuy.com.br/blog/?p=142</guid>
		<description><![CDATA[Criar matriz: &#62;&#62;&#62; mat = [['a', 'b', 'c'], ['d', 'e', 'f'], ['g', 'h', 'i']] Mostra normal: &#62;&#62;&#62; for lin in range(3): &#160;&#160;&#160;&#160;text = &#8221; &#160;&#160;&#160;&#160;for col in range(3): &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;text += &#8216; &#8216; + mat[lin][col] &#160;&#160;&#160;&#160;print text Mostrar girada em 90 graus: &#62;&#62;&#62; for lin in range(3): &#160;&#160;&#160;&#160;text = &#8221; &#160;&#160;&#160;&#160;for col in range(3): &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;text += [...]]]></description>
			<content:encoded><![CDATA[<p>Criar matriz:</p>
<div class="term"><b>&gt;&gt;&gt; mat = [['a', 'b', 'c'], ['d', 'e', 'f'], ['g', 'h', 'i']]</b></div>
<p>Mostra normal:</p>
<div class="term"><b>&gt;&gt;&gt; for lin in range(3):<br />
&nbsp;&nbsp;&nbsp;&nbsp;text = &#8221;<br />
&nbsp;&nbsp;&nbsp;&nbsp;for col in range(3):<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;text += &#8216; &#8216; + mat[lin][col]<br />
&nbsp;&nbsp;&nbsp;&nbsp;print text</b></div>
<p>Mostrar girada em 90 graus:</p>
<div class="term"><b>&gt;&gt;&gt; for lin in range(3):<br />
&nbsp;&nbsp;&nbsp;&nbsp;text = &#8221;<br />
&nbsp;&nbsp;&nbsp;&nbsp;for col in range(3):<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;text += &#8216; &#8216; + mat[col][2 - lin]<br />
&nbsp;&nbsp;&nbsp;&nbsp;print text</b></div>
<p>Mostrar girada em 180 graus:</p>
<div class="term"><b>&gt;&gt;&gt; for lin in range(3):<br />
&nbsp;&nbsp;&nbsp;&nbsp;text = &#8221;<br />
&nbsp;&nbsp;&nbsp;&nbsp;for col in range(3):<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;text += &#8216; &#8216; + mat[2 - lin][2 - col]<br />
&nbsp;&nbsp;&nbsp;&nbsp;print text</b></div>
<p>Mostrar girada em 270 graus:</p>
<div class="term"><b>&gt;&gt;&gt; for lin in range(3):<br />
&nbsp;&nbsp;&nbsp;&nbsp;text = &#8221;<br />
&nbsp;&nbsp;&nbsp;&nbsp;for col in range(3):<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;text += &#8216; &#8216; + mat[2 - col][lin]<br />
&nbsp;&nbsp;&nbsp;&nbsp;print text</b></div>
]]></content:encoded>
			<wfw:commentRss>http://bruno.tuy.com.br/blog/?feed=rss2&#038;p=142</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Python conectando com Postgres</title>
		<link>http://bruno.tuy.com.br/blog/?p=125</link>
		<comments>http://bruno.tuy.com.br/blog/?p=125#comments</comments>
		<pubDate>Tue, 04 May 2010 14:40:46 +0000</pubDate>
		<dc:creator>BrunoTuy</dc:creator>
				<category><![CDATA[Programação]]></category>
		<category><![CDATA[postgres]]></category>
		<category><![CDATA[psycopg2]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://bruno.tuy.com.br/blog/?p=125</guid>
		<description><![CDATA[Trecho de código para conectar python ao postgres usando psycopg2.]]></description>
			<content:encoded><![CDATA[<div class="term"><strong><strong>&gt;&gt;&gt; import psycopg2</strong><br />
<strong>&gt;&gt;&gt; </strong>conexao = psycopg2.connect(&#8220;dbname=&#8217;nome_base&#8217; user=&#8217;usuario_base&#8217; host=&#8217;endereco_da_base ou IP&#8217; password=&#8217;senha_da_base&#8217;&#8221;);<br />
<strong>&gt;&gt;&gt; </strong> cursor = conexao.cursor()<br />
<strong>&gt;&gt;&gt; </strong> cursor.execute(&#8220;SELECT * FROM tabela&#8221;)<br />
<strong>&gt;&gt;&gt; </strong> resposta = cursor.fetchall()<br />
<strong>&gt;&gt;&gt; </strong> print resposta</strong></p>
<p><strong><strong>&gt;&gt;&gt; </strong>for linha in resposta:<br />
<strong>&gt;&gt;&gt; </strong> &nbsp;&nbsp;&nbsp; print linha<br />
<strong>&gt;&gt;&gt; </strong> conexao.close()</strong></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://bruno.tuy.com.br/blog/?feed=rss2&#038;p=125</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ubuntu 9.10 Leitor de Cartão da direita não funciona</title>
		<link>http://bruno.tuy.com.br/blog/?p=120</link>
		<comments>http://bruno.tuy.com.br/blog/?p=120#comments</comments>
		<pubDate>Fri, 05 Mar 2010 13:16:16 +0000</pubDate>
		<dc:creator>BrunoTuy</dc:creator>
				<category><![CDATA[Desktop]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[grub2]]></category>
		<category><![CDATA[sd leitor]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://bruno.tuy.com.br/blog/?p=120</guid>
		<description><![CDATA[Como já é conhecido de todos no Acer Aspire One quando instalado o Ubuntu os leitores de cartão nem sempre funcionam direito. Aqui no meu o &#8220;Storage Expansion&#8221; que é o leitor da esquerda funciona tranquilo tranquilo. Mais já o da direita que fica próximo ao botão power só funciona quando eu inicio a maquina [...]]]></description>
			<content:encoded><![CDATA[<p>Como já é conhecido de todos no Acer Aspire One quando instalado o Ubuntu os leitores de cartão nem sempre funcionam direito. Aqui no meu o &#8220;Storage Expansion&#8221; que é o leitor da esquerda funciona tranquilo tranquilo. Mais já o da direita que fica próximo ao botão power só funciona quando eu inicio a maquina com um cartão já inserido no slot.</p>
<p>Para ele funcionar tenho que passar um parâmetro para a imagem do kernel no boot de maquina. pciehp.pciehp_force=1</p>
<p>Mais nessa versão do linux não vai ser simplemente editar o menu.lst do grub. No ubuntu agora esta vindo o grub2, que muda um pouco as coisas. O que você via no menu.lst agora esta no /boot/grub/grub.cfg e não aconselho editar ele não, essa configuração dele é toda feita automaticamente.</p>
<p>Para adicionar o parâmetro editei o arquivo /etc/default/grub<br />
Na linha: GRUB_CMDLINE_LINUX_DEFAULT<br />
Editei e ela ficou assim:<br />
GRUB_CMDLINE_LINUX_DEFAULT=&#8221;pciehp.pciehp_force=1 quiet splash&#8221;</p>
<p>Depois tu só faz executar a atualização do grub.cfg e tudo lindo.</p>
<div class="term">
$ update-grub
</div>
]]></content:encoded>
			<wfw:commentRss>http://bruno.tuy.com.br/blog/?feed=rss2&#038;p=120</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Porta paralela no Shell do Linux</title>
		<link>http://bruno.tuy.com.br/blog/?p=108</link>
		<comments>http://bruno.tuy.com.br/blog/?p=108#comments</comments>
		<pubDate>Wed, 24 Feb 2010 13:16:26 +0000</pubDate>
		<dc:creator>BrunoTuy</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[inb]]></category>
		<category><![CDATA[outb]]></category>
		<category><![CDATA[porta paralela]]></category>
		<category><![CDATA[roboticalivre.org]]></category>

		<guid isPermaLink="false">http://bruno.tuy.com.br/blog/?p=108</guid>
		<description><![CDATA[Bom no Slack que tava usando aqui na maquina já tinha dois comandos que me acostumei a usar, inb e outb. Como eles foram parar no slack e de onde vieram eu não tenho a menor ideia. Formatei a maquina e instalei o Debian, fiz uma instalação bem limpa e não veio meu inb e [...]]]></description>
			<content:encoded><![CDATA[<p>Bom no Slack que tava usando aqui na maquina já tinha dois comandos que me acostumei a usar, inb e outb. Como eles foram parar no slack e de onde vieram eu não tenho a menor ideia.</p>
<p>Formatei a maquina e instalei o Debian, fiz uma instalação bem limpa e não veio meu inb e outb, mais preciso deles. O que fazer? Andei pesquisando e não achei nada e com uma conversa com Danilo Cesar&lt;<a href="http://roboticalivre.org">roboticalivre.org</a>&gt; ele me falou que no histórico da lista do robótica livre tinha algo que ele postou em outubro de 2007.</p>
<p>Então vamos ao que interessa colocar os comandos de volta.<br />
** LEMBRANDO USAR root ***</p>
<p>Tem que baixar o binário do ioport&lt;<a href="http://www.tuy.com.br/download/ioport">http://www.tuy.com.br/download/ioport</a>&gt;.<br />
Salvar ele na pasta /bin</p>
<p>Depois criar links simbólicos para ele.</p>
<div class="term">$ cd /bin<br />
$ ln -s ioport outb<br />
$ ln -s ioport outl<br />
$ ln -s ioport outw<br />
$ ln -s ioport inb<br />
$ ln -s ioport inl<br />
$ ln -s ioport inw</div>
<p>Pronto agora pode botar fé que vai funcionar os outb e inb.</p>
<p>Créditos <a href="http://listas.softwarelivre.org/pipermail/roboticalivre/2007-October/000035.html">http://listas.softwarelivre.org/pipermail/roboticalivre/2007-October/000035.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bruno.tuy.com.br/blog/?feed=rss2&#038;p=108</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Brinquedo novo</title>
		<link>http://bruno.tuy.com.br/blog/?p=97</link>
		<comments>http://bruno.tuy.com.br/blog/?p=97#comments</comments>
		<pubDate>Sat, 19 Dec 2009 15:44:31 +0000</pubDate>
		<dc:creator>BrunoTuy</dc:creator>
				<category><![CDATA[Programação]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[protoboard]]></category>

		<guid isPermaLink="false">http://bruno.tuy.com.br/blog/?p=97</guid>
		<description><![CDATA[Até que fim chegou, um mês depois do pedido que fiz via internet chegou o meu arduino Duemilanove. Funcionou beleza no ubuntu, só plugar e usar. No gentoo reconheceu depois de compilar o kernel com o ftdi, mais não consegui ainda instalar o gcc-avr no gentoo.]]></description>
			<content:encoded><![CDATA[<p>Até que fim chegou, um mês depois do pedido que fiz via internet chegou o meu arduino Duemilanove.</p>
<p><img src="http://lh6.ggpht.com/_BoCKMqmIi1k/Syzz4AoxyeI/AAAAAAAAAJ4/HrPRXCXitR0/s640/DSC00027.JPG" alt="" /></p>
<p><img src="http://lh6.ggpht.com/_BoCKMqmIi1k/Syzz4gwvu6I/AAAAAAAAAJ8/qn4cOc7LQAE/s640/DSC00025.JPG" alt="" /></p>
<p>Funcionou beleza no ubuntu, só plugar e usar. No gentoo reconheceu depois de compilar o kernel com o ftdi, mais não consegui ainda instalar o gcc-avr no gentoo.</p>
]]></content:encoded>
			<wfw:commentRss>http://bruno.tuy.com.br/blog/?feed=rss2&#038;p=97</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Python + xml.dom &#8211; Editar um xml</title>
		<link>http://bruno.tuy.com.br/blog/?p=86</link>
		<comments>http://bruno.tuy.com.br/blog/?p=86#comments</comments>
		<pubDate>Tue, 15 Dec 2009 19:47:36 +0000</pubDate>
		<dc:creator>BrunoTuy</dc:creator>
				<category><![CDATA[Programação]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://bruno.tuy.com.br/blog/?p=86</guid>
		<description><![CDATA[Ler e editar um xml Existente Carregar o objeto. &#62;&#62;&#62; xml0 = xml.dom.minidom.parse(&#8220;c:\\teste\\novo.xml&#8221;) Imprima na tela para ver se foi carregado mesmo e verifique o conteudo &#62;&#62;&#62; print xml0.toxml() &#60;?xml version=&#8221;1.0&#8243; ?&#62;&#60;usuarios&#62;&#60;user id=&#8221;1&#8243; login=&#8221;bruno-tuy&#8221;&#62;Bruno Tuy&#60;/user&#62;&#60;user id=&#8221;2&#8243; login=&#8221;bruno.reis&#8221;&#62;Bruno Reis&#60;/user&#62;&#60;user id=&#8221;3&#8243; login=&#8221;lucas.mendes&#8221;&#62;Lucas Mendes&#60;/user&#62;&#60;user id=&#8221;4&#8243; login=&#8221;bruno&#8221;&#62;_Bruno_&#60;/user&#62;&#60;/usuarios&#62; Aqui ele retornou desse jeito ai, sem quebra de linha e indentação, [...]]]></description>
			<content:encoded><![CDATA[<p>Ler e editar um xml Existente</p>
<p>Carregar o objeto.</p>
<div class="term"><strong>&gt;&gt;&gt; xml0 = xml.dom.minidom.parse(&#8220;c:\\teste\\novo.xml&#8221;)</strong></div>
<p>Imprima na tela para ver se foi carregado mesmo e verifique o conteudo</p>
<div class="term"><strong>&gt;&gt;&gt; print xml0.toxml()</strong><br />
&lt;?xml version=&#8221;1.0&#8243; ?&gt;&lt;usuarios&gt;&lt;user id=&#8221;1&#8243; login=&#8221;bruno-tuy&#8221;&gt;Bruno Tuy&lt;/user&gt;&lt;user id=&#8221;2&#8243; login=&#8221;bruno.reis&#8221;&gt;Bruno Reis&lt;/user&gt;&lt;user id=&#8221;3&#8243; login=&#8221;lucas.mendes&#8221;&gt;Lucas Mendes&lt;/user&gt;&lt;user id=&#8221;4&#8243; login=&#8221;bruno&#8221;&gt;_Bruno_&lt;/user&gt;&lt;/usuarios&gt;</div>
<p>Aqui ele retornou desse jeito ai, sem quebra de linha e indentação, é a maneira ideal de salvar o xml pois assim o programa trabalha com ele perfeitamente bem, se o seu retornou um xml com quebras de linhas e indentação vai acontecer o seguinte, o python vai entender que o enter(\n) são filhos também, ai você vai ter que tratar isso.</p>
<p>Agora vamos ler os atributos da primeira tag do xml.</p>
<div class="term"><strong>&gt;&gt;&gt; print &#8220;Id:    &#8221; + xml0.firstChild.childNodes[0].getAttribute(&#8220;id&#8221;)<br />
</strong>Id:    1<br />
<strong>&gt;&gt;&gt; print &#8220;Login: &#8221; + xml0.firstChild.childNodes[0].getAttribute(&#8220;login&#8221;)<br />
</strong>Login: bruno-tuy<br />
<strong>&gt;&gt;&gt; print &#8220;Nome:  &#8221; + xml0.firstChild.childNodes[0].firstChild.data<br />
</strong>Nome:  Bruno Tuy</div>
<p>Imprimir o atributo login da tag de id 2</p>
<div class="term"><strong>&gt;&gt;&gt; for filho in xml0.firstChild.getElementsByTagName(&#8220;user&#8221;):<br />
if (filho.getAttribute(&#8220;id&#8221;) == &#8220;2&#8243;):<br />
print filho.getAttribute(&#8220;login&#8221;)</strong></p>
<p>bruno.reis</p></div>
<p>&#8211; getElementsByTagName(&#8220;user&#8221;) pode ser substituido por childNodes</p>
<p>Apagar alguma tag</p>
<div class="term"><strong>&gt;&gt;&gt; xml0.firstChild.removeChild( xml0.firstChild.childNodes[2] )</strong><br />
&lt;DOM Element: user at 0x23c16c0&gt;<br />
<strong>&gt;&gt;&gt; print xml0.toxml()<br />
</strong>&lt;?xml version=&#8221;1.0&#8243; ?&gt;&lt;usuarios&gt;&lt;user id=&#8221;1&#8243; login=&#8221;bruno-tuy&#8221;&gt;Bruno Tuy&lt;/user&gt;&lt;user id=&#8221;2&#8243; login=&#8221;bruno.reis&#8221;&gt;Bruno Reis&lt;/user&gt;&lt;user id=&#8221;4&#8243; login=&#8221;bruno&#8221;&gt;_Bruno_&lt;/user&gt;&lt;/usuarios&gt;</div>
<p>&#8211; Repare que o usuario com id 3 foi removido</p>
<p>Mudar atributos de uma tag</p>
<div class="term"><strong>&gt;&gt;&gt; xml0.firstChild.childNodes[0].setAttribute(&#8220;login&#8221;, &#8220;bruno.tuy&#8221;)<br />
&gt;&gt;&gt; print xml0.toxml()</strong></p>
<p>&lt;?xml version=&#8221;1.0&#8243; ?&gt;&lt;usuarios&gt;&lt;user id=&#8221;1&#8243; login=&#8221;bruno.tuy&#8221;&gt;Bruno Tuy&lt;/user&gt;&lt;user id=&#8221;2&#8243; login=&#8221;bruno.reis&#8221;&gt;Bruno Reis&lt;/user&gt;&lt;user id=&#8221;4&#8243; login=&#8221;bruno&#8221;&gt;_Bruno_&lt;/user&gt;&lt;/usuarios&gt;</p></div>
<p>&#8211; Veja que o atributo login da tag com id 1 foi alterado.</p>
<p>Mudar texto contido entre as tags</p>
<div class="term"><strong> &gt;&gt;&gt; xml0.firstChild.childNodes[2].firstChild.nodeValue = &#8220;Bruno&#8221;</strong><br />
<strong>&gt;&gt;&gt; print xml0.toxml()</strong><br />
&lt;?xml version=&#8221;1.0&#8243; ?&gt;&lt;usuarios&gt;&lt;user id=&#8221;1&#8243; login=&#8221;bruno.tuy&#8221;&gt;Bruno Tuy&lt;/user&gt;&lt;user id=&#8221;2&#8243; login=&#8221;bruno.reis&#8221;&gt;Bruno Reis&lt;/user&gt;&lt;user id=&#8221;4&#8243; login=&#8221;bruno&#8221;&gt;Bruno&lt;/user&gt;&lt;/usuarios&gt;</div>
<p>salvar tudo</p>
<div class="term"><strong> &gt;&gt;&gt; arq = file(&#8220;c:\\teste\\novo.xml&#8221;, &#8220;w&#8221;)<br />
&gt;&gt;&gt; xml0.writexml(arq)<br />
&gt;&gt;&gt; arq.close()</strong></div>
]]></content:encoded>
			<wfw:commentRss>http://bruno.tuy.com.br/blog/?feed=rss2&#038;p=86</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Criar xml com Python + xml.dom</title>
		<link>http://bruno.tuy.com.br/blog/?p=77</link>
		<comments>http://bruno.tuy.com.br/blog/?p=77#comments</comments>
		<pubDate>Mon, 14 Dec 2009 19:49:34 +0000</pubDate>
		<dc:creator>BrunoTuy</dc:creator>
				<category><![CDATA[Programação]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://bruno.tuy.com.br/blog/?p=77</guid>
		<description><![CDATA[Post rapido para salvar algo que fiz hoje e preciso lembrar durante um bom tempo. Trabalhando com XML usando python. Criando um XML. &#62;&#62;&#62; NewXml = xml.dom.minidom.Document() Criando o elementos root do XML(TAGS). &#62;&#62;&#62; tag = NewXml.createElement(&#8220;lista&#8221;) &#62;&#62;&#62; NewXml.appendChild(tag) Criando elementos do XML(TAGS). &#62;&#62;&#62; tag = NewXml.createElement(&#8220;usuario&#8221;) Criando atributos &#62;&#62;&#62; tag.setAttribute(&#8220;login&#8221;, &#8220;burno.tuy&#8221;) &#62;&#62;&#62; tag.setAttribute(&#8220;senha&#8221;, &#8220;123456&#8243;) [...]]]></description>
			<content:encoded><![CDATA[<p>Post rapido para salvar algo que fiz hoje e preciso lembrar durante um bom tempo. Trabalhando com XML usando python.</p>
<p>Criando um XML.</p>
<div class="term"><strong>&gt;&gt;&gt; NewXml = xml.dom.minidom.Document()</strong></div>
<p>Criando o elementos root do XML(TAGS).</p>
<div class="term"><strong>&gt;&gt;&gt; tag = NewXml.createElement(&#8220;lista&#8221;)<br />
&gt;&gt;&gt; NewXml.appendChild(tag)</strong></div>
<p>Criando elementos do XML(TAGS).</p>
<div class="term"><strong>&gt;&gt;&gt; tag = NewXml.createElement(&#8220;usuario&#8221;)</strong></div>
<p>Criando atributos</p>
<div class="term"><strong>&gt;&gt;&gt; tag.setAttribute(&#8220;login&#8221;, &#8220;burno.tuy&#8221;)<br />
&gt;&gt;&gt; tag.setAttribute(&#8220;senha&#8221;, &#8220;123456&#8243;)</strong></div>
<p>Colocar um texto entre as tags.</p>
<div class="term"><strong>&gt;&gt;&gt; texto = NewXml.createTextNode(&#8220;Bruno Tuy&#8221;)<br />
&gt;&gt;&gt; tag.appendChild(texto)</strong></div>
<p>Agora colocar o elemento criado no XML</p>
<div class="term"><strong>&gt;&gt;&gt; NewXml.firstChild.appendChild(tag)</strong></div>
<p>Só pra confirmar é bom imprimir o xml</p>
<div class="term"><strong>&gt;&gt;&gt; print NewXml.toxml()</strong></div>
<p>Agora vamos salvar</p>
<div class="term"><strong>&gt;&gt;&gt; arq = file(&#8220;c:\\teste\\novo.xml&#8221;, &#8220;w&#8221;)<br />
&gt;&gt;&gt; NewXml.writexml(arq)<br />
&gt;&gt;&gt; arq.close()</strong></div>
<p>O arquivo já vai aparecer la salvo, mais meio complicado pra leitura, se quiser deixar ele mais legível pode usar alguns parâmetros no write. Exemplo:</p>
<div class="term"><strong>&gt;&gt;&gt; NewXml.writexml(arq, &#8221;  &#8220;, &#8221;  &#8220;, &#8220;\n&#8221;, &#8220;UTF-8&#8243;)</strong></div>
<p>- Primeiro argumento o arquivo<br />
- Segundo a indentação inicial.<br />
- Terceiro a indentação adicional.<br />
- Quarto argumento o que vai ser usado no final da tag.<br />
- Quinto a codificação</p>
]]></content:encoded>
			<wfw:commentRss>http://bruno.tuy.com.br/blog/?feed=rss2&#038;p=77</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Configurando MRTG para gerar grafico de uso de banda</title>
		<link>http://bruno.tuy.com.br/blog/?p=72</link>
		<comments>http://bruno.tuy.com.br/blog/?p=72#comments</comments>
		<pubDate>Wed, 02 Sep 2009 18:44:18 +0000</pubDate>
		<dc:creator>BrunoTuy</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[Servidor]]></category>
		<category><![CDATA[crond]]></category>
		<category><![CDATA[mrtg]]></category>
		<category><![CDATA[snmp]]></category>

		<guid isPermaLink="false">http://bruno.tuy.com.br/blog/?p=72</guid>
		<description><![CDATA[Somente um lembrete para os passos da configuração&#8230; Vamos partir do ponto que sua maquina já esta com snmp configurando e funcionando. Para gerar o arquivo de configuração do mrtg devemos usar: $ cfgmaker –global ‘WorkDir: /var/www/mrtg’ –output /etc/mrtg/mrtg.cfg public@localhost Onde: - WorkDir é pasta que ficara salvo todos os arquivos referente aos gráficos. - [...]]]></description>
			<content:encoded><![CDATA[<p>Somente um lembrete para os passos da configuração&#8230;</p>
<p>Vamos partir do ponto que sua maquina já esta com snmp configurando e funcionando.</p>
<p>Para gerar o arquivo de configuração do mrtg devemos usar:</p>
<div class='term'>$ cfgmaker –global ‘WorkDir: /var/www/mrtg’ –output /etc/mrtg/mrtg.cfg public@localhost</div>
<p>Onde:<br />
- WorkDir é pasta que ficara salvo todos os arquivos referente aos gráficos.<br />
- output o arquivo de configuração do mrtg.<br />
- public@localhost é a comunidade @ maquina. Parâmetro configurado no snmp.</p>
<p>Esse comando vai gerar o arquivo de configuração com todas as interfaces de rede da maquina. Depois você pode ir nesse arquivo e editar, deixar somente o que interessa para você.</p>
<p>Agora vamos gerar o index.html da pasta:</p>
<div class='term'>$ indexmaker –output=/var/www/html/mrtg/index.html /etc/mrtg/mrtg.cfg</div>
<p>Agora verifique se existe um arquivo chamado mrtf.conf na pasta /etc/httpd/conf.d/ se existir apague.<br />
Entre na pasta /var/www/html e crie um link simbólico para a pasta do mrtg:</p>
<div class='term'>$ ln -s /var/www/mrtg /var/www/html/mrtg</div>
<p>Faça um agendamento no cron para que o gráfico seja atualizado de tempos em tempos:</p>
<div class='term'>$ contab -e</div>
<p>Na ultima linha adicione:<br />
*/15 * * * * env LANG=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg</p>
<p>Essa linha agenda para a cada 15 minutos executar o mrtg<br />
Salve e pode da um restart no crond</p>
]]></content:encoded>
			<wfw:commentRss>http://bruno.tuy.com.br/blog/?feed=rss2&#038;p=72</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

