2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 FOSS documentation emacs fedora foss freedom gnome haskell laptop photo ruby travel verilog vhdl vlsi xmonad

I am happy to announce my first self-published book on working with free and open source software projects, titled, “i want 2 do project. tell me wat 2 do.”

Shaks with book

Topics covered in the book:

  1. Mailing List Guidelines
  2. Attention to Detail
  3. Project Communication
  4. Project Guidelines
  5. Development Guidelines
  6. Methodology of Work
  7. Tools
  8. Reading and Writing
  9. Art of Making Presentations
  10. Sustenance

The product details are as follows:

  • Price: ₹ 399
  • Pages: 135 pages
  • Publisher: Self-published (June 2014)
  • Language: English
  • ISBN-13: 978-93-5174-187-9
  • Size: 6 x 9 inches
  • Binding: Paperback (Perfect Binding)
  • Availability: In Stock (Indian edition)

You can order the book at

The home page for the book is at:

If you have any comments or queries, please feel free to write to me at

Steps to install VirtualBox 4.3.10 on Fedora 20. You need to first open a terminal and become root user:

$ su -

Install dkms package:

# yum install dkms

If Virtual Machine Manager is running, stop the same, and uninstall it.

# yum remove virt-manager

Remove the KVM modules if already loaded:

# rmmod kvm_intel

Download and install rpmfusion-free repo from

# yum install rpmfusion-free-release-20.noarch.rpm

Install VirtualBox:

# yum install VirtualBox

Install the required VirtualBox kernel module for your running kernel. For example, on Fedora 20 with kernel 3.11.10-301, you can run:

# yum install kmod-VirtualBox-3.11.10-301.fc20.x86_64

Load the vboxdrv driver:

# modprobe vboxdrv

You can now start VirtualBox and use it. To convert Virt-manager images to VirtualBox, you can use:

$ VBoxManage convertdd ubuntu1204-lts.img ubuntu1204-lts.vdi
Red Hat, Westford
Residence Inn
Boeing Lufthansa

More photos available in my /gallery.

A Fedora workshop was organised at St. Joseph’s College of Engineering, Chennai, Tamil Nadu, India on Friday, June 14, 2013. The participants were students from the Master of Computer Applications (MCA) department.

The forenoon session began with an introduction to Free/Open Source Software (F/OSS) and Fedora. I explained the various project and communication guidelines that students need to follow, and mentioned the various Fedora sub-projects that they can contribute to. System architecture, and compilation concepts were also discussed. The need to use free and open standards was emphasized. Copyright, and licensing were briefly addressed.

MCA lab

After lunch, a programming lab session was held to see how students solve problems. Their code was reviewed, and suggestions for improvement were given. Klavaro was shown to students to learn touch typing. I also gave an overview of GCC using the “Introduction to GCC” presentation. The concept of using revision control systems was illustrated. A demo of Fedora 18 (x86_64) was shown, and the same was installed on the lab desktops.

Thanks to Prof. Parvathavarthini Mam for working with me in organizing this workshop. Thanks also to Prof. Shirley for managing the logistics.

Few photos taken during the trip are available in my /gallery.

A Fedora Activity Day was held at Sri Jayachamarajendra College Of Engineering, Mysore, Karnataka, India on Saturday, April 20, 2013.


The agenda included talks in the morning, and practical sessions in the afternoon. I started the day’s proceedings on best practices to be followed when working with free/open source software projects, giving examples on effective project, and communication guidelines. The various Fedora sub-projects that students can contribute to were mentioned. This was followed by an introductory session on Python by Aravinda V K. The “Python: Introduction for Programmers” presentation was given to the students. Vijaykumar Koppad then gave an overview, and a demo of the Gluster file system.

After lunch, we had a Q&A session with the participants. Questions on working with free/open source software projects, differences between file systems, GNU/Linux distributions, and programming languages were answered. Basic installation and troubleshooting techniques were discussed. I addressed system architecture design concepts, compilation, cross-compilation, and revision control systems, and briefed them on copyright, and licensing. Students had brought their laptops to work on Python scripting, and GlusterFS. I also worked on few bug fixes, package builds for ARM, and package updates:

  • Bug 928059 - perl-Sys-CPU 0.54 tests fail on ARM
  • Bug 926079 - linsmith: Does not support aarch64 in f19 and rawhide
  • Bug 925483 - gputils: Does not support aarch64 in f19 and rawhide
  • Bug 922397 - flterm-debuginfo-1.2-1 is empty
  • Bug 925202 - csmith: Does not support aarch64 in f19 and rawhide
  • Bug 925247 - dgc: Does not support aarch64 in f19 and rawhide
  • Bug 925208 - CUnit: Does not support aarch64 in f19 and rawhide
  • Bug 901632 - ghc-smallcheck-1.0.2 is available
  • Bug 926213 - nesc: Does not support aarch64 in f19 and rawhide
  • Bug 953775 - ghc-data-inttrie-0.1.0 is available

