Friday, September 4, 2009

Bugzilla Desktop Client - First Phase

This summer I started working on the development of a Desktop Client for Bugzilla. I'd been new to the open source community and GNU/Linux systems, so I worked on a rather slow speed and it took a bit more time to learn new things and steer to the proper direction. I worked under the guidance of Mr. Rakesh Pandit, Red Hat Engineer, who guided me during all the work done till now. Without his guidance, it would've been more difficult. I express my sincere thanks to him. However, because of some personal reasons and the firewalls installed on the college servers, I couldn't continue my work after coming to college and this break was of more than one month. Now I'm again over it and I think this is good time to publish my work (although incomplete).

Current Status
Currently, the application works with Red Hat Bugzilla database only. Although, it can connect to other Bugzilla's by providing the url of "xmlrpc.cgi" file on the server but it is not compatible with certain fields related to a bug (e.g. keywords, whitelist, assigned-to etc.). The basic interface of the client looks like:


The application currently includes following features:
  • Report a new bug: To enter the report of a new bug. The fields required while entering a new bug report include: Summary, Description, Version, Platform, OS etc. User must be logged in to report a new bug.


  • Query: It includes searching for a particular bug by specifying a string and some other options like status, platform, version etc. This option is used to perform advanced search.
  • Quick Search: It performs search based upon the string provided by the user. If the bug-id is known, user can feed it into this box to get information about that bug.
  • Login: This basic option creates a logged in session for the user and grants privileges to enter a new bug or to post comment into the existing bugs.

Future work
1). In the coming days, I would be working to make this Bugzilla Desktop Client general so that it can be used with most (if not all) other Bugzillas.
2). Administrative options are still to be added into the application (like closing a bug, assigning the bug, granting permission to a new account etc.).
3). Interface of the application would probably be changing with time so as to add new features and make it more user friendly.
4). Using bugzilla-cookies to login to a bugzilla instance.

Knowledge/Skills acquired during application development
I used Python programming language for the development of Bugzilla Desktop Client. Earlier, I knew C & C++ languages and some other Computer Sciences subjects only theoretically that had been taught to us as a part of our B.Tech curriculum. Also I had little experience with Linux systems. So, I started with learning Python. "A Byte of Python" by "Swaroop C. H." proved to be a very valuable resource for me. This book is concise & precise and is best for a person who had earlier experience with some programming language. Multi-threading is also an important concept that I learned while working on it. Other tools that I learned and used include:
  • PyGTK: PyGTK (python-gtk) is a set of bindings to the GTK+ which is a library to create graphics applications using Python. I studied the tutorial provided at the official website of PyGTK.
  • Glade: Glade is a User Interface Designer tool to enable quick and easy development of user interfaces for the GTK+ toolkit and GNOME desktop environment. Using this helped me save a lot of time as I didn't need to include the function calls from PyGTK library to create new widgets. Widgets are created only by drag-and-drop action. However, handling the widgets for various events required the widget handlers and PyGTK library functions.
  • python-bugzilla: A python library for bugzilla. This is the package which I used to connect to the bugzilla database. I didn't find any tutorial for this. I studied its source code and man-pages to learn about various Functions and Classes used in it.
Some other things that were helpful in general include GNOME Human Interface Guidelines and PEP coding conventions. It is a nice experience working upon the project till now [but slow :-)]. I hope to gain acceleration and pray to gain more dedication for my work.

Saturday, August 29, 2009

Initials

Finally, here it is. I was thinking to create my blog since a long time and here is the first one after a lot of thinking only :) . I still wander why it took so long, however as someone has said 'Once started, half done', means that the initiative is so important and difficult that it requires half of total effort to perform a task. So, I shouldn't dwell much over it.
Regarding blog's title: I'm very much inspired by the quote by former President of India, Mr. Abdul Kalam, "Dream, dream, dream. Dream transform into thoughts. Thoughts result into action." I dream a lot (not only while sleeping) and believe that repeated dreams train our subconscious mind and we generate regular thoughts about our dreams. These thoughts lead us to perform the necessary actions to achieve our goals, to fulfill our purpose and to be a man of our dreams.
Most of the stuff that I would be talking about here will be technical, a bit spiritual and some other narrating certain nice and adventurous experiences of my life. Life teaches us at every step and this blog will help me keep the record of important lessons that life has in reserve for me. Also, it will be a very nice way to analyze my technical growth starting up as a naive tyro and ending as (god knows :-D).
That's all for this post as it is 3:30 in the morning and I'm feeling sooo much sleepy. My mind's thought process seems getting dimmer and actions stagnant :-P, so I need to recharge my batteries.
Good Night friends.