<?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>Matheus Bratfisch &#187; python</title>
	<atom:link href="http://www.matbra.com/category/python/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.matbra.com</link>
	<description>&#34;Cogito ergo sum&#34;</description>
	<lastBuildDate>Wed, 28 Jul 2010 20:28:40 +0000</lastBuildDate>
	<language>pt</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Mudança de base numérica com Python.</title>
		<link>http://www.matbra.com/2009/10/19/mudanca-de-base-numerica-com-python/</link>
		<comments>http://www.matbra.com/2009/10/19/mudanca-de-base-numerica-com-python/#comments</comments>
		<pubDate>Mon, 19 Oct 2009 03:20:37 +0000</pubDate>
		<dc:creator>Matheus (X-warrior) Bratfisch</dc:creator>
				<category><![CDATA[Aprendendo]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://www.matbra.com/?p=594</guid>
		<description><![CDATA[Boa noite, Algum tempo já venho pensando em mudar o método utilizado pelo Little URL, já que o mesmo atualmente cria strings aleatórias para cada registro, porém seria melhor criar os endereços utilizando uma base (16,32,64) pois assim não corresse o risco do gerador entrar em loop já que cada endereço registrado possui um número [...]]]></description>
			<content:encoded><![CDATA[<p>Boa noite, </p>
<p>Algum tempo já venho pensando em mudar o método utilizado pelo <a href="http://www.matbra.com/2009/07/04/graficos-para-seu-tiny-url/">Little URL</a>, já que o mesmo atualmente cria strings aleatórias para cada registro, porém seria melhor criar os endereços utilizando uma base (16,32,64) pois assim não corresse o risco do gerador entrar em loop já que cada endereço registrado possui um número único no banco de dados. (Chave primária). Hoje uma amiga perguntou como ela faria um programa para mudar a base de um número manualmente, aproveitei que ela me lembrou disso e resolvi fazer. </p>
<div class="codesnip-container" >
<div class="python codesnip" style="font-family:monospace;"><span class="kw1">def</span> convert<span class="br0">&#40;</span><span class="kw3">decimal</span>,newBase,<span class="kw2">str</span>,letters<span class="br0">&#41;</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="kw3">decimal</span> <span class="sy0">&gt;</span>= newBase:<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; x = <span class="kw3">decimal</span> <span class="sy0">%</span> newBase<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; y = <span class="kw3">decimal</span> / newBase &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">str</span> = letters<span class="br0">&#91;</span>x<span class="br0">&#93;</span> + <span class="kw2">str</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> y <span class="sy0">&lt;</span> newBase:<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">str</span> = letters<span class="br0">&#91;</span>y<span class="br0">&#93;</span> + <span class="kw2">str</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> convert<span class="br0">&#40;</span>y,newBase,<span class="kw2">str</span>,letters<span class="br0">&#41;</span> &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">else</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="kw2">len</span><span class="br0">&#40;</span><span class="kw2">str</span><span class="br0">&#41;</span> == 0:<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">str</span> = letters<span class="br0">&#91;</span><span class="kw3">decimal</span><span class="br0">&#93;</span> + <span class="kw2">str</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="kw2">str</span><br />
let = <span class="st0">&quot;0123456789ABCDEF&quot;</span><br />
<span class="kw1">print</span> convert<span class="br0">&#40;</span><span class="nu0">17</span>,<span class="nu0">16</span>,<span class="st0">&quot;&quot;</span>,let<span class="br0">&#41;</span></div>
</div>
<p>A váriavel let, são os valores utilizados na criação da base. Por exemplo ao se utilizar uma base binária, os valores deveriam ser 01 e assim consecutivamente. </p>
<p>Espero que goste,<br />
Matheus</p>
]]></content:encoded>
			<wfw:commentRss>http://www.matbra.com/2009/10/19/mudanca-de-base-numerica-com-python/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Twitter Sync e Fun Text novos plugins para o Emesene.</title>
		<link>http://www.matbra.com/2009/10/06/twitter-sync-e-fun-text-novos-plugins-para-o-emesene/</link>
		<comments>http://www.matbra.com/2009/10/06/twitter-sync-e-fun-text-novos-plugins-para-o-emesene/#comments</comments>
		<pubDate>Tue, 06 Oct 2009 22:28:03 +0000</pubDate>
		<dc:creator>Matheus (X-warrior) Bratfisch</dc:creator>
				<category><![CDATA[Aprendendo]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://www.matbra.com/?p=571</guid>
		<description><![CDATA[Boa noite, Alguns dias atrás resolvi fazer um plugin para o Emesene de sincronização das mensagens de status com as mensagens do perfil. Então pesquisei um pouco e fiz de uma maneira simples. Navegando pelo fórum do Emesene certo dia um usuário deu a sugestão para implementarmos um Plugin onde apartir de um certo comando [...]]]></description>
			<content:encoded><![CDATA[<p>Boa noite, </p>
<p>Alguns dias atrás resolvi fazer um plugin para o Emesene de sincronização das mensagens de status com as mensagens do perfil. Então pesquisei um pouco e fiz de uma maneira simples.</p>
<p>Navegando pelo fórum do Emesene certo dia um usuário deu a sugestão para implementarmos um Plugin onde apartir de um certo comando como /flip ou /l33t ele transformaria as mensagens, o primeiro faz a mensagem ficar de cabeça pra baixo e da direita pra esquerda já o segundo é a transformação de letras por números. </p>
<p>Espero que gostem,<br />
Matheus</p>
]]></content:encoded>
			<wfw:commentRss>http://www.matbra.com/2009/10/06/twitter-sync-e-fun-text-novos-plugins-para-o-emesene/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Conectar ao SSH pelo Python.</title>
		<link>http://www.matbra.com/2009/09/02/conectar-ao-ssh-pelo-python/</link>
		<comments>http://www.matbra.com/2009/09/02/conectar-ao-ssh-pelo-python/#comments</comments>
		<pubDate>Wed, 02 Sep 2009 23:47:00 +0000</pubDate>
		<dc:creator>Matheus (X-warrior) Bratfisch</dc:creator>
				<category><![CDATA[python]]></category>
		<category><![CDATA[pexpect]]></category>
		<category><![CDATA[ssh]]></category>

		<guid isPermaLink="false">http://www.matbra.com/?p=415</guid>
		<description><![CDATA[Boa noite, Ontem comentei sobre a utilização do pexpect para executar comandos e se comunicar com eles. Hoje brinquei um pouco mais com essa biblioteca e fiz um exemplo de conexão e enviar o comando &#8216;uptime&#8217; para o servidor. Só um exemplo simples, mas acredito que já da uma idéia de como você pode mecher [...]]]></description>
			<content:encoded><![CDATA[<p>Boa noite,</p>
<p>Ontem comentei sobre a utilização do pexpect para executar comandos e se comunicar com eles. Hoje brinquei um pouco mais com essa biblioteca e fiz um exemplo de conexão e enviar o comando &#8216;uptime&#8217; para o servidor. Só um exemplo simples, mas acredito que já da uma idéia de como você pode mecher com essa biblioteca.</p>
<p>Primeiramente você deve ter a biblioteca pexpect instalada. Você pode obte-la em <a href="http://sourceforge.net/projects/pexpect/" target="_blank">http://sourceforge.net/projects/pexpect/</a> e para instalar você deve digitar</p>
<p>$ sudo python setup.py install</p>
<p>Após a mesma instalada você já pode se divertir. O pequeno script que fiz para testar foi o seguinte:</p>
<div class="codesnip-container" >
<div class="python codesnip" style="font-family:monospace;"><span class="kw1">import</span> pexpect</p>
<p><span class="kw1">class</span> SSH<span class="br0">&#40;</span><span class="br0">&#41;</span>:<br />
<span class="kw1">def</span> connect<span class="br0">&#40;</span><span class="kw2">self</span><span class="br0">&#41;</span>:<br />
x = <span class="kw2">True</span><br />
sshConnection = pexpect.<span class="me1">spawn</span><span class="br0">&#40;</span><span class="st0">&#8216;ssh -l matheus -p 22 192.168.0.254&#8242;</span><span class="br0">&#41;</span><br />
sshConnection.<span class="me1">expect</span><span class="br0">&#40;</span><span class="st0">&#8216;matheus@192.168.0.254<span class="es0">\&#8217;</span>s password:&#8217;</span><span class="br0">&#41;</span><br />
sshConnection.<span class="me1">sendline</span><span class="br0">&#40;</span><span class="st0">&#8216;senha&#8217;</span><span class="br0">&#41;</span><br />
<span class="kw1">while</span> <span class="kw2">True</span>:<br />
<span class="kw1">print</span> sshConnection.<span class="kw3">readline</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="kw1">if</span> x <span class="kw1">is</span> <span class="kw2">True</span>:<br />
sshConnection.<span class="me1">sendline</span><span class="br0">&#40;</span><span class="st0">&#8216;uptime&#8217;</span><span class="br0">&#41;</span><br />
x = <span class="kw2">False</span><br />
sshConnection.<span class="kw3">readline</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></p>
<p>s = SSH<span class="br0">&#40;</span><span class="br0">&#41;</span><br />
s.<span class="me1">connect</span><span class="br0">&#40;</span><span class="br0">&#41;</span></div>
</div>
<p>Bom, o código é auto-explicativo e caso você tenha algum problema para entender, não hesite em entrar em contato,<br />
Matheus Bratfisch</p>
<p>PS: Caso tenha algum problema execute o seguinte comando: $ sudo apt-get install python-dev</p>
<p>PS2: Maldita indentação. Caso você deseje baixe aqui o <a href='http://www.matbra.com/wp-content/uploads/exemplo-conectar-ssh-em-python.py'>Conectar ao SSH pelo Python</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.matbra.com/2009/09/02/conectar-ao-ssh-pelo-python/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Executando comandos no terminal e passando parametros em Python.</title>
		<link>http://www.matbra.com/2009/09/02/executando-comandos-no-terminal-e-passando-parametros-em-python/</link>
		<comments>http://www.matbra.com/2009/09/02/executando-comandos-no-terminal-e-passando-parametros-em-python/#comments</comments>
		<pubDate>Wed, 02 Sep 2009 04:54:51 +0000</pubDate>
		<dc:creator>Matheus (X-warrior) Bratfisch</dc:creator>
				<category><![CDATA[python]]></category>
		<category><![CDATA[pexpect]]></category>

		<guid isPermaLink="false">http://www.matbra.com/?p=413</guid>
		<description><![CDATA[Boa noite, Estou a alguns dias procurando um método para apartir do Python conseguir executar programas na shell e passar parametros (&#8220;responder&#8221; as perguntas desse programa.). Por exemplo, você deseja fazer um script em python que automaticamente se autentica em um servidor ssh, ou seja inicia o SSH e passa a senha para o mesmo [...]]]></description>
			<content:encoded><![CDATA[<p>Boa noite, </p>
<p>Estou a alguns dias procurando um método para apartir do Python conseguir executar programas na shell e passar parametros (&#8220;responder&#8221; as perguntas desse programa.). Por exemplo, você deseja fazer um script em python que automaticamente se autentica em um servidor ssh, ou seja inicia o SSH e passa a senha para o mesmo automaticamente. Após alguns tempos de pesquisa, descobri o <a href="http://docs.python.org/library/subprocess.html" target="_blank">subprocess.Popen</a>, porém o mesmo não conseguia matar minha necessidade, quando se tratava de inserir as senhas as mesmas não iam. Li no <a href="http://www.gossamer-threads.com/lists/python/python/593997" target="_blank">gossamer-threads</a> que o problema é devido ao SSH não aceitar conteudo para senhas provenientes do stdin, somente do pty então me parece que é necessário algum tipo de simulação. No mesmo tópico deste forum recomendam a utilização da biblioteca <a href="http://sourceforge.net/projects/pexpect/">pexpect</a> e com a mesma obtive sucesso, não tive tempo de brincar o suficiente com ela, mas do recado básico e inicial ela deu conta. </p>
<p>Quem sabe em alguns dias não posto alguns exemplos, mas fica aqui a dica para você que possui problema semelhante. </p>
<p>Att,<br />
Matheus</p>
]]></content:encoded>
			<wfw:commentRss>http://www.matbra.com/2009/09/02/executando-comandos-no-terminal-e-passando-parametros-em-python/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
