Preface

Dear readers,

I am aware that many were waiting to read my new post after my last one on GNUKhata, the FOSS accounting software. The launch of version 4 of the said software surely deserved a blog in itself. Indeed, the software now has enterprise quality Inventory features along with more advanced accounting modules. You can look at the feature list at gitlab.com/gnukhata/gkwebapp/milestones where version 4 is detailed. But today I am going to talk about some thing very technical and specific for professional and would-be professional programmers. I know this is disappointing for all non-technical readers in general and I profoundly apologize for those who may not find this post to their taste. But this is also the first time I am writing a technical post and so I guess many of my techy friends will be very happy.

I am going to share my views and experiences about a very powerful, old yet mordan programmers IDE/ work horse called Emacs. I wish to say at the very beginning that I am only speaking from my experiences and from the facts shared by few veteran programmers. I have formed these views after using several IDEs over the period of 12 + years of programming experience. I might be wrong from some other programmer’s point of view and some fact I have stated might need updating. For example I might be talking about a feature in Emacs which is also available in other IDE. Or perhaps some functionality may seem to be superior in other program. In short the facts which I am sharing in terms of features and functionality are on the basis of my experience I had in last few months with Emacs. I will not just share my experience but also give some tips and tricks which I found very valuable on my way to getting grip on Emacs. I will be providing my approach on learning emacs and also my entire configuration. Enough of the preface, it was just meant to prevent any IDE wars.

Introduction for beginners

Emacs is a powerful programming environment. It is also a rich text editor. However calling it a text editor would be like calling a cannon as a revolver. It not just has all the bells and whistles of a modern IDE but has a powerful yet relatively easy way of customizing user experience. I say relatively easy because you will really get lost at the beginning, often frustrated to the point of throwing it out of your machine. But take my word on this. Once you start getting comfortable configuring Emacs, the production level grows exponentially, Coding becomes seemlessly easy and you feel like you are getting more and more power in your hands. So don’t feel guilty when u feel like laughing on yourself for intending to throw it out of your box when you look behind.

Before I get into the pros and cons of using Emacs for programming, I must explain a bit about the philosophy behind this powerful IDE. Firstly, emacs is nothing as such and every thing in general. Confused? let me make it more clear. Emacs is mostly a programmer’s tool and just like most programming languages, it has a very small core set of functionality. Just like we use numerous libraries to augment the programming language, Emacs has a lot of modules to give it the very power that it possesses. That said, the basic version of Emacs itself comes with “batteries included ” for many common place programming tasks. However the philosophy advocates “make it your tool and use your rule” approach. This means almost every Emacs user ought to know how to configure it. In fact I can go to the extent of saying that if you can’t configure Emacs, then either go with some one else’s configurations which suites you and compromise with what that configuration does not have, or don’t use Emacs at all. Surely there are several other IDEs like Eclipse and Atom. There is also sublime and Anjuta.

So first of all you need to learn the basic text navigation and other related commands and then learn the configuration. I would also warn all my readers to be patient and take it easy. Learn few things at a time and once those are done, keep some notes handy on what you did to achieve what you achieved. It is easy to forget the steps you took initially, when it comes to a huge thing like Emacs so the above tip is extremely important. Well I will give my own configurations in this Blog, so many of you can benefit from it. Specially programmers coding in Python, Django templates, Javascript can take full advantage of the configuration I have assembled. But mind you, there are few things you may like to change. Again I repeat, configuring Emacs is the key to using it with all the power. So what is this configuration all about, how we do it? And what’s so unique that I am recommending programmers to become proficient with this super powerful programmer’s editor?

Pros and Cons in a summary

Now that we are clear with the approach Emacs advocates, let’s look at how it is different in terms of an IDE and how it is best suited for most programming work we do as professionals. We will then discuss about the major aspects in details. Surely there are several angles to using Emacs but I will cover those which matter to programmers who need real power and precision in their work.

Pros

Extremely lite weight
Smooth and super fast
Free as in cost and freedom
Most powerful code navigation capability
Best for editing complex code
Syntax highlighting, and code assist work great
Multiple options for code completion
Limitless customization possibilities
Once understood, configuration becomes easy
Carry your entire setup with you
Does not rely on heavy platforms

Cons

Not a “ready to use ” tool for every thing
Some time investment needed to master
Extreme customization may not appeal to all

Detailed analysis and reasoning

Just one look at the pros and cons will tell you that the number of advantages outweigh the disadvantages. But just don’t go by the numbers, the cons I listed are only 3 but in terms of approach might be major concerns for several people. One big concern and rightly so is “why should I invest my time customising my experience when I already can get an out-of-the box tool like Eclipse?” Well, if that is the only concern then either you should not use Emacs in the first place or look at the investment benefit ratio. If you look at the latter carefully, then you can observe that customising comes with real power and you will never have to crib about some thing not working the way you wished it did. And “precision ” is the word here. Do you like auto-complete to work in a certain specific way? Do you wish you immediately cook up your own snippets and integrate them instantly in your IDE for custom code templates? How difficult would it be to customize any other IDE?

Here I must introduce the concept of init file in Emacs. Emacs reads it’s configuration from a file called init.el in a folder called ‘.emacs.d’ on your Linux machine. This also has alternatives. I have given the link to the emacs page and will also give links to some good manuals at the end of this blog. YOu can look at the alternatives there. But for the sake of this blog and for making absolute beginners comfortable, we will consider init.el in ‘.emacs.d’ folder. Another important fact about emacs is that it is written in a language called LISP. It is an extremely powerful language with minimal syntax. So powerful is the language that it has existed since late 1950S and is still being used in various forms at top notch IT giants like Facebook and Amazon The power of this language is that it can bend according to your syntactical needs. Code can be treated as data and data can be treated as code. There are some rich variants like Clojure made out of LISP. the Syntax is basically (your code ). Yes that’s correct just () is the core syntax. Every thing is treated as a list in LISP. I discussed this here so that you know how and why the init.el file is written in a particular way. Basically, you will tell Emacs exactly what you want and how you want in the init.el file.

You want auto complete to work in a certain way. You wish to have tabbed list of all your files on top of Emacs, you wish that Indentation should be marked. All this is part of the init.el file in your ‘.emacs.d’ directory. Well, there are some other things in that directory as well. For example you will have a snippets directory where all the code templates are kept. Just like the Android play store or the Ubuntu repository, Emacs too has it’s repos containing several packages. One such is melpa. You need to configure the repository in init file. As a matter of fact this should be the first thing in your init file. You can then use the package-install or the list-packages command which I will discuss later. As I said you can see details about it in the emacs manual.

In a nutshell you install emacs packages from a repo and then do the necessary configurations in the init.el file in ‘.emacs.d’ directory and restart emacs. Apart from knowing that Emacs uses configurations in the init file, there are couple of major concepts you must be aware of to start with. If you wish to have a first look at emacs, here’s how you install it on Ubuntu 16.04 There is a separate PPA for emacs 25. Execute these following 3 commands in exactly the same order and you will have Emacs version 25 on your machine. sudo add-apt-repository ppa:kelleyk/emacs sudo apt-get update sudo apt-get install emacs25 You can search for Emacs in your dash pain and then add it to your launcher.

Emacs has a menu bar at the top and a thin strip called modeline at the bottom with the remaining space for your work. Now that you have Emacs setup, let’s go ahead and understand the core concepts. Firstly, Emacs has mode for every programming language. For example there is python-mode for python, web-mode for web related programming (django templates, Java script, html etc ) and so on and so forth. This is somewhat similar to what Eclipse users know as perspectives, just way more advanced, easy to mix and match. These different modes behave differently as per the need of a certain programming language. For instance, Python does not have braces {} to mark blocks of statements like if or else. This is done through indentation, as Python programmers like yours truly would know. And html tags need to start and to end. So there are different requirements for different languages. Readers might have one question at this point. So this is the case with IDEs like Eclipse, what is more special in Emacs modes? And yes what about auto completion of code? I will address auto completion in just a while, but first about the modes.

There are two types of modes, major and minor modes. To understand this difference, we must first know that files in Emacs are opened in what we call as buffers. You can consider buffers as the visible view of the file. So what ever changes you made to the buffer are then saved back to files. One file can be opened in many buffers at the same time and you can partially edit one part of the file in one buffer and partially in another. So buffer is a vew of the file visually. You can remotely compare this to the text area of a word processor, but buffers are much more than that. Now the rule is that one buffer can only be associated with one major mode. So a buffer containing an opened python module is for example associated with python-mode, a js file in web-mode etc. But one or more minor modes can be associated with one buffer. Here, it’s time to take an example and we will look at auto completion.

We ideally wish to have auto completion of code in all programming languages to save our time. So considering the above scenario’ both the python buffer (with python-mode ) and js buffer (web-mode ) needs to have auto completion. Amongst many auto completion modules I am aware of, company-mode is the best. There is also an older auto-complete mode but more and more Emacs users have started to like the company-mode. How about also having a system where you not just get auto completion but also entire code templates written for you? Again programmers wish this for all languages right? Yasnippet is one such module. The above mentioned company and yasnippet are two minor modes which can be hooked into python, web or any major mode of your choice. Just type some thing and auto completion starts immediately. you can press tab to accept the completion or use arrows to move in the list of choices and select one.

If you look at my init file, you will see several such hooks being added. Hook is an event where a certain major mode gets activated when a file is opened in a buffer. for example consider this line of code. (add-hook ‘web-mode-hook ‘company-mode) This says that when any file results in web-mode to be active, the company-mode (auto completion ) must also be attached to it for auto completion. now here is another line for the same web-mode. (add-hook ‘web-mode-hook ‘linum-mode) This says that along with company-mode I also want the minor mode to show me line numbers when web-mode is active. one minor mode can be associated with two major modes. For example just like web-mode, python-mode is also a major mode. I can surely have line numbering for python mode as well. you guessed it right, the code will be, (add-hook ‘python-mode-hook ‘linum-mode) Get the point?
Multiple combinations of facilities in different programming environments.

