23 November 2008

Dream comes true

It has been a very long wait and the chicken took too much time to hatch. Finally the dream of starting an initiative to help out students seeking exposure in IT. It is three year aspiration and more than four months of thinking, debate and discussion. Finally, it was a happiest moment and one of the fulfilling moments in my life when we launched Open Gyan last night. As of now, we have the web existence and eagerly waiting of physical existence.

Please check out our new website Open Gyan

As of now, Badhri and myself are writing something there. If you are passionate to share your knowledge and if you can write articles in simple English, please do email us.

09 November 2008

GridGain - Yet another short blog on Grid Computing

Sometime back, I wrote a blog on Grid computing. I came across the definition of Grid Computing from Wikipedia and my knowledge on Grid computing is very negligible if not zero. The concept by itself is very interesting. One the reasons why Grid Computing did not find its place with enterprises is due lack of flexibility. I was chatting with my friend Veerabahu on Grid computing. We were talking about JPPF (Java Parallel Processing Framework).

Few days after that my friend sent a message about another Java based Grid Computing framework "Gridgain". I was very much impressed with documentation and tutorials. I am yet to try the software and probably it may take few minutes to complete a simple application that has some task running in a remote machine.

My first impression about GridGain is that it is simple to use.

Though the concept around grid computing was sound, it did not get enough respect due lack of flexibility and the authors of GridGain say that "GridGain" makes Grid computing much easier.

May in a week or so, I will be writing yet another blog on "GridGain" and share my experiences with GridGain.

04 November 2008

Mini Project #3 - Process Tree in Linux

Mini Project #3 - Process Tree in Linux

A process is a program in execution together with a state comprising of open files, environment variables and pending signal. In any operating system, a process is normally created by another process. And the process dies when it calls the system call "exit" explicitly or implicitly. Each process has relationships with other processes in the system. This mini project is to write a simple tool that dumps the process tree - how one process is related to other processes. The output can be text which can be parsed by other tools.

You have come up with the format and information that should be displayed which can be of use to the users of the tool. The information can be like state, total run time, files opened and pending signals. Here the key is the performance and hence implementing this kernel module or system call is recommended. Initially, the focus should be on getting the information not the formatting the data. Later, the output from the kernel module or system call can be read by parsers implemented in Java or other programming languages.

After implementing this mini projects, the team members will get a good understanding on Linux kernel, important data structures and they can continue to learn Linux on their own by just walking through Linux source code. If you are interested, please submit your intent through email.

All the mini-projects hosted here are open and free. Free to learn and free to be modified. This is a attempt to help students community. This mini project and all other mini projects help you understand the respective areas and gives you insight by doing it.

Two best books on Linux Kernel Internals

Linux is one of most popular kernels around and it will continue to be the darling till foreseeable future. Linux is not Unix. Though it has taken the best practices from Unix and it never pulled off in pushing back some of the concepts which were not good. Today, Linux is growing to be one of the best server operating systems, embedded operating systems and also powering super computers. Linux powers watches to super computers and over a period of time, it has become platform independent.

Over a period of time many Linux distributions evolved and many of the distributions are widely deployed. If you find any Linux geeks and find that they will already have a distribution on their own. Interesting the surprise is not so much for people who stop with user space. If Linux user space surprises you and it is good for you to stop there if you have a weak heart. The surprise will be more and excitement will be more when you start see what is inside, leave alone understanding it. When you start smelling the code, you start understanding it.

But for dull guys like me, having a book or two that explains about Linux kernel indeed help a lot. After hovering Internet for Linux kernel books, I found two books. FYI, this happened three years back. The first book that caught my eyes was "Linux Kernel Development" and the second one was "Understanding the Linux Kernel". I preferred to buy Linux Kernel Development simply because it was thin and I thought it would be easy read. I deferred buying the second book. By decision of buying Linux Kernel Development was right. This books teaches the readers about Linux kernel and importantly you do not need to be a kernel developer. If you have fair programming experience and logical reasoning, you will understand almost 95% of the book. The author, Robert Love explanations and commentary was so lucid and one can practically validate the learning by hacking Linux source code. If you are starting to learn Linux, I recommend you to soon come to kernel space and it will be great experience if you start your journey with this great book.

After reading the chapters on Process, scheduling and system calls in Linux kernel development, you will certainly get a burning desire to hack Linux. That is where the second book comes handy. The second book "Understanding the Linux Kernel" is an handbook with numerous pages with lot of details about the implementation and design decisions. You will find a lot of code taken from Linux source code and explained side by side. My recommendation would be read the chapters in the first book and follow it up with the corresponding chapters in the second book. Then first open the source code and validate what authors say. The learning and understanding will be effective if you complete at least one cycle - First book, second book and source code. You understanding will improve when you repeat the cycles number of times.

Be one of the many guys who smells what Linux kernel is, it is lifetime opportunity.

01 November 2008

Understanding the roots of ancient India

India in 20th and 21st century has undergone a lot of modernization. The early part of the last century and later part of 19th century was very crucial period where we lost all the treasures and best practices. We have lost the originality which differentiated our tradition from the rest of the world. The ancient India had great teachers and they imparted education to their disciples. The students were knowledgeable. Due to western influence, the ancient way of education is corrupted and we are so confused. When in India we crave for pizzas and burgers. When we go to foreign countries we want to taste Indian cuisine. We are so confused. This also applies to education, learning arts like music and dance. While in India, we have excellent gurus who can teach us but only when you go abroad, suddenly we get a feeling and want to connect to the roots. There is nothing wrong in it but it is always good know the roots.

I am not against modernization and I am not against change. However when modernization enters in to selfish society, it reaches to hell. On the way to hell, it makes everything as commodity. Once the education was rendered as service and today seeing an interest groups or institution without desire for money is very rare. There is nothing wrong in trying to change this world. Even modernization will bring good things. These days it is very uncommon to see persons rendering social work. Excuse me, if you think visiting old age home is social work, it is not.

According to the current scenario, there should be many number of engineers and many of us sitting in a hide out, imagining our own life and future. We never make conscious decisions to elevate the society and we never try to make knowledge based society. When we create knowledge based society all the current days shortcomings like poverty, terrorism, unemployment and unlawful activities will reduce to zero. So far, we are treating the symptoms rather than the disease. When Edison died, he left this earth making this planet a better place. When Einstein died, he left this planet a better place. There are very few individuals like Edison, Einstein and Gandhi server the mankind. We, like Edison and Gandhi, take freedom in our hands and make this place a better place.

Amidst our personal and professional life, we often forget our social responsibility. May be a Sunday evening to a slum to help first generation students on computers, may be a Friday night chatting with a college students and help him to find his way. These are simple things which won't much of our time. But the wonderful thing is that, these few minutes transforms the life of the person at other end. It is a paradigm shift for him and he is liberated from his complexes. He will stand up with a lot of hope, confidence and dream.

If you have read this far, you might be thinking in similar lines. I am ready to join hands with you and make a knowledge based society. Knowledge is the only thing that grows when you give. Dreaming to build a knowledge based society which is self guiding and self correcting. Once we do that, we will be reclaiming our roots.