Thanks to Vijay Bellur and Vijaykumar Koppad for working with me in organizing this workshop. Thanks also to the Fedora project for sponsoring my travel and accommodation.

Few photos taken during the trip are available in my /gallery.

Ajanta caves
Daulatabad fort
Ellora caves

More photos available in the respective albums - Ajanta caves, Daulatabad fort, and Ellora caves.

I had organized a Fedora and OpenStack workshop at P.E.S. College of Engineering, Nagsen Vana, Aurangabad, Maharashtra on Saturday, March 2, 2013.

P.E.S. College of Engineering

After a formal inauguration at 1000 IST, I introduced the students to communication guidelines, mailing list etiquette, and project guidelines using the “i-want-2-do-project. tell-me-wat-2-do” presentation. The different Fedora sub-projects to which they can contribute to were mentioned. I showed the various free/open source software tools available for them to learn and use. The career options with free/open source software were also discussed. I had asked them to write down any questions they had on the forenoon session, so I could answer them in the afternoon session. Few of their questions:

  • If I do a project in Java, what are my career options?
  • What is the difference between open source and Microsoft?
  • Is Linux popular only because of security, or are there other reasons too?
  • I am interested in mainframes. How should I learn?
  • I am interested in a career in animation. What free/open source software can I use?
  • What are the steps to become a good software engineer?
  • Can I patent a software product?

Post-lunch, I answered their queries in the Q&A session, to the best of my knowledge. I also gave them an introduction on copyright, trademark and patents, and mentioned that IANAL. I then introduced them to the architecture of OpenStack, explaining the individual components, and their functionality. The OpenStack Lab Guide was provided to them to setup their own OpenStack cloud. Some of them had brought their laptops to try it hands-on. I demonstrated the Horizon web interface after starting the required services.

Fedora Labs

All their computer labs have been migrated to Fedora 17. Thanks to Prof. Nitin Ujgare for working with me in organizing this workshop, and for maintaining the Fedora labs at the Institute. Aurangabad is around 230 km from Pune, and takes around 4 1/2 hours by road. There are frequent bus services between Pune and Aurangabad. You can book bus tickets at Maharashtra State Road Transport Corporation (MSRTC) web site. There are a number of historic places to visit in and around Aurangabad. Few photos taken during the trip are available in my /gallery.

I had presented an introduction to Magit, “Emacs + Magit = Git Magic”, at the Pune Emacs Users’ group meetup on Friday, February 22, 2013. Magit is an Emacs mode that interfaces with Git. Magit doesn’t provide all the interfaces of Git, but the frequently used commands. The user manual was used as a reference. Magit is available in Fedora. You can install it using:

$ sudo yum install emacs-magit

The talk was centered around the notion of writing a poem on Emacs in Emacs, and using magit to revision it. I started an Emacs session, created a directory with Dired mode, and used magit (M-x magit-status) to initialize a git repo. After adding a stanza in the poem, I used the magit commands to stage (s) and commit the same (c, C-c C-c) from the magit-buffer. Another stanza and a README file were then added, and the different untracked, and tracked section visibility options (TAB, S-TAB, {1-4}, M-{1-4}) were illustrated. After adding the third stanza, and committing the same, the short (l l) and long (l L) history formatted outputs were shown. The return (RET) key on a commit in the magit-log history buffer opens a new magit-commit buffer, displaying the changes made in the commit. The sha1 can be copied using the (C-w) shortcut.


The reflogs are visible with the (l h) option from the magit-buffer. The (d) command was used to show the difference between the master and a revision, and (D) for the diff between any two revisions. Annotated tags (t a) and lightweight tags (t t) can be created in magit. Resetting the working tree and discarding the current changes is possible with (X). Stashing (z z) the present changes, applying a stash (a), and killing the stash (k) were demonstrated. An org branch was then created (b n) to write a stanza on org-mode, and then merged (m m) with the master branch. An example of rebasing (R) was also illustrated. The magit-buffer can be refreshed (g) to check the current status of the git repo. Anytime, the magit buffers can be closed with the (q) command. A git command can be invoked directly using (:), and the corresponding output can be viewed with ($), which is shown in a magit-process buffer.

