<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Posts on Saleem Ansari</title>
    <link>/post/</link>
    <description>Recent content in Posts on Saleem Ansari</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <copyright>(c) 2024 Saleem Ansari</copyright>
    <lastBuildDate>Mon, 26 Aug 2019 00:00:27 +0530</lastBuildDate>
    <atom:link href="/post/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Audio routing using PulseAudio</title>
      <link>/2019/08/26/audio-routing-using-pulseaudio/</link>
      <pubDate>Mon, 26 Aug 2019 00:00:27 +0530</pubDate>
      <guid>/2019/08/26/audio-routing-using-pulseaudio/</guid>
      <description>How to play audio on multiple devices on your Ubuntu machine? Lets say we want to play audio on multiple output devices:&#xA;Bluetooth Speaker PC Speaker We can use pacmd[1] for this purpose.&#xA;List sources&#xA;$ pacmd list-sources |grep name: name: &amp;lt;bluez_sink.00_00_00_00_D2_89.a2dp_sink.monitor&amp;gt; name: &amp;lt;alsa_output.pci-0000_00_1f.3.analog-stereo.monitor&amp;gt; List sinks&#xA;$ pacmd list-sinks | grep name: name: &amp;lt;bluez_sink.00_00_00_00_D2_89.a2dp_sink&amp;gt; name: &amp;lt;alsa_output.pci-0000_00_1f.3.analog-stereo&amp;gt; We want to replay audio coming out from:&#xA;Bluetooth Speaker bluez_sink.00_00_00_00_D2_89.a2dp_sink.monitor to PC Speaker alsa_output.</description>
    </item>
    <item>
      <title>Git Tips and Tricks</title>
      <link>/2019/03/10/git-tips-and-tricks/</link>
      <pubDate>Sun, 10 Mar 2019 00:00:27 +0530</pubDate>
      <guid>/2019/03/10/git-tips-and-tricks/</guid>
      <description>Git Tips and Tricks</description>
    </item>
    <item>
      <title>Six sided dice problem</title>
      <link>/2019/02/14/six-sided-dice-problem/</link>
      <pubDate>Thu, 14 Feb 2019 00:00:27 +0530</pubDate>
      <guid>/2019/02/14/six-sided-dice-problem/</guid>
      <description>Six sided dice problem&#xA;Summary:&#xA;$$ n = \sum_{k=1}^{\infty}{k*P(rolls=k)} $$&#xA;Where:&#xA;$$P(rolls=k) = q^{(k-1)} * p$$&#xA;p is probability we get a 6 in k&amp;rsquo;th roll, and q^(k-1) is probability we do not get a 6 in all k-1 rolls.</description>
    </item>
    <item>
      <title>SSL VPN Client on Linux</title>
      <link>/2019/01/31/ssl-vpn-client-on-linux/</link>
      <pubDate>Thu, 31 Jan 2019 00:00:27 +0530</pubDate>
      <guid>/2019/01/31/ssl-vpn-client-on-linux/</guid>
      <description>Using SSL VPN Client on Linux</description>
    </item>
    <item>
      <title>Setup JanusGraph with HBASE backend</title>
      <link>/2019/01/03/setup-janusgraph-with-hbase-backend/</link>
      <pubDate>Thu, 03 Jan 2019 00:00:27 +0530</pubDate>
      <guid>/2019/01/03/setup-janusgraph-with-hbase-backend/</guid>
      <description>Setup JanusGraph with HBASE backend</description>
    </item>
    <item>
      <title>Monitoring Nvidia GPUs on Linux</title>
      <link>/2018/10/10/monitoring-nvidia-gpus-on-linux/</link>
      <pubDate>Wed, 10 Oct 2018 00:00:27 +0530</pubDate>
      <guid>/2018/10/10/monitoring-nvidia-gpus-on-linux/</guid>
      <description>Monitoring Nvidia GPUs on Linux</description>
    </item>
    <item>
      <title>Pandas Pivot Example</title>
      <link>/2018/08/27/pandas-pivot-example/</link>
      <pubDate>Mon, 27 Aug 2018 00:00:27 +0530</pubDate>
      <guid>/2018/08/27/pandas-pivot-example/</guid>
      <description>Pandas Pivot Example</description>
    </item>
    <item>
      <title>Why software estimation fails?</title>
      <link>/2018/02/09/why-software-estimation-fails/</link>
      <pubDate>Fri, 09 Feb 2018 00:00:27 +0530</pubDate>
      <guid>/2018/02/09/why-software-estimation-fails/</guid>
      <description>Why software estimation fails?</description>
    </item>
    <item>
      <title>Estimating hard to invert functions</title>
      <link>/2018/02/04/estimating-hard-to-invert-functions/</link>
      <pubDate>Sun, 04 Feb 2018 00:00:27 +0530</pubDate>
      <guid>/2018/02/04/estimating-hard-to-invert-functions/</guid>
      <description>Estimating hard to invert functions</description>
    </item>
    <item>
      <title>Create portable encrypted filesystem</title>
      <link>/2017/11/26/create-portable-encrypted-filesystem/</link>
      <pubDate>Sun, 26 Nov 2017 00:00:27 +0530</pubDate>
      <guid>/2017/11/26/create-portable-encrypted-filesystem/</guid>
      <description>Create portable encrypted filesystem</description>
    </item>
    <item>
      <title>How to become successful?</title>
      <link>/2017/09/22/how-to-become-successful/</link>
      <pubDate>Fri, 22 Sep 2017 00:00:27 +0530</pubDate>
      <guid>/2017/09/22/how-to-become-successful/</guid>
      <description>How to become successful?</description>
    </item>
    <item>
      <title>Top 20 Stack Overflow Tags</title>
      <link>/2016/05/09/top-20-stack-overflow-tags/</link>
      <pubDate>Mon, 09 May 2016 16:00:27 +0530</pubDate>
      <guid>/2016/05/09/top-20-stack-overflow-tags/</guid>
      <description>Finding Top 20 Tags on StackOverflow main site&#xA;Download StackOverflow Tags data from following site:&#xA;https://archive.org/download/stackexchange wget -c &amp;#34;https://archive.org/download/stackexchange/stackoverflow.com-Tags.7z&amp;#34; 7za e stackoverflow.com-Tags.7z Now convert the file Tags.xml into a dataframe in Python:&#xA;import json import pandas as pd import numpy as np import xmltodict import matplotlib.pyplot as plt f = open(&amp;#34;Tags.xml&amp;#34;) all_data = f.read() o = xmltodict.parse(all_data) df = pd.DataFrame.from_dict(o[&amp;#39;tags&amp;#39;][&amp;#39;row&amp;#39;]) df[[&amp;#39;counts&amp;#39;]] = df[[&amp;#39;@Count&amp;#39;]].astype(int) df2 = df.sort_values(by=[&amp;#39;counts&amp;#39;], ascending=False).head(20)[[&amp;#39;counts&amp;#39;, &amp;#39;@TagName&amp;#39;]] &amp;#34;&amp;#34;&amp;#34; counts @TagName 1067078 javascript 1025688 java 918586 c# 885422 php 800779 android 712360 jquery 542985 python 511091 html 431790 c++ 414394 ios 380535 mysql 372444 css 319001 sql 282582 asp.</description>
    </item>
    <item>
      <title>Extract Text From PDF</title>
      <link>/2015/12/20/extract-text-from-pdf/</link>
      <pubDate>Sun, 20 Dec 2015 04:12:29 +0530</pubDate>
      <guid>/2015/12/20/extract-text-from-pdf/</guid>
      <description>Extract Text from Images in multi-page PDF To extract text from PDF, you would need two software installed on your machine.&#xA;ghostscript&#xA;tesseract OCR&#xA;Installing these on Fedora is very easy:&#xA;$ sudo yum install -y ghostscript tesseract Now if your PDF file is named story.pdf the you can extract text as follows:&#xA;$ ghostscript -dNOPAUSE -dBATCH -sDEVICE=pngalpha -r300 -sOutputFile=&amp;quot;page%03d&amp;quot;.png story.pdf $ for f in page*.png ; do tesseract $f $f.</description>
    </item>
    <item>
      <title>Go Garbage Collector</title>
      <link>/2015/12/15/go-garbage-collector/</link>
      <pubDate>Tue, 15 Dec 2015 04:36:55 +0530</pubDate>
      <guid>/2015/12/15/go-garbage-collector/</guid>
      <description>After trying Go for the first time recently, I am amazed with how fast the programs compile. The compiled code ends up being in machine code, and no intermediate virtual machine is required. However, there is one piece that is present in each executable i.e. the garbage collector - GC.&#xA;But, how does GC work in Go? How tunable is it? For now this is what I have found:&#xA;On the topic of performance, keep in mind that Go gives the programmer considerable control over memory layout and allocation, much more than is typical in garbage-collected languages.</description>
    </item>
    <item>
      <title>ScalaQuine</title>
      <link>/2015/12/08/scalaquine/</link>
      <pubDate>Tue, 08 Dec 2015 10:07:23 -0800</pubDate>
      <guid>/2015/12/08/scalaquine/</guid>
      <description>A Scala quine ( program that prints itself ):&#xA;$ cat ScalaQuine.scala Here it is:&#xA;object ScalaQuine extends App { val x = &amp;quot;&amp;quot;&amp;quot;object ScalaQuine extends App {%c val x = %c%c%c%s%c%c%c%c println(x.format(&#39;\n&#39;, &#39;\&amp;quot;&#39;, &#39;\&amp;quot;&#39;, &#39;\&amp;quot;&#39;, x, &#39;\&amp;quot;&#39;, &#39;\&amp;quot;&#39;, &#39;\&amp;quot;&#39;, &#39;\n&#39;, &#39;\n&#39;))%c}&amp;quot;&amp;quot;&amp;quot; println(x.format(&#39;\n&#39;, &#39;\&amp;quot;&#39;, &#39;\&amp;quot;&#39;, &#39;\&amp;quot;&#39;, x, &#39;\&amp;quot;&#39;, &#39;\&amp;quot;&#39;, &#39;\&amp;quot;&#39;, &#39;\n&#39;, &#39;\n&#39;)) } Compile and run:&#xA;$ scalac ScalaQuine.scala $ scala ScalaQuine Same as original program:&#xA;object ScalaQuine extends App { val x = &amp;quot;&amp;quot;&amp;quot;object ScalaQuine extends App {%c val x = %c%c%c%s%c%c%c%c println(x.</description>
    </item>
    <item>
      <title>Protect Net Neutrality in India</title>
      <link>/2015/04/11/protect-net-neutrality-in-india/</link>
      <pubDate>Sat, 11 Apr 2015 00:00:00 +0000</pubDate>
      <guid>/2015/04/11/protect-net-neutrality-in-india/</guid>
      <description>Internet is a global network, with total freedom. Well, that is soon going to change, unless you act now. While you are reading this, someone is trying to control what you see, read, download, listen or write on the internet by taking control over the sites you can access! Don&amp;rsquo;t wait for that moment to happen. Act now, and protect Net Neutrality by signing in for the petition.&#xA;What is the matter with Net Neutrality anyways?</description>
    </item>
    <item>
      <title>Google App Engine with ManagedVMs and Boot2Docker on a Linux machine</title>
      <link>/2014/12/14/google-app-engine-with-managedvms-and-boot2docker-on-a-linux-machine/</link>
      <pubDate>Sun, 14 Dec 2014 21:27:07 -0800</pubDate>
      <guid>/2014/12/14/google-app-engine-with-managedvms-and-boot2docker-on-a-linux-machine/</guid>
      <description>I have be trying to configure Google App Engine with ManagedVMs on Linux for a few days.&#xA;We will perform these steps on Ubuntu ( can also be done on Fedora ):&#xA;Install Google App Engine SDK Install Latest Docker Install VirtualBox Install Boot2Docker CLI Install Google App Engine SDK Download Google App Engine SDK ( you may want to keep the defaults as is )&#xA;$ curl https://sdk.cloud.google.com | bash Now in a new terminal</description>
    </item>
    <item>
      <title>Check memory limit on a server</title>
      <link>/2014/11/14/check-memory-limit-on-a-server/</link>
      <pubDate>Fri, 14 Nov 2014 21:02:13 +0530</pubDate>
      <guid>/2014/11/14/check-memory-limit-on-a-server/</guid>
      <description>This is a simple C program to check memory limit on a server.&#xA;#include &amp;lt;stdio.h&amp;gt; #include &amp;lt;stdlib.h&amp;gt; int main(int argc, char* argv[]) { const int KB = 1024; /* bytes */ const int MB = 1024 * KB; /* bytes */ const int GB = 1024 * MB; /* bytes */ long size = 0; void *p = NULL; int ctr; int j; int times = 100000; long sum = 0; for(ctr = 0; ctr &amp;lt; times; ctr ++ ) { size = 10 * MB; printf(&amp;#34;Allocating %zu bytes memory \n&amp;#34;, size); p = calloc(1, size); if(p !</description>
    </item>
    <item>
      <title>MACLUG Inauguration at New Delhi</title>
      <link>/2014/09/20/maclug-inauguration-at-new-delhi/</link>
      <pubDate>Sat, 20 Sep 2014 20:07:05 +0530</pubDate>
      <guid>/2014/09/20/maclug-inauguration-at-new-delhi/</guid>
      <description>Today I attend the inauguration ceremony of MACLUG - Maharaja Agrasen College, GNU/Linux Users Group. I was honoured to have been invited among many esteemed guests to light the lamp of this wonderful new beginning. This reminded me how nine years ago I along with a bunch of enthusiasts started JMILUG.&#xA;I shared my thoughts on &amp;ldquo;Freedom - Community - Science - Innovation&amp;rdquo;&#xA;Four Freedoms Let me begin with the Four Freedoms.</description>
    </item>
    <item>
      <title>Single window mode in Pidgin messenger using window_merge plugin</title>
      <link>/2014/08/12/single-window-mode-in-pidgin-messenger-using-window_merge-plugin/</link>
      <pubDate>Tue, 12 Aug 2014 23:53:12 -0700</pubDate>
      <guid>/2014/08/12/single-window-mode-in-pidgin-messenger-using-window_merge-plugin/</guid>
      <description>I wanted to view all the different chat windows and the buddy list side by side in a single window. There is no such feature in stock Pidgin installation. Fortunately I found a plugin for same from this ticket.&#xA;This plugin is available on Github project dm0-/window-merge ( thanks to David Michael / dm0- for creating it ! ).&#xA;You can find the build / install instructions on the wiki, however here is how you can do it on Ubuntu 14.</description>
    </item>
    <item>
      <title>Generation and Visualization of Phylogenetic Trees</title>
      <link>/2014/08/04/generation-and-visualization-of-phylogenetic-trees/</link>
      <pubDate>Mon, 04 Aug 2014 18:19:20 -0700</pubDate>
      <guid>/2014/08/04/generation-and-visualization-of-phylogenetic-trees/</guid>
      <description>In the year 2006, I had created a project as a part of my academics. I finally managed to find the source code and complete project report which I have uploaded to Github. Mainily, I have updated the source code to use cmake build tool. The project documentation is in Asciidoc. Although it is quite an old piece of code, it works:&#xA;plyloviz &amp;ndash; Phylogenetic Trees Visualization phyloviz: phyloviz is Phylogenetic Trees Visualization tool.</description>
    </item>
    <item>
      <title>Writing two books with AsciiDoc: Apache Mahout and Scala</title>
      <link>/2014/07/20/writing-two-books-with-asciidoc-apache-mahout-and-scala/</link>
      <pubDate>Sun, 20 Jul 2014 11:24:05 -0700</pubDate>
      <guid>/2014/07/20/writing-two-books-with-asciidoc-apache-mahout-and-scala/</guid>
      <description>For past few weeks I have been gathering my notes on two topics: Machine Learning with Apache Mahout and Programming in Scala. Now I have created two repositories for these two books, with source-code in AsciiDoc format. They are avilable on GitHub.&#xA;Machine Learning with Apache Mahout Programming in Scala Read on!</description>
    </item>
    <item>
      <title>How to configure &#39;is not responding&#39; window timeout in GNOME?</title>
      <link>/2014/07/15/how-to-configure-is-not-responding-window-timeout-in-gnome/</link>
      <pubDate>Tue, 15 Jul 2014 07:49:35 -0700</pubDate>
      <guid>/2014/07/15/how-to-configure-is-not-responding-window-timeout-in-gnome/</guid>
      <description>Everytime I load a heavy application such as Eclipse or Thunderbird, I see this annoying message which keeps repeating even if I press &amp;ldquo;Wait&amp;rdquo;.&#xA;&amp;quot;Eclipse&amp;quot; is not responding. You may choose to wait a short while for it to continue or force the application to quit entirely. [Force Quit] [Wait] I tried to search for a solution and found that the question is unanswered in both Ubuntu forum as well as Fedora forum.</description>
    </item>
    <item>
      <title>OAuth2.0 Server using Play! 2.0 Framework in Scala</title>
      <link>/2014/07/09/oauth2.0-server-using-play-2.0-framework-in-scala/</link>
      <pubDate>Wed, 09 Jul 2014 05:33:56 -0700</pubDate>
      <guid>/2014/07/09/oauth2.0-server-using-play-2.0-framework-in-scala/</guid>
      <description>OAuth2.0 supercedes OAuth1.0 protocol, specifically in making it simpler to use. It supports different workflows as described in its specification RFC-6749. The most concise pictorial representation I found is here.&#xA;I created a Play! 2.0 Application in Scala which supports server to server token exchange using OAuth2.0 Protocol. You can find the project source code on GitHub at play-oauth2-server. Its a complete working server codebase, with:&#xA;Basic User login Client registration with Callback URL Auth Code generation Authentication Token and Refresh Token generation This application also demonstrates the following:</description>
    </item>
    <item>
      <title>Machine Learning with Ruby</title>
      <link>/2014/06/30/machine-learning-with-ruby/</link>
      <pubDate>Mon, 30 Jun 2014 05:00:48 -0700</pubDate>
      <guid>/2014/06/30/machine-learning-with-ruby/</guid>
      <description>This post is about the talk I was supposed to give at Ruby Camp 2014, Delhi/NCR. After all the preparation, slides and code I missed it. Unfortunately, I fell sick overnight and I couldn&amp;rsquo;t make it. Apologies for that.&#xA;The best I could do is upload all the material online on GitHub and my website.&#xA;the code is on GitHub at this repository: tuxdna/rubyml. the generated slides are also online here Thats all!</description>
    </item>
    <item>
      <title>Auto-refresh Firefox on each change after editing your source code</title>
      <link>/2014/06/18/auto-refresh-firefox-on-each-change-after-editing-your-source-code/</link>
      <pubDate>Wed, 18 Jun 2014 14:01:10 -0700</pubDate>
      <guid>/2014/06/18/auto-refresh-firefox-on-each-change-after-editing-your-source-code/</guid>
      <description>Lets say you have a bunch of source code files in a project. Whenever you change them, you want some HTML to be generated. After that you go to browser to see how the change looks now. Here is the workflow:&#xA;Step 1: Change file(s) Step 2: Run a build script to generate HTML Step 3: Open / Reload the page in browser Well we can automate all the three steps into one using a couple of tools and some scripting magic.</description>
    </item>
    <item>
      <title>YouTube World Cup 2014 videos not showing in your region?</title>
      <link>/2014/06/12/youtube-world-cup-2014-videos-not-showing-in-your-region/</link>
      <pubDate>Thu, 12 Jun 2014 23:43:56 -0700</pubDate>
      <guid>/2014/06/12/youtube-world-cup-2014-videos-not-showing-in-your-region/</guid>
      <description>I was using Chromium Browser on Linux, to see World Cup 2014 videos on YouTube. Some videos were not available in my region because of restrictions by region. If you are also seeng the same message, the you may want to setup a SOCKS proxy, and use that to bypass the YouTube restriction. For this to work, you need an SSH server what is located in some region from where you can access such videos.</description>
    </item>
    <item>
      <title>Creating Desktop Shortcuts for Scala IDE on Linux</title>
      <link>/2014/06/10/creating-desktop-shortcuts-for-scala-ide-on-linux/</link>
      <pubDate>Tue, 10 Jun 2014 02:18:11 -0700</pubDate>
      <guid>/2014/06/10/creating-desktop-shortcuts-for-scala-ide-on-linux/</guid>
      <description>Download the Scala IDE from here, unzip it at ~/software/scala-eclipse, such that the contents look as follows:&#xA;$ pwd /home/saleem/software/scala-eclipse $ ls artifacts.xml configuration eclipse eclipse.ini epl-v10.html features icon.xpm META-INF notice.html p2 plugins readme Create a launcher script for Scala IDE /bin/scala-ide, and make it executable:&#xA;$ cat /bin/scala-ide #!/bin/bash /home/saleem/software/scala-eclipse/eclipse $ chmod +x /bin/scala-ide Configure launcher icon ~/.local/share/applications/scala-ide.desktop. You can copy a config file from /usr/share/applications/ directory and make changes as follows:</description>
    </item>
    <item>
      <title>Machine Learning with Mahout and Scala</title>
      <link>/2014/06/03/machine-learning-with-mahout-and-scala/</link>
      <pubDate>Tue, 03 Jun 2014 22:27:10 -0700</pubDate>
      <guid>/2014/06/03/machine-learning-with-mahout-and-scala/</guid>
      <description>This post is coming after a long time. Apologies for that.&#xA;Alright, this one is for the fans of Apache Mahout and Scala programming language. I had given a talk on Machine Learning with Apache Mahout and Scala ( slides ) at OSDConf.in. The code examples are present on GitHub at this repo.</description>
    </item>
    <item>
      <title>Scala at BootConf 2014</title>
      <link>/2014/03/23/scala-at-bootconf-2014/</link>
      <pubDate>Sun, 23 Mar 2014 00:23:46 +0530</pubDate>
      <guid>/2014/03/23/scala-at-bootconf-2014/</guid>
      <description>I attended BootConf 2014 today.&#xA;The day began with Arduino for Robotics by Naveen Kumar. It was such a wonderful 1 hour session, purely demo based, and very interactive. Second talk was Varnish Caching Server by Vivek Gupta. Vivek explanined how a caching server fits in a clustered environment and what all things that we can do with Varnish.&#xA;Next was my talk Introduction to Scala. You can find the slides here, and all the code for demo at this GitHub repository.</description>
    </item>
    <item>
      <title>BootConf 2014 and Octopress</title>
      <link>/2014/03/18/bootconf-2014-and-octopress/</link>
      <pubDate>Tue, 18 Mar 2014 00:42:53 +0530</pubDate>
      <guid>/2014/03/18/bootconf-2014-and-octopress/</guid>
      <description>Last week, I setup the infrastructure for BootConf 2014 website and its deployment workflow. Essentially the website is based on Octopress with a mix of Git + SSH to ensure we deploy to a staging site first and then to the live site. Its all working nice for us.&#xA;Octopress Setup Here is how I set it up:&#xA;On a server machine On a staging server setup two Git+SSH Repositories or you can use GitHub for this step.</description>
    </item>
    <item>
      <title>UNIX and heavy duty printing</title>
      <link>/2014/03/18/unix-and-heavy-duty-printing/</link>
      <pubDate>Tue, 18 Mar 2014 00:42:53 +0530</pubDate>
      <guid>/2014/03/18/unix-and-heavy-duty-printing/</guid>
      <description>UNIX and heavy duty printing This weekend I had to ensure that the posters get done within two days. The challenge was that on Monday it was Holi ( the festival of colors ), so naturally no designing and printing available on Monday. Thankfully my friend was there for all the professional help, all the way from designing till printing.&#xA;Here in the pic is Saleem Ahamed standing besides the posters, who helped with all the designing and priting of BootConf 2014 posters.</description>
    </item>
    <item>
      <title>One more week to go</title>
      <link>/2014/03/15/one-more-week-to-go/</link>
      <pubDate>Sat, 15 Mar 2014 15:11:35 -0700</pubDate>
      <guid>/2014/03/15/one-more-week-to-go/</guid>
      <description>One more week to go We had a great day today in the planning meeting. First of all it was a nice get-together of some oldies and new members to JMILUG team :-).</description>
    </item>
    <item>
      <title>A simple Scala parser to parse 44GB Wikipedia XML Dump</title>
      <link>/2014/02/03/a-simple-scala-parser-to-parse-44gb-wikipedia-xml-dump/</link>
      <pubDate>Mon, 03 Feb 2014 00:00:00 +0000</pubDate>
      <guid>/2014/02/03/a-simple-scala-parser-to-parse-44gb-wikipedia-xml-dump/</guid>
      <description>I had to parse a Wikipedia XML Dump ( 44GB XML file uncompressed ). The XML dump is available here, and I have also created a smaller sample file to run this code: sample wiki.xml file.&#xA;Below is the XML event based parser using Scala&amp;rsquo;s XMLEventReader:&#xA;package xml import scala.io.Source import scala.xml.pull._ import scala.collection.mutable.ArrayBuffer import java.io.File import java.io.FileOutputStream import scala.xml.XML object wikipedia extends App { val xmlFile = args(0) val outputLocation = new File(args(1)) val xml = new XMLEventReader(Source.</description>
    </item>
    <item>
      <title>JMILUG Meetup - 9th November 2013</title>
      <link>/2013/11/10/jmilug-meetup-9th-november-2013/</link>
      <pubDate>Sun, 10 Nov 2013 00:00:00 +0000</pubDate>
      <guid>/2013/11/10/jmilug-meetup-9th-november-2013/</guid>
      <description>Attendees:&#xA;There wasn&amp;rsquo;t a pre-defined agenda so the discussion took its own course. We discussed about many things:&#xA;In this meetup some members met after a very long time, so it was only a get together. No tasks assigned in particular.</description>
    </item>
    <item>
      <title>Attending ScalaTraits 2013 event in New Delhi</title>
      <link>/2013/08/25/attending-scalatraits-2013-event-in-new-delhi/</link>
      <pubDate>Sun, 25 Aug 2013 00:00:00 +0000</pubDate>
      <guid>/2013/08/25/attending-scalatraits-2013-event-in-new-delhi/</guid>
      <description>First of all I was surprised that an event specifically targeted towards Scala was happening in India and very fortunately in New Delhi itself. I attend the ScalaTraits 2013 event in New Delhi a couple of days back.&#xA;The event was put together by Knoldus, a company specializing exclusively in Scala and related technologies.&#xA;The agenda was like this:&#xA;Introductory talk This talk was an introduction to the Scala ecosystem as a whole by Vikas Hazrati.</description>
    </item>
    <item>
      <title>Deleting lots of spam content on a Drupal website</title>
      <link>/2013/08/25/deleting-lots-of-spam-content-on-a-drupal-website/</link>
      <pubDate>Sun, 25 Aug 2013 00:00:00 +0000</pubDate>
      <guid>/2013/08/25/deleting-lots-of-spam-content-on-a-drupal-website/</guid>
      <description>Deleting Spam on FUDCON.in website&#xA;After FUDCon Pune event in 2011, the website has been running as is. Just a couple of days back, I noticed a lot of spam accumulated on the website. However it is that content which is not displayed on the website, unless you know its URL. I located the last known sane activity and began estimating how much spam content I have to delete.&#xA;Here I use Drush and a simple PHP script.</description>
    </item>
    <item>
      <title>Remote Desktop from a Linux client machine</title>
      <link>/2013/08/07/remote-desktop-from-a-linux-client-machine/</link>
      <pubDate>Wed, 07 Aug 2013 00:00:00 +0000</pubDate>
      <guid>/2013/08/07/remote-desktop-from-a-linux-client-machine/</guid>
      <description>Connecting to Remote Desktop from Linux machine is easy. Invoke the following command&#xA;rdesktop -r sound=local -r clipboard:CLIPBOARD -z -g &amp;#39;80%&amp;#39; -a 15 -u user.name -p - -d MYDOMAIN remote.hostname.com Above command does the following:&#xA;Thats it!&#xA;EDIT: Updated the explanation in the order of CLI options to the rdesktop command.</description>
    </item>
    <item>
      <title>Contiuned: Juniper Networks VPN from Fedora 64bit</title>
      <link>/2013/07/30/contiuned-juniper-networks-vpn-from-fedora-64bit/</link>
      <pubDate>Tue, 30 Jul 2013 00:00:00 +0000</pubDate>
      <guid>/2013/07/30/contiuned-juniper-networks-vpn-from-fedora-64bit/</guid>
      <description>This post is the continuation of my earlier post about Juniper VPN.&#xA;In the earlier post, I connected to VPN using a login/password/certification combination. Now I also managed to use the ncui tool for the connection which is based on a cookie value and a certificate. I wasn&amp;rsquo;t able to connect to this configuration using the method in my previous post.&#xA;$ ./ncui -h vpn.example.com -c DSID=&amp;#34;YOUR_DSID_COOKIE&amp;#34; -f vpn.example.com-cert.der Password: &amp;lt;ENTER SUDO PASSWORD HERE&amp;gt; Here, first you need to login to your vpn domain from a web-browser.</description>
    </item>
    <item>
      <title>Setting up OpenStack on Fedora 19 is a lot of work</title>
      <link>/2013/07/21/setting-up-openstack-on-fedora-19-is-a-lot-of-work/</link>
      <pubDate>Sun, 21 Jul 2013 00:00:00 +0000</pubDate>
      <guid>/2013/07/21/setting-up-openstack-on-fedora-19-is-a-lot-of-work/</guid>
      <description>I wanted to experiment with creating a Fedora 19 compute node on Fedora 19 + OpenStack. However it seems there are a bunch of issues which need to be fixed. The issues and solutions are already recorded by many people.&#xA;I list the highlights:&#xA;I am recording the errors, commands and references in the following gist on github.com: openstack-fedora19.md&#xA;EDIT:&#xA;Finally I managed to complete the setup. Now its time to launch some VMs.</description>
    </item>
    <item>
      <title>Emacs fullscreen and Fedora 19</title>
      <link>/2013/07/20/emacs-fullscreen-and-fedora-19/</link>
      <pubDate>Sat, 20 Jul 2013 00:00:00 +0000</pubDate>
      <guid>/2013/07/20/emacs-fullscreen-and-fedora-19/</guid>
      <description>I was using fullscreen.el for so long but now that doesn&amp;rsquo;t seem to work on Fedora 19 / GNOME 3.8.1.&#xA;What to do? Following are the steps I did for now.&#xA;First install wmctrl:&#xA;$ sudo yum install wmctrl Now add following code to your ~/.emacs configuration file:&#xA;(defun switch-full-screen () (interactive) (shell-command &amp;#34;wmctrl -r :ACTIVE: -btoggle,fullscreen&amp;#34;)) (global-set-key [f11] &amp;#39;switch-full-screen) Restart Emacs and press F11. Thats it!</description>
    </item>
    <item>
      <title>Extract Text from from multi-page PDF with only Images</title>
      <link>/2013/07/19/extract-text-from-from-multi-page-pdf-with-only-images/</link>
      <pubDate>Fri, 19 Jul 2013 00:00:00 +0000</pubDate>
      <guid>/2013/07/19/extract-text-from-from-multi-page-pdf-with-only-images/</guid>
      <description>Sometimes there are only images in a PDF. In such cases you can not select text to copy / paste or just for reference.&#xA;To extract text from an Image or a PDF containing only images, I used Tesseract OCR Engine and Ghostscript. I am running Fedora 19 at the moment, however these steps should apply to an older version of Fedora or Ubuntu. ( I believe this can be done on Windows as well ).</description>
    </item>
    <item>
      <title>Some nice Firefox addons for privacy</title>
      <link>/2013/07/16/some-nice-firefox-addons-for-privacy/</link>
      <pubDate>Tue, 16 Jul 2013 00:00:00 +0000</pubDate>
      <guid>/2013/07/16/some-nice-firefox-addons-for-privacy/</guid>
      <description>I had attended Cryptoparty (Delhi) a couple of weeks back, where I came to know about some some really nice addons for Firefox. I am listing them below:&#xA;I hope you find these tools useful. Now you can discover how much your clicks and visits to various sites are being recorded. Enjoy!&#xA;References:&#xA;Cryptoparty Addons page</description>
    </item>
    <item>
      <title>Juniper Networks VPN from Fedora 17 x86_64</title>
      <link>/2013/07/04/juniper-networks-vpn-from-fedora-17-x86_64/</link>
      <pubDate>Thu, 04 Jul 2013 00:00:00 +0000</pubDate>
      <guid>/2013/07/04/juniper-networks-vpn-from-fedora-17-x86_64/</guid>
      <description>I had to use Juniper VPN but apparently it doesn&amp;rsquo;t work well from Linux machines. To complicate the matter even more the underlying VPN software is 32 bit, but I am running a 64bit OS.&#xA;I have outlined the setup steps here:&#xA;Although all these steps are specifically for Fedora 17/18 x86_64 bit OS, it should be easy to connect from Ubuntu machines too.&#xA;I hope it helps you.&#xA;EDIT:</description>
    </item>
    <item>
      <title>Setting up NAT and MASQUERADE for sharing USB Tether connection over LAN</title>
      <link>/2013/05/14/setting-up-nat-and-masquerade-for-sharing-usb-tether-connection-over-lan/</link>
      <pubDate>Tue, 14 May 2013 00:00:00 +0000</pubDate>
      <guid>/2013/05/14/setting-up-nat-and-masquerade-for-sharing-usb-tether-connection-over-lan/</guid>
      <description>I the only source of Internet connection I have currently is my phone. I wanted to share this network with other systems, via a lan/wireless router. So here is a basic setup:&#xA;Android Phone with USB Tethering Laptop ( Fedora 18 ) Wireless Router with Lan A desktop machine ( Fedora 17 ) Setting up Internet gateway: Laptop + Android Phone&#xA;I connected Android Phone via USB cable to the laptop and enabled USB thether, so I have a usb device /dev/usb0.</description>
    </item>
    <item>
      <title>Understanding big Lucene index by inspecting a portion of it</title>
      <link>/2013/04/17/understanding-big-lucene-index-by-inspecting-a-portion-of-it/</link>
      <pubDate>Wed, 17 Apr 2013 00:00:00 +0000</pubDate>
      <guid>/2013/04/17/understanding-big-lucene-index-by-inspecting-a-portion-of-it/</guid>
      <description>I was wondering if I could get a sample out of many huge Lucene indexes and inspect them with Lukeall on my machine. I quickly realized, that copying such indexes over network would be time consuming.&#xA;First I googled for a ready-made solution so that I could copy on a few documents from the whole index into a separate ( small ) index. That way I could quickly understand the document structure.</description>
    </item>
    <item>
      <title>On choosing Play2 framework</title>
      <link>/2013/04/16/on-choosing-play2-framework/</link>
      <pubDate>Tue, 16 Apr 2013 00:00:00 +0000</pubDate>
      <guid>/2013/04/16/on-choosing-play2-framework/</guid>
      <description> </description>
    </item>
    <item>
      <title>Emacs and Akka Pi example</title>
      <link>/2013/03/15/emacs-and-akka-pi-example/</link>
      <pubDate>Fri, 15 Mar 2013 00:00:00 +0000</pubDate>
      <guid>/2013/03/15/emacs-and-akka-pi-example/</guid>
      <description>I was trying The first Akka Example here&#xA;Install the TypeSafe stack on RPM distro:&#xA;$ sudo yum install typesafe-stack Setup a g8 project:&#xA;$ g8 typesafehub/akka-scala-sbt Akka 2.0 Project Using Scala and sbt organization [org.example]: in.tuxdna name [Akka Project In Scala]: akka-pi akka_version [2.0.1]: version [0.1-SNAPSHOT]: The I added the Pi.scala to src/main/scala folder. Then I tried to compile it from within Emacs, to check if it will be easier navigate compilation errors in the code.</description>
    </item>
    <item>
      <title>Attending Jamia Developer Day</title>
      <link>/2013/03/10/attending-jamia-developer-day/</link>
      <pubDate>Sun, 10 Mar 2013 00:00:00 +0000</pubDate>
      <guid>/2013/03/10/attending-jamia-developer-day/</guid>
      <description>Students at JMI University had organized JDevDay ( formerly CONF@JMI). This was a two day conference on FOSS topics. The agenda is listed here:&#xA;https://jdevday.wordpress.com/2013/03/05/talks-in-jdevday/&#xA;I spoke on &amp;ldquo;Introduction to Scala&amp;rdquo;, the slides of which are uploaded to slideshare and on github.&#xA;It was so nice to meet all the speakers and attendees. I took a few photos which I have uploaded on flickr.&#xA;JDevDay Rocks!</description>
    </item>
    <item>
      <title>Emacs Org Mode for creating and generating presenations</title>
      <link>/2013/03/10/emacs-org-mode-for-creating-and-generating-presenations/</link>
      <pubDate>Sun, 10 Mar 2013 00:00:00 +0000</pubDate>
      <guid>/2013/03/10/emacs-org-mode-for-creating-and-generating-presenations/</guid>
      <description>Last time I created a presentation in Org Mode was in 2010 here.&#xA;Creating presentation in Emacs Org Mode and publishing it as Latex, PDF and HTML, is so awesome.&#xA;Here are the links to get you started:&#xA;http://orgmode.org/worg/exporters/beamer/tutorial.html http://orgmode.org/worg/org-tutorials/non-beamer-presentations.html And follow these simple steps ( I am using Ubuntu right now but the steps should be easy on Fedora too.):&#xA;Create a slides.org file as in the tutorial above:</description>
    </item>
    <item>
      <title>Where the heck did agave go from Fedora...</title>
      <link>/2013/02/22/where-the-heck-did-agave-go-from-fedora.../</link>
      <pubDate>Fri, 22 Feb 2013 00:00:00 +0000</pubDate>
      <guid>/2013/02/22/where-the-heck-did-agave-go-from-fedora.../</guid>
      <description>Where the heck did agave go from Fedora 17 repos? Yes I am asking the same question already been asked in fedora forum [1].&#xA;Apparently it doesn&amp;rsquo;t [2] have any maintainer hence no build for Fedora 17.&#xA;[1] http://forums.fedoraforum.org/showthread.php?t=276162 [2] https://admin.fedoraproject.org/pkgdb/acls/name/agave [3] http://home.gna.org/colorscheme/ </description>
    </item>
    <item>
      <title>SBT and Specs for BDD in Scala</title>
      <link>/2013/02/21/sbt-and-specs-for-bdd-in-scala/</link>
      <pubDate>Thu, 21 Feb 2013 00:00:00 +0000</pubDate>
      <guid>/2013/02/21/sbt-and-specs-for-bdd-in-scala/</guid>
      <description>I had used RSpec earlier for Behaviour Development Development for a Ruby on Rails project. Today I learnt how to do BDD in Scala.&#xA;Chapter 4 of Programming Scala introduces Traits and Specs for testing the code. Here is how I set it up:&#xA;I already had Scala installed. So the first step was to setup sbt ( Simple Build Tool for Scala ). Setup was easy ( described in detail here ):</description>
    </item>
    <item>
      <title>Apache Mesos - incubator project; and Spark Project</title>
      <link>/2013/02/20/apache-mesos-incubator-project-and-spark-project/</link>
      <pubDate>Wed, 20 Feb 2013 00:00:00 +0000</pubDate>
      <guid>/2013/02/20/apache-mesos-incubator-project-and-spark-project/</guid>
      <description>Apache Mesos, written primarily in C++ is a cluster resource allocation framework. It is used by the Spark Project ( majority of Spark project is written in Scala ).&#xA;Apache Mesos - http://incubator.apache.org/mesos/ Spark Project - http://spark-project.org/ Tech Talk: Matei Zaharia (UC Berkeley) &amp;ndash; &amp;ldquo;Spark: A Framework for Iterative and Interactive Cluster Computing&amp;rdquo; - http://vimeo.com/20757432</description>
    </item>
    <item>
      <title>Scala script tool seems to be broken Fedora 17</title>
      <link>/2013/02/20/scala-script-tool-seems-to-be-broken-fedora-17/</link>
      <pubDate>Wed, 20 Feb 2013 00:00:00 +0000</pubDate>
      <guid>/2013/02/20/scala-script-tool-seems-to-be-broken-fedora-17/</guid>
      <description>I am running Scala on Fedora 17 and I seem to face a problem. I created a /tmp/hello.scala file, as follows:&#xA;println(&amp;quot;Hello world&amp;quot;) This works just fine if I run it on Ubuntu 12.04 i.e. it prints Hello world. However, when I try to run it on Fedora, I don&amp;rsquo;t get any output and the script keeps waiting forever.&#xA;So I tried to inspect what&amp;rsquo;s happening here:&#xA;$ bash -x scala /tmp/hello.</description>
    </item>
    <item>
      <title>Set up for learning Scala with Emacs</title>
      <link>/2013/02/18/set-up-for-learning-scala-with-emacs/</link>
      <pubDate>Mon, 18 Feb 2013 00:00:00 +0000</pubDate>
      <guid>/2013/02/18/set-up-for-learning-scala-with-emacs/</guid>
      <description>Obviously the first step is to install Scala language.&#xA;$ sudo aptitude install scala OR $ yum install scala Then I ran my first Scala &amp;ldquo;Hello world!&amp;rdquo; program from CLI.&#xA;Setting up Scala mode for Emacs was a bit of a pain so I merged the old scala-mode and the latest into my repo. Here are very simple steps to setup scala-mode for Emacs.&#xA;$ cd ~/.emacs.d/ $ git clone git://github.</description>
    </item>
    <item>
      <title>On building large scale data processing system</title>
      <link>/2013/02/15/on-building-large-scale-data-processing-system/</link>
      <pubDate>Fri, 15 Feb 2013 00:00:00 +0000</pubDate>
      <guid>/2013/02/15/on-building-large-scale-data-processing-system/</guid>
      <description>I was reading a few blog posts about distributed, large-scale processing of data, be it in batch or real-time. And definitely the move is towards real-time now. ( here and here ) .&#xA;Well, in this blog post I am only going to mention about the things that I have come across so far. I would like to learn more.&#xA;All the buzz around large scale data processing, in some way or the other, seems to be inspired by papers published by Google or the systems they built.</description>
    </item>
    <item>
      <title>Indexing the documents stored in a database using Apache Solr and Apache Tika</title>
      <link>/2013/02/04/indexing-the-documents-stored-in-a-database-using-apache-solr-and-apache-tika/</link>
      <pubDate>Mon, 04 Feb 2013 00:00:00 +0000</pubDate>
      <guid>/2013/02/04/indexing-the-documents-stored-in-a-database-using-apache-solr-and-apache-tika/</guid>
      <description>Indexing the documents stored in a database&#xA;Outline:&#xA;Setup a MySQL database [1] containing documents( PDF/DOC/HTML etc ). Setup Apache Solr / Tika Import the documents just by hitting an import url. NOTE: Also check the update note at the end of this post.&#xA;These steps were done on my machine running Fedora 17. The commands be easliy converted for other distributions.&#xA;Setup MySQL database with documents&#xA;Install MySQL Server:</description>
    </item>
    <item>
      <title>JCallTracer: Tool to generate Sequence Diagrams for Java programs</title>
      <link>/2013/01/06/jcalltracer-tool-to-generate-sequence-diagrams-for-java-programs/</link>
      <pubDate>Sun, 06 Jan 2013 00:00:00 +0000</pubDate>
      <guid>/2013/01/06/jcalltracer-tool-to-generate-sequence-diagrams-for-java-programs/</guid>
      <description>For sometime now I have been working on a project called JCallTracer. I had a simple problem at hand: generate Squence Diagrams for a program written in Java. I did try to google such a tool but I couldn&amp;rsquo;t find anything that was Open Source and worked on Linux. The closest I could find was Java Call Tracer. This tool was designed for Windows users and didn&amp;rsquo;t compile on Linux. I fixed that, but then it was apparently designed for Java programs with small memory foot-print.</description>
    </item>
    <item>
      <title>C 2011 Standard and current FOSS implementations</title>
      <link>/2012/12/24/c-2011-standard-and-current-foss-implementations/</link>
      <pubDate>Mon, 24 Dec 2012 00:00:00 +0000</pubDate>
      <guid>/2012/12/24/c-2011-standard-and-current-foss-implementations/</guid>
      <description>Today I got to know that C has a new standard released in 2011. You can find a detailed Dr. Dobbs&amp;rsquo;s article on the subject. So far I havent come across any Open Source compiler that fully implements C11 features. Clang and GCC are yet to fully support this standard.&#xA;Clang has added support for anonymous structs and anonymous unions:&#xA;Way to go!&#xA;References:&#xA;http://stackoverflow.com/questions/9804594/compilers-that-support-c11 http://llvm.org/releases/3.1/docs/ClangReleaseNotes.html#cchanges http://gcc.gnu.org/onlinedocs/gcc/Standards.html </description>
    </item>
    <item>
      <title>Apache Incubator projects</title>
      <link>/2012/12/11/apache-incubator-projects/</link>
      <pubDate>Tue, 11 Dec 2012 00:00:00 +0000</pubDate>
      <guid>/2012/12/11/apache-incubator-projects/</guid>
      <description>I was going through a list of Apache Incubator projects and I found a few really interesting projects, primarily because I could immediately relate them to some functionality I could readily use.&#xA;However, I have to say that the layout on the Apache Incubator projects makes it a daunting task to visit each and every project link to know the technology or domain a project name could be relate to. If instead of a project name matrix, there was a simple project list with Project Name, Technologies, Domain etc.</description>
    </item>
    <item>
      <title>Memory consumption by a .so file for a running process</title>
      <link>/2012/12/06/memory-consumption-by-a-.so-file-for-a-running-process/</link>
      <pubDate>Thu, 06 Dec 2012 00:00:00 +0000</pubDate>
      <guid>/2012/12/06/memory-consumption-by-a-.so-file-for-a-running-process/</guid>
      <description>I wanted to know how much memory is consumed by C++ standard library for a process running on Linux. There is no straightforward way I could find so I have written a small script to do exactly that.&#xA;Script Location: https://gist.github.com/4215536&#xA;How to use?&#xA;$ wget https://raw.github.com/gist/4215536/6ae899f454fd72ba3b6202724e15f855f80e33b3/mem-usage.rb $ ruby ./mem-usage.rb /proc/5952/maps | grep libstd /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.16: 2988.0 KBs In the above example, 5952 is the PID of Thunderbird mail client and C++ standard library consumes 2988 KB of memory for this process.</description>
    </item>
    <item>
      <title>Lots of screen savers on Ubuntu</title>
      <link>/2012/11/08/lots-of-screen-savers-on-ubuntu/</link>
      <pubDate>Thu, 08 Nov 2012 00:00:00 +0000</pubDate>
      <guid>/2012/11/08/lots-of-screen-savers-on-ubuntu/</guid>
      <description>Lots of screen savers on Ubuntu:&#xA;$ sudo aptitude install xscreensaver-data-extra xscreensaver-screensaver-bsod xscreensaver-screensaver-dizzy xscreensaver-screensaver-webcollage </description>
    </item>
    <item>
      <title>XML, RSS, ATOM and Java</title>
      <link>/2012/10/03/xml-rss-atom-and-java/</link>
      <pubDate>Wed, 03 Oct 2012 00:00:00 +0000</pubDate>
      <guid>/2012/10/03/xml-rss-atom-and-java/</guid>
      <description>I was searching for ways to generate xml feeds ( ATOM / RSS ) using Java. It appeared to be trivial task but its not. There are so many different libraries in Java which are capable of reading and writing XML in Java that it became a daunting task to evaulate them. After a bit of experimentation I have settled down with JDOM. JDOM is so simple to use.&#xA;On top of that, ROME tools make it even easier to read/write feeds using Java.</description>
    </item>
    <item>
      <title>Tzinga - An energy drink startup in India</title>
      <link>/2012/05/13/tzinga-an-energy-drink-startup-in-india/</link>
      <pubDate>Sun, 13 May 2012 00:00:00 +0000</pubDate>
      <guid>/2012/05/13/tzinga-an-energy-drink-startup-in-india/</guid>
      <description>An energy drink startup in India.&#xA;In, India we mostly consume only areated drinks. Energy drinks are kind of very rare to see if you consider both urban and rural landscape. So far I have come across a very few engergy drinks - RedBull, Tzinga, Could9, Rio etc. A friend of mine asked me to try this engergy drink called Tzinga.&#xA;I received a package with all the three flavors ( shown in the picture above ).</description>
    </item>
    <item>
      <title>Five senses, design and the daily routine</title>
      <link>/2012/04/09/five-senses-design-and-the-daily-routine/</link>
      <pubDate>Mon, 09 Apr 2012 00:00:00 +0000</pubDate>
      <guid>/2012/04/09/five-senses-design-and-the-daily-routine/</guid>
      <description>We are gifted with five senses - sight, hearing, touch, smell and taste. These let us identify color, sound, feel, aroma and appetite. How often do we give active thought to them? Well, of-course, those who are in a profession related to any of the five senses, have to deal with their impact on individuals and the masses. Barring &amp;rsquo;taste&amp;rsquo;, we can feel all other senses without much effort. Funny and surprising.</description>
    </item>
    <item>
      <title>A bug in RPM ? ( for rubygem-sprockets and rubygem-tilt )</title>
      <link>/2012/03/05/a-bug-in-rpm-for-rubygem-sprockets-and-rubygem-tilt/</link>
      <pubDate>Mon, 05 Mar 2012 00:00:00 +0000</pubDate>
      <guid>/2012/03/05/a-bug-in-rpm-for-rubygem-sprockets-and-rubygem-tilt/</guid>
      <description>I packaged Rails 3.1.0 and its dependencies few days back for Fedora 16. The repository configuration file is as below:&#xA;[rails3] name=rails3 baseurl=http://tuxdna.fedorapeople.org/packaging/rubygems/f16/ enabled=1 gpgcheck=0 Now when I installed Rails 3.1.0, I got into a in issue:&#xA;$ sudo yum install rubygem-rails-3.1.0 ...OUTPUT SKIPPED... --&amp;gt; Running transaction check ---&amp;gt; Package rubygem-polyglot.noarch 0:0.3.3-1.fc16 will be installed ---&amp;gt; Package rubygem-sprockets.noarch 0:2.0.3-1.fc16 will be installed --&amp;gt; Processing Dependency: rubygem(tilt) &amp;lt; 1.3.0 for package: rubygem-sprockets-2.</description>
    </item>
    <item>
      <title>libgit2 now packaged for Fedora 16</title>
      <link>/2012/03/04/libgit2-now-packaged-for-fedora-16/</link>
      <pubDate>Sun, 04 Mar 2012 00:00:00 +0000</pubDate>
      <guid>/2012/03/04/libgit2-now-packaged-for-fedora-16/</guid>
      <description>I just finished a quick packaging of libgit2. It built fine on Koji and can be downloaded from here. A pull request has been submitted to include the spec file in the upstream codebase itself. Rpmfind was of great help in this quick packaging.</description>
    </item>
    <item>
      <title>Problems with Ruby GEM to RPM</title>
      <link>/2012/03/04/problems-with-ruby-gem-to-rpm/</link>
      <pubDate>Sun, 04 Mar 2012 00:00:00 +0000</pubDate>
      <guid>/2012/03/04/problems-with-ruby-gem-to-rpm/</guid>
      <description>I can&amp;rsquo;t emphasize more the importance of packaging RPMs ( or any other packaging system ), as I already did it in an earlier post.&#xA;Same arguments apply to Ruby Gems as well. That is to say, Ruby Gems already have a gem command to install and update packages. However it is still not a complete packaging system in itself.&#xA;Consider the situation where you need to install a gem called A which dependes on B and C.</description>
    </item>
    <item>
      <title>Ruby GEM to RPM all in one go</title>
      <link>/2012/02/22/ruby-gem-to-rpm-all-in-one-go/</link>
      <pubDate>Wed, 22 Feb 2012 00:00:00 +0000</pubDate>
      <guid>/2012/02/22/ruby-gem-to-rpm-all-in-one-go/</guid>
      <description>This is my first attempt at building RPM packages for Ruby GEMS. https://gist.github.com/1885411&#xA;Requirements:&#xA;yum install rpmdevtools yum install ruby rubygems rubygem-gem2rpm How to run:&#xA;$ ruby make_rpms.rb -t ~/tmp/rpm-gem-packaging/ -n mechanize -r 2.2.1 This will download the gem and dependencies and generate SRPM and RPM files in the following folder:&#xA;~/tmp/rpm-gem-packaging/rpmbuild/ NOTE: The status of SUCCESS and FAILURE can be seen in the file:&#xA;~/tmp/rpm-gem-packaging/rpmbuild/status.txt Check for RPM and SRPM files which were generated:</description>
    </item>
    <item>
      <title>JRuby on Rails with RVM ( on Fedora )</title>
      <link>/2012/01/29/jruby-on-rails-with-rvm-on-fedora/</link>
      <pubDate>Sun, 29 Jan 2012 00:00:00 +0000</pubDate>
      <guid>/2012/01/29/jruby-on-rails-with-rvm-on-fedora/</guid>
      <description>First install RVM and set it up:&#xA;sudo yum install rubygem-rvm rvm-install To include RVM into your bash shell, add following line to ~/.bashrc:&#xA;[[ -s &amp;#34;$HOME/.rvm/scripts/rvm&amp;#34; ]] &amp;amp;&amp;amp; . &amp;#34;$HOME/.rvm/scripts/rvm&amp;#34; # This loads RVM into a shell session. Now install JRuby and use it as default Ruby interpreter:&#xA;source ~/.bashrc rvm install jruby-1.5.6 rvm use jruby-1.5.6 Setup Rails environment:&#xA;gem install rails gem install bundler Lets create a new Rails application:</description>
    </item>
    <item>
      <title>JUDCon 2012 - an experience!</title>
      <link>/2012/01/27/judcon-2012-an-experience/</link>
      <pubDate>Fri, 27 Jan 2012 00:00:00 +0000</pubDate>
      <guid>/2012/01/27/judcon-2012-an-experience/</guid>
      <description>My first Java exclusive conference!&#xA;I arrived at the venue right on time. Surprize, there were a lot of people already holding their welcome kits. Conference was already running quite smoothly. Wifi worked most of the time. The sessions, lunch, tea were always on time. Actually, there were people assigned to ring bells, just like in schools, to notify timeout during lunch and tea breaks :)&#xA;The whole confenence was revolving around four major topics: JBoss AS7, Infinispan, Drools and OpenShift.</description>
    </item>
    <item>
      <title>Packaging Java JARs as RPM packages</title>
      <link>/2012/01/27/packaging-java-jars-as-rpm-packages/</link>
      <pubDate>Fri, 27 Jan 2012 00:00:00 +0000</pubDate>
      <guid>/2012/01/27/packaging-java-jars-as-rpm-packages/</guid>
      <description>At JUDCon 2012, I had a discussion and argument with Jaikiran Pai and Ravi Maurya on &amp;ldquo;Packaging Java JARs as RPM packages&amp;rdquo;.&#xA;Well it is not just RPM, it could be any package management system ( eg. dpkg, protage etc. ), doesn&amp;rsquo;t matter as long as it serves the purpose of:&#xA;How is all this achieved in Java world? Simple. Just package all the required JARs in a single JAR or WAR or an EAR for that matter.</description>
    </item>
    <item>
      <title>Potential bug in Ruby bindings of Apache Qpid</title>
      <link>/2012/01/14/potential-bug-in-ruby-bindings-of-apache-qpid/</link>
      <pubDate>Sat, 14 Jan 2012 00:00:00 +0000</pubDate>
      <guid>/2012/01/14/potential-bug-in-ruby-bindings-of-apache-qpid/</guid>
      <description>I wanted to experiment with Ruby bindings of Apache Qpid.&#xA;Lets install the the server and client:&#xA;$ sudo yum install qpid-cpp-server ruby-qpid qpid-tools $ service qpidd start Now check which version of Ruby bindings have we installed here:&#xA;$ rpm -qi ruby-qpid Name : ruby-qpid Version : 0.8 Release : 2.fc15 Architecture: x86_64 Install Date: Fri 13 Jan 2012 06:21:55 PM IST Group : Development/Ruby Size : 219877 License : ASL 2.</description>
    </item>
    <item>
      <title>Symlink loop is still an unsolved problem</title>
      <link>/2011/12/10/symlink-loop-is-still-an-unsolved-problem/</link>
      <pubDate>Sat, 10 Dec 2011 00:00:00 +0000</pubDate>
      <guid>/2011/12/10/symlink-loop-is-still-an-unsolved-problem/</guid>
      <description>How do I dereference a symbolic link?&#xA;$ ls -l /usr/bin/java lrwxrwxrwx. 1 root root 22 Jul 20 2010 /usr/bin/java -&amp;gt; /etc/alternatives/java $ ls -l /etc/alternatives/java lrwxrwxrwx. 1 root root 30 Aug 9 2010 /etc/alternatives/java -&amp;gt; /usr/java/jdk1.6.0_20/bin/java $ ls -l /usr/java/jdk1.6.0_20/bin/java -rwxr-xr-x. 1 root root 50810 Apr 13 2010 /usr/java/jdk1.6.0_20/bin/java Lets create a chain of symbolic links:&#xA;mkdir /tmp/symlink cd /tmp/symlink echo &amp;#34;this is a test file&amp;#34; &amp;gt; abc.txt ln -s abc.</description>
    </item>
    <item>
      <title>How to resize a VM and its partitions?</title>
      <link>/2011/11/29/how-to-resize-a-vm-and-its-partitions/</link>
      <pubDate>Tue, 29 Nov 2011 00:00:00 +0000</pubDate>
      <guid>/2011/11/29/how-to-resize-a-vm-and-its-partitions/</guid>
      <description>In this post I am going to list the steps to resize a Virtual Machine image created using virt-install&#xA;There are three steps:&#xA;Resize the VM image Resize the LVM volume inside the VM ( both physical volume and logical volume ) Resize the filesystem on the LVM volume First locate where the image for your VM is stored.&#xA;# virsh dumpxml vm2 | xpath /domain/devices/disk/source Found 1 nodes: -- NODE -- &amp;lt;source file=&amp;#34;/export/vmimgs/vm2.</description>
    </item>
    <item>
      <title>zif critical errors</title>
      <link>/2011/11/28/zif-critical-errors/</link>
      <pubDate>Mon, 28 Nov 2011 00:00:00 +0000</pubDate>
      <guid>/2011/11/28/zif-critical-errors/</guid>
      <description>Every once in a while I get these errors when installing a package using zif:&#xA;Downloading [==================================================================] (59%) packages/glusterfs-server-3.2.4-2.fc16.x86_64.rpm [2.9 MB/s] om 64 to 52 on 0x1fb60b0! 5) zif-main.c:2590 (5/6) 4) zif-main.c:2401 (3/5) 3) zif-transaction.c:3989 (1/3) 2) zif-package-array.c:243 (0/1) 1) zif-package-remote.c:416 (2/3) 0) zif-store-remote.c:505 (1/2) (zif:18671): Zif-CRITICAL **: percentage should not go down from 60 to 19 on 0x78e6410! 4) zif-main.c:2590 (5/6) 3) zif-main.c:2401 (3/5) 2) zif-transaction.c:3989 (1/3) 1) zif-package-array.c:243 (0/1) 0) zif-package-remote.</description>
    </item>
    <item>
      <title>zif - Package management done faster</title>
      <link>/2011/11/24/zif-package-management-done-faster/</link>
      <pubDate>Thu, 24 Nov 2011 00:00:00 +0000</pubDate>
      <guid>/2011/11/24/zif-package-management-done-faster/</guid>
      <description>On Fedora 16, I used zif. zif is an alternative to yum and its fast!&#xA;How to setup zif? So easy: sudo yum install zif zif-tools&#xA;All set!&#xA;Search for packages using zif:&#xA;sudo zif search mongodb Do a offline serach ( like cached -C in yum ):&#xA;sudo zif search -o mongodb Install packages using zif:&#xA;sudo zif install mongodb-server mysql-server Update all packages:&#xA;sudo zif update And if you feel like canceling the operation using Ctrl+C, it happens almost instantaneously!</description>
    </item>
    <item>
      <title>How to setup multiple monitors on Xfce desktop?</title>
      <link>/2011/11/17/how-to-setup-multiple-monitors-on-xfce-desktop/</link>
      <pubDate>Thu, 17 Nov 2011 00:00:00 +0000</pubDate>
      <guid>/2011/11/17/how-to-setup-multiple-monitors-on-xfce-desktop/</guid>
      <description>How to setup multiple monitors on Xfce desktop?&#xA;I just followed the instructionson Xorg RandR 1.2 wiki - http://www.thinkwiki.org/wiki/Xorg_RandR_1.2&#xA;Lets find out how many monitors we have connected?&#xA;$ xrandr -q Screen 0: minimum 320 x 200, current 1280 x 800, maximum 8192 x 8192 LVDS1 connected 1280x800+0+0 (normal left inverted right x axis y axis) 261mm x 163mm 1280x800 60.0*+ 50.0 1024x768 60.0 800x600 60.3 56.2 640x480 59.9 VGA1 connected (normal left inverted right x axis y axis) 1680x1050 60.</description>
    </item>
    <item>
      <title>Emacs key binding Ctrl&#43;Space not working on Fedora 16 GNOME or XFCE</title>
      <link>/2011/11/15/emacs-key-binding-ctrl-space-not-working-on-fedora-16-gnome-or-xfce/</link>
      <pubDate>Tue, 15 Nov 2011 00:00:00 +0000</pubDate>
      <guid>/2011/11/15/emacs-key-binding-ctrl-space-not-working-on-fedora-16-gnome-or-xfce/</guid>
      <description>I installed Fedora 16 x86_64 and then installed Emacs. Then I logged in into (XFCE or GNOME) desktop and started Emacs. For text selection in Emacs I use Ctrl+Space ( which is the default in Emacs ), and is no longer working. So I cannot select text using Ctr+Space.&#xA;However, if I login into virtual terminal (Ctrl+Alt+F3), then login and start Emacs, the key-binding (Ctrl+Space) for text selection works fine. Therefore there is no problem in Emacs itself.</description>
    </item>
    <item>
      <title>Autocomplete and colorize your Ruby shell ( irb ) with wirble</title>
      <link>/2011/11/13/autocomplete-and-colorize-your-ruby-shell-irb-with-wirble/</link>
      <pubDate>Sun, 13 Nov 2011 00:00:00 +0000</pubDate>
      <guid>/2011/11/13/autocomplete-and-colorize-your-ruby-shell-irb-with-wirble/</guid>
      <description>Lets first install wirble&#xA;sudo gem install wirble Add following lines to ~/.irbrc&#xA;#!/usr/bin/ruby require &amp;#39;irb/completion&amp;#39; require &amp;#39;rubygems&amp;#39; require &amp;#39;wirble&amp;#39; Wirble.init Wirble.colorize Now invoke irb.&#xA;$ irb &amp;gt;&amp;gt; 1.m # press TAB here to auto complete 1.method 1.methods 1.modulo &amp;gt;&amp;gt; 1.methods # press ENTER and the output will be colorized :) =&amp;gt; [&amp;#34;%&amp;#34;, &amp;#34;odd?&amp;#34;, &amp;#34;inspect&amp;#34;, &amp;#34;prec_i&amp;#34;, &amp;#34;&amp;lt;&amp;lt;&amp;#34;, &amp;#34;tap&amp;#34;, &amp;#34;div&amp;#34;, &amp;#34;&amp;amp;amp;&amp;#34;, &amp;#34;pretty_print&amp;#34;, &amp;#34;po&amp;#34;, &amp;#34;clone&amp;#34;, &amp;#34;&amp;gt;&amp;gt;&amp;#34;, &amp;#34;public_methods&amp;#34;, &amp;#34;__send__&amp;#34;, &amp;#34;object_id&amp;#34;, &amp;#34;instance_var iable_defined?&amp;#34;, &amp;#34;equal?&amp;#34;, &amp;#34;freeze&amp;#34;, &amp;#34;to_sym&amp;#34;, &amp;#34;*&amp;#34;, &amp;#34;ord&amp;#34;, &amp;#34;+&amp;#34;, &amp;#34;extend&amp;#34;, &amp;#34;next&amp;#34;, &amp;#34;pretty_print_cycle&amp;#34;, &amp;#34;send&amp;#34;, &amp;#34;round&amp;#34;, &amp;#34;methods&amp;#34;, &amp;#34;prec_f&amp;#34;, &amp;#34;-&amp;#34;, &amp;#34;even?</description>
    </item>
    <item>
      <title>Fast alternative to yum whatprovides</title>
      <link>/2011/11/12/fast-alternative-to-yum-whatprovides/</link>
      <pubDate>Sat, 12 Nov 2011 00:00:00 +0000</pubDate>
      <guid>/2011/11/12/fast-alternative-to-yum-whatprovides/</guid>
      <description>If yum whatprovides /path/to/file is slow for you, try a faster alternative:&#xA;rpm -q --whatprovides /path/to/file For example:&#xA;$ rpm -q --whatprovides /usr/bin/clibrary speech-dispatcher-0.7.1-5.fc15.x86_64 rpm is quite fast and yum is too slow. Get back to basics!</description>
    </item>
    <item>
      <title>How to setup mock quickly?</title>
      <link>/2011/11/12/how-to-setup-mock-quickly/</link>
      <pubDate>Sat, 12 Nov 2011 00:00:00 +0000</pubDate>
      <guid>/2011/11/12/how-to-setup-mock-quickly/</guid>
      <description>How to setup mock quickly?&#xA;yum install mock The default configuration is already set for you:&#xA;ls -l /etc/mock/default.cfg If not then this will do:&#xA;sudo ln -s /etc/mock/fedora-15-x86_64.cfg /etc/mock/default.cfg As is clearly stated in mock(1) man page, you need to add the relevant user to mock group:&#xA;sudo /usr/sbin/usermod -a -G mock $USER Thats all for the setup.&#xA;Now lets use it:&#xA;mock --init # this populates the build root with the required pacakges and repositories mock --rebuild hello-2.</description>
    </item>
    <item>
      <title>Turbocharge your Emacs for Ruby on Rails with rinari and rails-reloaded</title>
      <link>/2011/11/12/turbocharge-your-emacs-for-ruby-on-rails-with-rinari-and-rails-reloaded/</link>
      <pubDate>Sat, 12 Nov 2011 00:00:00 +0000</pubDate>
      <guid>/2011/11/12/turbocharge-your-emacs-for-ruby-on-rails-with-rinari-and-rails-reloaded/</guid>
      <description>Rinari is an Emacs minor mode that is aimed towards making Emacs into a top-notch Ruby and Rails development environment.&#xA;Rails reloaded is the minor mode for editing Ruby On Rails code with Emacs. This minor mode makes your work much easier and user friendly.&#xA;Lets first install rinari:&#xA;cd ~/.emacs.d/ git clone git://github.com/eschulte/rinari.git cd rinari git submodule init git submodule update ( Curious about git submodules? Read here http://book.git-scm.com/5_submodules.html )</description>
    </item>
    <item>
      <title>fudcon.in - online face of FUDCon Pune 2011</title>
      <link>/2011/11/10/fudcon.in-online-face-of-fudcon-pune-2011/</link>
      <pubDate>Thu, 10 Nov 2011 00:00:00 +0000</pubDate>
      <guid>/2011/11/10/fudcon.in-online-face-of-fudcon-pune-2011/</guid>
      <description>My involvement with FUDCon Pune 2011 started since the initial days of its planning. I wasn&amp;rsquo;t much involved until I took the task of managing a website for the event. My idea was to have a fully dynamic website where users could login, submit talks, vote for talks and we could manage the content all in a single website. The plan is available here.&#xA;After a few initial discussion about FUDCon websites here and there, Rahul arranged for a domain fudcon.</description>
    </item>
    <item>
      <title>FUDCon Pune - 6 more days for submission of talks</title>
      <link>/2011/10/18/fudcon-pune-6-more-days-for-submission-of-talks/</link>
      <pubDate>Tue, 18 Oct 2011 00:00:00 +0000</pubDate>
      <guid>/2011/10/18/fudcon-pune-6-more-days-for-submission-of-talks/</guid>
      <description>As of today over 100 delegates have already signed up for the event and 33 proposed sessions registered with us already. FUDCon Pune is an international event and we have speakers from many parts of the world. We are also listed on opensource.com now!&#xA;Submission Deadline - Midnight, 23rd of October, 2011 IST.&#xA;6 more days to go!&#xA;Reference: http://fudcon.in/content/fudcon-pune-pacing</description>
    </item>
    <item>
      <title>FUDCon Pune 2011</title>
      <link>/2011/10/14/fudcon-pune-2011/</link>
      <pubDate>Fri, 14 Oct 2011 00:00:00 +0000</pubDate>
      <guid>/2011/10/14/fudcon-pune-2011/</guid>
      <description>We managed to pull off the event website for FUDCon Pune 2011. This website has successfully been used for organizing a Fedora Activity Day i.e. FAD - II. However its primary motive is to manage the event FUDCon Pune 2011.&#xA;Needless to mention, this website is built in collaborative fashion, using Free and Open Source software. Based on COD - a Drupal based Conference Ogranizing Distribution, we added extra modules for our needs.</description>
    </item>
    <item>
      <title>Yay I am going to FUDCon Pune 2011...</title>
      <link>/2011/10/14/yay-i-am-going-to-fudcon-pune-2011.../</link>
      <pubDate>Fri, 14 Oct 2011 00:00:00 +0000</pubDate>
      <guid>/2011/10/14/yay-i-am-going-to-fudcon-pune-2011.../</guid>
      <description>Yay! I am going to FUDCon Pune 2011!</description>
    </item>
    <item>
      <title>Enabling user directory listing in Apache</title>
      <link>/2011/07/21/enabling-user-directory-listing-in-apache/</link>
      <pubDate>Thu, 21 Jul 2011 00:00:00 +0000</pubDate>
      <guid>/2011/07/21/enabling-user-directory-listing-in-apache/</guid>
      <description>It is sometimes very irritating why directory listing is not working for per user ( UserDir ).&#xA;There are only to two main steps to remedy that:&#xA;Enable UserDir module Enable directory listing All modifications to be done in /etc/httpd/conf/httpd.conf file.&#xA;Step 1: Enable UserDir module UserDir enabled tuxdna UserDir public_html Step 2: Enable directory listing AllowOverride FileInfo AuthConfig Limit Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec Thats all for UserDir. Just visit on the local Apache server: http://localhost/~tuxdna</description>
    </item>
    <item>
      <title>Comparison on Lucene Solr and NoSQL</title>
      <link>/2011/07/09/comparison-on-lucene-solr-and-nosql/</link>
      <pubDate>Sat, 09 Jul 2011 00:00:00 +0000</pubDate>
      <guid>/2011/07/09/comparison-on-lucene-solr-and-nosql/</guid>
      <description>Comparison on Lucene/Solr and NoSQL&#xA;http://stackoverflow.com/questions/3215029/nosql-mongodb-vs-lucene-or-solr-as-your-database NoSQL, Lucene and Solr&#xA;http://www.lucidimagination.com/blog/2010/04/30/nosql-lucene-and-solr/ For The Guardian, Solr is the new database&#xA;http://www.lucidimagination.com/blog/2010/04/29/for-the-guardian-solr-is-the-new-database/ </description>
    </item>
    <item>
      <title>Do Nothing objects in Python</title>
      <link>/2011/04/11/do-nothing-objects-in-python/</link>
      <pubDate>Mon, 11 Apr 2011 00:00:00 +0000</pubDate>
      <guid>/2011/04/11/do-nothing-objects-in-python/</guid>
      <description>Here is how I created a simple Do Nothing object in python.&#xA;class DoNothing(): def __getattr__(self, name): def k(*a, **b): pass return k log = DoNothing() log.debug(&amp;#34;asdfa&amp;#34;, &amp;#39;asdf&amp;#34;&amp;#39;) Now I can still have log.debug() statements throughout the code-base, in case I want them to do nothing.&#xA;All I would do is re-assign log to a DoNothing object.&#xA;log = DoNothing() I am sure there are some flaws with which approach, however this all I need for now.</description>
    </item>
    <item>
      <title>Recollection and thoughts on Web Application Development</title>
      <link>/2011/03/15/recollection-and-thoughts-on-web-application-development/</link>
      <pubDate>Tue, 15 Mar 2011 00:00:00 +0000</pubDate>
      <guid>/2011/03/15/recollection-and-thoughts-on-web-application-development/</guid>
      <description>History of Web Back in the year 1989, Tim Berners-Lee ( at CERN ) wrote a proposal based on ENQUIRE, to write an information system. This system was targeted to meet the need of Physists at CERN to share information with each other. Web is a &amp;ldquo;Side Effect&amp;rdquo; of the 40 years of Particle Physics Experiments.&#xA;On August 6, 1991, the first website was built at CERN. On the same date Tim also posted a short summary of the World Wide Web project on the alt.</description>
    </item>
    <item>
      <title>Days of CONF@JMILUG</title>
      <link>/2011/03/14/days-of-conf@jmilug/</link>
      <pubDate>Mon, 14 Mar 2011 00:00:00 +0000</pubDate>
      <guid>/2011/03/14/days-of-conf@jmilug/</guid>
      <description>CONF@JMILUG The day started with setting-up of Linux Adda. While we were still setting it up, for around an hour everyone was sharing laughter with Kumar Vishwas - a poet of IIT fame. As soon as his humorous poems were over, crowd rushed to the stalls, one of which was Linux Adda. It takes only a glace for someone to get attracted to the Fedora DVDs and Fedora Badges spread over a white-cloth-covered table i.</description>
    </item>
    <item>
      <title>Is NoSQL database an alternative for a search engine?</title>
      <link>/2011/02/27/is-nosql-database-an-alternative-for-a-search-engine/</link>
      <pubDate>Sun, 27 Feb 2011 00:00:00 +0000</pubDate>
      <guid>/2011/02/27/is-nosql-database-an-alternative-for-a-search-engine/</guid>
      <description>I have been thinking about this question:&#xA;Is NoSQL database an alternative for a search engine?&#xA;I think I just found an answer here.&#xA;Lets talk about some terms and definitions first.&#xA;NoSQL - Not only SQL means that a NoSQL database differs from a RDBMS in some way.&#xA;IR - Information Retieval is the science of searching documents, their metadata, and retrieval.&#xA;Here we compare a NoSQL storage engine MongoDB, and Information Retrieval library Apache Lucene.</description>
    </item>
    <item>
      <title>PyLucene on Fedora 14</title>
      <link>/2011/02/25/pylucene-on-fedora-14/</link>
      <pubDate>Fri, 25 Feb 2011 00:00:00 +0000</pubDate>
      <guid>/2011/02/25/pylucene-on-fedora-14/</guid>
      <description>I couldn&amp;rsquo;t install pylucene simply by following command:&#xA;yum install pylucene Nor did following work:&#xA;easy_install pylucene Nor the following :-(&#xA;pip-python install pylucene So. I had to build it myself. Here, I list those steps:&#xA;Install JCC&#xA;$ JCC_JDK=/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64 pip-python install jcc Download pylucene pylucene&#xA;wget -c http://apache.mirrors.pair.com//lucene/pylucene/pylucene-2.4.1-1-src.tar.gz tar zxf pylucene-2.4.1-1-src.tar.gz cd pylucene-2.4.1-1 Build and install http://lucene.apache.org/pylucene/documentation/install.html&#xA;pushd jcc # edit setup.py to match your environment JCC_JDK=/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64 python setup.py build` sudo python setup.</description>
    </item>
    <item>
      <title>Days of foss.in 2010!</title>
      <link>/2010/12/20/days-of-foss.in-2010/</link>
      <pubDate>Mon, 20 Dec 2010 00:00:00 +0000</pubDate>
      <guid>/2010/12/20/days-of-foss.in-2010/</guid>
      <description>http://foss.in/ I was looking at content faces. They all had made it. Some laughing, some teasing, some pondering and recollecting the past - greeting each other with a hearty welcome &amp;ldquo;Hi!&amp;rdquo;. And there some were observing tenderly the atmosphere which was animate instantly, as everyone from far off places finally arrived at FOSS.IN 2010 service apartment.&#xA;Rahul had reached the airport earlier than us and we met him there. We - I, Shreyank, Siddhesh, Amit, Rahul, Neependra and Anand - were at the airport three hours ago.</description>
    </item>
    <item>
      <title>I just configured feeds aggregator on JM...</title>
      <link>/2010/10/17/i-just-configured-feeds-aggregator-on-jm.../</link>
      <pubDate>Sun, 17 Oct 2010 00:00:00 +0000</pubDate>
      <guid>/2010/10/17/i-just-configured-feeds-aggregator-on-jm.../</guid>
      <description>I just configured feeds aggregator on JMILUG.ORG. Right now this link shows feeds aggregated from various sites related to FOSS or Development blogs. I noticed issues with Drupal ( version 6 ) that it doesn&amp;rsquo;t work well with ATOM feeds ( specially with blogger.com ). I am not clear if its a bug in Drupal itself, although RSS feeds work perfectly fine.&#xA;Any pointers to fix this will be highly appreciated.</description>
    </item>
    <item>
      <title>Resolving java.lang.NoClassDefFoundError: java_cup/runtime/lr_parser</title>
      <link>/2010/10/15/resolving-java.lang.noclassdeffounderror-java_cup/runtime/lr_parser/</link>
      <pubDate>Fri, 15 Oct 2010 00:00:00 +0000</pubDate>
      <guid>/2010/10/15/resolving-java.lang.noclassdeffounderror-java_cup/runtime/lr_parser/</guid>
      <description>While building {OpenGrok from source I came across a common error. {OpenGrok also needs JFlex to be present on the classpath as mentioned in the README.TXT file.&#xA;$ sudo yum install jflex $ hg clone ssh://anon@hg.opensolaris.org/hg/opengrok/trunk/ opengrok-dev $ cd opengrok-dev $ CLASSPATH=$CLASSPATH:/usr/share/java/JFlex.jar Compilation failed giving the following error.&#xA;BUILD FAILED java.lang.NoClassDefFoundError: java_cup/runtime/lr_parser at JFlex.anttask.JFlexTask.execute(JFlexTask.java:71) at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288) at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) at org.apache.tools.ant.Task.perform(Task.java:348) at org.apache.tools.ant.Target.execute(Target.java:357) I couldn&amp;rsquo;t locate the cause of this error and after struggling a lot, the solution was pretty simple.</description>
    </item>
    <item>
      <title>cat /dev/watchdog reboots the system!</title>
      <link>/2010/10/11/cat-/dev/watchdog-reboots-the-system/</link>
      <pubDate>Mon, 11 Oct 2010 00:00:00 +0000</pubDate>
      <guid>/2010/10/11/cat-/dev/watchdog-reboots-the-system/</guid>
      <description>I was surprized to find that following command reboots my Fedora 13 x86_64 system:&#xA;cat /dev/watchdog Wait for around 30-50 seconds and Linux reboots! This happens even with a non-root user.&#xA;Then I googled it&#xA;I found this is a pretty interesting thread on the subject. Bottom line is&#xA;It&amp;rsquo;s a watchdog device, it&amp;rsquo;s meant to reboot the machine if whatever task is poking the watchdog dies.&#xA;So consider that in any installation if /dev/watchdog support is present in the default Linux kernel and the file has read permission to all users.</description>
    </item>
    <item>
      <title>Everyone knows that debugging is twice a...</title>
      <link>/2010/08/07/everyone-knows-that-debugging-is-twice-a.../</link>
      <pubDate>Sat, 07 Aug 2010 00:00:00 +0000</pubDate>
      <guid>/2010/08/07/everyone-knows-that-debugging-is-twice-a.../</guid>
      <description>Debugging&#xA;Everyone knows that debugging is twice as hard as writing a program in the first place. So if you&#39;re as clever as you can be when you write it, how will you ever debug it? - Brian Kernighan </description>
    </item>
    <item>
      <title>C&#43;&#43; inheritance and function overloading</title>
      <link>/2010/07/17/c-inheritance-and-function-overloading/</link>
      <pubDate>Sat, 17 Jul 2010 00:00:00 +0000</pubDate>
      <guid>/2010/07/17/c-inheritance-and-function-overloading/</guid>
      <description>Here is a simple looking C++ program, which has two classes A and B ( which derives from A ). A has a function fun() which B tries to overload as fun(int). Sounds simple and the program looks correct but it doesn&amp;rsquo;t compile. Have a look at http://codepad.org/NQ3JNuRr .&#xA;Its hard to digest for it is an obvious code to compile in C++. The code listing is as below:&#xA;#include&amp;lt;iostream&amp;gt; using namespace std; class A{ public: void fun(){cout&amp;lt;&amp;lt;&amp;#34;fun\n&amp;#34;;} }; class B: public A{ void fun(int i){cout&amp;lt;&amp;lt;&amp;#34;funB\n&amp;#34;;} }; int main() { B b; b.</description>
    </item>
    <item>
      <title>FAD - Fedora Activity Day</title>
      <link>/2010/06/04/fad-fedora-activity-day/</link>
      <pubDate>Fri, 04 Jun 2010 00:00:00 +0000</pubDate>
      <guid>/2010/06/04/fad-fedora-activity-day/</guid>
      <description>FAD - Fedora Activity Day I was excited to know what it would be like but I had no clue as it was one of my first such gathering in Fedora Community.&#xA;Day 1 I reached there at 10:00am feeling that I would be just on time but to my surprise I was an hour late. I snapped into the room and took a seat quietly. What a beginning! Autotools workshop was in progress.</description>
    </item>
    <item>
      <title>C&#43;&#43; reference not to be confused with Java/Python/... reference</title>
      <link>/2010/05/24/c-reference-not-to-be-confused-with-java/python/...-reference/</link>
      <pubDate>Mon, 24 May 2010 00:00:00 +0000</pubDate>
      <guid>/2010/05/24/c-reference-not-to-be-confused-with-java/python/...-reference/</guid>
      <description>This program assigns a new object of class A to reference a. It looks as expected, reference changes to new object ( see line 23,24,25):&#xA;#include &amp;lt;iostream&amp;gt; using namespace std; class A { string name; public: A(string n): name(n) { } A(): name(&amp;#34;NO ONE&amp;#34;) { } void print() { cout &amp;lt;&amp;lt; &amp;#34;I am &amp;#34;&amp;lt;&amp;lt; name &amp;lt;&amp;lt; &amp;#34;!&amp;#34;&amp;lt;&amp;lt; endl; } }; int main(int argc, char *argv[]) { A matrix = A(&amp;#34;the matrix&amp;#34;); A &amp;amp;amp;a = matrix; a.</description>
    </item>
    <item>
      <title>Getting started with Maven!</title>
      <link>/2010/05/20/getting-started-with-maven/</link>
      <pubDate>Thu, 20 May 2010 00:00:00 +0000</pubDate>
      <guid>/2010/05/20/getting-started-with-maven/</guid>
      <description>I installed Maven on my Fedora 12 box and fired the command listed at How_do_I_make_my_first_Maven_project :&#xA;$ mvn archetype:create \ -DarchetypeGroupId=org.apache.maven.archetypes \ -DgroupId=com.mycompany.app \ -DartifactId=my-app /usr/lib/jvm/java [INFO] Scanning for projects... [INFO] Searching repository for plugin with prefix: &amp;#39;archetype&amp;#39;. [INFO] ------------------------------------------------------------------------ [ERROR] BUILD ERROR [INFO] ------------------------------------------------------------------------ [INFO] The plugin &amp;#39;org.apache.maven.plugins:maven-archetype-plugin&amp;#39; does not exist or no valid version could be found [INFO] ------------------------------------------------------------------------ [INFO] For more information, run Maven with the -e switch [INFO] ------------------------------------------------------------------------ [INFO] Total time: &amp;amp;amp;lt; 1 second [INFO] Finished at: Thu May 20 13:15:56 GMT+05:30 2010 [INFO] Final Memory: 13M/26M [INFO] ----------------------- I tried to debug it further by adding -X and -e options to the commandline.</description>
    </item>
    <item>
      <title>Its time to leave autotools and learn other build tools</title>
      <link>/2010/05/04/its-time-to-leave-autotools-and-learn-other-build-tools/</link>
      <pubDate>Tue, 04 May 2010 00:00:00 +0000</pubDate>
      <guid>/2010/05/04/its-time-to-leave-autotools-and-learn-other-build-tools/</guid>
      <description>The most promising tools I found are SCons, CMake and Waf ( little brother of SCons )&#xA;SCons is written in Python and very extensible, but it might be slow for other large projects [1].&#xA;CMake is written in C++, is faster than SCons but is arguably not as extensible as SCons [1].&#xA;[1] Evalutation of various build tools&#xA;Here is another article: Battle of the build systems</description>
    </item>
    <item>
      <title>Installing TOra on Fedora 12</title>
      <link>/2010/04/27/installing-tora-on-fedora-12/</link>
      <pubDate>Tue, 27 Apr 2010 00:00:00 +0000</pubDate>
      <guid>/2010/04/27/installing-tora-on-fedora-12/</guid>
      <description>Installing TOra( http://torasql.com/about ) for MySQL on Fedora 12&#xA;Get the Fedora 12 RPM package tora-2.1.2-1.fc12.x86_64.rpm from http://sourceforge.net/projects/tora/files/&#xA;Download oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.rpm from Oracle&amp;rsquo;s website http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/linuxx86_64soft.html&#xA;$ sudo yum install qscintilla $ sudo yum install qt-mysql $ sudo yum localinstall --nogpgcheck oracle-instantclient11.2-$ basic-11.2.0.1.0-1.x86_64.rpm $ cd /usr/lib/oracle/11.2/client64/lib/ $ sudo ln -s libclntsh.so.11.1 libclntsh.so $ sudo yum localinstall --nogpgcheck tora-2.1.2-1.fc12.x86_64.rpm Now tell linker to find oracle client libraries:&#xA;$ export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib/ Run tora&#xA;$ tora </description>
    </item>
    <item>
      <title>All about linkers</title>
      <link>/2010/02/19/all-about-linkers/</link>
      <pubDate>Fri, 19 Feb 2010 00:00:00 +0000</pubDate>
      <guid>/2010/02/19/all-about-linkers/</guid>
      <description>All about linkers:&#xA;Linkers part 01: click Linkers part 02: click Linkers part 03: click Linkers part 04: click Linkers part 05: click Linkers part 06: click Linkers part 07: click Linkers part 08: click Linkers part 09: click Linkers part 10: click Linkers part 11: click Linkers part 12: click Linkers part 13: click Linkers part 14: click Linkers part 15: click Linkers part 16: click Linkers part 17: click Linkers part 18: click Linkers part 19: click Linkers part 20: click </description>
    </item>
    <item>
      <title>How does live linux disk work without any swap for applications bigger than available RAM?</title>
      <link>/2009/12/14/how-does-live-linux-disk-work-without-any-swap-for-applications-bigger-than-available-ram/</link>
      <pubDate>Mon, 14 Dec 2009 00:00:00 +0000</pubDate>
      <guid>/2009/12/14/how-does-live-linux-disk-work-without-any-swap-for-applications-bigger-than-available-ram/</guid>
      <description>How does live linux disk work without any swap for applications bigger than available RAM? This question has occurred to me a lot of times. In the normal scenario I configure enough swap space on the harddis for my GNU/Linux installation. It looks clear that whenever a new request for memory is made by an application, the Linux kernel (OS) gives that request by swapping out a page into swap space ( when there wasn&amp;rsquo;t enought space available in RAM).</description>
    </item>
    <item>
      <title>Explore. Dream. Discover.</title>
      <link>/2009/11/18/explore.-dream.-discover./</link>
      <pubDate>Wed, 18 Nov 2009 00:00:00 +0000</pubDate>
      <guid>/2009/11/18/explore.-dream.-discover./</guid>
      <description> Twenty years from now you will be more disappointed by the things you didn&amp;rsquo;t do than by the ones you did do.&#xA;So throw off the bowlines.&#xA;Sail away from the safe harbor.&#xA;Catch the trade winds in your sail.&#xA;Explore.&#xA;Dream.&#xA;Discover.&#xA;Mark Twain </description>
    </item>
    <item>
      <title>Object Oriented programming in C!</title>
      <link>/2009/11/11/object-oriented-programming-in-c/</link>
      <pubDate>Wed, 11 Nov 2009 00:00:00 +0000</pubDate>
      <guid>/2009/11/11/object-oriented-programming-in-c/</guid>
      <description>Glib-C: C as an alternative Object Oriented Environment&#xA;book PDF Glib Tutorials:&#xA;https://www14.software.ibm.com/webapp/iwm/web/preLogin.do?source=dw-linux-glib&amp;amp;S_TACT=105AGX59&amp;amp;S_CMP=GR&amp;amp;ca=dgr-lnxw16GLibCollections http://www.ibm.com/developerworks/linux/library/l-glib.html http://www.ibm.com/developerworks/linux/library/l-glib2.html GObject:&#xA;http://library.gnome.org/devel/gobject/stable/ Compiling GLib Applications:&#xA;http://library.gnome.org/devel/glib/stable/glib-compiling.html </description>
    </item>
    <item>
      <title>JDB - Java Debugger</title>
      <link>/2009/11/07/jdb-java-debugger/</link>
      <pubDate>Sat, 07 Nov 2009 00:00:00 +0000</pubDate>
      <guid>/2009/11/07/jdb-java-debugger/</guid>
      <description>Debugging Java Code jdb supports fairly primitive support for debugging, which is sufficient ( sort of ) when used as a backend for an IDE ( like NetBeans, Eclipse etc. ).&#xA;However when I compare it with GDB ( the GNU Debugger ), as a tool to be used on the terminal, it seems to be pretty old. JDB lacks in features and commands which GDB specializes in. I was mainly interested in abbreviation of commands.</description>
    </item>
    <item>
      <title>Generating subsets</title>
      <link>/2009/11/06/generating-subsets/</link>
      <pubDate>Fri, 06 Nov 2009 00:00:00 +0000</pubDate>
      <guid>/2009/11/06/generating-subsets/</guid>
      <description>http://compprog.wordpress.com/2007/10/10/generating-subsets/</description>
    </item>
    <item>
      <title>GIT</title>
      <link>/2009/11/06/git/</link>
      <pubDate>Fri, 06 Nov 2009 00:00:00 +0000</pubDate>
      <guid>/2009/11/06/git/</guid>
      <description>Branching and Merging Creating a branch: git checkout -b branch-name OR&#xA;git branch branch-name git checkout branch-name Example:&#xA;$ git branch rm123 $ git checkout rm123 Merging a branch:&#xA;$ git checkout master $ git merge rm123 </description>
    </item>
    <item>
      <title>Building GNOME from source code</title>
      <link>/2009/10/26/building-gnome-from-source-code/</link>
      <pubDate>Mon, 26 Oct 2009 00:00:00 +0000</pubDate>
      <guid>/2009/10/26/building-gnome-from-source-code/</guid>
      <description>Building GNOME from source code Reference: http://live.gnome.org/Jhbuild&#xA;First download and install Jhbuild as mentioned at: http://live.gnome.org/Jhbuild&#xA;Modify the configuration file like this:&#xA;# -*- mode: python -*- # edit this file to match your settings and copy it to ~/.jhbuildrc # if you have a GNOME git account, uncomment this line # repos[‘git.gnome.org’] = ‘ssh://user@git.gnome.org/git/’ modulesets_dir = ‘/home/tuxnda/work/dev/jhbuild/modulesets/’ # what module set should be used. The default at the moment is ‘gnome-2.</description>
    </item>
    <item>
      <title>Adding DeviceKit-disks to Ubuntu</title>
      <link>/2009/09/30/adding-devicekit-disks-to-ubuntu/</link>
      <pubDate>Wed, 30 Sep 2009 00:00:00 +0000</pubDate>
      <guid>/2009/09/30/adding-devicekit-disks-to-ubuntu/</guid>
      <description>Adding DeviceKit-disks to Ubuntu Adding DeviceKit-disks to ubuntu is fairly simple once you reach this page:&#xA;http://packages.ubuntu.com/karmic/i386/devicekit-disks/download&#xA;Now add the following line to your software sources ( /etc/apt/sources.list ):&#xA;deb http://cz.archive.ubuntu.com/ubuntu karmic main Thats it!</description>
    </item>
    <item>
      <title>Building the Nemiver Debugger for GNOME on Ubuntu 9.04</title>
      <link>/2009/07/05/building-the-nemiver-debugger-for-gnome-on-ubuntu-9.04/</link>
      <pubDate>Sun, 05 Jul 2009 00:00:00 +0000</pubDate>
      <guid>/2009/07/05/building-the-nemiver-debugger-for-gnome-on-ubuntu-9.04/</guid>
      <description>Building the Nemiver Debugger for GNOME on Ubuntu 9.04 – the Jaunty Jackalope : http://projects.gnome.org/nemiver/&#xA;Install the libraries&#xA;$ sudo aptitude install libglademm-2.4-dev libvte-dev libgtop2-dev libsqlite3-dev libgconf2-dev libgtksourceviewmm-2.0-dev gnome-common libboost-dev Checkout the code&#xA;$ cd ~/work/ $ git clone git://git.gnome.org/nemiver nemiver.git Now build Nemiver&#xA;$ cd nemiver.git $ ./autogen.sh $ make </description>
    </item>
    <item>
      <title>What will be the future of IT in India?</title>
      <link>/2009/05/10/what-will-be-the-future-of-it-in-india/</link>
      <pubDate>Sun, 10 May 2009 00:00:00 +0000</pubDate>
      <guid>/2009/05/10/what-will-be-the-future-of-it-in-india/</guid>
      <description>What will be the future of IT in India?&#xA;On one hand there is Recession in the US and on the other hand there is a potential Domestic IT market in India in the long run.&#xA;Till recently in 2006, the IT exports from India were accounted 60% by the US, 20% by the UK and rest by other countries and India’s Domestic IT market. Recession in the US has changed this scenario.</description>
    </item>
    <item>
      <title>Thoughts</title>
      <link>/2009/01/31/thoughts/</link>
      <pubDate>Sat, 31 Jan 2009 00:00:00 +0000</pubDate>
      <guid>/2009/01/31/thoughts/</guid>
      <description>Any man under 30 who is not a liberal has no heart,&#xA;and any man over 30 who is not a conservative has no brains.&#xA;— Winston Churchill</description>
    </item>
    <item>
      <title>Rambling</title>
      <link>/2008/07/04/rambling/</link>
      <pubDate>Fri, 04 Jul 2008 00:00:00 +0000</pubDate>
      <guid>/2008/07/04/rambling/</guid>
      <description>The meaning of poetry has no direction.&#xA;It is like a sling; it is not under control.&#xA;&amp;ndash; Rumi&#xA;Har ek zajbat ko dua nahi milti&#xA;Har ek arzu ko zuban nahi milti&#xA;Muskan sajae rakho to duniya hai sath&#xA;kyuki Aansu ko to ankho main bhi Panah nahi milti&#xA;&amp;ndash; anonymous</description>
    </item>
    <item>
      <title>Collection of thoughts/poems</title>
      <link>/2008/07/03/collection-of-thoughts/poems/</link>
      <pubDate>Thu, 03 Jul 2008 00:00:00 +0000</pubDate>
      <guid>/2008/07/03/collection-of-thoughts/poems/</guid>
      <description>Few favourite quotes / poems / thoughts , which I have collected recently.&#xA;What happens to a dream deferred? Does it dry up Like a raisin in the sun?… Or does it explode?&#xA;– Langston Hughes, Harlem&#xA;Hope, like the gleaming taper’s light, Adorns and cheers our way; And still, as darker grows the night, Emits a lighter ray.&#xA;– Oliver Goldsmith&#xA;A man used to ask his mother, ‘How can I find the right woman for me?</description>
    </item>
    <item>
      <title>centericq: Text messaging for the Gmail&#43;Terminal freaks!</title>
      <link>/2007/12/03/centericq-text-messaging-for-the-gmail-terminal-freaks/</link>
      <pubDate>Mon, 03 Dec 2007 00:00:00 +0000</pubDate>
      <guid>/2007/12/03/centericq-text-messaging-for-the-gmail-terminal-freaks/</guid>
      <description>centericq: Text messaging for the Gmail+Terminal freaks!&#xA;How nice it is to just stay on the terminal with hands on the keyboard, staying away from that wierd mouse. I just configured centericq for that particular purpose. Its pretty simple.&#xA;Step 1. Install the centericq package :&#xA;$ sudo apt-get install centericq Step 2. Configure it for the Google Talk:&#xA;$ centericq Server : talk.google.com:5223 Secured : yes Login : ********@gmail.com Password : ******** Priority : 4 Update user details Set away message Drop Step 3.</description>
    </item>
    <item>
      <title>Prism - Mozilla&#39;s new offering!</title>
      <link>/2007/11/05/prism-mozillas-new-offering/</link>
      <pubDate>Mon, 05 Nov 2007 00:00:00 +0000</pubDate>
      <guid>/2007/11/05/prism-mozillas-new-offering/</guid>
      <description>Prism - Mozilla’s new offering!&#xA;If you have access to a computer and fortunately also have an Internet connection, then it is pretty sure that your first task will be to launch a Web Browser. You want every thing to be on the web browser to access it, be it email, chatting, watching video, playing games ( maybe 3D games in near future ) etcetra etcetra. Yes its true most of the times.</description>
    </item>
    <item>
      <title>Compiz - Debian ; Up and running!</title>
      <link>/2007/09/30/compiz-debian-up-and-running/</link>
      <pubDate>Sun, 30 Sep 2007 00:00:00 +0000</pubDate>
      <guid>/2007/09/30/compiz-debian-up-and-running/</guid>
      <description>This is just a plain simple way to have Compiz installed on your system ( i use Debian Etch ).&#xA;Install Compiz:&#xA;$ sudo apt-get install compiz Now edit the xorg.conf file: /etc/X11/xorg.conf, add the following lines at the bottom&#xA;Section &amp;#34;Extensions&amp;#34; Option &amp;#34;Composite&amp;#34; &amp;#34;Enable&amp;#34; EndSection Create a .xinitrc in your home directoy i.e. ~/.xinitrc with following lines:&#xA;#!/bin/sh gnome-terminal &amp;amp; exec compiz Now, kill your current X server session by pressing Ctrl-Alt-BackSpace .</description>
    </item>
    <item>
      <title>Ruby Code Snippets</title>
      <link>/2007/09/22/ruby-code-snippets/</link>
      <pubDate>Sat, 22 Sep 2007 00:00:00 +0000</pubDate>
      <guid>/2007/09/22/ruby-code-snippets/</guid>
      <description>Code:&#xA;Time.at(Time.local(2007, 10, 5)-Time.now).strftime(&amp;quot;%d days %H hours %M minutes and %S seconds&amp;quot;) </description>
    </item>
    <item>
      <title>Finding duplicate files on your system?!</title>
      <link>/2007/09/04/finding-duplicate-files-on-your-system/</link>
      <pubDate>Tue, 04 Sep 2007 00:00:00 +0000</pubDate>
      <guid>/2007/09/04/finding-duplicate-files-on-your-system/</guid>
      <description>I ( and many others ) have a lot media files ( mp3, jpg, avi, etc. ) lying around in the system. I wondered that how shall I get the list of all the duplicate files lying in my computer. Writing a script in Ruby which identifies the duplicate files using the MD5 hash values of the files contents, was no difficult a task. Here is the script.&#xA;#!/usr/bin/ruby ## This file finds all the duplicate files form a directory given ## at the command line.</description>
    </item>
    <item>
      <title>Learning Ruby</title>
      <link>/2007/09/04/learning-ruby/</link>
      <pubDate>Tue, 04 Sep 2007 00:00:00 +0000</pubDate>
      <guid>/2007/09/04/learning-ruby/</guid>
      <description>Ruby - The Programming Language&#xA;Here a few links that are good as a first look while learning Ruby.&#xA;General:&#xA;http://blade.nagaokaut.ac.jp/ruby/ruby-talk/index.shtml http://www.ruby-lang.org/ http://www.37signals.com/ http://www.ruby-doc.org http://api.rubyonrails.com/ http://www.ruby-forum.com/ http://www.rubyforums.com/forumdisplay.php?f=1 http://www.sitepoint.com/forums/forumdisplay.php?f=227 http://railsforum.com/ http://www.rubyinside.com/ http://redhanded.hobix.com/ http://www.rubyist.net/~matz/ http://www.planetrubyonrails.com/ :symbols in Ruby&#xA;http://glu.ttono.us/articles/2005/08/19/understanding-ruby-symbols http://onestepback.org/index.cgi/Tech/Ruby/SymbolsAreNotImmutableStrings.red Writing daemons&#xA;http://daemons.rubyforge.org/classes/Daemonize.html more to come&amp;hellip;</description>
    </item>
    <item>
      <title>Emacs: the GNU&#39;s editor</title>
      <link>/2007/08/20/emacs-the-gnus-editor/</link>
      <pubDate>Mon, 20 Aug 2007 00:00:00 +0000</pubDate>
      <guid>/2007/08/20/emacs-the-gnus-editor/</guid>
      <description>I have been using Vim editor for past ( almost ) four years, but now I have switched over to Emacs. I find it more intuitive ( just a personal opinion ). While I was learning Emacs I had few queries. So, I have prepared a small HOWTO which might help a new emacs user.&#xA;HowTo Colorize the syntax? M-x font-lock-mode Here M is the Meta key, which may be Alt or Esc (top-left corner of the keyboard).</description>
    </item>
    <item>
      <title>Virtual Machines for the modern programming languages.</title>
      <link>/2007/07/17/virtual-machines-for-the-modern-programming-languages./</link>
      <pubDate>Tue, 17 Jul 2007 00:00:00 +0000</pubDate>
      <guid>/2007/07/17/virtual-machines-for-the-modern-programming-languages./</guid>
      <description>The virtual machines are floating around for the popular languages of the present times. For instance look at the Parrot, YARVM, etc.Parrot is the intperpretter for the Perl 6.YARVM is probably going to be the virtual machine for Ruby2.The topic of Virtual Machines is becoming hot day by day for the system and software engineers.</description>
    </item>
  </channel>
</rss>