Major modes offer very specific facilities, eg. correct mandatory indentation in Python and proper braces in javascript. Minor modes have features which multiple languages can share, eg. auto completion, code assist etc. That’s why I gave you the Nara “make it your tool apply your rule”. But how does Emacs know which major mode to open for what file type? again, in most cases your rule. But these rules are sheer common sence. For example .py file should be obviously opened in python-mode. .c file in c-mode. Such obvious rules need not be mentioned so Emacs takes care of them. But some times you need to explicitly make associations between certain file types and major modes. For example for javascript, there is the web-mode and another major one called js2-mode. Which one do you choose? There are people who like web-mode for its comprehensiveness, specially when you have several libraries involved in your js file. But some need simpler tool. So I have web-mode by choice. How do I tell Emacs to start web-mode when js file is opened in a buffer? Secondly, I wish not just js, but even my jinja2 and html files open in web-mode. Well, I am just providing with a couple of lines to show how you define this in your init.el file. You can right this either before the hooks or after them. (add-to-list ‘auto-mode-alist ‘(“\\.html\\'” . web-mode)) (add-to-list ‘auto-mode-alist ‘(“\\.js\\'” . web-mode))

So the instructions are clear here. I wish to have web-mode active when an html or js file is opened. in LISP you can add things to a list with the add-to-list command. Every element has an ‘ preceding without spaces. Now you can add your own rules and decide which mode to use for what file. got the power? By the way you have also learned the syntax of Lisp language in this process. This is how every line of lisp code is written. Every thing is an element in a list enclosed by ().

To summarize, Emacs looks at a configuration file, generally referred to as init.el in a folder ‘.emacs.d in your home. Buffers are the visual views of a file and the place where you do all your work. Modes are those components of Emacs which determine the behaviour in particular programming environment. There are major modes (one per every buffer ) and optionally more than one minor modes which can be mixed and matched to give added functionality to the major mode. Minor modes can be shared so that features like auto-complete behave in exactly same way every where.

We have just seen how easy it is to configure emacs for auto completion and line numbering. This is power in itself with speed and performance added to it. Emacs can also remember your last action or set of actions. For example if you are working on a project with many files, a mode called IDO can predict where you are most likely to go when you come back to your desk after a break. Rather it takes you to that location by default. You can press backspace at any point to change the course. Remember all this at great speed, less memory foot print and with your code taking more than 90% or more space on your screen. No extra fancy tool bars, no complex windows, no multi level menus (well you can have them at your choice ), but a great editing and navigation experience, which I will be discussing right away.

Navigation and editing – a unique experience

The real power of Emacs is in it’s editing capabilities and navigation shortcuts. While the high degree of customization may have already impressed you enough, the real fun starts when you learn how to move around in the code seamlessly and edit code with optimum comfort. But before I get into some overview, first let’s get some conventions clear. In all the emacs documentation and manuals, the control key is referred to as “C” while the alt (meta ) key is called “M” and shift is called “S”. so when you read some thing like “press C-x C-c to exit Emacs ” it means, hold down the control key and press x and then press c. Well if you are really getting frustrated with Emacs, I just gave you the way to exit. But jokes apart, most keyboard shortcuts in Emacs either use C-x or M-x as the prefix. In the above example C-x is the prefix. Further more, C-x is used for major operation’s such as Exiting Emacs, Resizing the buffer, etc. While M-x is used for most other things such as issuing a command. For instance C-x 1 will make the current buffer occupy the entire screen space except the Menu bar if full-screen is not enabled. -x 2 will split horizontally., giving two buffers place in the same window. If you remember I had mentioned a command named package-install.

You may have guessed that since it is a command, you have to type it after pressing alt_x, where you get the prompt to enter it. Note that you can type just a few characters and press the tab key to get auto completion suggestions for the incomplete command. Besides these group of commands, there are several other commands you may want to learn. These are already detailed in the manuals which will be provided at the end of this blog. Remember one thing though, Emacs is highly keyboard driven just like VIM. The reason why Emacs or VIM does this is obvious yet sub-conscious. It has been scientifically proven that the more you are typing as you think, the more productive you are in terms of converting logic to code. So moving your hand off the keyboard on to the mouse can often break your link.

I will also link a cheat sheet for all basic Emacs commands along with the manuals. Just to highlight some important commands. M-w copy, C-w cut, C-y paste (called as yank ), M-y after C-y, multi level paste. You can use the shift key to mark more than one line at a time. You can also kill the entire line by placing the cursor at the beginning and pressing C-k (k = kill). C-f goes one word forward, C-b one word backward. If you are a Python programmer then C-M-e takes you to end of function or class. C-M-a at the beginning. M-e takes you at the end of current block and M-a at the beginning. You can press C-s and search for any thing you wish. The cursor directly takes you to the first found location. You can keep pressing the command to move forward and search the next occurrence. C-R does reverse search.

Do take out some time and read the manuals which are listed at the end of this blog. Those are hand picked by yours truly for quick yet efficient learning. To open a file you use the command C-xC-f and then … Well, here some fun starts. You can type the name of the file partially and hit the tab key. But what if you wish some clever auto completion. I had made a passing reference to the ido-mode some time back. So you can try it out. if you are running emacs already, you can first press M-x and type ido-mode and hit enter. Look at the modeline (the thin strip below your code buffer ) to see some thing like “ido set to both “. Now when you press C-xC-f command, you will see the list of files in the current folder. You start typing and completion happens in a dictionary style.

If you open some file and then quit Emacs. you can come back to this file again very easily if you keep ido on. It will predict your path to this file when you press C-x-C-f again. I am sure once you learn these commands and more, you would love to use Emacs for all your programming. Another handy command is C-x C-b which lists all the buffers currently open. you can use your arrow keys to go up and down in the list and hit enter on which ever buffer you wish to open. By the way, Enter is often called “ret ” in Emacs lingo. You can also press k on any buffer in the list to kill (close ) it. To start or enable any mode, you press M-x and type the mode’s name and press Enter. Now you might say “how do I remember all the commands all the time? how many mode names to recall?” Well, here comes the last fun part of this blog before I give you the wealth of manuals and my own personal collection of the tool box. the customizations in the init.el file are not just restricted to combining minor modes or associating files to specific major modes.

You can make your own keyboard shortcuts for all the features in Emacs. Most of them are already made for you but you can cook up your own for your comfort. Let’s take the example of ido which we had just discussed. Isn’t it very tedious to always do M-x and then type ido-mode? how about associating a single key to toggle it for you? look at the following line from my init file. (global-set-key [f12] (quote ido-mode)) You guessed it right. Now next time you wish to use ido mode, just press f12. All the tediousness is just gone.

I believe now the importance of configuration has become very obvious to all my readers. Also I hope I convinced you about how easy it is to do these customizations. All in all, with all the built-in keyboard shortcuts already present, combined with the editing and search capabilities and your own combination of minor modes, you get an equally or in some cases more powerful IDE than most popular ones. And hey, I did not even mention yasnepit which gives you complete code templates apart from the auto completion which company-mode provides. So let’s say you type a . after a certain object. YOu get list of auto completion options. You can select one by pressing tab or hitting enter. Pressing tab again mostly gives you a complete code template. In the configuration I have provided, this works particularly well with jquery. There is parameter description, syntax checking on the fly and several other features which you aught to explore and try your self. I need not repeat again that you can customize every thing to your taste. There is a plethora of packages right from smart syntax checking, parenthesis matching, refactoring, project management and any thing that you can dream of. Listing all of them is beyond this blog and after all “your tool your rule “. Go ahead and give it a try!

Summary and References

As you have mostly realized by now, Emacs is complex, because it is tremendously powerful. You have sky as the limit when it comes to shaping it as per your requirement. This for many comes at a cost. It is all about time investement to get the huge profit in terms of programming efficiency. And mind you, if you find that some thing you wish can’t be done in Emacs, then don’t hesitate to research a bit. Chances are that you might find a better alternative for your requirement. If after that you still don’t find what you want, then you may as well use another tool. I am not an Emacs evangelist and don’t take it as a religion. VIM is great as well and may be some might still fine Eclipse or Atom even more powerful. But After so many years of programming, I can say one thing with great responsibility. Emacs has every thing that a professional, busy programmer needs for challenging work.

To get started you can read the beginner’s manual here which has more than 1 part. That in turn will give you all the comprehensive documentation along with a wonderful quick start guide. For those who wish to know more on Python related configurations (I already have it in my collection ), go to the article http://onthecode.com/post/2014/03/06/emacs-on-steroids-for-python-elpy-el.html for details. As an exercise research on web-mode which we have referred to time and time again. Again, configurations and the needed package is there in my collection, ready for you to use. Make sure you see the init.el file at least few times to know what it does. You can perhaps customize the keyboard shortcuts. The git users who have their code on gitlab or github also have a good news! We have magit as a complete tool kit for handling your work. Right from your commits till pulling or pushing code, making branches etc. every thing is present. For those who wish to have a quick glance at all the basic commands here is the cheetsheet. And yes, finally here’s the link to my collection. Download Emacs ToolBox to and extract the contents in a folder called ‘.emacs.d’ in your home.

Dear readers,
I am aware that many of you who have followed the development of GNUKhata a free and open source, standards complying, fast and user friendly accounting software, have expected me to blog about it.
So this time I will speak and will do so in a mega blog.
So if you just started reading it then be aware that you may not be able to finish it in one go.
This is another reason I could not blog as per my planned schedule because it took a lot of time to put the entire story in a single blog post.

