<?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"
	>

<channel>
	<title>BatU's Stack</title>
	<atom:link href="http://blog.inbatu.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.inbatu.com</link>
	<description>piling up experiences...</description>
	<pubDate>Mon, 19 Nov 2007 00:36:45 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.1</generator>
	<language>es</language>
			<item>
		<title>Codeigniter - Framework PHP</title>
		<link>http://blog.inbatu.com/2007/08/08/codeigniter-framework-php/</link>
		<comments>http://blog.inbatu.com/2007/08/08/codeigniter-framework-php/#comments</comments>
		<pubDate>Wed, 08 Aug 2007 00:18:09 +0000</pubDate>
		<dc:creator>batu</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<category><![CDATA[Programación]]></category>

		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://blog.inbatu.com/2007/08/08/codeigniter-framework-php/</guid>
		<description><![CDATA[He estado probando estos días el framework PHP (a la rails) CodeIgniter. De momento la impresión es buena. En mi línea, pongo un ejemplo.
Modificando un par de ficheros de configuración o tres (un par de líneas en cada uno) y creando los siguientes dos ficheros he obtenido una sencilla aplicación que muestra las entradas de [...]]]></description>
			<content:encoded><![CDATA[<p>He estado probando estos días el framework PHP (a la rails) <a href="http://www.codeigniter.com" onclick="javascript:pageTracker._trackPageview ('/outbound/www.codeigniter.com');">CodeIgniter</a>. De momento la impresión es buena. En mi línea, pongo un ejemplo.</p>
<p>Modificando un par de ficheros de configuración o tres (un par de líneas en cada uno) y creando los siguientes dos ficheros he obtenido una sencilla aplicación que muestra las entradas de mi blog de wordpress.</p>
<p>El fichero del controlador (<tt>controllers/blog.php</tt>):</p>
<pre class="php">&nbsp;
&nbsp;
<span style="color: #000000; font-weight: bold;">class</span> Blog <span style="color: #000000; font-weight: bold;">extends</span> Controller <span style="color: #66cc66;">&#123;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">function</span> Blog<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
		parent::<span style="color: #006600;">Controller</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
		<span style="color: #0000ff;">$this</span>-&gt;<span style="color: #006600;">load</span>-&gt;<span style="color: #006600;">scaffolding</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'bb_posts'</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #66cc66;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">function</span> index<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
&nbsp;
		<span style="color: #0000ff;">$data</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'title'</span><span style="color: #66cc66;">&#93;</span> = <span style="color: #ff0000;">&quot;BatU's Stack&quot;</span>;
		<span style="color: #0000ff;">$data</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'heading'</span><span style="color: #66cc66;">&#93;</span> = <span style="color: #ff0000;">&quot;piling up experiences...&quot;</span>;
		<span style="color: #0000ff;">$this</span>-&gt;<span style="color: #006600;">db</span>-&gt;<span style="color: #006600;">orderby</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;post_date&quot;</span>, <span style="color: #ff0000;">&quot;desc&quot;</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #0000ff;">$data</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'query'</span><span style="color: #66cc66;">&#93;</span> = <span style="color: #0000ff;">$this</span>-&gt;<span style="color: #006600;">db</span>-&gt;<span style="color: #006600;">get</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'bb_posts'</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
		<span style="color: #0000ff;">$this</span>-&gt;<span style="color: #006600;">load</span>-&gt;<span style="color: #006600;">view</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'blog_view'</span>, <span style="color: #0000ff;">$data</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span>
&nbsp;</pre>
<p>El fichero de la vista correspondiente (<tt>views/blog_view.php</tt>):</p>
<pre>&nbsp;
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot;
	&quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html&gt;
&lt;head&gt;
	&lt;meta http-equiv=&quot;Content-type&quot; content=&quot;text/html;
        charset=utf-8&quot;&gt;
	&lt;title&gt;Blog&lt;/title&gt;
&lt;link rel=&quot;stylesheet&quot; href=&quot;/bblog/css/style.css&quot;
        type=&quot;text/css&quot; media=&quot;screen&quot; title=&quot;no title&quot;
        charset=&quot;utf-8&quot;&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;div id=&quot;box&quot;&gt;
&lt;div id=&quot;header&quot;&gt;
&lt;h1&gt;&lt;?=$title?&gt;&lt;/h1&gt;
&lt;h2&gt;&lt;?=$heading?&gt;&lt;/h2&gt;
&lt;/div&gt;
&lt;div id=&quot;posts&quot;&gt;
    &lt;?php foreach($query-&gt;result() as $post): ?&gt;
&lt;div class=&quot;post&quot;&gt;
&lt;h3&gt;&lt;?=$post-&gt;post_title?&gt;&lt;/h3&gt;
&lt;div class=&quot;post_content&quot;&gt;
          &lt;?=$post-&gt;post_content?&gt;
        &lt;/div&gt;
&lt;/div&gt;
&nbsp;
    &lt;?php endforeach; ?&gt;
  &lt;/div&gt;
&lt;/div&gt;
&nbsp;
&lt;/body&gt;
&lt;/html&gt;
&nbsp;</pre>
<p>Dejo aquí la URL del ejemplo: <a href="http://testing.inbatu.com/bblog/index.php/blog">http://testing.inbatu.com/bblog/index.php/blog</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.inbatu.com/2007/08/08/codeigniter-framework-php/feed/</wfw:commentRss>
		</item>
		<item>
		<title>imaplib - Ejemplo muy básico</title>
		<link>http://blog.inbatu.com/2007/07/23/imaplib-ejemplo-muy-basico/</link>
		<comments>http://blog.inbatu.com/2007/07/23/imaplib-ejemplo-muy-basico/#comments</comments>
		<pubDate>Mon, 23 Jul 2007 20:29:43 +0000</pubDate>
		<dc:creator>batu</dc:creator>
		
		<category><![CDATA[Programación]]></category>

		<category><![CDATA[Python]]></category>

		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://blog.inbatu.com/2007/07/23/imaplib-ejemplo-muy-basico/</guid>
		<description><![CDATA[Estoy de vuelta con python, que desde antes de examenes no había tocado nada. Y como estoy llegando al final del Learning Python, donde he visto que existe la librería poplib, me ha dado por probar imaplib.
Dejo aquí un sencillo ejemplo que muestra todos los mensajes de un buzón IMAP.
&#160;
#!/usr/bin/python
&#160;
import imaplib, getpass
&#160;
if __name__ == '__main__':
&#160;
	host [...]]]></description>
			<content:encoded><![CDATA[<p>Estoy de vuelta con python, que desde antes de examenes no había tocado nada. Y como estoy llegando al final del Learning Python, donde he visto que existe la librería poplib, me ha dado por probar <code>imaplib</code>.</p>
<p>Dejo aquí un sencillo ejemplo que muestra todos los mensajes de un buzón IMAP.</p>
<pre class="python">&nbsp;
<span style="color: #808080; font-style: italic;">#!/usr/bin/python</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">imaplib</span>, <span style="color: #dc143c;">getpass</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">if</span> __name__ == <span style="color: #483d8b;">'__main__'</span>:
&nbsp;
	host = <span style="color: #008000;">raw_input</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'Host: '</span><span style="color: black;">&#41;</span>
	<span style="color: #dc143c;">user</span> = <span style="color: #008000;">raw_input</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'User: '</span><span style="color: black;">&#41;</span>
	passw = <span style="color: #dc143c;">getpass</span>.<span style="color: #dc143c;">getpass</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'Password: '</span><span style="color: black;">&#41;</span>
&nbsp;
	mail = <span style="color: #dc143c;">imaplib</span>.<span style="color: black;">IMAP4</span><span style="color: black;">&#40;</span>host<span style="color: black;">&#41;</span>
	mail.<span style="color: black;">login</span><span style="color: black;">&#40;</span><span style="color: #dc143c;">user</span>,passw<span style="color: black;">&#41;</span>
	mail.<span style="color: #dc143c;">select</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
&nbsp;
	typ, data = mail.<span style="color: black;">search</span><span style="color: black;">&#40;</span><span style="color: #008000;">None</span>, <span style="color: #483d8b;">'ALL'</span><span style="color: black;">&#41;</span>
	<span style="color: #ff7700;font-weight:bold;">for</span> num <span style="color: #ff7700;font-weight:bold;">in</span> data<span style="color: black;">&#91;</span><span style="color: #ff4500;">0</span><span style="color: black;">&#93;</span>.<span style="color: black;">split</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>:
		typ, data = mail.<span style="color: black;">fetch</span><span style="color: black;">&#40;</span>num, <span style="color: #483d8b;">'(RFC822)'</span><span style="color: black;">&#41;</span>
		<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'<span style="color: #000099; font-weight: bold;">\\</span>n----------------------------------<span style="color: #000099; font-weight: bold;">\\</span>n'</span>,
		<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'Message %s'</span> % num,
		<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'<span style="color: #000099; font-weight: bold;">\\</span>n----------------------------------<span style="color: #000099; font-weight: bold;">\\</span>n'</span>,
		<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'<span style="color: #000099; font-weight: bold;">\\</span>n%s<span style="color: #000099; font-weight: bold;">\\</span>n'</span> % data<span style="color: black;">&#91;</span><span style="color: #ff4500;">0</span><span style="color: black;">&#93;</span><span style="color: black;">&#91;</span><span style="color: #ff4500;">1</span><span style="color: black;">&#93;</span>
		<span style="color: #008000;">raw_input</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'Next message...'</span><span style="color: black;">&#41;</span>
&nbsp;
	mail.<span style="color: black;">close</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
	mail.<span style="color: black;">logout</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
&nbsp;</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.inbatu.com/2007/07/23/imaplib-ejemplo-muy-basico/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Mordiendo la manzana</title>
		<link>http://blog.inbatu.com/2007/06/23/mordiendo-la-manzana/</link>
		<comments>http://blog.inbatu.com/2007/06/23/mordiendo-la-manzana/#comments</comments>
		<pubDate>Sat, 23 Jun 2007 19:25:22 +0000</pubDate>
		<dc:creator>batu</dc:creator>
		
		<category><![CDATA[Personal]]></category>

		<category><![CDATA[apple]]></category>

		<category><![CDATA[macbook]]></category>

		<guid isPermaLink="false">http://blog.inbatu.com/2007/06/23/mordiendo-la-manzana/</guid>
		<description><![CDATA[Después de unos meses sin escribir nada, señal de que tengo poco que contar y que he estado bastante liado este último cuatrimestre, comunico que hace unos días (4) he adquirido un MacBook 13,3 (2.16GHz).
La experiencia está siendo grata. Quizás demasiado pues de momento estoy tirando con MacOSX (ya me he flagelado por ello :P) [...]]]></description>
			<content:encoded><![CDATA[<p>Después de unos meses sin escribir nada, señal de que tengo poco que contar y que he estado bastante liado este último cuatrimestre, comunico que hace unos días (4) he adquirido un MacBook 13,3 (2.16GHz).</p>
<p>La experiencia está siendo grata. Quizás demasiado pues de momento estoy tirando con MacOSX (ya me he flagelado por ello :P) que estoy de exámenes y no es plan de ponerme a trastear para meterle una Ubuntu.</p>
<p>Sobre MacOSX, la verdad la impresión es bastante buena y lo sería aún más si no fuera por el "insignificante detalle" de que su escritorio es software propietario.</p>
<p>Y poco más puedo decir que la mayoría de gente que pueda estar leyendo esto (osea nadie) no sepa sobre estos portátiles. Espero que este nuevo miembro de la familia se porte bien durante su estancia en Irlanda y que haga su papel en mi experiencia erasmus.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.inbatu.com/2007/06/23/mordiendo-la-manzana/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Argument parsing with OptionParser</title>
		<link>http://blog.inbatu.com/2007/03/05/argumentos-mediante-optparser/</link>
		<comments>http://blog.inbatu.com/2007/03/05/argumentos-mediante-optparser/#comments</comments>
		<pubDate>Sun, 04 Mar 2007 23:31:44 +0000</pubDate>
		<dc:creator>batu</dc:creator>
		
		<category><![CDATA[Programación]]></category>

		<category><![CDATA[Python]]></category>

		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://blog.inbatu.com/2007/03/05/argumentos-mediante-optparser/</guid>
		<description><![CDATA[From Python 2.3 we've the module optparse on standard library, which serve us for parse options and arguments passed to our programs, doing it easy and handy.
Here's an example:
&#160;
from optparse import OptionParser
&#160;
if __name__ == '__main__':
    usage = &#34;%prog [options] arg1 arg2&#34;
&#160;
    parser = OptionParser&#40;usage=usage, version=&#34;%prog 1.0&#34;&#41;
    [...]]]></description>
			<content:encoded><![CDATA[<p>From Python 2.3 we've the module <a href="http://docs.python.org/lib/module-optparse.html" onclick="javascript:pageTracker._trackPageview ('/outbound/docs.python.org');">optparse</a> on standard library, which serve us for parse options and arguments passed to our programs, doing it easy and handy.</p>
<p>Here's an example:</p>
<pre class="python">&nbsp;
<span style="color: #ff7700;font-weight:bold;">from</span> <span style="color: #dc143c;">optparse</span> <span style="color: #ff7700;font-weight:bold;">import</span> OptionParser
&nbsp;
<span style="color: #ff7700;font-weight:bold;">if</span> __name__ == <span style="color: #483d8b;">'__main__'</span>:
    usage = <span style="color: #483d8b;">&quot;%prog [options] arg1 arg2&quot;</span>
&nbsp;
    <span style="color: #dc143c;">parser</span> = OptionParser<span style="color: black;">&#40;</span>usage=usage, version=<span style="color: #483d8b;">&quot;%prog 1.0&quot;</span><span style="color: black;">&#41;</span>
    <span style="color: #dc143c;">parser</span>.<span style="color: black;">add_option</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'-v'</span>,<span style="color: #483d8b;">'--verbose'</span>, action=<span style="color: #483d8b;">'store_true'</span>,
                      dest=<span style="color: #483d8b;">'verbose'</span>, <span style="color: #008000;">help</span>=<span style="color: #483d8b;">'shows detailed information'</span><span style="color: black;">&#41;</span>
    <span style="color: #dc143c;">parser</span>.<span style="color: black;">add_option</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'-q'</span>,<span style="color: #483d8b;">'--quiet'</span>, action=<span style="color: #483d8b;">'store_false'</span>,
                      dest=<span style="color: #483d8b;">'verbose'</span>, <span style="color: #008000;">help</span>=<span style="color: #483d8b;">'hides detailed information'</span><span style="color: black;">&#41;</span>
    <span style="color: #dc143c;">parser</span>.<span style="color: black;">add_option</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'-f'</span>,<span style="color: #483d8b;">'--filename'</span>, action=<span style="color: #483d8b;">'store'</span>,
                      dest=<span style="color: #483d8b;">'filename'</span>, <span style="color: #008000;">help</span>=<span style="color: #483d8b;">'name of the file to load'</span><span style="color: black;">&#41;</span>
&nbsp;
    <span style="color: black;">&#40;</span>options, args<span style="color: black;">&#41;</span> = <span style="color: #dc143c;">parser</span>.<span style="color: black;">parse_args</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">if</span> options.<span style="color: black;">verbose</span>:
        <span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">&quot;Extra info enabled&quot;</span>
    <span style="color: #ff7700;font-weight:bold;">else</span>:
        <span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">&quot;Extra info disabled&quot;</span>
    <span style="color: #ff7700;font-weight:bold;">if</span> options.<span style="color: black;">filename</span>:
        <span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">&quot;I'll open&quot;</span>, options.<span style="color: black;">filename</span>, <span style="color: #483d8b;">&quot;file.&quot;</span>
    <span style="color: #ff7700;font-weight:bold;">if</span> args &gt; <span style="color: #ff4500;">0</span>:
        <span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>Arguments:&quot;</span>
        <span style="color: #ff7700;font-weight:bold;">for</span> x <span style="color: #ff7700;font-weight:bold;">in</span> args:
            <span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">&quot;  &quot;</span>,x
&nbsp;</pre>
<p>Let's see some results depending on arguments passed:</p>
<pre>
<b>$ python option.py</b>

Extra info disabled
</pre>
<pre>
<b>$ python option.py -v</b>

Extra info enabled</pre>
<pre>
<b>$ python option.py -h</b>

usage: option.py [options] arg1 arg2

options:
  --version             show program's version number and exit
  -h, --help            show this help message and exit
  -v, --verbose         shows detailed information
  -q, --quiet           hides detailed information
  -f FILENAME, --filename=FILENAME
                        name of the file to load
</pre>
<pre>
<b>$ python option.py -f fichero.txt "First" "Second" "Last argument"</b>

Extra info disabled
I'll open fichero.txt file.

Arguments:
   First
   Second
   Last argument
</pre>
<p>Notice it knows options from arguments, as you can see in the last example.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.inbatu.com/2007/03/05/argumentos-mediante-optparser/feed/</wfw:commentRss>
		</item>
		<item>
		<title>HTML parsing with BeautifulSoup</title>
		<link>http://blog.inbatu.com/2007/02/28/parsear-html-con-beautifulsoup/</link>
		<comments>http://blog.inbatu.com/2007/02/28/parsear-html-con-beautifulsoup/#comments</comments>
		<pubDate>Wed, 28 Feb 2007 18:54:13 +0000</pubDate>
		<dc:creator>batu</dc:creator>
		
		<category><![CDATA[Programación]]></category>

		<category><![CDATA[Python]]></category>

		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://blog.inbatu.com/2007/02/28/parsear-html-con-beautifulsoup/</guid>
		<description><![CDATA[I'm gonna put an example using BeautifulSoup, a Python module which we can parse HTML.
First we've to download the library from here. Once installed, let's see the simple example:
&#160;
from BeautifulSoup import BeautifulSoup
&#160;
html = '''&#60;html&#62;&#60;head&#62;&#60;title&#62;Titulo de la pagina&#60;/title&#62;&#60;/head&#62;
  &#60;body&#62;
&#60;div id=&#34;cabecera&#34;&#62;
&#60;h1&#62;Cabecera&#60;/h1&#62;
&#60;/div&#62;
&#60;div id=&#34;contenido&#34;&#62;
    Vamos a poner una lista.
&#160;
    Lista:
&#60;ul id=&#34;lista1&#34;&#62;
&#60;li&#62;Elemento 1&#60;/li&#62;
&#60;li&#62;Elemento [...]]]></description>
			<content:encoded><![CDATA[<p>I'm gonna put an example using <a href="http://www.crummy.com/software/BeautifulSoup/" onclick="javascript:pageTracker._trackPageview ('/outbound/www.crummy.com');">BeautifulSoup</a>, a Python module which we can parse HTML.</p>
<p>First we've to download the library from <a href="http://www.crummy.com/software/BeautifulSoup/download/BeautifulSoup.tar.gz" onclick="javascript:pageTracker._trackPageview ('/outbound/www.crummy.com');">here</a>. Once installed, let's see the simple example:</p>
<pre class="python">&nbsp;
<span style="color: #ff7700;font-weight:bold;">from</span> BeautifulSoup <span style="color: #ff7700;font-weight:bold;">import</span> BeautifulSoup
&nbsp;
html = <span style="color: #483d8b;">''</span><span style="color: #483d8b;">'&lt;html&gt;&lt;head&gt;&lt;title&gt;Titulo de la pagina&lt;/title&gt;&lt;/head&gt;
  &lt;body&gt;
&lt;div id=&quot;cabecera&quot;&gt;
&lt;h1&gt;Cabecera&lt;/h1&gt;
&lt;/div&gt;
&lt;div id=&quot;contenido&quot;&gt;
    Vamos a poner una lista.
&nbsp;
    Lista:
&lt;ul id=&quot;lista1&quot;&gt;
&lt;li&gt;Elemento 1&lt;/li&gt;
&lt;li&gt;Elemento 2&lt;/li&gt;
&lt;li&gt;Elemento 3&lt;/li&gt;
&lt;li&gt;Elemento 4&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;
&nbsp;
  &lt;/body&gt;
  &lt;/html&gt;'</span><span style="color: #483d8b;">''</span>
&nbsp;
soup = BeautifulSoup<span style="color: black;">&#40;</span>html<span style="color: black;">&#41;</span>
&nbsp;
<span style="color: #808080; font-style: italic;"># Mostramos el titulo de la pagina</span>
<span style="color: #ff7700;font-weight:bold;">print</span> soup.<span style="color: black;">head</span>.<span style="color: black;">title</span>.<span style="color: #dc143c;">string</span>
&nbsp;
<span style="color: #808080; font-style: italic;"># Mostramos la cabecera</span>
<span style="color: #ff7700;font-weight:bold;">print</span> soup.<span style="color: black;">find</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;div&quot;</span>,<span style="color: black;">&#123;</span><span style="color: #483d8b;">&quot;id&quot;</span>:<span style="color: #483d8b;">&quot;cabecera&quot;</span><span style="color: black;">&#125;</span><span style="color: black;">&#41;</span>.<span style="color: black;">contents</span>
&nbsp;
<span style="color: #808080; font-style: italic;"># Mostramos el contenido</span>
contenido = soup.<span style="color: black;">find</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;div&quot;</span>,<span style="color: black;">&#123;</span><span style="color: #483d8b;">&quot;id&quot;</span>:<span style="color: #483d8b;">&quot;contenido&quot;</span><span style="color: black;">&#125;</span><span style="color: black;">&#41;</span>
<span style="color: #ff7700;font-weight:bold;">print</span> contenido.<span style="color: black;">contents</span>
&nbsp;
<span style="color: #808080; font-style: italic;"># Ahora mostramos todos los elementos de lista1</span>
lista = contenido.<span style="color: black;">find</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;ul&quot;</span>,<span style="color: black;">&#123;</span><span style="color: #483d8b;">&quot;id&quot;</span>:<span style="color: #483d8b;">&quot;lista1&quot;</span><span style="color: black;">&#125;</span><span style="color: black;">&#41;</span>
<span style="color: #ff7700;font-weight:bold;">for</span> x <span style="color: #ff7700;font-weight:bold;">in</span> lista:
    <span style="color: #ff7700;font-weight:bold;">print</span> x.<span style="color: #dc143c;">string</span>
&nbsp;</pre>
<p>Instead of a string with html code we can read from an URL on this way:</p>
<pre class="python">&nbsp;
...
<span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">urllib2</span>
&nbsp;
sock = <span style="color: #dc143c;">urllib2</span>.<span style="color: black;">urlopen</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;http://servidor/documento.html&quot;</span><span style="color: black;">&#41;</span>
soup = BeautifulSoup<span style="color: black;">&#40;</span>sock.<span style="color: black;">read</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
...
&nbsp;</pre>
<p>It's a very simple sample, for details read the <a href="http://www.crummy.com/software/BeautifulSoup/documentation.html" onclick="javascript:pageTracker._trackPageview ('/outbound/www.crummy.com');">BeautifulSoup documentation</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.inbatu.com/2007/02/28/parsear-html-con-beautifulsoup/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Operador const de C++ (Resumen)</title>
		<link>http://blog.inbatu.com/2007/01/27/operador-const-de-c-resumen/</link>
		<comments>http://blog.inbatu.com/2007/01/27/operador-const-de-c-resumen/#comments</comments>
		<pubDate>Sat, 27 Jan 2007 11:06:54 +0000</pubDate>
		<dc:creator>batu</dc:creator>
		
		<category><![CDATA[C++]]></category>

		<category><![CDATA[Programación]]></category>

		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://blog.inbatu.com/2007/01/27/operador-const-de-c-resumen/</guid>
		<description><![CDATA[Variables constantes

const int entero;
Entero constante, una vez inicializada la variable entero no podrá ser cambiado su valor.
const int * pentero;   ó   int const * pentero;
Puntero a entero constante, el contenido del puntero pentero no se podrá cambiar.
int * const pentero;
Puntero constante a entero, no se podrá cambiar el puntero.

Como regla general [...]]]></description>
			<content:encoded><![CDATA[<h3>Variables constantes</h3>
<ul>
<li><code>const int entero;</code><br />
Entero constante, una vez inicializada la variable entero no podrá ser cambiado su valor.</li>
<li><code>const int * pentero;   ó   int const * pentero;</code><br />
Puntero a entero constante, el contenido del puntero pentero no se podrá cambiar.</li>
<li><code>int * const pentero;</code><br />
Puntero constante a entero, no se podrá cambiar el puntero.</li>
</ul>
<p>Como regla general const afecta al elemento que está inmediatamente a su izquierda, si no hay nada al que está inmediatamente a su derecha.</p>
<h3>Valores constantes de retorno de función</h3>
<pre class="cpp"><span style="color: #0000ff;">const</span> <span style="color: #0000ff;">char</span> * Funcion<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
<span style="color: #000000;">&#123;</span> <span style="color: #0000ff;">return</span> <span style="color: #666666;">&quot;Un texto&quot;</span>;<span style="color: #000000;">&#125;</span>
&nbsp;
Funcion<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#91;</span><span style="color: #0000dd;">1</span><span style="color: #000000;">&#93;</span> = <span style="color: #666666;">'a'</span>; <span style="color: #ff0000;">// Erro</span></pre>
<p>La variable devuelta no se puede modificar pues es constante.</p>
<h3>Parámetros constantes</h3>
<pre class="cpp"><span style="color: #0000ff;">void</span> mostrarPila<span style="color: #000000;">&#40;</span><span style="color: #0000ff;">const</span> Pila &amp;p<span style="color: #000000;">&#41;</span>;</pre>
<p>Como mostrarPila no debe modificar la pila pasamos el objeto pila a mostrar por referencia y constante. De esta manera no podremos modificar el objeto p, ni acceder a métodos de este que no se hayan declarado como const.</p>
<h3>Métodos constantes</h3>
<pre class="cpp"><span style="color: #0000ff;">class</span> Tipo <span style="color: #000000;">&#123;</span>
...
	<span style="color: #0000ff;">void</span> imprime<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span> <span style="color: #0000ff;">const</span>;
...
<span style="color: #000000;">&#125;</span></pre>
<p>Evita que el método imprime pueda modificar los miembros del objeto.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.inbatu.com/2007/01/27/operador-const-de-c-resumen/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Naudo</title>
		<link>http://blog.inbatu.com/2007/01/23/naudo/</link>
		<comments>http://blog.inbatu.com/2007/01/23/naudo/#comments</comments>
		<pubDate>Tue, 23 Jan 2007 20:11:39 +0000</pubDate>
		<dc:creator>batu</dc:creator>
		
		<category><![CDATA[Videos]]></category>

		<category><![CDATA[guitar]]></category>

		<category><![CDATA[music]]></category>

		<guid isPermaLink="false">http://blog.inbatu.com/2007/01/23/58/</guid>
		<description><![CDATA[Samba pa ti (Santana)

Every little thing she does is magic (Police)

Impresionantes las versiones de este guitarrista. Les da un toque muy personal. En youtube hay un buen puñado de videos de él.
]]></description>
			<content:encoded><![CDATA[<p><b>Samba pa ti (Santana)</b><br />
<a href="http://www.youtube.com/watch?v=H1Lwc_l5xJQ"><img src="http://img.youtube.com/vi/H1Lwc_l5xJQ/default.jpg" width="130" height="97" border=0></a><br />
<b>Every little thing she does is magic (Police)</b><br />
<a href="http://www.youtube.com/watch?v=OqT_OMf-TwI"><img src="http://img.youtube.com/vi/OqT_OMf-TwI/default.jpg" width="130" height="97" border=0></a></p>
<p>Impresionantes las versiones de este guitarrista. Les da un toque muy personal. En youtube hay <a href="http://www.youtube.com/results?search_query=Naudo" onclick="javascript:pageTracker._trackPageview ('/outbound/www.youtube.com');">un buen puñado de videos</a> de él.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.inbatu.com/2007/01/23/naudo/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Twitter Updater</title>
		<link>http://blog.inbatu.com/2007/01/20/twitter-updater/</link>
		<comments>http://blog.inbatu.com/2007/01/20/twitter-updater/#comments</comments>
		<pubDate>Sat, 20 Jan 2007 12:37:27 +0000</pubDate>
		<dc:creator>batu</dc:creator>
		
		<category><![CDATA[Programación]]></category>

		<category><![CDATA[Python]]></category>

		<category><![CDATA[Utiles]]></category>

		<category><![CDATA[programming]]></category>

		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://blog.inbatu.com/2007/01/20/twitter-updater/</guid>
		<description><![CDATA[After I saw the script made by felipe, for twitting basecamp TODOs, I made another one (more simpler)  in Python, it's just for twitt from console. So, for instance, I just can do Alt+F2 in KDE (or directly in a console) and write twupdater "Exams are out!".
Not an existential thing, but it has give [...]]]></description>
			<content:encoded><![CDATA[<p>After I saw <a href="http://blog.n2kp3.com/articles/2007/01/17/de-basecamp-a-twitter" onclick="javascript:pageTracker._trackPageview ('/outbound/blog.n2kp3.com');">the script made by felipe</a>, for twitting basecamp TODOs, I made another one (more simpler)  in Python, it's just for twitt from console. So, for instance, I just can do Alt+F2 in KDE (or directly in a console) and write <code>twupdater "Exams are out!"</code>.</p>
<p>Not an existential thing, but it has give me some phreak time. And while I had the chance to trying http in python.</p>
<p>Here is:</p>
<p><a href="http://blog.inbatu.com/cosas/twupdater_v02.tar.gz">twupdater_v02.tar.gz</a></p>
<p><b>Update:</b> Now the script ask user and pass if them is not configured.<br />
<b>Last update:</b> Furthermore, now checks user and pass before send status.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.inbatu.com/2007/01/20/twitter-updater/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Reordenar PDFs</title>
		<link>http://blog.inbatu.com/2007/01/17/reordenar-pdfs/</link>
		<comments>http://blog.inbatu.com/2007/01/17/reordenar-pdfs/#comments</comments>
		<pubDate>Wed, 17 Jan 2007 10:50:55 +0000</pubDate>
		<dc:creator>batu</dc:creator>
		
		<category><![CDATA[Software Libre]]></category>

		<category><![CDATA[Utiles]]></category>

		<category><![CDATA[pdf]]></category>

		<category><![CDATA[utils]]></category>

		<guid isPermaLink="false">http://blog.inbatu.com/2007/01/17/reordenar-pdfs/</guid>
		<description><![CDATA[Buscando como unir PDFs he encontrado este post en kriptopolis, y he conocido la herramienta PDFTK que nos permite hacer cosas como unir, encriptar, descomprimir pdfs y más. 
Pondré unos ejemplos:

pdftk 1.pdf 2.pdf 3.pdf cat output 123.pdfUne los tres ficheros (1.pdf, 2.pdf y 3.pdf) en uno solo (123.pdf).
pdftk A=1.pdf B=2.pdf cat A1-7 B1-5 A8 output [...]]]></description>
			<content:encoded><![CDATA[<p>Buscando como unir PDFs he encontrado <a href="http://www.kriptopolis.org/node/2662" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/www.kriptopolis.org');">este post</a> en kriptopolis, y he conocido la herramienta <a href="http://www.accesspdf.com/index.php?topic=pdftk" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/www.accesspdf.com');">PDFTK</a> que nos permite hacer cosas como unir, encriptar, descomprimir pdfs y más. </p>
<p>Pondré unos ejemplos:</p>
<ul>
<li><code>pdftk 1.pdf 2.pdf 3.pdf cat output 123.pdf</code><br />Une los tres ficheros (1.pdf, 2.pdf y 3.pdf) en uno solo (123.pdf).</li>
<li><code>pdftk A=1.pdf B=2.pdf cat A1-7 B1-5 A8 output combined.pdf</code><br />Crea un nuevo pdf extrayendo páginas, en este caso el nuevo pdf se compondría de las paginas 1 a 7 de 1.pdf, luego 1 a 5 de 2.pdf y por último la 8 de 1.pdf</li>
<li><code>pdftk doc.pdf output doc_enc.pdf owner_pw contra</code><br />Encripta el PDF con todos los permisos deshabilitados excepto ver el fichero</li>
<li><code>pdftk doc.pdf output doc_enc.pdf owner_pw contra user_pw contra2</code><br />Igual que el anterior pero ahora pedirá password para abrirlo.</li>
</ul>
<p>Existen más opciones que se pueden ver en la página del programa, para mí con los dos primeros ejemplos ya me es bastante útil.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.inbatu.com/2007/01/17/reordenar-pdfs/feed/</wfw:commentRss>
		</item>
		<item>
		<title>New book received</title>
		<link>http://blog.inbatu.com/2007/01/03/nuevo-libro-recibido/</link>
		<comments>http://blog.inbatu.com/2007/01/03/nuevo-libro-recibido/#comments</comments>
		<pubDate>Wed, 03 Jan 2007 20:49:39 +0000</pubDate>
		<dc:creator>batu</dc:creator>
		
		<category><![CDATA[Libros]]></category>

		<category><![CDATA[Personal]]></category>

		<category><![CDATA[Python]]></category>

		<category><![CDATA[books]]></category>

		<guid isPermaLink="false">http://blog.inbatu.com/2007/01/03/nuevo-libro-recibido/</guid>
		<description><![CDATA[I was sleeping this morning when a ring has waked up me. It's made me quite angry, but all turned different when I've opened the door, "Hi I've a book for you" WOW. The Programming Python 3rd Edition book  that I ordered on 13th december has arrived to me. I got really surprised.
The book [...]]]></description>
			<content:encoded><![CDATA[<p>I was sleeping this morning when a ring has waked up me. It's made me quite angry, but all turned different when I've opened the door, "Hi I've a book for you" WOW. The Programming Python 3rd Edition book  that I ordered on 13th december has arrived to me. I got really surprised.</p>
<p>The book is on quite good state, only two small scratches. It's big, almost double size of Programming Perl. At all it has brigthen up me today.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.inbatu.com/2007/01/03/nuevo-libro-recibido/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
