<?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>Bicosyes - since evermore... &#187; Python</title>
	<atom:link href="http://bicosyes.com/category/programacion/python/feed/" rel="self" type="application/rss+xml" />
	<link>http://bicosyes.com</link>
	<description></description>
	<lastBuildDate>Sat, 06 Mar 2010 20:03:06 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Autocompletado de métodos en la consola de python</title>
		<link>http://bicosyes.com/autocompletado-de-metodos-en-la-consola-de-python/</link>
		<comments>http://bicosyes.com/autocompletado-de-metodos-en-la-consola-de-python/#comments</comments>
		<pubDate>Thu, 15 May 2008 15:20:24 +0000</pubDate>
		<dc:creator>blaxter</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[autocomplete]]></category>
		<category><![CDATA[console]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://bicosyes.com/autocompletado-de-metodos-en-la-consola-de-python/</guid>
		<description><![CDATA[Estemos en el lenguaje que estemos, algo totalmente crucial es tener una consola para hacer pruebas rápidas. Si tú lenguaje no la tiene, es una puta mierda, que lo sepas. Una característica interesante es tener autocompletado de métodos, para ahorrarnos tener que mirar continuamente a la referencia. En python, podemos activar esta opción muy fácilmente [...]]]></description>
			<content:encoded><![CDATA[<p>Estemos en el lenguaje que estemos, algo totalmente crucial es tener una <strong>consola</strong> para hacer pruebas rápidas. Si tú lenguaje no la tiene, es una puta mierda, que lo sepas. Una característica interesante es tener <strong>autocompletado</strong> de métodos, para ahorrarnos tener que mirar continuamente a la referencia. En <strong>python</strong>, podemos activar esta opción muy fácilmente en la consola normal ejecutando lo siguiente:</p>
<pre class="python"><span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">readline</span>, <span style="color: #dc143c;">rlcompleter</span>
<span style="color: #dc143c;">readline</span>.<span style="color: black;">parse_and_bind</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;tab: complete&quot;</span><span style="color: black;">&#41;</span></pre>
<p>Como ejecutarlo cada vez no es una opción, ponemos esas líneas en un fichero <strong>~/.pythonrc.py</strong> (por ejemplo) y añadimos a nuestro <em>~/.bashrc</em> una línea indicando que se ejecute al inicio</p>
<pre class="bash">$ &lt;&lt; EOF <span style="color: #c20cb9; font-weight: bold;">cat</span> &gt; ~/.pythonrc.py
&gt; import readline, rlcompleter
&gt; readline.parse_and_bind<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #ff0000;">&quot;tab: complete&quot;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
&gt; EOF
$ <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;export PYTHONSTARTUP=~/.pythonrc.py&quot;</span> &gt;&gt; ~/.bashrc</pre>
<p>Ya podemos iniciar una consola y tener autocompletado como debe ser <img src='http://bicosyes.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<pre class="python">$ python
&gt;&gt;&gt; <span style="color: #ff7700;font-weight:bold;">class</span> foo:
...    <span style="color: #ff7700;font-weight:bold;">def</span> ves_que_bien<span style="color: black;">&#40;</span><span style="color: #008000;">self</span><span style="color: black;">&#41;</span>:
...       <span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #483d8b;">&quot;¡perrea! ¡perrea!&quot;</span>
...
&gt;&gt;&gt; bar = foo<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
&gt;&gt;&gt; bar.&lt;TAB&gt;
bar.__class__     bar.__doc__       bar.__module__    bar.<span style="color: black;">ves_que_bie</span></pre>
<p>Por cierto, otra opción es instalarse <a href="http://ipython.scipy.org/moin/"><strong>ipython</strong></a>, una consola mejorada. Pero ya estás dependiendo de tenerla instalada, la consola python estará siempre, si o si.</p>
<img src="http://bicosyes.com/?ak_action=api_record_view&id=630&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://bicosyes.com/autocompletado-de-metodos-en-la-consola-de-python/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Peticiones HTTP con python</title>
		<link>http://bicosyes.com/peticiones-http-con-python/</link>
		<comments>http://bicosyes.com/peticiones-http-con-python/#comments</comments>
		<pubDate>Wed, 18 Oct 2006 20:43:18 +0000</pubDate>
		<dc:creator>blaxter</dc:creator>
				<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://bicosyes.com/peticiones-http-con-python/</guid>
		<description><![CDATA[Aunque mis primeras impresiones con python no han sido muy placenteras, he de reconocer que es un lenguaje que tiene algo especial. Una mezcla entre la "libertad" de C o perl y la "seriedad" de Java o Ada (por decir algo xD). Creo que voy a usarlo más a menudo pues me está gustando cada [...]]]></description>
			<content:encoded><![CDATA[<p><img id="image335" src="http://bicosyes.com/wp-content/python-logo.jpg" alt="python-logo.jpg" class="flota" />Aunque mis primeras impresiones con python no han sido muy placenteras, he de reconocer que es un lenguaje que tiene algo especial. Una mezcla entre la "libertad" de C o perl y la "seriedad" de Java o Ada (por decir algo xD). Creo que voy a usarlo más a menudo pues me está gustando cada vez más. <br />&nbsp;<br />Bueno a lo que vamos, como mandar una petición POST (o GET) HTTP con python. Como comenté hace un tiempo <a href="http://bicosyes.com/peticiones-http-con-perl/">como hacer esto con perl</a> (aunque usé sockets en vez de un modulo), y ya lo tengo hecho en un script, me ha parecido bien poner el ejemplo:</p>
<blockquote><p><code>
# paquetes necesarios
import httplib, urllib
# Host y archivo
host = &quot;www.UNApagina.com&quot;
target = &quot;/un/arhicvo/index.php&quot;
# cabeceras HTTP usando sintaxis  NOMBRE:VALOR
# si haces un GET, deberías modificar o eliminar la primera cabecera 
headers = {
  &quot;Content-type&quot;: &quot;application/x-www-form-urlencoded&quot;, 
  &quot;Accept&quot;: &quot;application/xhtml+xml,text/html;q=0.9,text/plain;&quot;,
  &quot;Referer&quot;: &quot;http://www.UnApagina.com/login/ok.php&quot;
}
# parametros POST, si solo quieres una peticion get no hacen falta
params = urllib.urlencode({
  &#039;user&#039;: &#039;paco&#039;,
  &#039;accion&#039;: &#039;gobernarelmundo&#039;
})
# conectamos con el host remoto
conn = httplib.HTTPConnection(host)
# mandamos la peticion POST con los parametros y las cabeceras anteriores
# para un get sería lo mismo pero poniendo get y sin parametros
conn.request(&quot;POST&quot;, target, params, headers)
# vemos que narices ha pasado en la petición
response = conn.getresponse()
print response.status, response.reason
# y si todo ha ido bien ahora imprimiremos los resultados :)
data = response.read()
print data
conn.close()</code></p></blockquote>
<p>&nbsp;<br />Según lo que deseemos hacer, casi seguro que será mejor encapsular todo el código anterior en una clase parametrizada, pero eso ya es dependiente del contexto donde estemos <img src='http://bicosyes.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<img src="http://bicosyes.com/?ak_action=api_record_view&id=336&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://bicosyes.com/peticiones-http-con-python/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

