<?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>~Nacho/blog &#187; Linux</title>
	<atom:link href="http://criptonita.com/~nacho/blog/category/linux/feed/" rel="self" type="application/rss+xml" />
	<link>http://criptonita.com/~nacho/blog</link>
	<description>the cutting edge of my mind!</description>
	<lastBuildDate>Fri, 22 Apr 2011 14:01:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<item>
		<title>Some Perl to redirect HTTP requests</title>
		<link>http://criptonita.com/~nacho/blog/2011/02/24/some-perl-bits-to-redirect-http-requests/</link>
		<comments>http://criptonita.com/~nacho/blog/2011/02/24/some-perl-bits-to-redirect-http-requests/#comments</comments>
		<pubDate>Thu, 24 Feb 2011 21:55:33 +0000</pubDate>
		<dc:creator>Nacho Barrientos</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://criptonita.com/~nacho/blog/?p=325</guid>
		<description><![CDATA[After almost a year without publishing a single post, it seems this week I&#8217;m going to beat all my records. A week ago, I wanted to prank my brother for a while. Nothing sophisticated&#8230; just some Iptables rules, Tinyproxy and HTTP magic. To go ahead with my evil plans, I needed &#8220;something&#8221; able to redirect [...]]]></description>
			<content:encoded><![CDATA[<p>After almost a year without publishing a single post, it seems this week I&#8217;m going to beat all my records.</p>
<p>A week ago, I wanted to prank my brother for a while. Nothing sophisticated&#8230; just some Iptables rules, Tinyproxy and HTTP magic. To go ahead with my evil plans, I needed &#8220;something&#8221; able to redirect a HTTP request. Actually, there are several ways to do that: Apache redirects, Tornado, Netcat* and so on. These alternatives are fast, bulletproof and time-saving, but not fun.</p>
<p>As many of you probably know, I didn&#8217;t get a job yet. That necessary means that I&#8217;ve got plenty of free time to waste. So&#8230; what did I do? I wrote some Perl and today I&#8217;m publishing the source code just in case someone finds it useful somehow. Like the previous entry, it&#8217;s published in the public domain.</p>
<p>The script just collects connections, issues <em>301</em> back (Moved Permanently) and sets <em>Location</em> to the URI specified as a command line argument (option -u). It lacks some security checks (left as an exercise to the reader) but it does what it is supposed to do. You may likely spot some silly bugs as I haven&#8217;t spent much time reading it again. Reports are welcome!</p>
<p>For those wondering, the prank was a big success. I&#8217;m afraid I can&#8217;t spare any detail by now but it turns out my bro is still thinking that his computer has been cracked.</p>
<p>Example invocation:</p>
<blockquote><p>$ <strong>perl redir.pl -p 7070 -v -t 3 -u http://31337.pl</strong><br />
2011/02/24 21:41:54 Listening on port 7070<br />
2011/02/24 21:41:54 Redirecting HTTP requests to: &#8216;http://31337.pl&#8217;<br />
2011/02/24 21:41:54 3 thread(s) working under the hood<br />
&#8230;</p></blockquote>
<p>And finally the source code:</p>

<div class="wp_syntax"><div class="code"><pre class="perl" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">use</span> warnings<span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">use</span> threads<span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">use</span> Thread<span style="color: #339933;">::</span><span style="color: #006600;">Queue</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">use</span> POSIX<span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">use</span> IO<span style="color: #339933;">::</span><span style="color: #006600;">Socket</span><span style="color: #339933;">::</span><span style="color: #006600;">INET</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">use</span> HTTP<span style="color: #339933;">::</span><span style="color: #006600;">Request</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">use</span> HTTP<span style="color: #339933;">::</span><span style="color: #006600;">Status</span> <span style="color: #000066;">qw</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">:</span>constants status_message<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">use</span> Getopt<span style="color: #339933;">::</span><span style="color: #006600;">Long</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">use</span> DateTime<span style="color: #339933;">::</span><span style="color: #006600;">Format</span><span style="color: #339933;">::</span><span style="color: #006600;">HTTP</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">use</span> Data<span style="color: #339933;">::</span><span style="color: #006600;">Validate</span><span style="color: #339933;">::</span><span style="color: #006600;">URI</span> <span style="color: #000066;">qw</span><span style="color: #009900;">&#40;</span>is_http_uri<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">use</span> Log<span style="color: #339933;">::</span><span style="color: #006600;">Log4perl</span> <span style="color: #000066;">qw</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">:</span>easy<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">use</span> constant MAX_THREADS <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">10</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">use</span> constant MAX_LEN_HEADERS_BUFFER <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">8</span><span style="color: #339933;">*</span><span style="color: #cc66cc;">1024</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">use</span> constant DEFAULT_REDIRECT_URI <span style="color: #339933;">=&gt;</span> <span style="color: #ff0000;">&quot;http://www.example.org&quot;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">use</span> constant DEFAULT_PORT <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">80</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">use</span> constant DEFAULT_POOL_SIZE <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">3</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$redir_uri</span> <span style="color: #339933;">=</span> DEFAULT_REDIRECT_URI<span style="color: #339933;">;</span>
<span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$server_port</span> <span style="color: #339933;">=</span> DEFAULT_PORT<span style="color: #339933;">;</span>
<span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$thread_pool_size</span> <span style="color: #339933;">=</span> DEFAULT_POOL_SIZE<span style="color: #339933;">;</span>
<span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$verbose</span><span style="color: #339933;">;</span>
&nbsp;
GetOptions<span style="color: #009900;">&#40;</span><span style="color: #ff0000;">'url=s'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">\$redir_uri</span><span style="color: #339933;">,</span> 
           <span style="color: #ff0000;">'port=i'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">\$server_port</span><span style="color: #339933;">,</span>
           <span style="color: #ff0000;">'threads=i'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">\$thread_pool_size</span><span style="color: #339933;">,</span>
           <span style="color: #ff0000;">'verbose'</span>  <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">\$verbose</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">or</span> <span style="color: #000066;">exit</span> <span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000066;">die</span> <span style="color: #ff0000;">&quot;Invalid redirect URI (e.g. http://www.example.org)<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span> <span style="color: #b1b100;">unless</span> is_http_uri<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$redir_uri</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000066;">die</span> <span style="color: #ff0000;">&quot;Invalid port (e.g. 8080)<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span> <span style="color: #b1b100;">unless</span> <span style="color: #cc66cc;">0</span> <span style="color: #339933;">&lt;</span> <span style="color: #0000ff;">$server_port</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #0000ff;">$server_port</span> <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">2</span><span style="color: #339933;">**</span><span style="color: #cc66cc;">16</span><span style="color: #339933;">;</span>
<span style="color: #000066;">die</span> <span style="color: #ff0000;">&quot;Invalid pool size (should be in [1..&quot;</span><span style="color: #339933;">.</span>MAX_THREADS<span style="color: #339933;">.</span><span style="color: #ff0000;">&quot;])<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span> 
            <span style="color: #b1b100;">unless</span> <span style="color: #cc66cc;">0</span> <span style="color: #339933;">&lt;</span> <span style="color: #0000ff;">$thread_pool_size</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #0000ff;">$thread_pool_size</span> <span style="color: #339933;">&lt;=</span> MAX_THREADS<span style="color: #339933;">;</span>
&nbsp;
Log<span style="color: #339933;">::</span><span style="color: #006600;">Log4perl</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">easy_init</span><span style="color: #009900;">&#40;</span> level <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">$verbose</span><span style="color: #339933;">?</span> <span style="color: #0000ff;">$DEBUG</span> <span style="color: #339933;">:</span> <span style="color: #0000ff;">$INFO</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$pending</span> <span style="color: #339933;">=</span> Thread<span style="color: #339933;">::</span><span style="color: #006600;">Queue</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">new</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
&nbsp;
<span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$lsock</span> <span style="color: #339933;">=</span> IO<span style="color: #339933;">::</span><span style="color: #006600;">Socket</span><span style="color: #339933;">::</span><span style="color: #006600;">INET</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">new</span><span style="color: #009900;">&#40;</span> LocalPort <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">$server_port</span><span style="color: #339933;">,</span>
                                   Proto <span style="color: #339933;">=&gt;</span> <span style="color: #ff0000;">'tcp'</span><span style="color: #339933;">,</span>
                                   Listen <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">,</span>
                                   Reuse <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">1</span> <span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">or</span> <span style="color: #000066;">die</span> <span style="color: #ff0000;">&quot;Couldn't bind listening socket ($!)<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span> 
&nbsp;
INFO<span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;Listening on port $server_port<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
INFO<span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;Redirecting HTTP requests to: '$redir_uri'<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">my</span> <span style="color: #0000ff;">@workers</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">..</span><span style="color: #0000ff;">$thread_pool_size</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$thread</span> <span style="color: #339933;">=</span> threads<span style="color: #339933;">-&gt;</span><span style="color: #006600;">create</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;worker&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000066;">push</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">@workers</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">$thread</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
DEBUG<span style="color: #009900;">&#40;</span><span style="color: #000066;">sprintf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;%d thread(s) working under the hood<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">$#workers</span><span style="color: #339933;">+</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Set a tidy shutdown just in case an external agent SIG{INT,TERM}s the process</span>
<span style="color: #0000ff;">$SIG</span><span style="color: #009900;">&#123;</span><span style="color: #ff0000;">'INT'</span><span style="color: #009900;">&#125;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$SIG</span><span style="color: #009900;">&#123;</span><span style="color: #ff0000;">'TERM'</span><span style="color: #009900;">&#125;</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">sub</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #666666; font-style: italic;"># Dirty hack. threads-&gt;kill() does not wake up the thread :(</span>
    <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">..</span><span style="color: #0000ff;">@workers</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #0000ff;">$pending</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">enqueue</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">@workers</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        DEBUG<span style="color: #009900;">&#40;</span><span style="color: #000066;">sprintf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;Worker %d terminated: %d clients served<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">$_</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">tid</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">$_</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">join</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
    <span style="color: #009900;">&#125;</span>
    <span style="color: #000066;">close</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$lsock</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
    <span style="color: #000066;">exit</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> 
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">while</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$csock</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$lsock</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">accept</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">or</span> <span style="color: #b1b100;">next</span><span style="color: #339933;">;</span>
    <span style="color: #0000ff;">$pending</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">enqueue</span><span style="color: #009900;">&#40;</span>POSIX<span style="color: #339933;">::</span><span style="color: #006600;">dup</span><span style="color: #009900;">&#40;</span><span style="color: #000066;">fileno</span> <span style="color: #0000ff;">$csock</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    DEBUG<span style="color: #009900;">&#40;</span><span style="color: #000066;">sprintf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;New client enqueued: %s:%s<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">$csock</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">peerhost</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">$csock</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">peerport</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">close</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$csock</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">sub</span> worker <span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$clients_served</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">while</span><span style="color: #009900;">&#40;</span><span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$fd</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$pending</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">dequeue</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #666666; font-style: italic;"># API promises thread safety :-)</span>
        <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$fd</span> <span style="color: #339933;">==</span> <span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #000066;">return</span> <span style="color: #0000ff;">$clients_served</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
&nbsp;
        <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$sock</span> <span style="color: #339933;">=</span> IO<span style="color: #339933;">::</span><span style="color: #006600;">Socket</span><span style="color: #339933;">::</span><span style="color: #006600;">INET</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">new_from_fd</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$fd</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;r+&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        DEBUG<span style="color: #009900;">&#40;</span><span style="color: #000066;">sprintf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;Dequeued client %s:%d by worker %d.<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">$sock</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">peerhost</span><span style="color: #339933;">,</span>
                            <span style="color: #0000ff;">$sock</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">peerport</span><span style="color: #339933;">,</span> threads<span style="color: #339933;">-&gt;</span><span style="color: #006600;">tid</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$buf</span> <span style="color: #339933;">=</span> <span style="color: #ff0000;">&quot;&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #b1b100;">while</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">&lt;</span><span style="color: #0000ff;">$sock</span><span style="color: #339933;">&gt;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #666666; font-style: italic;"># CAUTION: there isn't any self protection against very long lines</span>
            <span style="color: #b1b100;">last</span> <span style="color: #b1b100;">if</span> <span style="color: #009966; font-style: italic;">/^\r\n$/</span><span style="color: #339933;">;</span>
            <span style="color: #0000ff;">$buf</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">$_</span><span style="color: #339933;">;</span>
            <span style="color: #000066;">goto</span> BYE <span style="color: #b1b100;">if</span> <span style="color: #000066;">length</span> <span style="color: #0000ff;">$buf</span> <span style="color: #339933;">&gt;</span> MAX_LEN_HEADERS_BUFFER<span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
&nbsp;
        <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$request</span> <span style="color: #339933;">=</span> HTTP<span style="color: #339933;">::</span><span style="color: #006600;">Request</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">parse</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$buf</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            INFO<span style="color: #009900;">&#40;</span><span style="color: #000066;">sprintf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;[%s] %s {%s}<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">$request</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">method</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">$request</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">uri</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">$sock</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">peerhost</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
&nbsp;
        <span style="color: #000066;">printf</span> <span style="color: #0000ff;">$sock</span> <span style="color: #ff0000;">&quot;HTTP/1.1 %d %s<span style="color: #000099; font-weight: bold;">\r</span><span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">,</span> 
            HTTP_MOVED_PERMANENTLY<span style="color: #339933;">,</span> status_message<span style="color: #009900;">&#40;</span>HTTP_MOVED_PERMANENTLY<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">printf</span> <span style="color: #0000ff;">$sock</span> <span style="color: #ff0000;">&quot;Date: %s<span style="color: #000099; font-weight: bold;">\r</span><span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">,</span> DateTime<span style="color: #339933;">::</span><span style="color: #006600;">Format</span><span style="color: #339933;">::</span><span style="color: #006600;">HTTP</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">format_datetime</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> <span style="color: #0000ff;">$sock</span> <span style="color: #ff0000;">&quot;Location: $redir_uri<span style="color: #000099; font-weight: bold;">\r</span><span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> <span style="color: #0000ff;">$sock</span> <span style="color: #ff0000;">&quot;Server: Simple HTTP Redirection/0.1 ($^O)<span style="color: #000099; font-weight: bold;">\r</span><span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> <span style="color: #0000ff;">$sock</span> <span style="color: #ff0000;">&quot;Connection: close<span style="color: #000099; font-weight: bold;">\r</span><span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> <span style="color: #0000ff;">$sock</span> <span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\r</span><span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
&nbsp;
BYE<span style="color: #339933;">:</span>  
        <span style="color: #0000ff;">$clients_served</span><span style="color: #339933;">++;</span>
        <span style="color: #000066;">close</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$sock</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>(*) just an approach, may drop connections:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">while</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #000000;">1</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; 
 <span style="color: #000000; font-weight: bold;">do</span> <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #660033;">-e</span> <span style="color: #ff0000;">&quot;HTTP/1.1 301 Moved Permanently<span style="color: #000099; font-weight: bold;">\r</span><span style="color: #000099; font-weight: bold;">\n</span>Location: http://31337.pl<span style="color: #000099; font-weight: bold;">\r</span><span style="color: #000099; font-weight: bold;">\n</span><span style="color: #000099; font-weight: bold;">\r</span><span style="color: #000099; font-weight: bold;">\n</span>&quot;</span> <span style="color: #000000; font-weight: bold;">|</span> nc <span style="color: #660033;">-l</span> <span style="color: #000000;">7070</span>; 
<span style="color: #000000; font-weight: bold;">done</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://criptonita.com/~nacho/blog/2011/02/24/some-perl-bits-to-redirect-http-requests/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>X Aniversario de AsturLiNUX</title>
		<link>http://criptonita.com/~nacho/blog/2009/04/13/x-aniversario-de-asturlinux/</link>
		<comments>http://criptonita.com/~nacho/blog/2009/04/13/x-aniversario-de-asturlinux/#comments</comments>
		<pubDate>Mon, 13 Apr 2009 11:56:43 +0000</pubDate>
		<dc:creator>Nacho Barrientos</dc:creator>
				<category><![CDATA[AsturLiNUX]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Spanish]]></category>

		<guid isPermaLink="false">http://criptonita.com/~nacho/blog/?p=248</guid>
		<description><![CDATA[Esta semana comienzan las actividades conmemorativas del décimo aniversario de la AsturLiNUX. Durante toda la semana hay programadas diversas actividades (charlas, talleres y conferencias) y como colofón, un gran acto central, el próximo sábado 18 de abril donde intervendrán Iván Frade (”Maemo; Software Libre Movil”) de Nokia y Rodrigo Salvador (”El Software Libre para la [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.asturlinux.org/aniversario/"><img class="aligncenter" title="X Aniversario de AsturLiNUX (banner)" src="http://www.asturlinux.org/aniversario/images/banner1xanivasttexto.png" alt="" width="493" height="141" /></a></p>
<p>Esta semana comienzan las actividades conmemorativas del décimo aniversario de la <a href="http://www.asturlinux.org">AsturLiNUX</a>.</p>
<p>Durante toda la semana hay programadas diversas actividades (charlas, talleres y conferencias) y como colofón, un gran acto central, el próximo <strong>sábado 18 de abril</strong> donde intervendrán Iván Frade (”Maemo; Software Libre Movil”) de Nokia y Rodrigo Salvador (”El Software Libre para la Gestión de la Red Educativa de la Junta de Andalucía”) de la Junta de Andalucía.</p>
<p>Además de estas ponencias, tendrá lugar una mesa redonda (“El Software Libre dentro y fuera de Asturias”) con una <a href="http://www.asturlinux.org/aniversario/?p=9">lista de participantes</a> muy interesante.</p>
<p>Más información en la <a href="http://www.asturlinux.org/aniversario/">página principal</a> y en el <a href="http://www.asturlinux.org/aniversario/?page_id=4">programa</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://criptonita.com/~nacho/blog/2009/04/13/x-aniversario-de-asturlinux/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Example: How to statically and dynamically link your executables</title>
		<link>http://criptonita.com/~nacho/blog/2007/08/30/example-how-to-statically-and-dynamically-link-your-executables/</link>
		<comments>http://criptonita.com/~nacho/blog/2007/08/30/example-how-to-statically-and-dynamically-link-your-executables/#comments</comments>
		<pubDate>Thu, 30 Aug 2007 10:27:28 +0000</pubDate>
		<dc:creator>Nacho Barrientos</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://criptonita.com/~nacho/blog/2007/08/30/example-how-to-statically-and-dynamically-link-your-executables/</guid>
		<description><![CDATA[People usually uses Google, among other things, to look for hints about how to do small tasks. Hopefully, you will find the hint you were looking for in somebody&#8217;s blog, because he or she had the same problem time ago and decided to talk about it. Last night, I was a bit bored and started [...]]]></description>
			<content:encoded><![CDATA[<p>People usually uses Google, among other things, to look for hints about how to do small tasks. Hopefully, you will find the hint you were looking for in somebody&#8217;s blog, because he or she had the same problem time ago and decided to talk about it.</p>
<p>Last night, I was a bit bored and started writing a dumb set of files to introduce people how static and dynamic linking work, so trying to put my two cents and add a new hint to the <em>wild wild web</em>, <a href="http://criptonita.com/~nacho/shared/shlib-example.tar.gz">I&#8217;m sharing it</a>. The C source files are practically useless, therefore pay attention to the Makefile, the magic is in there.</p>
<p>If you&#8217;re downloading it only to compile, execute and see what happens forget about it, the program is completely silly. Otherwise, probably the Makefile is buggy somewhere so bug reports are welcome. For teaching purposes, try, for example, breaking the ABI and see what happens.</p>
<p>Google, index this post please!</p>
<p>Update: This example does not cover autotools/libtool</p>
]]></content:encoded>
			<wfw:commentRss>http://criptonita.com/~nacho/blog/2007/08/30/example-how-to-statically-and-dynamically-link-your-executables/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>DudesConf</title>
		<link>http://criptonita.com/~nacho/blog/2007/04/24/dudesconf/</link>
		<comments>http://criptonita.com/~nacho/blog/2007/04/24/dudesconf/#comments</comments>
		<pubDate>Tue, 24 Apr 2007 18:51:54 +0000</pubDate>
		<dc:creator>Nacho Barrientos</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Life]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://criptonita.com/~nacho/blog/2007/04/24/dudesconf/</guid>
		<description><![CDATA[Dear Lazyweb, I&#8217;m sorry, I know I&#8217;m late but here it is my promised report about DudesConf. It was simply cool, even though it was my first Debian-related real [0] event everything was in a good, familiar and friendly shape. I&#8217;m really happy to had met all the Debian developers who attended, GPUL people and [...]]]></description>
			<content:encoded><![CDATA[<p>Dear Lazyweb, </p>
<p>I&#8217;m sorry, I know I&#8217;m late but here it is my promised report about DudesConf.</p>
<p>It was simply cool, even though it was my first Debian-related <em>real</em> [0] event everything was in a good, familiar and friendly shape. I&#8217;m really happy to had met all the Debian developers who attended, <a href="http://www.gpul.org">GPUL</a> people and others, pleased to meet you guys!</p>
<p>Talks, BOFs, meals, accommodation, everything was impressive, so my gratitude goes to everyone who helped made <a href="http://www.dudesconf.org">DudesConf</a> possible :). If you feel curious, you should be able to watch some pictures in <a href="http://gpul.grupos.udc.es/galeria/main.php?g2_itemId=447">the gallery</a> or read the live (I know, it&#8217;s not really live at the moment, my fault) <a href="http://blog.dudesconf.org/">event coverage</a>.</p>
<p>Of course, <a href="http://mones.livejournal.com/">Ricardo</a>, thank you for take me to A coruña, it was a pleasure for me to share some kilometers (some? all of them!) with you ;)</p>
<p>[0] Real comes from <em>real life</em>, <a href="http://eikeon.com/">Daniel</a> pointed me out days ago to the actual difference between real an virtual life.</p>
]]></content:encoded>
			<wfw:commentRss>http://criptonita.com/~nacho/blog/2007/04/24/dudesconf/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Thanks</title>
		<link>http://criptonita.com/~nacho/blog/2007/04/08/thanks/</link>
		<comments>http://criptonita.com/~nacho/blog/2007/04/08/thanks/#comments</comments>
		<pubDate>Sun, 08 Apr 2007 15:52:45 +0000</pubDate>
		<dc:creator>Nacho Barrientos</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://criptonita.com/~nacho/blog/2007/04/08/thanks/</guid>
		<description><![CDATA[13:55 -!- aba changed the topic of #debian-release to: Done. Superb guys! Thanks again to everybody who made it possible, release team, translators, bug reporters, Debian CD, ftp team, QA team,&#8230; and to everyone who is part of this wonderful project called Debian! See you next weekend at Dudesconf! By the way, the #debian-release&#8217;s topic [...]]]></description>
			<content:encoded><![CDATA[<p>13:55 -!- aba changed the topic of #debian-release to: Done.</p>
<p>Superb guys! Thanks again to everybody who made it possible, release team, translators, bug reporters, Debian CD, ftp team, QA team,&#8230; and to everyone who is part of this wonderful project called Debian!</p>
<p>See you next weekend at <a href="http://www.dudesconf.org">Dudesconf</a>!</p>
<p>By the way, the #debian-release&#8217;s topic change notice was stolen from <a href="http://blog.einval.com/2007/04/08#etch">Steve&#8217;s blog</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://criptonita.com/~nacho/blog/2007/04/08/thanks/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>New DPL</title>
		<link>http://criptonita.com/~nacho/blog/2007/04/08/new-dpl/</link>
		<comments>http://criptonita.com/~nacho/blog/2007/04/08/new-dpl/#comments</comments>
		<pubDate>Sun, 08 Apr 2007 09:25:00 +0000</pubDate>
		<dc:creator>Nacho Barrientos</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://criptonita.com/~nacho/blog/2007/04/08/new-dpl/</guid>
		<description><![CDATA[Congratulations Sam! It&#8217;s time to make Debian fun again, best of luck!.]]></description>
			<content:encoded><![CDATA[<p>Congratulations <a href="http://sam.zoy.org/">Sam</a>! It&#8217;s time to <a href="http://www.debian.org/vote/2007/platforms/sho">make Debian fun again</a>, best of luck!.</p>
]]></content:encoded>
			<wfw:commentRss>http://criptonita.com/~nacho/blog/2007/04/08/new-dpl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hello again my old dude!</title>
		<link>http://criptonita.com/~nacho/blog/2007/03/19/hello-again-my-old-dude/</link>
		<comments>http://criptonita.com/~nacho/blog/2007/03/19/hello-again-my-old-dude/#comments</comments>
		<pubDate>Mon, 19 Mar 2007 16:23:48 +0000</pubDate>
		<dc:creator>Nacho Barrientos</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://criptonita.com/~nacho/blog/2007/03/19/hello-again-my-old-dude/</guid>
		<description><![CDATA[My mail agent is Mutt again! (again mainly because it was my first MUA). Let&#8217;s fetchmail and procmail do the hard work while I happily browse my mailboxes! Good bye Pine, Evolution, Sylpheed Claws&#8230; and now, Kmail!. (note Evolution link&#8230;) BTW, xfmail2mbox.sh works fine, my mails moved smoothly to Mutt as well, so thanks to [...]]]></description>
			<content:encoded><![CDATA[<p>My mail agent is <a href="http://www.mutt.org">Mutt</a> again! (again mainly because it was my first MUA). Let&#8217;s fetchmail and procmail do the hard work while I happily browse my mailboxes!</p>
<p>Good bye Pine, <a href="http://mail.gnome.org/archives/usability/2005-December/msg00021.html">Evolution</a>, Sylpheed Claws&#8230; and now, <a href="http://kontact.kde.org/kmail/">Kmail</a>!. (note Evolution link&#8230;)</p>
<p>BTW, <a href="http://kontact.kde.org/kmail/tools.php">xfmail2mbox.sh</a> works fine, my mails moved smoothly to Mutt as well, so thanks to Jörg Reinhardt. </p>
]]></content:encoded>
			<wfw:commentRss>http://criptonita.com/~nacho/blog/2007/03/19/hello-again-my-old-dude/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Debian developer</title>
		<link>http://criptonita.com/~nacho/blog/2007/03/14/debian-developer/</link>
		<comments>http://criptonita.com/~nacho/blog/2007/03/14/debian-developer/#comments</comments>
		<pubDate>Wed, 14 Mar 2007 10:36:58 +0000</pubDate>
		<dc:creator>Nacho Barrientos</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://criptonita.com/~nacho/blog/2007/03/14/debian-developer/</guid>
		<description><![CDATA[Yes, that&#8217;s it, I&#8217;m finally Debian developer. I would like to use this post to say thanks to everyone who helped me to achieve this goal since I applied in 2005-10-05, here we go! Thanks to&#8230; Ricardo Cárdenes, the man who linked me to Debian development world and, of course, my advocate. Moray Allan, my [...]]]></description>
			<content:encoded><![CDATA[<p>Yes, that&#8217;s it, I&#8217;m finally Debian developer. I would like to use this post to say thanks to everyone who helped me to achieve <a href="https://nm.debian.org/nmstatus.php?email=chipi%40criptonita.com">this goal</a> since I applied in 2005-10-05, here we go!</p>
<p>Thanks to&#8230;</p>
<ul>
<li>Ricardo Cárdenes, the man who linked me to Debian development world and, of course, my advocate.</li>
<li>Moray Allan, my responsible AM.</li>
<li>The NM Staff (Myon, HE, Ganneff, Elmo&#8230;)</li>
<li>My usual sponsors: Ricardo, Ana, Amaya, Mones, Gunnar&#8230;.</li>
</ul>
<p>I hope to write an small report about the <a href="https://nm.debian.org/">NM process</a> with my impressions and opinions soon, so stay tuned. By the way, if you are planning to join Debian and you&#8217;re able to meet me, I&#8217;m offering <a href="https://nm.debian.org/gpg.php">GPG key signing</a> since today :)</p>
<p>Finally, thanks to all my <em>#dudes</em>!</p>
]]></content:encoded>
			<wfw:commentRss>http://criptonita.com/~nacho/blog/2007/03/14/debian-developer/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Discover, rename and launch!</title>
		<link>http://criptonita.com/~nacho/blog/2006/12/21/discover-rename-and-launch/</link>
		<comments>http://criptonita.com/~nacho/blog/2006/12/21/discover-rename-and-launch/#comments</comments>
		<pubDate>Thu, 21 Dec 2006 12:27:14 +0000</pubDate>
		<dc:creator>Nacho Barrientos</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Fun]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://criptonita.com/~nacho/blog/2006/12/21/discover-rename-and-launch/</guid>
		<description><![CDATA[This is exactly what OSX developers did with Leopard and Spaces. Isn&#8217;t this feature available for ages in lots of GNU/Linux desktops? Are OSX users definitely (re-)discovering how to work natively with virtual-desktops?, let&#8217;s see what Apple says in Leopard&#8217;s main website: You do a lot on your Mac. So what happens when all those [...]]]></description>
			<content:encoded><![CDATA[<p>This is exactly what OSX developers did with <a href="http://www.apple.com/macosx/leopard/">Leopard</a> and <a href="http://www.apple.com/macosx/leopard/spaces.html">Spaces</a>. Isn&#8217;t this feature available for ages in lots of GNU/Linux desktops? Are OSX users definitely (re-)discovering how to work <strong>natively</strong> with virtual-desktops?, let&#8217;s see what Apple says in Leopard&#8217;s main website:</p>
<blockquote><p>
You do a lot on your Mac. So what happens when all those projects pile up? Easy. Use Spaces to organize all your windows into groups and banish clutter completely. A Space for everything and everything in its Space. Only with Mac OS X Leopard.
</p></blockquote>
<p>What the fuck? Only with Mac OS X Leopard? <a href="http://uncyclopedia.org/wiki/AAAAAAAAA!">AAAAAAAAA!</a></p>
]]></content:encoded>
			<wfw:commentRss>http://criptonita.com/~nacho/blog/2006/12/21/discover-rename-and-launch/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Etch is very cold (like local weather)</title>
		<link>http://criptonita.com/~nacho/blog/2006/12/11/etch-is-very-cold-like-local-weather/</link>
		<comments>http://criptonita.com/~nacho/blog/2006/12/11/etch-is-very-cold-like-local-weather/#comments</comments>
		<pubDate>Mon, 11 Dec 2006 12:50:47 +0000</pubDate>
		<dc:creator>Nacho Barrientos</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://criptonita.com/~nacho/blog/2006/12/11/etch-is-very-cold-like-local-weather/</guid>
		<description><![CDATA[Yay! Release team reported that Etch (current testing branch) is now frozen, Andreas Barth announced it.]]></description>
			<content:encoded><![CDATA[<p>Yay! <a href="http://release.debian.org/">Release team</a> reported that Etch (current testing branch) is now frozen, <a href="http://lists.debian.org/debian-devel-announce/2006/12/threads.html">Andreas Barth announced it</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://criptonita.com/~nacho/blog/2006/12/11/etch-is-very-cold-like-local-weather/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Debian NM process movements</title>
		<link>http://criptonita.com/~nacho/blog/2006/11/13/debian-nm-process-movements/</link>
		<comments>http://criptonita.com/~nacho/blog/2006/11/13/debian-nm-process-movements/#comments</comments>
		<pubDate>Mon, 13 Nov 2006 13:52:56 +0000</pubDate>
		<dc:creator>Nacho Barrientos</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://criptonita.com/~nacho/blog/2006/11/13/debian-nm-process-movements/</guid>
		<description><![CDATA[I was approved by Debian NM FrontDesk team today, then, only one step remaining to dispatch my application. Step 1: Application Step 2: Identification Step 3: Philosophy and Procedures Step 4: Tasks and Skills Step 5: Recommendation Step 6: Front Desk Check Step 7: Debian Account Manager check and account creation I hope to be [...]]]></description>
			<content:encoded><![CDATA[<p>I was approved by <a title="Debian Frontdesk team" href="http://www.debian.org/devel/join/newmaint#FrontDesk">Debian NM FrontDesk team</a> today, then, only one step remaining to <span style="font-style: italic">dispatch</span> <a title="My NM application status" href="https://nm.debian.org/nmstatus.php?email=chipi%40criptonita.com">my application</a>.</p>
<ul>
<li style="text-decoration: line-through">Step 1: Application</li>
<li style="text-decoration: line-through">Step 2: Identification</li>
<li style="text-decoration: line-through">Step 3: Philosophy and Procedures</li>
<li style="text-decoration: line-through">Step 4: Tasks and Skills</li>
<li style="text-decoration: line-through">Step 5: Recommendation</li>
<li style="text-decoration: line-through">Step 6: Front Desk Check</li>
<li>Step 7: Debian Account Manager check and account creation</li>
</ul>
<p>I hope to be DAM approved soon, go go! :)</p>
<p>By the way, tomorrow I will have a skills test to get a driving license, wish me luck!</p>
]]></content:encoded>
			<wfw:commentRss>http://criptonita.com/~nacho/blog/2006/11/13/debian-nm-process-movements/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Airs of change</title>
		<link>http://criptonita.com/~nacho/blog/2006/11/08/airs-of-change/</link>
		<comments>http://criptonita.com/~nacho/blog/2006/11/08/airs-of-change/#comments</comments>
		<pubDate>Wed, 08 Nov 2006 12:41:10 +0000</pubDate>
		<dc:creator>Nacho Barrientos</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://criptonita.com/~nacho/blog/?p=82</guid>
		<description><![CDATA[Hello Konqui, pleased to meet you!]]></description>
			<content:encoded><![CDATA[<p>Hello Konqui, pleased to meet you!</p>
<p><img src="http://www.kde.org/stuff/clipart/konqi-official-logo-aboutkde-150x250.png" alt="Hello KDE!" /></p>
]]></content:encoded>
			<wfw:commentRss>http://criptonita.com/~nacho/blog/2006/11/08/airs-of-change/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Extending my Firefox&#8217;s capabilities!</title>
		<link>http://criptonita.com/~nacho/blog/2006/10/05/extending-your-firefox/</link>
		<comments>http://criptonita.com/~nacho/blog/2006/10/05/extending-your-firefox/#comments</comments>
		<pubDate>Thu, 05 Oct 2006 00:03:11 +0000</pubDate>
		<dc:creator>Nacho Barrientos</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://criptonita.com/~nacho/blog/?p=78</guid>
		<description><![CDATA[This is just another list of Firefox extensions I&#8217;m using at the moment: Google Toolbar for Firefox &#8211; Useful Google utils pack (includes search, of course). del.icio.us &#8211; All I need to manage my social bookmarks. ColorZilla &#8211; Interesting extension to extract colour codes directly from websites. VideoDownloader &#8211; Well known add-on. Forecastfox &#8211; And [...]]]></description>
			<content:encoded><![CDATA[<p>This is just another list of Firefox extensions I&#8217;m using at the moment:</p>
<ul>
<li><strong>Google Toolbar for Firefox</strong> &#8211; Useful Google utils pack (includes search, of course).</li>
<li><strong>del.icio.us</strong> &#8211; All I need to manage my social bookmarks.</li>
<li><strong>ColorZilla</strong> &#8211; Interesting extension to extract colour codes directly from websites.</li>
<li><strong>VideoDownloader</strong> &#8211; Well known add-on.</li>
<li><strong>Forecastfox</strong> &#8211; And if it rains tomorrow?.</li>
<li><strong>PDF Download</strong> &#8211; Just a dialog to choose between open, download, or show as HTML the downloaded PDF files.</li>
<li><strong>Download Statusbar</strong> &#8211; Enhanced and interesting download manager.</li>
<li><strong>Colorful Tabs</strong> &#8211; Put colours in your life!</li>
<li><strong>Flashblock</strong> &#8211; Flash really sucks, prevent it for me!</li>
<li><strong>Extended Statusbar</strong> &#8211; Adds more information about the loaded website, for example spent time or download speed.</li>
<li><strong>Tab X</strong> &#8211; Adds an independent kill button to each tab.</li>
<li><strong>Link Alert</strong> &#8211; Prevents me to download rubbish, like Microsoft Word documents.</li>
</ul>
<p>Excuse me, I forgot all the links to these extensions, feel free to <a href="https://addons.mozilla.org/extensions.php?app=firefox">search them</a> yourself ;)</p>
<p>This ultraextended Firefox makes my life easier!</p>
]]></content:encoded>
			<wfw:commentRss>http://criptonita.com/~nacho/blog/2006/10/05/extending-your-firefox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>UNIX is funny as well</title>
		<link>http://criptonita.com/~nacho/blog/2006/09/08/i-love-this-formula/</link>
		<comments>http://criptonita.com/~nacho/blog/2006/09/08/i-love-this-formula/#comments</comments>
		<pubDate>Fri, 08 Sep 2006 11:32:29 +0000</pubDate>
		<dc:creator>Nacho Barrientos</dc:creator>
				<category><![CDATA[Free time]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://criptonita.com/~nacho/blog/?p=69</guid>
		<description><![CDATA[Will it work at any time? It would be wonderful! - Hey man, let me fly this aircraft! - What? Are you joking? Who are you? - Sudo let me fly this aircraft! - Ok, take the control sir. - LOL By courtesy of Rastreador]]></description>
			<content:encoded><![CDATA[<p>Will it work at any time? It would be wonderful!</p>
<p><img src="http://criptonita.com/~nacho/temp/sandwich.png" alt="sudo make me a sandwitch, LOL" /></p>
<p><code><br />
- Hey man, let me fly this aircraft!<br />
- What? Are you joking? Who are you?<br />
- <strong>Sudo</strong> let me fly this aircraft!<br />
- Ok, take the control sir.<br />
- LOL<br />
</code></p>
<p>By courtesy of <a href="http://www.rastreador.com.es">Rastreador</a></p>
]]></content:encoded>
			<wfw:commentRss>http://criptonita.com/~nacho/blog/2006/09/08/i-love-this-formula/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>1/3</title>
		<link>http://criptonita.com/~nacho/blog/2006/04/17/13/</link>
		<comments>http://criptonita.com/~nacho/blog/2006/04/17/13/#comments</comments>
		<pubDate>Mon, 17 Apr 2006 21:43:20 +0000</pubDate>
		<dc:creator>Nacho Barrientos</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://criptonita.com/~nacho/blog/?p=53</guid>
		<description><![CDATA[In the last 30 minutes i received this fresh news, ID check and P&#038;P marked as passed on Debian NM, yehaaaa!]]></description>
			<content:encoded><![CDATA[<p>In the last 30 minutes i received this fresh news, <a href="https://nm.debian.org/nmstatus.php?email=chipi%40criptonita.com">ID check and P&#038;P marked as passed</a> on Debian NM, yehaaaa!</p>
]]></content:encoded>
			<wfw:commentRss>http://criptonita.com/~nacho/blog/2006/04/17/13/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