I kept quite for various reasons.
Firstly, the software although matured was never so good as to be used in a lot of businesses. There are quite a few organizations using it right now, but those who need Inventory management are not able to use it. We have added a slue of great features in the version 3 released this summer.
Secondly there was so much development going on that I hardly had any time to write about it myself. We have just released version 3.5 and for that a sprint was on. I will talk about that in due course of this blog.
Thirdly we started the live demo just a couple or so months back, so before that there was no point just talking.
Lastly I wished it reached to a level where I could praise it even when I look at it from a neutral point of view.
After all every one feels their baby is the best, but I wanted to be self critical, an attitude most necessary for a professional project of this kind.
We were supposed to release version 3.5 of the software by mid November so I thought it’s time to open up. This time I can say that it’s really awesome and I am seriously unable to find a lot of negatives which can push users away.
I am going to talk about what we have new this time and some more ideas.

A short history

I think before I speak about the current GNUKhata and with version 3.5 release, it is worth telling you all about the reasons yours truly started this project and it’s overall background.

Basically back in 2008 I used to be an independent FOSS consultant as, soon as I finished my project job at Homi Bhabha Center for Science Education of TIFR.
Needless to say it was Dr. Nagarjuna my mentor who not just introduced me to the world of free software, but made me truly realize the need to advocate and develop free software exclusive.
He also guided me to target proper places, proper fields and in proper way to inculcate both free knowledge culture and free software.

I had to earn money as my project contract at HBCSE was over.
On one hand I got an offer to work with NGO called comet media foundation in Mumbai, again through Nagarjuna’s recommendation.
And on the other hand I continued doing my independent consultancy of migrating organizations to free software.
Apart from the consultancy work I was of course taking a lot of free software workshops all over India and also at a few places abroad.
IN those days people had just started to realise how free software not just benefits them in their business by saving costs but also personally by providing more security.
It wasn’t like today where every one knows about what free software or open source is, or or where most of us are using free software in the form of Android or Firefox or Vlc.
But those who had become aware were too keen to shift to free software.
Specially businesses were finding it worth-wile to do so.
During my consultancy contracts, I always noted that no matter how keen the organisations was on free software or how desperately they wished to shift, there would be one section which would always be using Windows and all the proprietary software which came with it.
I specifically say Windows because there was a strong reason for that particular OS.
That section was the accounting section.
There are few proprietary accounting programs being used in India and I need not mention one popular software which claims to be a standard of electronic accounting.
I will in a later section show you how some features are not standards compliant in that software.
So that constant disgrace to our mission created a strong desire in me to do some thing about it.
In addition professional speaking, I felt that I wasn’t doing justice to my work because I could not do a total shift to free software in any organisation.
In one such company I was appointed as a consultant for the same purpose.
The director of that company was highly impressed by the transparency of free software and the fact that it is virus free and the advantage it gave in modification and license free usage.
Obviously he had to pay for my consultation charges and some other stuff, but license cost went down to almost 0.
I used that “almost ” word on purpose.
One fine day I was having dinner late night with the director and the sysadmin in that company as 150 machines were being installed with Ubuntu Linux.
3 machines were for accounting and he pointed it out to me.
That time the sysadmin said,”ye itna sab acha hain open source ka kam, toh fir accounting ke liye kuch bhi nahi? KK sahab aap kuch karte kyun nahin ” meaning “all this is so good in open source Mr. Kk, but there is nothing for accounting? why don’t you just do some thing? ”

He went to add that if this gap is not filled soon, we will never be able to accomplish our dream of license free software infrastructure.
This only added fuel to my fire to do some thing about this one issue which had been a sting in the pride of free software mission.
His “aap kuch karte kyun nahin ” gave the extra tonic of standing up to the moment and acting on it.

This one incident and that dialog made me think over night and next morning the decision was taken.
I talked with Chandita Mukherji the director of Comet Media and she too agreed to help immediately because comet too required a free accounting software.
The said organisation provided space for developing this software and also some primary funding when the project was in a early days.
Mean while, I already had a request from the SNDT university’s UMIT department to take a few girls from there for internship.
The said institute is a women’s college for engineering.
I was very fortunate to get some brilliant girls to work on this.
One of them being Radhika Vadegaonkar Kulkarni who had a brilliant aggressive attitude and a great talent.
We had another one in form of Shruti Surve and Priyanka who too were extremely talented and dedicated.
The project took off in early spring of 2008 and we started to understand some accounting domain and concepts from a few people.
Mr. Raul from HBCSE and Mr. Jacob from Comet Media were the two main people advising the team.
We started to write the modules first in Python .
The database was postgresql
The said language and RDBMS were the best and still are.
Project was moving on a slow pace with Radhika taking most of the lead doing all the complex work like writing stored procedures (functions inside the database to get and save data ).
Shruti and Priyanka used to look at the logic and front end with Me overlooking all the work specially in the core logic.
We used to have many obstacle’s but the team although very small was showing great signs of progress and improvement.
For example one fine day we were stuck up on a function which could be used to call all the stored procedures.
Issue was very irritating. The problem was that after Radhika wrote or modified any stored procedure the entire core logic team had to do a lot of alterations to their code.
I decided to end it once for all by writing a python function to take the name of the procedure, needed parameters and specifying single or multi results expected.
But we got stuck in the way sql is processed by Psycopg2, the connector between Python and the database.
“hell this is more than enough, I think I will do it ” I said and left comet’s office that evening early.
I still Remember Radhika and Shruti coming up and asking me why I was going early.
That full night I sat and programmed the entire function, next day team had a double reason for joy.
Their payment was done and this function was introduced by yours truely.

There were several such exciting moments, tensed moments and moments of success.
If I were to write all that in details then this will be the biggest story in the anuls of blogging.
Our team increased with the addition of 3 more programmers and the project was slow yet steady.
The biggest event and one of the major turning points happened in early 2009.
The team was sitting in the library of comet which was now the GNUKhata lab and working as usual.
It was in early march that we had just returned from a free software conference in Delhi and CIS-India director introduced me to officials of National Internet Exchange of India NIXI.
NIXI had promised to look into my requirement of more funding which comet in it’s limited capacity was of course not able to give.
However comet would take any such funding for GNUKhata and reroute it to the project.
Myself and Chandita just finished some necessary formalities that morning and we both went to the lab and broke the news to the team.
“NIXI’s funding has arrived and we now have decided to increase the salaries of all the team members and also get new people “, Chandita said and I added “this is the time to hit hard, this is the time to grab final success”.
And success it was. We soon released a pretty usable version of GNUKhata which comet used for quite some time, until we realised that much more was needed.
Meanwhile the project got some popularity and more people started to look at it seriously as more versions got released.
At the same time our lead developer Radhika had to leave for US for her ph.d and some other issues crept in and some programmers got other jobs.
So the project had to move out of Comet, NIXI funding being exhausted.
The project hit a lul for some time with only partial development happening and some users using the then version with some bit of difficulty.

Soon after we moved out of Comet, the project came to another major turning point.
My friend introduced me to Prof. Prabhu Ramchandra from IIT’s FOSSEE team.
Renukaprasad B. the free software activist from Banglore did this for me both as a close friend and as a big supporter of the free software movement.
Prabhu who in turn got impressed with the idea of the project took me to Prof. Kannan and then we got National Mission for Education with ICT (NMEICT) funding through him.
The funding decision happened just in 24 hours (very rare for a government agency to do so ) but the money obviously came 6 months later/
The money was there, IIT’s lab was available, but we were in desperate need for good programmers after Radhika’s Ira was over.
But little did I knew that another storm of programming was to come in form of Ankita Shanbhag, again from the same SNDT university.
In fact I have rarely seen such aggression, passion and talent all put together with great liking for free knowledge all in a single programmer.
In the rainy season of 2010 Ankita came with her group which had equally talented programmers, including Ashwini and Ujwala who were lionesses in their own way when it came to programming.
The software was now in it’s full pace given that funding helped us pay the programmers and also due to the fact that IIT lab could take these interns to work on GNUKhata.
We always had the backing, advice and good wishes of Nagarjuna who was the only person who motivated me further by making me understand the seriousness of what I was up to.

We had by now taken the firm yet bold decision to scrap the entire old system barring Radhika’s stored procedures. After the team was settled we decided that the logic of the software must be separated from the front end so that different types of User Interfaces can be made without rewriting the entire logic for evry platform.
For the technically aware people, it was xmlrpc that we chose to go with and it was the way we stayed with till late 2014.
The project moved on and now was gaining enough popularity.
IIT however was not going to be the ultimate destination for the dream project which I founded with a great vision.
Vision of IIT or Prof. Kannan for that matter soon looked overwhelmingly narrow and GNUKhata was to hot to be handled by him, given my firm decision to keep it platform neutral and add features which makes it professional quality accounting software.
NMEICT was only for education, thus their funding would not take gnukahta beyond a good educational tool. That was never my only vision for this huge project. So finally we had to part ways because IIT wished that GNUKhata must change in such a way that it is used on the completely failed aakash tablet.
In the midst of all these happenings some thing which changed GNUKhata’s dimension, features and future for ever was the arrival of a great coach for an already capable taem.
One of the writers in a popular Linux magazine, introduced me to Mr. Arun Kelkar, a senior CA in practice for more than 35 years.
The person who introduced me to him was Suhit Kelkar, his son.

With arrival of Mr. Kelkar, the project took a leap which even the team did not expect to take so early.
he was not just firm about his ideas on standard accounting but was critical of big programs which were being used only because there was no alternative.
Till date he has mentored programmers to add several revolutionary features which are not available in the most popular accounting software in India.
My readers can understand Mr. Kelkar’s influence very easily when i say that after his arrival we hardly sat in IIT lab but more in his office to develop this software.

Infact he had adviced a bit on GNUKhata back in 2009 but wasn’t so active because we had then already made some thing in the comet’s lab.
But Since the project’s migration to IIT, he slowly became very prominent and by 2012 he was such an integral part of the project that on his support and domain expertise I took a major decision which is also the biggest historic moment in GNUKhata’s time-line. Digital Freedom Foundation was setup with GNUKhata as it’s flagship product in early 2012.
I wish to let my readers saver the moment by giving a complete background for this historical decision.

