<?xml version="1.0" encoding="utf-8" ?>

<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   >
<channel>
    <title>I'm Persian - GNU/Linux</title>
    <link>http://gluegadget.com/blog/</link>
    <description>My land is Iran</description>
    <dc:language>en</dc:language>
    <generator>Serendipity 1.4.1 - http://www.s9y.org/</generator>
    <pubDate>Fri, 03 Sep 2010 22:01:46 GMT</pubDate>

    <image>
        <url>http://gluegadget.com/blog/templates/bulletproof/img/s9y_banner_small.png</url>
        <title>RSS: I'm Persian - GNU/Linux - My land is Iran</title>
        <link>http://gluegadget.com/blog/</link>
        <width>100</width>
        <height>21</height>
    </image>

<item>
    <title>Twitter, OAuth and bti</title>
    <link>http://gluegadget.com/blog/index.php?/archives/34-Twitter,-OAuth-and-bti.html</link>
            <category>GNU/Linux</category>
    
    <comments>http://gluegadget.com/blog/index.php?/archives/34-Twitter,-OAuth-and-bti.html#comments</comments>
    <wfw:comment>http://gluegadget.com/blog/wfwcomment.php?cid=34</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://gluegadget.com/blog/rss.php?version=2.0&amp;type=comments&amp;cid=34</wfw:commentRss>
    

    <author>nospam@example.com (Amir Mohammad Saied)</author>
    <content:encoded>
    So Twitter finally dropped Basic authentication, and now OAuth (twitter&#039;s implementation though) is the only way to authorize clients.&lt;br /&gt;
&lt;br /&gt;
I&#039;m not going to tell you how bright is the idea behind OAuth, the idea of letting an application to do things on behalf of you without letting it know your credentials, the idea of revoking the access of misbehaving application as soon as it started being fishy, the idea of letting the server to revoke the consumer&#039;s access whenever it wants, cause of course you all know these. But wasn&#039;t that application (the one service provider decided to revoke access), the one you authorized earlier on? You and hundreds of thousands of other users? Apparently it doesn&#039;t matter, after all you are not the ultimate resource owner.&lt;br /&gt;
&lt;br /&gt;
The shiny new twitter client (which you may have even paid for, and/or even better you got it from a distribution channel) stopped working? Who&#039;s to blame? Depends on whom you ask. Twitter would eventually blame developers for not being able to hide their key and secret.&lt;br /&gt;
&lt;br /&gt;
But is it really developer&#039;s underdo? OAuth specifications clearly state that the service provider shouldn&#039;t solely rely on the secret as a method to verify the consumer identity, because it&#039;s pretty damn easy to extract the key, and secret if the client is a desktop application, ergo the answer is &quot;No&quot;.&lt;br /&gt;
&lt;br /&gt;
Enough rant, time to talk about the third part of the post&#039;s title.&lt;br /&gt;
&lt;br /&gt;
&quot;&lt;a href=&quot;http://gregkh.github.com/bti/&quot;&gt;&lt;strong&gt;bti&lt;/strong&gt;&lt;/a&gt;&quot; is an open source CLI twitter/identi.ca client originally developed by the famous hacker &lt;a href=&quot;http://www.kroah.com/&quot;&gt;Greg Kroah-Hartman&lt;/a&gt; to annoy the whole world by piping the bash input as tweet/dent. I sent my first patch (readline support) in February 2009, and after that I couldn&#039;t resist sending more patches (e.g., read support) because Greg is a pleasure to work with, he accepted all my silly patches, and silently fixed all the issues with them.&lt;br /&gt;
&lt;br /&gt;
When a &lt;a href=&quot;http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=588235&quot;&gt;bug&lt;/a&gt; filed at debian BTS for sending bti to grave for not having OAuth supprot, I thought it&#039;s about time to make bti OAuth aware. The obvious was to register bti, and put the consumer key, and secret in the source. Wait, what?! You Idiot! Twitter has warned that would kill all OAuth keys seen in the wild - yeah, that&#039;s what you do when you solely rely on the secret (I know, I switched off the rant earlier, but the rant was inevitable). So we decided we&#039;d better not distribute the key and secret, thus there&#039;s no key bundled with bti.&lt;br /&gt;
&lt;br /&gt;
OK, this is what you should do in order to allow bti to tweet (thanks to Greg, the Basic auth support is still there, since Identi.ca has OAuth service provider too, I was tempted to purge Basic auth&#039;s codebase entirely):&lt;br /&gt;
&lt;ul&gt;&lt;br /&gt;
&lt;li&gt;Go to &lt;a href=&quot;http://twitter.com/apps/new&quot;&gt;http://twitter.com/apps/new&lt;/a&gt; to register a new application. Set the &quot;Application type&quot; as &quot;Client&quot;, and &quot;Default Access type&quot; to &quot;Read &amp;amp; Write&quot;.&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;Open bti config file (~/.bti), and put these two lines into it:&lt;br/&gt;&lt;br /&gt;
   &lt;em&gt;consumer_key=THE_CONSUMER_KEY_IN_APPLICATION_DETAILS_PAGE&lt;/em&gt;&lt;br/&gt;&lt;br /&gt;
   &lt;em&gt;consumer_secret=THE_CONSUMER_SECRET_IN_APPLICATION_DETAILS_PAGE&lt;/em&gt;&lt;br/&gt;&lt;br /&gt;
&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;Run bti, if things go well bti should print an URL, open that in your browser, and allow bti to access your account. Copy the PIN and paste it in bti prompt. Now bti should print &lt;em&gt;access_token_key&lt;/em&gt;, and &lt;em&gt;access_token_secret&lt;/em&gt;, paste those two lines in your bti config file as well.&lt;/li&gt;&lt;br /&gt;
&lt;/ul&gt;&lt;br /&gt;
That&#039;s it! 
    </content:encoded>

    <pubDate>Fri, 03 Sep 2010 18:01:46 -0400</pubDate>
    <guid isPermaLink="false">http://gluegadget.com/blog/index.php?/archives/34-guid.html</guid>
    
</item>
<item>
    <title>mod_gearman_status</title>
    <link>http://gluegadget.com/blog/index.php?/archives/33-mod_gearman_status.html</link>
            <category>Apache</category>
            <category>Gearman</category>
            <category>GNU/Linux</category>
    
    <comments>http://gluegadget.com/blog/index.php?/archives/33-mod_gearman_status.html#comments</comments>
    <wfw:comment>http://gluegadget.com/blog/wfwcomment.php?cid=33</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://gluegadget.com/blog/rss.php?version=2.0&amp;type=comments&amp;cid=33</wfw:commentRss>
    

    <author>nospam@example.com (Amir Mohammad Saied)</author>
    <content:encoded>
    Apparently the only way to pull information from Gearman job server is via a text-based protocol which runs on the same port as the binary protocol. I wrote a simple mod_status-like Apache module to monitor gearmand.&lt;br /&gt;
&lt;strong&gt;WARNING: bad code ahead. I warned you!&lt;/strong&gt;&lt;br /&gt;
&lt;a href=&quot;http://github.com/amir/mod_gearman_status&quot;&gt;mod_gearman_status&lt;/a&gt; 
    </content:encoded>

    <pubDate>Fri, 26 Mar 2010 10:54:25 -0400</pubDate>
    <guid isPermaLink="false">http://gluegadget.com/blog/index.php?/archives/33-guid.html</guid>
    
</item>
<item>
    <title>Seven Things</title>
    <link>http://gluegadget.com/blog/index.php?/archives/30-Seven-Things.html</link>
            <category>General</category>
            <category>GNU/Linux</category>
            <category>PHP</category>
    
    <comments>http://gluegadget.com/blog/index.php?/archives/30-Seven-Things.html#comments</comments>
    <wfw:comment>http://gluegadget.com/blog/wfwcomment.php?cid=30</wfw:comment>

    <slash:comments>3</slash:comments>
    <wfw:commentRss>http://gluegadget.com/blog/rss.php?version=2.0&amp;type=comments&amp;cid=30</wfw:commentRss>
    

    <author>nospam@example.com (Amir Mohammad Saied)</author>
    <content:encoded>
    &lt;div align=&quot;left&quot;&gt;&lt;br /&gt;
Thanks to &lt;a href=&quot;http://saltybeagle.com/&quot; title=&quot;Brett Bieber&quot;&gt;Brett Bieber&lt;/a&gt; for tagging me in the &amp;quot;Seven things you probably don&#039;t know about me&amp;quot; meme.  Unlike the others, mine are not interesting, not at all, but here goes...&lt;br /&gt;
&lt;ol&gt; &lt;br /&gt;
&lt;li&gt;I grew up in a &lt;a href=&quot;http://en.wikipedia.org/wiki/Rafsanjan&quot; title=&quot;Rafsanjan&quot;&gt;small city&lt;/a&gt; famous for it&#039;s pistachio and rugs. I now live in a big, crowded city which suffers from severe air pollution, Tehran.&lt;/li&gt; &lt;br /&gt;
&lt;li&gt;Not too many people know this, but I play &lt;a href=&quot;http://en.wikipedia.org/wiki/Santur&quot; title=&quot;Santur&quot;&gt;Santur&lt;/a&gt;, and once was in a concert.&lt;/li&gt; &lt;br /&gt;
&lt;li&gt;My first computer was a &lt;a href=&quot;http://en.wikipedia.org/wiki/Commodore_128&quot; title=&quot;Commodore 128&quot;&gt;Commodore 128&lt;/a&gt; at the age of 6 or 7. God knows how many circles I drew.&lt;/li&gt; &lt;br /&gt;
&lt;li&gt;Never been in a party or wedding ... I&#039;m actually uneasy in crowded places.&lt;/li&gt; &lt;br /&gt;
&lt;li&gt;I don&#039;t drink alcohol... yet &lt;img src=&quot;http://gluegadget.com/blog/templates/default/img/emoticons/wink.png&quot; alt=&quot;;-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt;&lt;/li&gt; &lt;br /&gt;
&lt;li&gt;I&#039;m a big fan of &lt;a href=&quot;http://en.wikipedia.org/wiki/Progressive_rock&quot; title=&quot;Progressive rock&quot;&gt;Progressive rock&lt;/a&gt;... actually, I like 70&#039;s.&lt;/li&gt; &lt;br /&gt;
&lt;li&gt;I really want to get a PHP user group started here in Tehran.&lt;/li&gt; &lt;br /&gt;
&lt;/ol&gt;I can&#039;t find anyone with a blog who hasn&#039;t already been tagged for this, so I guess I&#039;m the last one &lt;img src=&quot;http://gluegadget.com/blog/templates/default/img/emoticons/tongue.png&quot; alt=&quot;:-P&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt;&lt;br /&gt; &lt;br /&gt;
&lt;/div&gt; 
    </content:encoded>

    <pubDate>Thu, 26 Feb 2009 10:31:26 -0500</pubDate>
    <guid isPermaLink="false">http://gluegadget.com/blog/index.php?/archives/30-guid.html</guid>
    
</item>
<item>
    <title>MIT/GNU Scheme and Gentoo</title>
    <link>http://gluegadget.com/blog/index.php?/archives/29-MITGNU-Scheme-and-Gentoo.html</link>
            <category>Gentoo</category>
    
    <comments>http://gluegadget.com/blog/index.php?/archives/29-MITGNU-Scheme-and-Gentoo.html#comments</comments>
    <wfw:comment>http://gluegadget.com/blog/wfwcomment.php?cid=29</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://gluegadget.com/blog/rss.php?version=2.0&amp;type=comments&amp;cid=29</wfw:commentRss>
    

    <author>nospam@example.com (Amir Mohammad Saied)</author>
    <content:encoded>
    It seems dev-scheme/mit-scheme package has been removed from portage, it could be because of files containing executable stacks or something.&lt;br /&gt;
If you (like me) need the &lt;a href=&quot;http://www.gnu.org/software/mit-scheme/&quot; title=&quot;MIT/GNU Scheme&quot;&gt;MIT/GNU Scheme&lt;/a&gt;, and prefer not to install packages unless there&#039;s an ebuild (thus there&#039;s emerge) somewhere, here&#039;s the &lt;a href=&quot;http://repo.or.cz/w/gentoo-lisp-overlay.git&quot;&gt;Gentoo lisp overlay&lt;/a&gt;, but to my surprise it&#039;s not listed at &lt;a href=&quot;http://overlays.gentoo.org/&quot;&gt;overlays.gentoo.org&lt;/a&gt;. This overlay contains dev-scheme/mit-scheme-c, and no, it&#039;s not binary.&lt;br /&gt;
Simply clone it (and don&#039;t forget to pull periodically), and add the directory to your PORTDIR_OVERLAY. 
    </content:encoded>

    <pubDate>Thu, 30 Oct 2008 10:13:00 -0400</pubDate>
    <guid isPermaLink="false">http://gluegadget.com/blog/index.php?/archives/29-guid.html</guid>
    
</item>
<item>
    <title>The New Laptop</title>
    <link>http://gluegadget.com/blog/index.php?/archives/28-The-New-Laptop.html</link>
            <category>GNU/Linux</category>
    
    <comments>http://gluegadget.com/blog/index.php?/archives/28-The-New-Laptop.html#comments</comments>
    <wfw:comment>http://gluegadget.com/blog/wfwcomment.php?cid=28</wfw:comment>

    <slash:comments>11</slash:comments>
    <wfw:commentRss>http://gluegadget.com/blog/rss.php?version=2.0&amp;type=comments&amp;cid=28</wfw:commentRss>
    

    <author>nospam@example.com (Amir Mohammad Saied)</author>
    <content:encoded>
    I just picked up a ThinkPad T61 (14.1&quot;, Intel(R) Core(TM)2 Duo CPU T9300 @ 2.50GHz, 2GB RAM, Quadro NVS 140M 512MB).&lt;br /&gt;
It comes with &quot;Windows Vista Home Premium Ultra blah blah&quot;, and I only booted into it once, actually the shop guy did, damn.&lt;br /&gt;
When I got back home, the first I did was downloading and burning a Gentoo minimal, and after almost three days I had a Gentoo from stage3 &quot;up &amp;amp; running&quot;.&lt;br /&gt;
After installing Xorg and nVidia drivers, it was time to choose a DE, and with no surprise I ended up with no DE, just a WM, a tiling one of course, &lt;a href=&quot;http://awesome.naquadah.org/&quot; title=&quot;awesome&quot;&gt;awesome&lt;/a&gt;.&lt;br /&gt;
Awesome 3 is about to release (and it&#039;s RCs are in portage, though hard masked), and it&#039;s configuration format is not backward compatible with awesome 2, so there was no point in starting with 2. Usually I don&#039;t install hard-masked packages, but this time I did, and actually emerged bunch of them in order to satisfy awesome&#039;s dependencies.&lt;br /&gt;
And ..., everything is compiled with native march and mtune &lt;img src=&quot;http://gluegadget.com/blog/templates/default/img/emoticons/smile.png&quot; alt=&quot;:-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt; 
    </content:encoded>

    <pubDate>Sat, 30 Aug 2008 04:43:19 -0400</pubDate>
    <guid isPermaLink="false">http://gluegadget.com/blog/index.php?/archives/28-guid.html</guid>
    
</item>
<item>
    <title>PEAR bash completion</title>
    <link>http://gluegadget.com/blog/index.php?/archives/27-PEAR-bash-completion.html</link>
            <category>GNU/Linux</category>
            <category>PEAR</category>
            <category>PHP</category>
    
    <comments>http://gluegadget.com/blog/index.php?/archives/27-PEAR-bash-completion.html#comments</comments>
    <wfw:comment>http://gluegadget.com/blog/wfwcomment.php?cid=27</wfw:comment>

    <slash:comments>4</slash:comments>
    <wfw:commentRss>http://gluegadget.com/blog/rss.php?version=2.0&amp;type=comments&amp;cid=27</wfw:commentRss>
    

    <author>nospam@example.com (Amir Mohammad Saied)</author>
    <content:encoded>
    Lately I&#039;ve been playing alot with the PEAR CLI. &amp;#160;The one annoying thing I noticed the most was its lack of tab completion that I&#039;m used to from the shell. &amp;#160;It turns out that this feature is very easy to add, in the bash at least. &amp;#160;&lt;span style=&quot;text-decoration:line-through;&quot;&gt;Here&lt;/span&gt; (Update: Now it&#039;s in &lt;a href=&quot;http://svn.pear.php.net/wsvn/PEARSVN/sandbox/PEAR_BashCompletion/trunk/&quot; title=&quot;PEAR bash completion&quot;&gt;PEAR SVN repository&lt;/a&gt;) is a simple tab completion script for the bash. &amp;#160;In addition to completing the PEAR commands and their respective options, it can even autocomplete the names of installed packages and discovered PEAR channels. &amp;#160;Just source it, and enjoy &lt;img src=&quot;http://gluegadget.com/blog/templates/default/img/emoticons/smile.png&quot; alt=&quot;:-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt; 
    </content:encoded>

    <pubDate>Fri, 25 Jul 2008 14:36:55 -0400</pubDate>
    <guid isPermaLink="false">http://gluegadget.com/blog/index.php?/archives/27-guid.html</guid>
    
</item>
<item>
    <title>Wearing the Inside Out(?)</title>
    <link>http://gluegadget.com/blog/index.php?/archives/21-Wearing-the-Inside-Out.html</link>
            <category>Audacious</category>
            <category>Emacs</category>
            <category>GNU/Linux</category>
    
    <comments>http://gluegadget.com/blog/index.php?/archives/21-Wearing-the-Inside-Out.html#comments</comments>
    <wfw:comment>http://gluegadget.com/blog/wfwcomment.php?cid=21</wfw:comment>

    <slash:comments>4</slash:comments>
    <wfw:commentRss>http://gluegadget.com/blog/rss.php?version=2.0&amp;type=comments&amp;cid=21</wfw:commentRss>
    

    <author>nospam@example.com (Amir Mohammad Saied)</author>
    <content:encoded>
    &lt;div dir=&quot;ltr&quot; align=&quot;left&quot;&gt;&lt;br /&gt;
I had always an excuse for not playing with Emacs, and it was that I don&#039;t have 24 fingers in my hands, and even if I had, I do promise that those crappy keyboards would break my wrist.&lt;br /&gt;
&lt;br /&gt;
Last week, I bought a new keyboard, a &lt;a href=&quot;http://www.amazon.com/Logitech-967415-0403-Media-Keyboard/dp/B0002F8WKS&quot;&gt;Logitech Media Keyboard Elite&lt;/a&gt;.&lt;br /&gt;
I must admit that this is the best keyboard that I have ever had, though it has a bunch of useless so called &quot;Multimedia keys&quot;.&lt;br /&gt;
Well, right after plugging it in and starting my box, &lt;em&gt;I decided to ...&lt;/em&gt;&lt;br /&gt;
Yess, and finally I migrated from my beloved Vim to Emacs, I&#039;m not sure if I&#039;ll stay with Emacs forever but at least I&#039;m withe her for one month.&lt;br /&gt;
After writing a cheat sheet and stick it on my monitor pane and learning the basic skills, it was time to port my own Vim plugins to Emacs, If you&#039;re a frequent reader of my blog, you probably know I wrote &lt;a href=&quot;http://gluegadget.com/blog/index.php?/archives/13-An-Audacious-plugin-for-Vim.html&quot;&gt;an Audacious plugin for Vim&lt;/a&gt; couple of months ago which let me control the Audacious from right within Vim, but now (after a week hanging around in emacs) I really feel that it&#039;s missing, and the lack of that code-snippet became an excuse for me to start learning elisp!&lt;br /&gt;
Lisp seems hilarious at the first glimpse, it will put you alone with &lt;strong&gt;L&lt;/strong&gt;ots of &lt;strong&gt;I&lt;/strong&gt;nsignificant &lt;strong&gt;S&lt;/strong&gt;illy &lt;strong&gt;P&lt;/strong&gt;arentheses. But when you got familiar with its syntax and the flow, you&#039;ll like it, believe me.&lt;br /&gt;
&lt;br /&gt;
And here you are, &lt;a href=&quot;http://www.emacswiki.org/cgi-bin/wiki/audel.el&quot;&gt;an Audacious .el&lt;/a&gt;.&lt;br /&gt;
&lt;/div&gt;  
    </content:encoded>

    <pubDate>Mon, 04 Jun 2007 16:27:47 -0400</pubDate>
    <guid isPermaLink="false">http://gluegadget.com/blog/index.php?/archives/21-guid.html</guid>
    
</item>
<item>
    <title>GNU Screen</title>
    <link>http://gluegadget.com/blog/index.php?/archives/15-GNU-Screen.html</link>
            <category>GNU/Linux</category>
    
    <comments>http://gluegadget.com/blog/index.php?/archives/15-GNU-Screen.html#comments</comments>
    <wfw:comment>http://gluegadget.com/blog/wfwcomment.php?cid=15</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://gluegadget.com/blog/rss.php?version=2.0&amp;type=comments&amp;cid=15</wfw:commentRss>
    

    <author>nospam@example.com (Amir Mohammad Saied)</author>
    <content:encoded>
    There&#039;s an awesome utility in most modern *nix operating systems called &lt;a href=&quot;http://www.gnu.org/software/screen/&quot;&gt;GNU Screen&lt;/a&gt;.&lt;br /&gt;
If you&#039;re a guy-who-used-to-the-console and you&#039;re not addicted to the &quot;GNU Screen&quot; yet, you&#039;ll be a member of one of these two groups then,&lt;br /&gt;
&lt;strong&gt;I&lt;/strong&gt;) Never heard about it.&lt;br /&gt;
&lt;strong&gt;II&lt;/strong&gt;) You did hear, but never realized how awesome it is.&lt;br /&gt;
&lt;br /&gt;
If you&#039;re a member of the first group, you may ask &lt;em&gt;`What this utility supposed to do?&#039;&lt;/em&gt;&lt;br /&gt;
The short answer would be, it&#039;s a terminal multiplexer.&lt;br /&gt;
And the long one would be, using GNU screen you&#039;ll just open a single terminal but you&#039;ll control any number of console-based programs inside that single terminal!&lt;br /&gt;
&lt;br /&gt;
I&#039;m a terminal addicted (gnome-terminal I mean) guy, as soon as my &lt;a href=&quot;http://www.gnome.org/&quot;&gt;GNOME&lt;/a&gt; hits the screen, dozens of terminal emulators would pop-up, one for &lt;a href=&quot;http://www.irssi.org/&quot;&gt;Irssing&lt;/a&gt;, the other one for coding, another one for monitoring, maybe one for emerging stuff, etc etc. But now I just open one, and thanks to the GNU screen I&#039;ll do all of these stuff right within it. 
    </content:encoded>

    <pubDate>Fri, 02 Mar 2007 11:06:37 -0500</pubDate>
    <guid isPermaLink="false">http://gluegadget.com/blog/index.php?/archives/15-guid.html</guid>
    
</item>

</channel>
</rss>