<?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>Stereonaut!</title>
	<atom:link href="http://stereonaut.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://stereonaut.net</link>
	<description>A weblog by David Moreno.</description>
	<lastBuildDate>Sat, 06 Mar 2010 01:38:24 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Feedbag 0.6</title>
		<link>http://stereonaut.net/feedbag-06/</link>
		<comments>http://stereonaut.net/feedbag-06/#comments</comments>
		<pubDate>Sat, 06 Mar 2010 01:36:59 +0000</pubDate>
		<dc:creator>David Moreno</dc:creator>
				<category><![CDATA[planeta linux]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[feedbag]]></category>
		<category><![CDATA[gemcutter]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[rubygems]]></category>

		<guid isPermaLink="false">http://stereonaut.net/?p=1158</guid>
		<description><![CDATA[I just uploaded Feedbag 0.6 to Gemcutter and GitHub.
Just a couple of small nice additions to this version:

The undocumented args[:narrow] option has been disabled until further notice.
A nice little commit from one of Feedbag&#039;s forks, by Patrick Reagan.
Added an executable to find feed URLs directly:

Sometimes you need to find the feed for a URL quickly, [...]]]></description>
			<content:encoded><![CDATA[<p>I just uploaded <a href="http://axiombox.com/feedbag">Feedbag</a> 0.6 to <a href="http://rubygems.org/gems/feedbag/versions/0.6">Gemcutter</a> and <a href="http://github.com/damog/feedbag">GitHub</a>.</p>
<p>Just a couple of small nice additions to this version:</p>
<ul>
<li>The undocumented <tt>args[:narrow]</tt> option has been disabled until further notice.</li>
<li>A nice little commit from <a href="http://github.com/damog/feedbag/commit/ad7fdaf671b039cac5550b89d20de511b9a2bb14">one</a> of Feedbag&#039;s forks, by Patrick Reagan.</li>
<li>Added an executable to find feed URLs directly:</li>
</ul>
<p>Sometimes you need to find the feed for a URL quickly, not from a script. What I do, and what someone else showed me too, is this:</p>
<pre class="brush: bash">
~ $ irb
-- require &quot;rubygems&quot;
= true
-- require &quot;feedbag&quot;
= true
-- Feedbag.find &quot;http://stereonaut.net&quot;
= [&quot;http://stereonaut.net/feed&quot;, &quot;http://stereonaut.net/tag/feed/&quot;, &quot;http://stereonaut.net/comments/feed/&quot;]
--
</pre>
<p>But now you can simply do:</p>
<pre class="brush: bash">
~ $ feedbag cnn.com http://twitter.com/compupaisa
== cnn.com:
 - http://rss.cnn.com/rss/cnn_topstories.rss
 - http://rss.cnn.com/rss/cnn_latest.rss
== http://twitter.com/compupaisa:
 - http://twitter.com/statuses/user_timeline/119479806.rss
 - http://twitter.com/favorites/119479806.rss
~ $
</pre>
<p>Enjoy the <tt>feedbag</tt> executable on your <tt>$PATH</tt> now!</p>
]]></content:encoded>
			<wfw:commentRss>http://stereonaut.net/feedbag-06/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Debian fails</title>
		<link>http://stereonaut.net/debian-fails/</link>
		<comments>http://stereonaut.net/debian-fails/#comments</comments>
		<pubDate>Mon, 01 Mar 2010 21:06:19 +0000</pubDate>
		<dc:creator>David Moreno</dc:creator>
				<category><![CDATA[debian]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[planet-debian]]></category>
		<category><![CDATA[planeta linux]]></category>
		<category><![CDATA[bullshit]]></category>
		<category><![CDATA[fail]]></category>

		<guid isPermaLink="false">http://stereonaut.net/?p=1151</guid>
		<description><![CDATA[Generalizations are fun, they always are because they tend to offend people and offended people by stupid shit is usually lots of fun.
Here Debian, as a whole, fails; it sucks. Here Debian blows ass, the entire project is whack.
My good friend Chris Lee sent me this:

If you can&#039;t see the above iframe, go here.
Debian, full [...]]]></description>
			<content:encoded><![CDATA[<p>Generalizations are fun, they always are because they tend to offend people and offended people by stupid shit is usually lots of fun.</p>
<p>Here <a href="http://debian.org">Debian</a>, as a whole, fails; it sucks. Here Debian <strong>blows ass</strong>, the entire project is whack.</p>
<p>My good friend <a href="http://twitter.com/account/profile_image/akachrislee?hreflang=en">Chris Lee</a> sent me this:</p>
<p><iframe style="border:2px solid #000000" height="500" width="100%" src="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=380731" title="Debian fails"></iframe></p>
<p>If you can&#039;t see the above iframe, go <a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=380731">here</a>.</p>
<p>Debian, full of fail. Wasn&#039;t this generalization fun?</p>
<p>Let the non-sense bullshit horses be released.</p>
]]></content:encoded>
			<wfw:commentRss>http://stereonaut.net/debian-fails/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Dancer::Template::Haml now available</title>
		<link>http://stereonaut.net/dancer-template-haml/</link>
		<comments>http://stereonaut.net/dancer-template-haml/#comments</comments>
		<pubDate>Thu, 11 Feb 2010 21:43:53 +0000</pubDate>
		<dc:creator>David Moreno</dc:creator>
				<category><![CDATA[perl]]></category>
		<category><![CDATA[planeta linux]]></category>
		<category><![CDATA[dancer]]></category>
		<category><![CDATA[haml]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://stereonaut.net/?p=1145</guid>
		<description><![CDATA[I put together a quick template engine for Dancer using Haml via Text::Haml. You know Haml, right?
Now you can do neat shit like this:

 set template =&#62; &#039;haml&#039;;

 get &#039;/bazinga&#039;, sub {
        template &#039;bazinga&#039; =&#62; {
             [...]]]></description>
			<content:encoded><![CDATA[<p>I put together a quick template engine for <a href="http://dancer.sukria.net/">Dancer</a> using <a href="http://haml-lang.com">Haml</a> via <a href="http://search.cpan.org/dist/Text-Haml/">Text::Haml</a>. You know Haml, right?</p>
<p>Now you can do neat shit like this:</p>
<pre class="brush: perl">
 set template =&gt; &#039;haml&#039;;

 get &#039;/bazinga&#039;, sub {
        template &#039;bazinga&#039; =&gt; {
                title =&gt; &#039;Bazinga!&#039;,
                content =&gt; &#039;Bazinga?&#039;,
        };
 };
</pre>
<p>Using:</p>
<pre class="brush: ruby">
 !!!
 %html{ : xmlns =&gt; &quot;http://www.w3.org/1999/xhtml&quot;, :lang =&gt; &quot;en&quot;, &quot;xml:lang&quot; =&gt; &quot;en&quot;}
   %head
     %title= title
   %body
     #content
       %strong= content
</pre>
<p>The dope thing about Text::Haml is that things like the Ruby interpolation will keep working.</p>
<p>Hurray! <a href="http://search.cpan.org/dist/Dancer-Template-Haml/">Go get it now</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://stereonaut.net/dancer-template-haml/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Jon Stewart interviewed by Bill O&#039;Reilly</title>
		<link>http://stereonaut.net/jon-stewart-interviewed-by-bill-oreilly/</link>
		<comments>http://stereonaut.net/jon-stewart-interviewed-by-bill-oreilly/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 23:30:24 +0000</pubDate>
		<dc:creator>David Moreno</dc:creator>
				<category><![CDATA[US]]></category>
		<category><![CDATA[fox]]></category>
		<category><![CDATA[o'reilly]]></category>
		<category><![CDATA[politics]]></category>
		<category><![CDATA[stewart]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://stereonaut.net/?p=1141</guid>
		<description><![CDATA[It is worth watching entirely.

]]></description>
			<content:encoded><![CDATA[<p>It is worth watching entirely.</p>
<div align="center"><script src="http://video.foxnews.com/v/embed.js?id=4003531&amp;w=400&amp;h=249" type="text/javascript"></script></div>
]]></content:encoded>
			<wfw:commentRss>http://stereonaut.net/jon-stewart-interviewed-by-bill-oreilly/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New features on Dancer 1.130</title>
		<link>http://stereonaut.net/features-on-dancer-1-130/</link>
		<comments>http://stereonaut.net/features-on-dancer-1-130/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 03:36:50 +0000</pubDate>
		<dc:creator>David Moreno</dc:creator>
				<category><![CDATA[perl]]></category>
		<category><![CDATA[planeta linux]]></category>
		<category><![CDATA[dancer]]></category>

		<guid isPermaLink="false">http://stereonaut.net/?p=1136</guid>
		<description><![CDATA[Last week, or the one before that one, Alexis released Dancer 1.130 which represents a big refactoring of the Dancer core code, taking all optional modules away from it: Logging, session and template engines were splited into their respective non-core modules, etc. Additionally, two keyword features were added, header and prefix. I will showcase both [...]]]></description>
			<content:encoded><![CDATA[<p>Last week, or the one before that one, <a href="http://www.sukria.net/">Alexis</a> released <a href="http://dancer.sukria.net">Dancer</a> <a href="http://search.cpan.org/~sukria/Dancer-1.130/lib/Dancer.pm">1.130</a> which represents a big refactoring of the Dancer core code, taking all optional modules away from it: Logging, session and template engines were splited into their respective non-core modules, etc. Additionally, two keyword features were added, header and prefix. I will showcase both in case you haven&#039;t heard the good word from them <img src='http://stereonaut.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h3>header</h3>
<p>The <tt>header</tt> keyword allows you to modify or alter the response headers by hand. That was a nice little feature that still hadn&#039;t been implemented. With <tt>header</tt> you can do nice little things like this:</p>
<pre class="brush: perl">
get &#039;/set/header&#039; =&gt; sub {
  header &#039;X-Foo&#039; =&gt; &#039;bar&#039;;
  &quot;I&#039;m a happy string.&quot; . &quot;\n&quot;;
}
</pre>
<p>And this is what that very same code does:</p>
<pre class="brush: bash">
~ $ curl -i http://0.0.0.0:3000/set/header
HTTP/1.0 200 OK
X-Foo: bar
Content-Type: text/html
X-Powered-By: Perl Dancer 1.130

I&#039;m a happy string.
</pre>
<p>Also, <tt>header</tt> has a method synonym, <tt>headers</tt>, and you can use both indistinctly:</p>
<pre class="brush: perl">
get &#039;/some/crap&#039;, sub {
  headers &#039;X-Foo&#039; =&gt; &#039;Bar&#039;,
    &#039;X-Bar&#039; =&gt; &#039;Foo&#039;;
}</pre>
<p>And it will produce the result that you are expecting.</p>
<h3>prefix</h3>
<p><tt>prefix</tt> is also interesting. It will indicate that the following route handlers&#039; path patters defined for Dancer will be prepended with such prefix. So:</p>
<pre class="brush: perl">
prefix &#039;/user&#039;;
get &#039;/home&#039;, sub { template &#039;user_home&#039; };
get &#039;/logout&#039;, sub { &quot;bye!&quot; };
</pre>
<p>So here we are instructing Dancer two route handlers that happen to be really pointing to &#034;/user/home&#034; and &#034;/user/logout&#034;. In order to stop prefixing the route handlers&#039; paths you just do:</p>
<pre class="brush: perl">prefix undef;</pre>
<p>And continue with your un-prepended paths.</p>
]]></content:encoded>
			<wfw:commentRss>http://stereonaut.net/features-on-dancer-1-130/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Feed moved</title>
		<link>http://stereonaut.net/feed-moved/</link>
		<comments>http://stereonaut.net/feed-moved/#comments</comments>
		<pubDate>Fri, 05 Feb 2010 00:31:37 +0000</pubDate>
		<dc:creator>David Moreno</dc:creator>
				<category><![CDATA[planeta linux]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[beer]]></category>
		<category><![CDATA[feed]]></category>
		<category><![CDATA[feedburner]]></category>
		<category><![CDATA[feeds]]></category>
		<category><![CDATA[google]]></category>

		<guid isPermaLink="false">http://stereonaut.net/?p=1129</guid>
		<description><![CDATA[I have always been against FeedBurner. I don&#039;t like it at all. I&#039;ve never liked it, as a matter of fact, I have no actual idea why I&#039;ve been using it on my blog. I do know why I used it on the country feeds on Planeta Linux, and that is because it was very [...]]]></description>
			<content:encoded><![CDATA[<p>I have always been <em>against</em> <a href="http://feedburner.com/">FeedBurner</a>. I don&#039;t like it at all. I&#039;ve never liked it, as a matter of fact, I have no actual idea why I&#039;ve been using it on my blog. I do know why I used it on the country feeds on <a href="http://planetalinux.org">Planeta Linux</a>, and that is because it was very easy to mask all of our URL changes with some level of stability on the subscribers (in times where me being technically competent was a bad joke for myself). Plus, we could plug AdSense into it (that later on I removed because I like to earn actual dollars, not pennies, <em>you cheap clickers</em>!). Or maybe I&#039;m just so against it because of pure jealousy: A few RSS feed geeks, <em>like myself</em>, sold a <strong>sub-par</strong>product to Google in a <strong>hundred million dollars</strong>. At the very end, I&#039;ve never had a good reason to use FeedBurner or to stick with it, so hereby I&#039;m dropping it entirely from my own personal blog.</p>
<p>It&#039;s obvious that some people who subscribed to my feed using that FeedBurner URL aren&#039;t reading this very blog post. It&#039;s alright, I&#039;ve lost reigns before, I will get over it and conquer their hearts again. But you, dear blog reader, planet subscriber, or eventual visitor, have the power to change things, to help workaround the evils of FeedBurner and make me be myself again. Please, help me myself again! And that is, from now on, use this feed URL and only this feed URL, I promise I will support as long as nice good looking HTTP servers (such as <a href="http://nginx.org">nginx</a> or <a href="http://twitter.com/webserver">Cherokee</a>) exist:</p>
<h3 style="text-align: center;"><a href="http://stereonaut.net/feed">http://stereonaut.net/feed/</a></h3>
<p>That said, <strong>I will get you a beer</strong> next time we meet each other and you, dear reader, mention this blog post and mention that you changed to this new feed URL of mine. <strong>I&#039;m not kidding</strong>. Just go ahead and tell me <img src='http://stereonaut.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Thank you.</p>
]]></content:encoded>
			<wfw:commentRss>http://stereonaut.net/feed-moved/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Large PHP scripts truncated on nginx</title>
		<link>http://stereonaut.net/large-php-truncated-on-nginx/</link>
		<comments>http://stereonaut.net/large-php-truncated-on-nginx/#comments</comments>
		<pubDate>Wed, 03 Feb 2010 16:35:14 +0000</pubDate>
		<dc:creator>David Moreno</dc:creator>
				<category><![CDATA[nginx]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[planeta linux]]></category>
		<category><![CDATA[gzip]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[tinymce]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://stereonaut.net/?p=1112</guid>
		<description><![CDATA[I spent a couple of hours yesterday trying to debug an issue that made me hit my head against the wall while it lasted.
I run multiple instances of WordPress, and with it, comes a nice little editor bundled called TinyMCE. But on my main WordPress installation (this very blog, dear reader, where you are reading [...]]]></description>
			<content:encoded><![CDATA[<p>I spent a couple of <em>hours</em> yesterday trying to debug an issue that made me hit my head against the wall while it lasted.</p>
<p>I run multiple instances of <a href="http://wordpress.org">WordPress</a>, and with it, comes a nice little editor bundled called <a href="http://tinymce.moxiecode.com/">TinyMCE</a>. But on my main WordPress installation (<a href="http://stereonaut.net">this</a> very blog, dear reader, where you are reading this from), TinyMCE wouldn&#039;t come up, it wouldn&#039;t render properly on the browser, it didn&#039;t matter if it was my main browser, Chrome, or Firefox, Safari, cached, uncached, it was just broken. Since I hadn&#039;t have the time to go through this issue before, I was using a different editor installed as a plugin. <em>LAME</em>. And coward.</p>
<p><img class="alignright size-full wp-image-1113" title="nginx" src="http://stereonaut.net/wp-content/uploads/2010/02/nginx.gif" alt="" width="121" height="32" />Anyway, I found out that one of the scripts <a href="http://phpxref.ftwr.co.uk/wordpress/nav.html?wp-includes/js/tinymce/wp-tinymce.php.html"><tt>wp-tinymce.php</tt></a> was being returned truncated. Because of that, <a href="http://getfirebug.com/">Firebug</a> would report that some TinyMCE bullshit wasn&#039;t defined (JavaScript, oh I&#039;m not very fond of you). Oh, well. I tested calling that script under <a href="http://curl.haxx.se/">curl</a> separately and in fact, it was only returning a fraction of the script, 44K out of the actual 200+K. I also found out that even though my <a href="http://nginx.org/">nginx</a> installation had gzip compression enabled and the PHP had zlib as well, the script wouldn&#039;t process the <tt>tinymce.js.gz</tt> but it was returning directly <tt>tinymce.js</tt>. It&#039;s alright, I just wanted it to work, no matter if it wouldn&#039;t go through gzip, that&#039;d be a matter of some other day.</p>
<p>After a lot of googling I ended up reading <a href="http://www.republicavirtual.com.br/blog/2009/11/03/nginx-truncate-php/">this blog post</a> (in Portuguese), suggesting to make sure the file permissions for both the <tt>client_body_temp</tt> and <tt>fastcgi_temp</tt> directories allowed the user running nginx (<tt>www-data</tt> in my case) to write in them. Apparently large scripts would start writing to disk on them temporarily while processing the shit. Of course, you wouldn&#039;t have this issue if you are running an nginx from your operating system package manager (like <a href="http://packages.debian.org/search?keywords=nginx">Debian</a>&#039;s), but this might very well happen when you are running a custom nginx with separate modules and all sorts of crap on top of it:</p>
<pre class="brush: bash">chown www-data:www-data -R /usr/local/nginx/fastcgi_temp/;
chmod -R 777 /usr/local/nginx/fastcgi_temp/;
chown www-data:www-data -R /usr/local/nginx/client_body_temp/;
chmod -R 777 /usr/local/nginx/client_body_temp/;</pre>
<p>Obrigado, <a href="http://www.republicavirtual.com.br/blog/">republicavirtual.com.br</a> <img src='http://stereonaut.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://stereonaut.net/large-php-truncated-on-nginx/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Eben Moglen &#8211; &#039;Freedom in the Cloud&#039; 2/5 @ NYU</title>
		<link>http://stereonaut.net/eben-moglen-freedom-in-the-cloud-nyu/</link>
		<comments>http://stereonaut.net/eben-moglen-freedom-in-the-cloud-nyu/#comments</comments>
		<pubDate>Tue, 02 Feb 2010 17:19:54 +0000</pubDate>
		<dc:creator>David Moreno</dc:creator>
				<category><![CDATA[nyc]]></category>
		<category><![CDATA[planet-debian]]></category>
		<category><![CDATA[planeta linux]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[columbia]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[eben moglen]]></category>
		<category><![CDATA[free software]]></category>
		<category><![CDATA[nyu]]></category>
		<category><![CDATA[privacy]]></category>
		<category><![CDATA[talks]]></category>
		<category><![CDATA[web 2.0]]></category>

		<guid isPermaLink="false">http://stereonaut.net/?p=1090</guid>
		<description><![CDATA[&#160;Biella passed this flyer around on the Debian-NYC mailing list. If you are in New York City this Friday, you won&#039;t want to miss this Eben Moglen&#039;s talk.

If you can&#039;t see the embedded object, go here&#160;or to this post&#039;s permalink.
]]></description>
			<content:encoded><![CDATA[<p>&nbsp;<a href="http://gabriellacoleman.org/blog/">Biella</a> passed this flyer around on the <a href="http://lists.vireo.org/cgi-bin/mailman/listinfo/debiannyc">Debian-NYC</a> mailing list. If you are in New York City this Friday, you won&#039;t want to miss this <a href="http://emoglen.law.columbia.edu/">Eben Moglen</a>&#039;s talk.</p>
<p style="text-align: center; "><object id="doc_178351046781277" name="doc_178351046781277" height="600" width="100%" type="application/x-shockwave-flash" data="http://d1.scribdassets.com/ScribdViewer.swf" style="outline:none;"><param name="movie" value="http://d1.scribdassets.com/ScribdViewer.swf" /><param name="wmode" value="opaque" /><param name="bgcolor" value="#ffffff" /><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="FlashVars" value="document_id=26266103&amp;access_key=key-ie370f25lousi01fmdj&amp;page=1&amp;viewMode=list" /></object></p>
<p style="text-align: left; ">If you can&#039;t see the embedded object, go <a href="http://www.scribd.com/doc/26266103/Moglen-Flyer">here</a>&nbsp;or to this post&#039;s <a href="http://stereonaut.net/eben-moglen-freedom-in-the-cloud-nyu/">permalink</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://stereonaut.net/eben-moglen-freedom-in-the-cloud-nyu/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Why the Kindle is a piece of shit next to the iPad</title>
		<link>http://stereonaut.net/kindle-is-shit-next-to-ipad/</link>
		<comments>http://stereonaut.net/kindle-is-shit-next-to-ipad/#comments</comments>
		<pubDate>Thu, 28 Jan 2010 16:58:55 +0000</pubDate>
		<dc:creator>David Moreno</dc:creator>
				<category><![CDATA[books]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[planeta linux]]></category>
		<category><![CDATA[amazon]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[kindle]]></category>
		<category><![CDATA[shit]]></category>

		<guid isPermaLink="false">http://stereonaut.net/?p=1083</guid>
		<description><![CDATA[The fact that the Amazon Kindle per se exists, has attracted a copious amount of comparisons to the now unveiled Apple iPad. The Kindle of course, is a (reportedly, I don&#039;t own one) great e-book reader and Sudoku console. One should be comparing apples to apples, since comparing these two devices is like comparing a [...]]]></description>
			<content:encoded><![CDATA[<p>The fact that the <a href="http://en.wikipedia.org/wiki/Amazon_Kindle">Amazon Kindle</a> per se exists, has attracted a copious amount of <a href="http://www.huffingtonpost.com/2010/01/27/ipad-vs-kindle-will-apple_n_437632.html">comparisons</a> to the now unveiled <a href="http://www.apple.com/ipad/">Apple iPad</a>. The Kindle of course, is a (<a href="http://www.techcrunch.com/2009/04/16/300000-kindle-2s-sold-to-date/">reportedly</a>, I don&#039;t own one) great e-book reader and <a href="http://www.techcrunch.com/2010/01/20/kindle-apps/">Sudoku console</a>. One should be comparing apples to apples, since comparing these two devices is like comparing a Nokia 5110, with an iPhone (ok bigots, or with a NexusOne), simply different times, different action scenarios.</p>
<p style="text-align: center; "><a href="http://stereonaut.net/wp-content/uploads/2010/01/draft_lens6658522module53931922photo_1251308001Apple-and-Orange.jpg"><img alt="" title="draft_lens6658522module53931922photo_1251308001Apple-and-Orange" width="300" height="205" class="aligncenter size-medium wp-image-1084" src="http://stereonaut.net/wp-content/uploads/2010/01/draft_lens6658522module53931922photo_1251308001Apple-and-Orange-300x205.jpg" /></a>&nbsp;<a href="http://stereonaut.net/wp-content/uploads/2010/01/nokia5110camera.jpg"><img alt="" title="nokia5110camera" width="300" height="263" class="aligncenter size-medium wp-image-1085" src="http://stereonaut.net/wp-content/uploads/2010/01/nokia5110camera-300x263.jpg" /></a></p>
<p>I read <em>here or there</em> a tweet from someone saying that given that the iPad is 2x as much as the Kindle, they would be getting a Kindle instead. Of course, this is a big pile of stupidity. First off, let&#039;s make clear that the iPad, besides from all of the hype created around it, is much more than just an electronic paper display. Let&#039;s compare both devices when I can watch the entire second season of True Blood on the Kindle, seriously. Or let&#039;s compare it when you can browse your music library and listen to it while you&#039;re replying to your job&#039;s email conversations on why Bill, your co-worker on the next cubicle, should throw away his rotten food from the fridge. Or let&#039;s just compare the lack of free browsing and/or Wi-Fi connectivity from one of both. Come on.</p>
<p>In spite of the fact that Apple could have made the world go insane by reducing the iPad price by a hundred bucks more, comparing sale prices for the Kindle and the iPad is purely wrong, let&#039;s be clear here. But then again, it&#039;s just because of the fact that Amazon made a good and popular e-book reader first and started making it successful, why there&#039;s such wrong feelings and thoughts about the usefulness of a single feature on Jobs&#039; <a href="http://twitter.com/soapnana/status/8258274286">second coming of Jesus Christ</a>.</p>
<p>But if you still try to compare both, the Kindle will fail miserably. And Amazon could profit from that actually, they can assume their own niche of market and reduce the price to something that would make sense for people to carry such a device instead of the good old book/newspaper commute carrying. Otherwise, it&#039;ll leave it as a shitty alternative to the stunning unaffordable Ferrari next door.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://stereonaut.net/kindle-is-shit-next-to-ipad/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Setting uid on God processes</title>
		<link>http://stereonaut.net/god-uid-gid/</link>
		<comments>http://stereonaut.net/god-uid-gid/#comments</comments>
		<pubDate>Wed, 20 Jan 2010 20:36:32 +0000</pubDate>
		<dc:creator>David Moreno</dc:creator>
				<category><![CDATA[planeta linux]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[environment variables]]></category>
		<category><![CDATA[god]]></category>
		<category><![CDATA[processes]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[sysadmin]]></category>

		<guid isPermaLink="false">http://stereonaut.net/?p=1080</guid>
		<description><![CDATA[I spent some minutes today at work figuring out why a script we use for files and assets propagation wasn&#039;t working when fired up under God, but it actually was working when run as its normal user.
The script is a Sinatra application that, upon pings/requests, connects through SSH to different servers on our clusters and [...]]]></description>
			<content:encoded><![CDATA[<p>I spent some minutes today at work figuring out why a script we use for files and assets propagation wasn&#039;t working when fired up under <a href="http://god.rubyforge.org/">God</a>, but it actually was working when run as its normal user.</p>
<p>The script is a <a href="http://www.sinatrarb.com">Sinatra</a> application that, upon pings/requests, connects through SSH to different servers on our clusters and execute commands. Details on the implementation are irrelevant here. Since this is automatized, we use key files for the SSH authentication.</p>
<p>When the script was running as the regular user, everything was working fine, but it wasn&#039;t under root. So I figured, <a href="http://net-ssh.rubyforge.org/ssh/v2/api/">Net::SSH</a> was trying to use root&#039;s private keys file. After reading God&#039;s examples I found out that you can also set uid and gid on the watched processes, so that&#039;s what I configured:</p>
<pre class="brush: ruby">
 w.uid = &quot;myuser&quot;
 w.gid = &quot;myuser&quot;
</pre>
<p>However, this was still not working. So I made the script print some verification:</p>
<pre class="brush: ruby">
puts &quot;My uid is: #{Process.uid} and euid: #{Process.euid} and user: #{ENV[&#039;USER&#039;]}&quot;
</pre>
<p>So <tt>Process.uid</tt> and <tt>Process.euid</tt> was correctly printing the UID for &quot;myuser&quot;, but ENV['USER'] was still &quot;root&quot;. I figured that ENV[&quot;HOME&quot;] would be the home directory based on the user, &quot;/root&quot;, so maybe Net::SSH was still trying to read <tt>/root/.ssh/id_rsa</tt>, and it was, quoting Net::SSH&#039;s :keys option:</p>
<blockquote>
<p>
<meta charset="utf-8"></p>
<table class="list" style="margin-top: 2em; margin-right: 2em; margin-bottom: 2em; margin-left: 2em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 221); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; background-position: initial initial; background-repeat: initial initial; ">
<tbody>
<tr>
<td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; text-align: center; vertical-align: top; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: initial; "><code>:keys</code></td>
<td style="padding-top: 0.2em; padding-right: 0.2em; padding-bottom: 0.2em; padding-left: 0.2em; text-align: left; vertical-align: top; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: initial; ">This specifies the list of private key files to use&nbsp;<em>instead</em>&nbsp;of the defaults (<code>$HOME/.ssh/id_dsa</code>,&nbsp;<code>$HOME/.ssh2/id_dsa</code>,&nbsp;<code>$HOME/.ssh/id_rsa</code>, and&nbsp;<code>$HOME/.ssh2/id_rsa</code>). The value of this option should be an array of strings.</td>
</tr>
</tbody>
</table>
<p></meta>
</p>
</blockquote>
<p>God correctly runs the process with the given uid/gid but it will not change your environment variables. And there&#039;s nothing wrong with it, all generated processes on Unix systems will inherit its parent&#039;s set of variables. God shouldn&#039;t necessarily have to be different, but in case you mess around with a given user&#039;s environment variables on a process watched by God, remember this post <img src='http://stereonaut.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://stereonaut.net/god-uid-gid/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