between the period of October 2010 and 2011 september, Ankita had grown to become our main programmer and her analytical skills were par excellence.
many times she churned up challenging code huge set of core logic functions etc in a nights time.
I remember one particular day.
It was a day of Dhunteras, a pre divali Indian festival day.
We met at the IIT lab as usual.
It was a pleasant day of late October of 2010.
We had just finished reworking the structure of our voucher creation system and the core logic was on it’s finish line as per Mr. kelkar’s guidance.
But in the late afternoon we hit a roadblock. Even after entire code working without any syntax error, function did not return any data about accounts being used in a transaction.
Since it was a festive day I told the girls (ashwini, ankita, Ujwala and Ruchika ) to leave and let me handle this.
“go get me some juice and a tea” I told Ashwini who laughed as usual on my wierd habit.
meanwhile Ankita got a phone call and went out of the lab.
I tried to guess all possible reasons for the wrong working of the program but could find none.
We then decided to do a dry running of the code followed by which we inserted print statements in it to see what is being processed and how.
“seems i will have to get shouted and beaten at my house today ” ankita said in a desperate frustration.
I asked “why ” she said I am not going till this bluddy issue is solved.
“she had that usual fighter attitude ” which in the past Radhika had exhibited.
Ashwini too joined in and said if she does not go I am staying as well.
Ruchika and Ujwala left by 7.30 partly because seeing Ankita’s agression and support given by Ashwini, there was very little any one including yours truly could do.
By 10, she exclaimed “I did it ! I did it!” I was revealed more so because she will finally leave the campus for her home.
It turned out that after reworking a couple of queries she managed to discover that the chaining of both those queries was improper and there was circular dependency on the output mutually generated by them,.
She had no time to explain and I asked None.
She went home and yes got her bit of scolding.
Yet I got a message around 3.30 “sir it’s all done don’t worry we will put up the module by 11 in morning “.
I was shocked beyond words and felt proud to have such a programmer.
this continued for many such days and nights when she actually worked entire night and still was on time in the lab.
The rewriting of entire code for big modules like voucher, it’s documentation and the way she discussed and debated with me and Mr. Kelkar is still an example for all the team working now. After late 2011
The rift between GNUKhata’s vision and mission and Kannan’s view of the project from NMEICT’s perspective meant that we were soon to part ways as I said before.
Here an major era of GNUKhata ended and a great era started which is still continuing.
Although the super storm of Ankita halted soon after she got placed in Infosys, Ashwini and Ujwala continued to work with us, Sayali and Nutan were also active, and so was Akshai.
We Also had few more talented programmers like Aditi for a short while.
Finally the inevitably obvious happened.
NMEICT (or some specific people in that committee ) decided to stop funding abruptly and we hit a very big setback and the project got choked.
I informed Kelkar and we both came to a conclusion after a long discussion in a very historic private meeting at his then shivaji park office.
Only Sayali was present along with Ujwala, (latter had taken the position of lead developer after Ankita left ).
“starting our own not for profit organization is the only way we can take our vision further and I feel it’s final. What do you think Kelkar?” I asked him and he said “this will be the only way out and a comprehensive long term solution. We will not have to keep adjusting our agenda according to a host organization.” he replied.
That last statement was a hit on the root cause of repeated roadblocks and slowing down of this free accounting software’s development.
Thus after a lot of paper work, making of the manifesto and countless rounds at the charity commissioner’s office, finally Digital Freedom Foundation was born.
It was the independence day for GNUKhata as we now could take our decisions and drive the project the way we wanted.
IIT was never serious about community participation, given the size of the organization.
But as a leftist myself, and the fact that this was a free software project, I wished real-time participation of the community.
DFF gave this freedom too.
However the immediate concern was who will pay the bills?
How we will pay dedicated programmers and who will support logistics?
Here Again Nagarjuna came to the rescue.
We had to hardly wait for getting funding in DFF.
Satish Babu, the then director of ICFOSS was informed and strongly urged by Nagarjun to take GNUKhata seriously and fund it to it’s requirement.
Actually Nagarjuna was also on the board of steering committee of ICFOSS.
There were other few and majority agreed to fund GNUKhata.
Thus we came to a situation which was the most favourable ever as far as the project was concerned.
Firstly we got a million Rs. from ICFOSS and secondly we now had the total freedom to do what we wished for bringing the software to an industry standard.
We already had Ujwala, another great programmer who by now had gained absolute grip of all the source code and had time and time again pointed out the short comings of our code base.
She too was the result of that breed of SNDT programmers who have adored the project with their work.
We had a phase of fun loving yet extremely passionate team doing their best to raise GNUKhata to a higher and higher level of proficiency under the able guidance of Mr. Kelkar.
In fact the project discussions went to hotels, busses, houses and even in toilets where myself, Akshay, Sundeep etc would discuss some intricate logic often while answering the call of nature.
Myself, Sayali, Ujwala and the team had formed a good group of resource people who used to go to various rural and semi-urban colleges to give seminars on various free software topics and technologies.
We had a very strong free software enthusiast by the name of Trupti Kini and she used to be our blogger on various such trips.
I remember the level of dedication and focus on GNUKhata even when we were out for taking such workshops.
I would love to share one instance which will give you all an idea of how much brain shair GNUKhata had grabbed.
We were returning back from one such workshop at SSPM in Kankawali (Konkan ) the Rajjya rani train which we borded from Kankawali station was a night train and we 4 (Myself, Sayali, Ujwala and Nutan ) were discussing about some recent bottlenecks we were having and ujwala said “this is getting too much on us to retrofit all the code again and again”.
I was silent thinking what best we could do.
Nutan suggested we just relax and resume the discussion after dinner.
However
=all through the evening I was thinking and rethinking how best we can use the existing code base.
We did have the dinner and Sayali and Ujwala just said “we must break the glass to re make it again “.
In that night journey we had a spontaneously arranged meeting and we went through all possibilities, With Ujwala often looking through the code on her laptop.
Finally we decided, we will shift the code base to sqlalchemy and do the reworking of the core logic to patch the stored procedures.
This ment we took a gamble but what a gamble it turned out to be!
We returned to the office and started pains takingly hacking the code base to pieces and only retaining the valid and usefull ones.

ICFOSS of Kerala funded us in the mean while and also suggested some very important features.
By that time They became our first client and thus GNUKhata officially had a big organization behind it.

After we reworked the entire code base to scale up for new features and become sustainable for a longer period, we had a programmer’s sprint in the july of 2012 in the Jal Vihar venu of IIT which we had booked.
In the picturesque view of the lake, wonderful climate and the zeal of our team, we managed to implement some major features such as the drill-down functionality in ledger and trial balance reports.
I still remember how we wrote and rewrote the javascript part of front end entire first and second night.
While most of the team went to bed, myself and Ujwala continued to hold fort and kept on inserting break points and print statements in the 200 + lines of code and running code again and again.
We kept on moving ahead in the code fixing minor errors like two warriors clearing mine in the battle field.
That morning we finally had the code done and went to sleep for about 4 hours.
After the sprint was done we released version 1.3 of GNUKhata and ICFOSS was more than happy to further extend the funding and also use the latest version.
We continued to further add new features, such as exporting reports to spreadsheet.
I still recall how Anuradha Bhramankar, my very old friend and a passionate programmer wrote that spreadsheet export program, sitting late night even in her 7th month of pregnency.
These examples will not just inspire our new programmers but also give an account of passion and love which our team had for the this free software.
As with every big project, even our project had many problems, personal issues, professional matters and all.
Due to such few things, Sayali and Ujwala had to quit by late 2013.
After releasing version 1.3 we could manage few big features and the software sustained although had hit a lul as far as rappid development is concerned.
Yours truly was also going through a phase of personal problems and that further compounded the slowness of development.
My Masters in computer science was also approaching the final sem and so had to prepare for the exam.
However such phases come and go and are just a bubble of tensions and pressures, which are necessary for making our developers feel the pressure and constantly remind that there is a long way to go.
After all we are not just developing GNUKhata for sake of relieving millions of accountants from the exploits of proprietary license.
Our another major aim is to make commerce education more cost effective, generate rural self employment through the barefoot accountant project and many such social activists, must
So we as free software activists must always be reminded that we have a great responsibility due to the cause we have taken up.
So this slow phase also slowly but surely went away and new life was blown into the project in early 2014.
After a period of loosing programmers, after stagnant times we had another huge hurricane which took GNUKhata to such heights that it’s name started to be finally taken in the circles of accountants and small/ medium organisations as a professionally potent future for accounting in FOSS.
Back then in the January of 2014, we got a new set of interns to work with DFF.
It’s one thing to have a great programmer leading the way and motivating rest of the team.
But GNUKhata had it’s golden days when we got not one but two such aggressive programming guns who would fire, and fire real hard with pin point accuracy.
Poonam Dhane and Shweta Pawar were these two lionesses who ruled the programming forest of DFF for at least a year.
Not that other programmres were any less.
We had Vaishali, Priyali, Sadhana, Snehal who were equally up to the task with other supporting team mates like Ganesh and Poonam Jagtap.
We once met at DFF’s office in Kelkar’s premices and decided to target late march as the release date for version 2.0.
It was going to be a major release with a totally different type of desktop based application.
During that phase Pooname Dhane become the uncrowned princess of GNUKhata’s team and Shweta, with some experience added to her talent was no less.
There were days of planning where Kelkar would brief in great details how a particular feature must be implemented, how reports should look and how a certain interface be operating.
Here again I will give my readers another exciting example. This would provide an insight into the level, quality and passion of our developers.
“so if a an accountant wishes to see two ledger accounts side-by-side they should be given an interface to do so. See this design and then decide how to do this.”, said an excited Kelkar who had just invented a new idea which was to soon become most unique feature of GNUKhata, not available any where else.
It was around 10:30 in the morning and Myself, Poonam and Snehal were in our office.
Kelkar put in front of us a paper with the design of the report.
We discussed over it and how the front-end will have a checkbox for dual ledger where instead of one there will be 2 drop down lists for selecting the account and then 2 calls to the logic will be made to get two different grids of the report output.
“I will take it up” said a bubbling Poonam and “surely, she must have set aside a task deadline ” I thought to myself immediately.
We decided that she will take up the task because in the recent past she had taken up such challenges and even completed successfully.
I went about writing a few validations for some pending modules with Ganesh by my side to help out and Shweta was working on another report called trial balance.
We all were doing our usual work, having fun, passing joking comments on each other, given our close bonding.
Even Kelkar was not spared in those days in our leg pulling, specially Shweta leading the way in that field too.
However I observed that day that Poonam was unusually quite and not involving in any formal discussions, not participating in any fun.
By 4 in the evening tea was called and we went to Kelkar to show how the new voucher interface was well validated and shweta came with the well aligned trial balance report.
However when shweta was about to put the laptop down on Kelkar’s table, Poonam interrupted with a shocking surprise which left me and kelkar stunned.
“sir, here is the dual ledger, it’s complete. Just look at it and i will give finishing touches”, said the little IT doll with a lovely confident smile on her face.
Kelkar kept quite for about 30 seconds, can’t believing his eyes and ears. Such work was just impossible in a days time.
But she had made it possible and what a success it was.
We have launched many versions of GNUKhata since then, but this dual ledger still adorns the software as one of it’s greatest unique features ever developed.
Such has been the great history of GNUKhata which continues into early 2015 when we again had a team change.
By late 2014 We had one of the best things happening to GNUKhata which I still feel is a reason why we have reached where we have today.
A great power think machine and a very precise, stubborn and talented programmer joined us.
Ishan Masdekar who is now the project manager was an addition to the army which by then had reached to a level where we had started to learn appreciation from huge community and knocking on the borders of proprietary sector.
Ishan started where poonam left and what a start he made.
Poonam, Sadhana, Shweta and the rest of the batch left one-by one due to professional ambitions to go in even bigger companies, some personal matters etc.
It was then left to myself and Ishan to stear the ship to sustain the speed which Poonam and team had generated.
Ishan is the one programmer who has performed under maximum pressure with hardly any professional human resource at his disposal.
I think he deserves a salute for the endless nights he spent at my rooms hacking at the code and making the software more and more professional quality.
It was just the two of us for the major part, doing all the work.
One late evening, myself and Ishan were discussing on the frustration we had with the voucher interface of our then deskapp.
The said interface was working smoothly, had proved to be efficient and no errors.
But we could only had 12 accounts for Debit and Credit.
So in a rare situation where we needed to have more than 12 Drs or Crs, GNUKhata hit a roadblock.