A summary of the various shortcuts are available in the presentation. The poem that I wrote on Emacs, and used in the talk:

Emacs is, an operating system
Which unlike many others, is truly, a gem
Its goodies can be installed, using RPM
Or you can use ELPA, which has already packaged them
You can customize it, to your needs
You can also check EmacsWiki, for more leads
Your changes work, as long as reload succeeds
And helps you with, your daily deeds
People say, it lacks a decent editor
But after using its features, they might want to differ
Using Magit’s shortcuts, you might infer
That it is something, you definitely prefer
Plan your life, with org-mode
You don’t necessarily need, to write code
TODO lists and agenda views, can easily be showed
Reading the documentation, can help you come aboard
Emacs is, a double-edged sword
Its powerful features, can never be ignored
Customization is possible, because of Free Software code
And this is, my simple ode.

GNUnify 2013 was held at Symbiosis Institute of Computer Studies and Research (SICSR), Pune, Maharashtra, India between February 15 to 17, 2013. I attended day one of the unconference.


The first talk that I listened to was by Oyunbileg Baatar on “Screencasting Demos and HowTos”. He mentioned the various free/open source, desktop recording software available. He also gave a demo of recordMyDesktop, and video editing using PiTiVi.

After a short break, and a formal introduction, I began my session for the day - “Introduction to GCC”. Fedora 17 was installed in the labs for the participants to use. I started with a simple hello world example and the use of header files. I also explained the concepts of compilation and linking, and briefed them on the syntax of Makefiles. Examples on creating and using static and shared libraries were illustrated. We also discussed the different warning and error messages emitted by GCC. The platform-specific and optimization options were shown with examples. Students were not familiar with touch typing, and I had to demonstrate the use of Klavaro typing tutor.

GCC workshop

The preliminary round for the programming contest was held in the afternoon. Thirty questions on C and systems programming were given to the participants to be answered in thirty minutes. I helped evaluate the answers. The practical test was to be conducted the following day. Thanks to Neependra Khare and Kiran Divarkar for organizing the programming contest.

I also attended the OpenStack mini-conf session in the evening where a demo of OpenStack was given by Kiran Murari. This was followed by a session on “OpenStack High Availability” by Syed Armani. Aditya Godbole’s closing session for the day on an “Introduction to Ruby” was informative. Few photos that were taken are available in my /gallery.

A Fedora workshop was organized at Sandip Institute of Technology and Research Center (SITRC), Nashik, Maharashtra, India from February 2 to 3, 2013.

SITRC, Nashik

Day I

I began the day’s proceedings with the “i-want-2-do-project. tell-me-wat-2-do-fedora” presentation in the seminar hall at SITRC. The participants were introduced to mailing list, communication and effective project guidelines when working with free/open source software. This was followed by an introduction on window managers, and demo of the Fedora desktop, GNOME, Fluxbox, and console environments.

After lunch, I gave an introduction on system architecture, and installation concepts. Basics of compilation and cross-compilation topics were discussed. An introduction on git was given using the “di-git-ally managing love letters” presentation. After a short tea break, we moved to the labs for a hands-on session on GCC. This is a presentation based on the book by Brian Gough, “An introduction to GCC”. Practical lab exercises were given to teach students compilation and linking methods using GCC. I also briefed them on the use of Makefiles. C Language standards, platform-specific and optimization options with GCC were illustrated.

GCC lab session

Day II

Lab exercises from the GCC presentation were practised on the second day, along with the creation and use of static and shared libraries. The different warning options supported by GCC were elaborated. A common list of error messages that newbies face were also discussed. After the lab session, I introduced them to cloud computing and OpenStack, giving them an overview of the various components, interfaces, and specifications. I also gave them a demo of the OpenStack Essex release running on Fedora 17 (x86_64) with the Horizon web interface.

The college was affiliated to University of Pune, and had deployed GNU/Linux labs for their coursework. Now they are autonomous, and want to explore and expand their activities. They have a local user group called SnashLUG. The college is 15 km away from the city of Nashik, which is around 200 km from Pune. The bus journey from Pune to Nashik takes six hours, and you can book tickets online through Maharashtra State Road Transport Corporation (MSRTC). There is frequent bus service between Pune and Nashik.

Thanks to Rahul Mahale for working with me for the past three months in planning and organizing this workshop. Thanks also to the Management, and Faculty of SITRC for the wonderful hospitality, and their support for the workshop.

Few photos taken during the workshop are available in my /gallery.