We decided that we should have a single entry line at the bottom of the table view.
So when one entry is made the table will have one row added.
The entry line will clear for the next row.
We called up kelkar and Ishan with his usual habbit of byting debait style convinced Kelkar that this would be the best way.
Eventual result was that even Kelkar understood the advantage and found it to be a fundamentally new approach.
We took more than couple of weeks to implement it.
Meanwhile Ishan had an attack of chickenpox and he could not be a part of one sprint which myself and Ravi took care off.
Ravindra Lakal was another great addition in the team during the early spring of 2015.
We had vishaka and Aparna with Namita, Payal Kanchan etc as new part of our team.
Eventually we implemented all that.
As they say, hardships makes you your best, Ishan became the best because he went through this phase.
We did implemented new interface and a brand new look for voucher system.
But as if One champion was not enough, DFF had another remarkable entry from another veteran who now has become the lead developer for the project. Ishan and Navin even today are the most sung hero’s in the project’s history.
Navin Karkera arrived in late January and Ravindra initially mentored him into GNUKhata, explaining him the rpc based logic and java based front-end.
Navin has proven to be our most powerful storm, leading to waves after waves of successful feature implementation.
These two army generals have fought huge wars, won almost all and surely made GNUKhata (in it’s current form ) a professional quality marketable software.
I still remember our occasional prowls in IIT campus in the cool pleasant nights where we used to program various features, punctuated by brilliance of Navin’s programming skills, his anticipation of errors and Ishan’s timely analysis.

Current Development and Future Goals

Dear readers.I think we have seen enough history and I hope I have taken you through sufficient ups and downs of GNUKhata and the fun or tensions we went through.
So I am now going to fast forward you to the current development.
I have for example skipped the great sprint at HBCSE (Nagarjuna’s lab.
We had actually released version 2.3 after that sprint.
How we sneaked out to IIT campus on the night before release for a party with our friend Mr. Mirgal and how the champagne cork which we opened for celebrating our success, almost hit Navin in the eye. How MIT interns including Payal, Kanchan and Ashwini or Namita did their modest bit to help us fix bugs or validate.
Mean while we also had a dedicated Tester in Nishigandha Bichkar who profoundly helped us iron out all bugs and make the softwaer absolutely smooth and it’s programmers feerless to demonstrate without any hesitation.
Before we get on to the current release, I must mention one major decision we took early this year.
We had an old deskapp of GNUKhata version 2.3 and we had developed a webapp before that which could run in a web browser.
But we wanted a uniform interface which could be used as a stand-alone deskapp as well as webapp at an enterprise level.
So we started to work on it which is now the way current GNUKhata works and will do so in the coming future.
Another major decision we took (following a major funding from ICFOSS) that the old outdated system of xmlrpc aught to be replaced with some thing more fast, scalable and robust. I am providing this insight for those who are technically sound.
So we chose REST API and json.
The CRUD system was very streamlined. For a common man this means that when we write some program, there are just 4 things one can do with some data. You can create, Read, Update or Delete data.
This technique helps programmers to think in a uniform way and precisely write the code in a more efficient and accurate manner.
We had as usual our spring sprint, this time in the picturesque location of Malavli, surrounded with mountains in the neighbourhood of the well known Lonavala.
It had also marked our lead developer’s one year of successful work with his birthday being on the first day of that sprint.
We had a wonderful party in the pretty cool place with the mild wind of spring time bringing it’s lovely pleasant chill on the Terra’s.
We started to code the next day with the first set of functions posing challenges in front of us.
but we soon got over it and reworked the way organization is created.
Our challenge was how the security token will be sent to the browser, how it will send back the same during every request. to the core logic server.
As usual I had already done my research and myself, Navin, Ishan and Abhijith worked out several aspects and we wrote the code including major rework of all queries. navin with his pin point accuracy, Ishan with his analysis, Abhijth on the GUI events every one were doing all that should be done for a major revamp with a great software release.

Infact every one in the team had no particular speciality work assigned. Every one had done work on every aspect.
Navin and Ishan would often get into extensive discussions on the programming table, seldum debaiting, where I had to intervene. We were actually remaking GNUKhata to it’s core in the littoral sence. Complexity of the voucher system was that we were using the newly introduced json field in Postgresql database. We were also using a new framework called pyramid. So debaits between all of us was obvious. We actually discussed more and that led to long rallies of discussions, strategy planning and then eventual programming.
But that’s the very strength of our team, or any team for that matter who has a vision to make some thing great and unique, backed by passion and zeel to execute.

One singular aspect of that sprint was the fact that we did not release any new version following our adventures at Malavli.
Our first unified webapp/ deskapp version came in early June this year (2016) which many of you are currently using.
With the totally revamped webapp came our new GNUKhata Lab, thanks to huge funding of Kerala Government through ICFOSS.
This version is not just the first unified web based application with fastest ever performance, but we introduced fundamentally new features.
One such feature is the tabular listing of groups with the sum of all accounts and the total of their balances when you create a new head.
We have also made our ledger provide a monthly report which could be drilled down for further details.
The current balance sheet and P&L report also has drill-down feature.
Here readers would be wondering how these many new features were possible, provided the team was actually remaking the entire system.
It is one thing to add new features to an existing code base, but a huge task when you are revamping old functionality plus adding new features.
I can’t go ahead and explain you how we could achieve this without taking the name of one slim yet tall programming missile who was so fast in learning and executing, that I feel she is DFF’s discovery of the year.
Vanita, whom myself and Abhijith lovingly called duches (due to her accent of saying some english words ) did such wonders in the short span of 3 months that her camio led us to a great release.
Again Navin as the lead developer did extensive tireless work at his desktop at our new lab.
he was strongly complimented by Ishan, who too worked on the challenging front end with Abhijith and Vanita adding their bits at crutial junctures.
I used to usually look at the core logic most of the time with Vanita in the last 2 months before version 3 was released.
But our two tenacious stubborn seniors were no less to the task when it came to extreme complexity and often unpredictable behaviour of the new core logic.
The current release you are using and just released 3.5 is the fruit of all these hard efforts put by our brave team who is well advised by an equally young at heart Mr. Kelkar. Before summing up with the most recent update, I wish to give my readers one last example of how it went about for what we all are using today.
I must mention the 30 sleepless hours, myself, Ishan and Navin spent when we discovered that connections to the database were getting randomly closed, specifically when the bank reconciliation function was invoked.
Come on guys we can hack this and fight it out, I kept saying to both of them.
But even the veteran senior duo knew that I too was intensely worried over the suspense.
As it often happens in games like football or Hockey, some one has to tab the ball in the D and another gives the finishing tap for a goal, same thing happened with us. I told Navin to just print the last piece of data being correctly processed and then the error printed following it.
Navin suddenly discovered that since error comes after a slight delay it means somewhere connections are getting blocked.
he went on to see what it could be and we unanimously discovered that it’s the connection pool that runs out of active free connections after a lot of successive queries.
Navin finished it with an excelent discovery.
The moment we closed connections towards th end of every function, the problem disappeared.
We again did extensive testing. Still the error did not come.
Ishan has gone to his home for some refreshment when we broke this news to him.
He as a responsible project manager did not take it without a ray of suspicion and did one final testing spree before he excepted Navin’s merge request, meaning including Navin’s code in the main project.
We at last were out of it and the cloud of uncertainty was gone.

Version 3.5, What’s New?

By now our users have used GNUKhata version 3 pretty well.
The major reason for this never before popularity is that we made a GUI based installer.
While Navin, myself and Ishan had made a OS independent installer using a revolutionary technology called docker, Abhijith (who must have got at least few birthday wishes while I finish this blog on 21St November ) programmed an equally good and easy to use GUI for the work we already did.

Last week we had a sprint and in that programming marathon we reached to the 3.5 release.
We have introduced a few great features.
Selection of themes and backup/ restore are 2 such interesting features.
We also have direct search in tabulated data such as reports.
But most important and biggest highlight of this release is the much much awaited inventory module.yes it is here and although in it’s basic form. we do have very important and most widely needed features like product lists with or without categories, delivery chalan with or without godown details, invoices, cash memos and transfer note (if godown management is used ).
We have a stock report as well.
We wish to relaes an advanced inventory system with more features like purchase order, discrepancy note, godown wise stock report, organisation data transfer (used for sending data for auditing ) and an interface for tablets.
I am convinced beyond doubts that we will achieve this because of the growing support that motivates us.
Besides, we have another round of funding coming from Kerala.
However that funding may not be sufficient.
To add all the mentioned features, we need more programmers.
Off late we had 2 promising talented debutants joining the team.
Sachin Patil who has now grown to be an excellent hand at web based application with his firm grasp on the concepts needed to make professional designs and high quality user interraction logic is one of them.
Prajakta, an echo of that legacy which many like Radhika, Ankita and Poonam have generated is the other one. She has recently programmed some aspects of the core logic, including the now available backup and recovery function.
While Sachin wrote great UI (one can see his graph at our project page ), Prajakta is growing fast as a core developer, with her some times silly mistakes (which she does not repeat ) and some times really excellent programming of some modules.
She got her share of luck by getting to work on one of the most crucial excellent functionality of GNUKhata.
I wish them all the best for future work on GNUKhata with us.

I am signing off now with just one last wish.
I hope that the love you have given to us, the support you all provided and critical analysis you did for helping us improve, will continue.
After all in free software, the word free means freedom.
So let’s make our own accounting software great.
And don’t forget to visit us at and look for GNUKhata in our projects. You can ofcourse visit for downloads, live demo and more info.

MIT Aurangabad is a great example for other institutes

Hello readers.
I am back with a new blog post, new experience and a new hope.
This week I am going to share with you my recent experiences on a tour to Marathwada Institute of Technology (MIT) Aurangabad.
Myself, Abhijith and our GNUKhata project manager Ishan went there for interviewing interns for GNUKhata.
We had a few interns working with us from the said Institute for their B.Tech project last year.
To make the long story short, we interviewed and screened 64 students, out of which 9 were selected and 3 others were kept on standby.
The interview process went on for 2 days.
On the first day we did usual interview, question and answer, basic knowledge and stuff.
We were stunned to know that in MIT there is a unique policy of final year project in 7th sem and then in-plant industrial training in the 8th.
In all colleges or universities in Maharashtra to my knowledge both these are fused in a single “final year project “.
I think this is also the case in almost all universities in India.
The result is that these students were far better than we usually get from other colleges including those in Mumbai, Pune and other big cities.
In fact the students we selected are light years ahead in practical knowledge and logical thinking compared to all the colleges we have seen. The fact was further proved on the second day, when students came with their assignments given the limited time.
We gave some very tricky assignments involving advance topics like self referencing foreign key and many to many relations. Ishan and Abhijith had given assignments on css and html with javascript, jQuery included.
To say that we were surprised will be an understatement. In fact we were dumbstruck with delight to see how much knowledge these students had.
For example one girl particularly attracted my attention (obviously selected ).
Rohini, a fina year student described a Python class perfectly with all the Python’s peculiarly unique features. This, she did given the fact that she was seeing Python language for the first time.
She easily understood advance aspects of Python and was very confident even when we confused her.
There were other students like a young Ratnadeep and Tallah who were very precise and confident about what they knew.
Another student Madhusudan was an expert in web designing with bootstrap and even asked us some advance questions on high-end technologies which he had used.
And those who were not selected did not loos out because they were any less. It was just that many were experts in cloud computing or server side admin related work. This This itself goes to show the quality.
However this is not happening automatically and giving students all the credit alone will be unjust to the overall management of the institute.
Dr. Munish Sharma, the director of MIT is the main person behind this culture, backed by faculties in the college.
The said director is not just an expert in education and pedagogy but is a pinier in policies like in-plant training which I referred above.

I know Dr. Munish since couple of years and knew that he is implementing some major reforms.
This time around I came to know that almost all the labs are only using GNU/Linux and students are not just using it but are innovating.
For those who understand technology, many talked about their work on node.js, mongoDB and openstack.
I guess students in Mumbai or Pune based colleges hardly talk about this, or even know some practical idea about what these technologies do.
In a meeting with the director and one of the Prof. Sonavane, we discussed about how MIT can even shift their administration to Free Software.
We discussed particularly about GNUKhata in detail and how we can actually get the college to use it after we develop a plugin for educational institutes.
Student registration and fee management with automatic updating of accounts and several related reports would be in such a plugin.
On this the Director promised that he would start running GNUKhata on trial basis for this year and then use it eventually full-time after changes (if any) are needed. He also looked very keen on using our software for societies.
I discussed with him about our current movement to pressurise government in making FOSS compulsory in all educational institutes.
He voiced his full support, adding that his actions will speak more than words for this campaign.
Truly this institute proves to be a vision in itself.
With students doing very good final year projects like farming data management, Network devices for backup, Android apps for emergency alerts and much more.
Terms like MVC or cloud computing were not just theories for these students. Raspberry pie was a toy in many hands and students were doing some very interesting stuff with these pocket computers.
Another major surprise was that most of them had done RedHat certification.
Readers must look at this point keenly, given that these certified students, were a lot in number.
Such certification or FOSS related projects was a usual thing for them and they talked about it with no great astonishment.
As it always happened many of them were not totally aware of free as in freedom, before I gave them my famous slogan of “jai jawan, jai kisan, jai mukta gyan”.
I have carried this slogan and always drive home the point that knowledge must be free, we don’t own it.
Free software is a best example of this and wikipedia, and many other sites give free knowledge.

Many even asked me if they can really make their full-time career in FOSS as they were doubtful about the ways of earning money from it.

This is usual question from students, thanks to the misguidance they have got for years about what free software actually is.
But look at it from another view. The very fact that students ask about careers in FOSS means they are deeply interested to work with it and sharpen their knowledge by collaborative work.
This is one very strong point we observed in the recent MIT tour.
I feel if other colleges take a leaf out of MIT’s book then we can start inculcating this same culture and make our students more capable of making a great career.
I know MIT is an autonomous institute, so making such changes is relatively easy there.
But within our limits imposed by dirty educational practices with the mafia of several big universities, we can at least make a small start.
We can at least start encouraging final year students to do good projects and be a part of this great learning and contributing experience in FOSS.
We can at least keep a lab or two dedicated for FOSS and even have some activities for, by and off of the students.
I know a few colleges in Mumbai are making such start.
My organisation Digital Freedom Foundation is working closely with few such promising colleges.
But now we must have a stronger voice to ask for Industry quality updated education, which is cheep and huge.
Free Software is the comprehensive answer to this which MIT found.
Who would like to be next?

Dear readers, I am back after a relatively long gap after my previous blog post.
I have finally decided to set my series on first and third Sunday of every month.
There would be some exceptions if some thing extra ordinary happens or if arena is too dull for any thing to blog about.
So at times you may find me blogging in a gap of 7 days or some times rarely I might just skip one sunday for lak of anything special.
That been said, I do have some thing to talk about and a very important aspect of Free Software too.
Well I think it’s time to discuss some thing which I have long been thinking about and as I have a fresh set of observations from my last week’s workshop at Babasaheb Ambedkar Technical University (BATU ), I thought about this issue.

Except public schools in Kerala state of India, I don’t see any other place in the said nation where free software is taught from childhood.
There could be isolated examples of such schools, but to the best of my knowledge, the first time students ever come face to face with free software (if at all they do ) is in their colleges.
As I keep mentioning in my blogs and all the interviews, we are actually using free software daily but don’t know we are doing it.
VLC, Firefox, Android etc are examples which have been given time and time again.
But we as students come to know about free software or as they call it “open source ” in our college labs.
May be as engineer students most of us encounter Ubuntu or Red Hat brands of GNU\Linux in our college level programming days.
Some even use it for non-technical stuff and many have their machines dual booted around that time.
I recently visited BATU in Lonere (Konkan ) and the attitude towards free software in that university is very interesting.
I am going to share my experience with the readers and also put in some observations along the line.
There are some good things which colleges or universities like BATU are doing. Although they are moving towards the use of Free and Open Source Software (FOSS) their reasoning needs some addition and some partial correction.

The Workshop

This was my 4th visit to the said university in this year.
needless to say that I am dedicating my time to them because it is more than obvious that this university is setting a good (if not a perfect ) example of how one can migrate to free software.
It has now become their policy to not just move the labs to FOSS but also the non-teaching staff is to start using it.
Infact some departments have already started to use it.
So I have now shared with you a good news and a hope for future pathway for many universities and colleges to follow.
In two days we covered more than the basics.
although many of the participating staff came for certificates, a lot many were attending because their big boss has decided to switch the offices to free software.
So they have to learn it any how.
And then there was a small section of staff who was dedicated and very much interested to know the advantages of FOSS and ready to shift out of will.
I always make it a point to keep the first 2 or 3 sessions not just open for discussions but also total hands-on.
I always urge people to come up with their complaints on “linux ” being not user friendly, lacking good software, not working on networks and several other issues.
Of course aware readers will know these are all misconceptions spread through obvious means for more obvious reasons.
During the hands-on session we totally avoid use of commands on the $ prompt.
People who are taking workshops on this free OS must realise this very subtler point.
The word “Linux” is been for long associated with the words “command line, difficult and no UI “.
We must emphasize that this is not true and do so strongly.
So the non-teaching staff including clerical department got to try out Libre Office, Tomboy notes and several other software.
Most of our free software friends forget this very important step and like the hackers as we all are, tend to start with some advance stuff.
This is the very mistake we make at the start and get people to think “well there is a UI for sure but it is too advanced “.
So start as if there is nothing advanced here.
Most of my workshops end with 9 out of 10 people saying that they are no more afraid of Linux (as they call it ) and are rather more inclined to use it instead of Windows or MAC OS.
The other thing we did as usual was to have the participants do similar tasks and get expected results.
For example, I randomly call any one participant and ask to open any word or excel file if one is present on their pen drive.
The natural reaction participants give is that they don’t know how to do it on Linux.
I tell them to do same thing as they do on other OS.
They naturally come and attach the pen drive and then double click on their document.
They get surprised that it actually opens in the word processor.
Sometimes the fonts don’t show up correctly, but installing Microsoft true type fonts solves the problem entirely.
Such and many other tricks are used in the workshops which were used in this one too.
On the lunch we met the VC of the university, he seemed to be very keen and serious about free software (but Ubuntu in particular ).
However his interest was only on cost saving. He and the entire management had their major focus on getting things for free as in free of cost.
I spoke with him for a while about how universities, government agencies and proprietary companies are running a racket like a mafia and only teaching students some brands.
We are not teaching concepts like word processor, but teaching Microsoft word. We don’t teach art of making presentations but Power Point.
When alternatives are available then why don’t we use concepts and let people be free to choose the brands? This was the question on which we had a long discussion.
My general observation with such universities or colleges is that they pay little attention to the free as in freedom aspect which is particularly important for engineering colleges.
For example if we are to study OS architecture, shouldn’t the students be shown some source code of how a OS is made?
GNU with the Linux kernel can be put to best use here, as the source code is free to modify and study.
For those non-technical readers, I will give a simple analogy.
If you are going to a Dr. you expect he knows human anatomy, so that he can treat you well.
Or if you go to a car mechanic, you expect him or her to know about the parts.
Well, obviously they learn about the human body or car body respectively in their courses because it is opened up to them to learn.
Shouldn’t this law also be applied to computer science?
But alas now a days colleges are going down and down in terms of teaching standards and infrastructure.
Faculties are nothing short of being mediocre. Young graduates become faculties only if they don’t get any job, so this profession is not by choice for majority of them.
And those who do start teaching have least understanding of technology and are not aware of Industry and real programming at all.
This aspect too was discussed in the VC meeting at lunch.
It had it’s effect which was evident in the closing talk by the VC himself.

The workshop moved on for that day and the day after.
After practically trying out office and other basic software of basic use the participants learned email management using mail client. We use Thunderbird as an example here. Many of the clerical staff were not even aware that such a tool exist and were very happy to use it.
Fortunately there were some who were really dedicated.
Clerical staff was too happy that they got to type in Marathi.
Others were very keen to learn installation and asked many interesting questions such as “why virus does not attack Linux “.
Mechanical field is one part where free software has not made advances.
Workshop concluded with the usual stuff including thanks giving and announcement of a total shift to GNULinux.

Observations and conclusions

let me start with a strong observation about free software users in India.
We Indians are very gratifying and lazy when it comes to FOSS.
We use several software and forget about it.
Firefox or VLC or Audacity are examples.
Blender is used for very good deal of animations these days.
But obviously there are some sectors of concern.
We see that some software lack some feature or there are only primitive program for a certain field.
Most of the Indians will instantly move away because agreeably they have important work to do in their daily professional life.
This is not an issue because it is too obvious that we can’t expect them to tune down their work or make compromise.
But at the same time, we don’t even give a few minutes to write an email to the programmers or even complain on their web site about an important feature not available. We don’t even brag about how important that feature was and how it is expected to be, with an overview of some work process that we know..
Many of us even have enough resources and channels to make that missing feature or features as an internship project, where we have to do nothing but just explain to the students and mentor them to develop those features while you continue using the proprietary alternative.
We don’t even put our little bit possible in a free software project which is actually a benefit to every one.
That’s why it is no wonder that except Anjuta (a c language tool ) GNUKhata a free and professional accounting software (developed by yours truly with a team at DFF ) and a little tit-bits, no other big contribution has happened.
We have 99% free software work happening in other countries, while India and it’s neighbours hardly contribute.
Another strong observation I have made in the last couple of years is that mentoring of students is happening in a very unethical and fundamentally dirty way.
I know of many colleges where internal guides themselves tell students to “buy” projects from outside for final year.
To those faculties I wish to strongly say that you are not just cheating in your profession but also destroying the early learning phases of the engineering students.
your selfish and lazy attitude is the reason why none of the Indian universities are even close enough to the worst universities in other countries.
However many of my close friends have proved to be an exception to this and are an example of perfect teachers.
But they are a minority and are even hated by other fellow teachers for their way of working.
However some times hopes get raised as was in the case of closing talk by the VC of BATU.
although he spoke mostly for engineering field, he for once talked about the need to study and modify programs to be a better engineer.
referring to the honest feedback by some mechanical faculty, the VC said “if there are missing programs or features, let’s get our final year students to make those features. Afterall the source is open and we are free to modify. Let’s make our own software too “.
I hope that if at all this is put to real execution, the work done by students will get due value and will be shared back as Free and open source.
This will not just give recognition to those students but also chance for some enterprising idea to rise.
Remember, by the word free we are referring to freedom not price.
And also hoping that more students are exposed to this free aspect by colleges.
Time has come that we realize the importance of free software in general and for education in particular.

Hello readers!
Last time I spoke about the need for free software being mandatory in education. We also have a PIL regarding the same on change.org so not repeating it here. However, I have been ever since thinking about the entire free software aspect in a broader sense.

We already know that lot of universities around the world are teaching and using free software (or what is called as free and open source software or FOSS for short ). Some do this exclusively while others do so almost exclusively. There are a lot of NGOs and profit making companies who base all or most of their business on FOSS. No matter how much less or more, today almost every one is using free software, from browsers (Firefox ) till media players (VLC ) or on phones (Android). Yet we don’t see it giving the bang impact it actually should and we don’t see it’s penetration to the extent it must (at least in India ).

I have thought over this seriously and given my modest work and experience of 10 + years in the free software moment and my professional work as an international free software consultant (even on commercial basis ), I have found some answers to this issue.
Let’s start with some fundamental questions.

Firstly, do we see an issue here?
There are a lot of NGO’s or social institutes commercial or non-commercial who work on various social problems. Some do it as a business by providing solutions commercially. Others do it purely on social basis as a non-profit organization. Such problems include, upliftment and recognition of Aadivasi tribes, water scarcity and management, women empowerment, rural education improvement (in a very narrow way ), land reforms, slum inhabitant’s issues and the list will go on. Such institutes or people get lot of funds and also lot of recognition by means of media publicity, huge grants, awards and so on. More importantly, such initiatives get instant and huge public recognition.

Beyond doubts, these issues are fundamental and as a liberal democratic socialist, I find them extremely important. Now talk about digital freedom, and our fundamental rights together, and people start turning away. Most of them do so because firstly, they don’t find these two issues related, “technology, well that is some thing secondary and some higher thing to be worried about later, how can it ever be linked with fundamental rights?” is one most common question cum comment and the matter ends there.Secondly, do we see a difference between using a product and its effects and side effects?

Digital technology is mostly treated as a commercially developed commodity, like table, chair, glass, spoon, mini skirt, sport shoes or for that matter a club membership.Thirdly, do we even see how and where we are getting exploited by non-free technologies?

We don’t realize that it is not just some x or y brand where one can choose but about our freedom to be not controlled by any one through any medium.
There is a lack of recognition of the digital rights and it’s importance which is the impact of all the three questions being related. As a result we are not able to see this as a non-technology issue and that it is an issue in the first place. We do so because we don’t know that we have rights and there are lot of companies who are taking our rights away. They do so very easily because they can take full advantage of our digital ignorance, that we don’t know that rights exist. But my readers will surely see the problem and how big it is by the end of this blog.
I will address the three questions I mentioned above and attempt to show you all how wrong we think. But before I endeavor to do so, let me first bring to my reader’s notice one fact of today’s world and our life. Right from the way we withdraw money (ATM ) till the way we communicate using mobiles, right from sonography till computer aided surgeries, right from birth and death registrations till farming, right from weather reports till photography or film making, every moment of our life is digital. We use digital technologies for every thing. Even rural areas are not untouched with this digital age. So we now have four basic necessities. They are Food, clothing, shelter and Digital Technology.
Putting aside the free software aspect for a moment, let me share one very important view personally. Many a times lots of people ask me, “there is problem of load shedding, many places water management is not proper, farmers are dying. So why we need all this technology in the first place?” I always respond very monotonously to this comment because that’s the only reality. So my response is, “I am not an expert on water management, I don’t have great solution for literacy, I don’t know what I should do for huge electricity generation, because these are not my domains. But what I can give is a cheaply available, local language based, solution driven medium in the hands of huge population which can help solve, or at least bring these issues to a notably big platform”. As we have already discussed about how fundamental digital technology has become, my statement can be seen by my readers in real practical context.

Now coming to the issues leading to lack of recognition of our digital rights, subsiquently leading to little or no recognition for those individuals or institutes working on digital freedom and rights. Firstly, is technology secondary in our life?
I think I already answered that question through all the examples and facts I have put forth. So if technology is fundamental, should we not have multi individual/ organization driven collaborative technology development. Should we not have the same transparency we expect from medicine manufacturer’s (ingredient’s expected to be printed on bottles ) or from financial reports of companies where we hold shares?
Should we not have access to the source code of the software we use?
If we are not software engineers, never mind, I feel we still should have the rights to hire one and tell her/ him to check if the software is really good enough and secured.
It is like to say “even if I am not an automobile engineer, I still must be able to take my car to a garage and open it’s bonnet to let the engineer see what’s wrong “. And most importantly, should we not be able to participate in developing the software we wish to use.
Let the software alone, projects like Wikipedia have been only successful because people in general collaborated and made it happen. Today people are able to modify the Android OS for our mobile and even write apps any time any where. This is all due to the free software movement started by Richard Stallman in 1984. Now billions of people use it and at least millions develop it or participate in it’s development. So is it not important to give a boost to these practices and see to it that we are aware of how we can use more and more freedom based technologies?
Now I guess my friends, you have realized that free software movement is really fundamental to our lives because technology itself has become so fundamental to us. But there is a second problem. We say philosophies and ideologies are different and technologies are just another commodity, for example we treat software as a product. Well software or program is a product indeed. But what we fail to realize is that just like other products, software programs also have to be made in a way that the consumer is not compromised or exploited. Just like we fight for our rights in or for other consumer issues, software is no exception.
But there is a slight difference here. Unlike other products, software and the technology it runs has come to a level that it is the most integral part of our life and we practically do every thing using it. If we ourselves don’t do it, we get it done from others. For example many senior citizen’s or rural people go to a digitally literate person to get things like banking, mobile topup, or some documentation done.
So although such people don’t drive a car themselves, they do get a driver to do so, (just an analogy). If we are going to use proprietary programs, such as Microsoft Windows, office, Adobe Photoshop, Tally for accounting etc. we are letting our control go in the hands of these companies and surrendering our freedom.

You might still not be able to see a direct impact on you, which is indeed there. But take this example. A computer virus is nothing but a program which is forcefully put in your computer without your permission. It is not a nature born virus or some thing like a bacteria, it is created for obvious commercial reasons. And so even the proprietary anti virus companies get a chance to suck money out of your pockets for none of your fault. The free and open source OS Like GNU/Linux never face such problems because they were designed in a way that such issues can’t come up. In addition, have you ever been able to participate in some technology development where you could say “this x product must have such a feature and I would like to take initiative to do it or get it done by some one “?
And then there is the problem of forced upgradation. Even if you are happy with a certain version of software, the company will force you to upgrade by canceling your services. For example Microsoft forces you to upgrade Windows even if you are satisfied with the version you are using. You not just have to pay money for that, but also spend value in terms of man hours learning the new user interface and understanding the screen interraction.

There are rural schools which were forced to close down because they could not purchase such renewed licenses every year or so. Students have to bare cost of high education because a lot of that money goes in purchasing costly software licenses.
I have worked personally with the state government of Kerala and Tamilnadu. They have managed to keep such costs down by adopting a policy to support free software or what is called as open source. A lot of huge commercial companies have been smart enough to use professional quality commercial grade free software and only payed for the services including customization.
So what we are failing to understand is that these are issues we must seriously know.
That is one major reason free software movement is not gaining it’s recognition and that you and me we all fail to see that we affected by this seriously. If focus shifts to free software, a lot of rural empowerment can be achieved because cheaply available professional technologies can be brought there. Such programs are prefunded, either by commercial companies for their own benefit’s or by crowd funding or other grants.
The developers of such software are not empty stomach. They get payed for such development, because the word free here is meant to imply freedom and not free of cost.
Of course most such software is provided free of any license cost. But that is the choice of the developer or the programming company. So next time at least be aware of these issues and don’t throw them out saying that they are just technical issues. These are not some brand choices (Windows VS Ubuntu Linux or iOS vs Android for phones ).
I know many of you are using FOSS only because they are of great quality. Firefox for example is used by majority for surfing the Internet. Almost every one uses an Android Phone, because we get good apps and engineers are free to put up their apps on the play store. But this high quality, security and freedom has come only because of the collaborative freedom they have to participate in the software development.
Now for the final issue. We have already talked enough about virus and other forced practices. You might have by now seen how we are being exploited even in terms of money. However, I kept some issues to be discussed towards the end of this blog so let me talk about them now. As an end user, firstly I must have total freedom of what to buy and what not to buy. Most of you must have purchased a laptop and one common thing you will find is that they will put a certain version of Windows on it and say that this is what comes with the laptop. You have to obviously pay for the license of that program or OS. Now if I was a Ubuntu Linux user, why should I pay for a Licensed Windows copy when I purchase a laptop? Don’t I have the freedom to use what ever OS or software I wish?

Forget Linux vs windows right now. What if I have a Windows 7 license and am happy with it? Should the laptop vendor force me to buy a new license of Windows just because the company has decided it for me? You will say a strong NO but the fact is that companies are doing it. In several countries like France and Italy, court cases have gone against such trade practices of proprietary companies. In India a free software activist named Ishan Masdekar has filed case against a certain laptop company for the same reason. As far as our law is concerned, the competitions commission act 2002 has clearly stated that such practices are illegal. For some it may not matter, I agree, but for a lot many it does. So this also becomes very fundamental to our rights and living. Many Indian and foreign companies are developing medical technologies based on proprietary software and then use exploitive methods to charge high on the exclusivity of such technologies, because an ill patient needs such things. Thus medical services become very costly. Eye operations need such technology, heart surgeries and several other issues are an example of this. Even agriculture is not spared by such companies. I have come across a certain company in Israel which makes a complete technology set to control your entire farm including irrigation, fertilizing, injection of insecticides into the cultivating water etc. The cost of this set is around Rs. 8 million.
When investigated and researched, it turned out that the hardware was worth only half a million while rest was all costly proprietary software. Think about our Indian farmers, if such technology can be made at very cheep rates using free software, how profitable it could be for an Indian business as well as for the buying farmer? And lastly, our privacy and communication is at stake. Proprietary software has secret code which actually takes our information and sends it to the master of that software for obvious reasons. Microsoft has infact given a declaration in court that they do take information of individual users without their permission. Think about the cases when u came to know that your photos were leaked or some times you find that your data had mysteriously gone away? Now I guess you have the answer. Kindle the e-book reading device infact had to lose a big case. The said company had deleted books from users device without their permission. Now they have promised that they won’t do so again unless the government asks them to do so. So I think now you see the reason for this very post.

I started by asking that do we even recognize such an issue exist? Do we even know that freedom technology exists and we are being exploited by proprietary program developers? Do we even know that we are using freedom software in our mobiles and browsers and every where, just that we don’t recognize it. Now that you have seen how fundamental and serious this issue is. Don’t turn the topic off calling it some technology issue at a high level. Don’t turn away from some one who is raising this issue. Activists like yours truly and several businessmen, scientists, students, and even non-technical common man are raising these issues. But due to the reasons mentioned in this blog, they are not getting the due recognition and support they need to fight. And after all they are fighting for every one of us.

Media in most cases refuses to take up this issue too. The sad ironic part is that most media houses directly use free software in various ways, but only for it’s great quality and lowering of cost. They have Linux servers and their sites run on products such as Django which is free software. So please do your part and recognize the free software moment. You may not contribute any thing at all to any free software product.
But listening to some one talking about these issues and spreading the word is also a big contribution. Calling such activists to some programs, appreciating their work and making it popular is also one huge contribution. Who knows some one from such programs might join this big social movement and contribute in some way and in turn become a big activist?

There are states like Kerala who have proven the free software model to be extremely professional and cost effective at the same time. Countries like Brazil have done this on a large scale. Read my previous blogs and you will get more documentary evidence on this. Hope I have shared enough to at least trigger the thought process in your head. This is not a secondary thing, but a huge social issue and it needs our immediate attention in a large scale.

Dear readers, it has been a long time since I last blogged. Needless to say that work kept me extremely busy. Firstly there was a huge work load on GNUKhata http://gnukhata.in and the release was around. The said free accounting software has off late gained huge popularity and people are using it for book keeping in their organizations. The promotion and further planning is on a high priority. Secondly there has been a flurry of free software workshops all around and that too has kept me busy. But since I am back again on my blog (this time the url has changed ), is enough to denote that there is some thing really serious or important. Well that’s correct and read on to know what it is.

Recently Government of India declared it’s latest draft on National Education Policy (NEP). This hard core capitalist and fascist government has already done so much harm to the nation, yet the series does not seem to stop. The latest education policy has removed all references to the free software or what many call as free and open source software (or FOSS for short ). For those who already know that we started a campaign, here is the link (https://www.change.org/p/petition-for-mandating-use-of-free-and-open-source-software-in-new-education-policy-2016). Note that such a reference had a priority in the past.

The MHRD document of 2010 at least had a directive that FOSS should be prefered over proprietary software where ever possible. Now we all are aware that there are lot of equal or in some cases better free software alternatives to proprietary software. And we also know that Industry to a great extent uses free software right from Internet to desk usage. In this regard it becomes obvious that free software is a must have and be made mandatory in education.

We must be also aware that a lot of money gets waisted purchasing such proprietary software license. But our current government is planning to bring more and more “Bure Din ” specially in education. Costly technologies raise education fees, localized software are unavailable and there are several issues. Yours truly, Milind Oka and several other free software activists, researchers etc have thus filed a petition on change.org. Here is the link again https://www.change.org/p/petition-for-mandating-use-of-free-and-open-source-software-in-new-education-policy-2016 .

Please read the entire document and you will know why it is so necessary and how it affects all of us.