Lets hope that I am back to continue the regular writeup after a gap of few months. At present, surviving the hot summer in Chennai – new city, new organization, challenging work, new as well as old friends and I am waiting for the most valuable celebration in my life which is a few days away. Overall this year is very special for me!
Last Saturday, I got a chance to talk about Free Software at NIIT TechRhapsody which was held at Bhaskara Auditorium, Birla Planetarium, Hyderabad. Harish, my organization’s CTO and myself was invited to the event as chief guests ;) . In between the regular programmes, our session held. Harish introduced about Open Source software to the audience. He concentrated mainly on the market acceptance of Open Source softwares and technologies. and he also spoke about Azri’s adoption of Open Source technologies for the product development. As we planned, I handled a session about Free Software in the middle of the session. Due to the lack of time, I lost the flow and missed out a few important points I planned to convey the audience. I concluded my talk quickly and then Harish took the session to a finish.
Most NIITians may have heard about Open Source especially due to NIITs long time relation with Sun Microsystems through their conduct of courses related to Java, SCNP etc., where now days Sun is running after Open Source. But I really wanted them to have an understanding about Free Software, which is the base of all happenings. I am not sure about how many people got the matter that I tried to convey.
A few snaps of the session…
Yesterday only I came to know about 2007 TU24 – the asteroid which is passing by very close to earth on 29 January 2008. It is considered to be the largest potentially hazardous asteroid for the next 19 years. The surprising fact about this up coming event is that so far it didn’t get much media coverage which was visible for similar kind of events in recent years. The main reason may be the fact that it was discovered only on October 2007. The dedicated website gives a few facts about this asteroid and discuss about the possible influences of this visit which can affect the earth in different levels, but the chance for any kind of severe impact is zero. The video embedded below is worth watching.
Starting with 2007 TU4, I explored a few links related the comet impacts happened in recent 100 years, among them Tunguska event was amazing.
Hurray… Now I can get in to KDE 4.0.0… What I did was.. I updated the online repositories using urpmi.update and installed the strigi libraries again. Then I try to start KDE 4… amazing…it just worked.
From the beginning itself, I used to check .xsession-errors* files in my home folder.. They used to complain about one strigi library named libstreamanalyzer0.so file.. some unknown symbol lookup error… Now everything seems to be fine :).
Now is the time to get in to the new desktop mania which is at its childhood days. I want to explore it, test it and have to look for some bugs. Also have to think about various ways by which we can improve the user experience. Then have to submit bugs as well as suggestions to the core developers.
Day before yesterday I finished downloading KDE 4.0.0 Mandriva RPMs. After surviving many connection breakage issues on my internet connection, almost 3 partial days of downloading came to an end. Yesterday I installed it and try to start… disappointment… the strigi indexing engine having some problem to start which causes kde4init keep on failing. I tried a number of times, but all resulted same. From various online discussion forums I went to know that its due to some bug in strigi indexing library. I really want to make this first stable release of KDE 4 running so that I can test it properly and be the part of QA in the next stable release :(.
Let me see what can I hope for today.
The term ‘Jabber’ has been there in mind from college days. At many occasions I thought to try it. But that was not happening so far. But 2 days ago, I had a chance to explore it as a part of my job. Here I am sharing my experience with Jabber in brief. Its not a setup guide or tutorial dedicated to Jabber. But if you own a catching mind, you can consider it in that way also. Here we go.
Jabber is an Instant Messaging (IM) system based on open XML protocols known as XMPP (Extensible Messaging and Presence Protocol), which exists from the end of 90s and now extremely popular through Google’s adoption of this protocol for their IM network using which GoogleTalk works. In an organization, the importance of Jabber is obvious since it can be used to implement an IM network locally which can work efficiently with outside world.
Jabber has a lot of server implementations where some are proprietary. The Jabber Foundation’s website has given a list of servers available, both open source and proprietary. For the initial exploration and deployment, I picked one of the earliest, well featured, GPLed Jabber server named jabberd14 (formerly known as jabberd). Now a days almost all IM clients supports XMPP protocol. But there is one surprising shortcoming for one of the popular IM client Pidgin (formerly known as Gaim) with Jabber. I will talk about the issue later since a few things have to be presented before looking in to it.
Setting up the Jabber server at my office workstation went hassle free. Mandriva package repositories serves the RPM package for the version 1.4.4 of jabberd server which I used for installation since installing the latest version of jabberd -18.104.22.168 – failed when I tried to build it from source. Since the latest version released on July 2007 which is obviously a few months after Mandriva 2007 Spring release, a few dependent libraries at my machine seems to be not satisfying minimum requirements put forward by jabberd’s latest release though the real problems were not clear. But one shortcoming for the RPM packages used for installation was that at the time of building, they were not compiled with database support. I went to know about this issue when I tried to use database for storage. Database support for Jabber means we can store contact list and relative information in a compatible database such as MySQL or PostgreSQL rather than storing them in XML files as jabberd does in default. So the easiest method I figured out to add support for database was to place a shared object (.so file), which provides API for database support to jabberd, under the jabberd library path /usr/lib/jabber. So I downloaded the source package version 1.4.3, compiled, installed and copied the missing libjabberdxdbsql.so file which I found from the jabber library resulted after source installation to /usr/lib/jabber which is the standard directory used by the server. Here you may be wondering why I was not using the server installed from source package version 1.4.3. The reason is, I tried it, but it was causing frequent segmentation fault. I surfed web and found that similar issues were happening with certain versions of almost all GNU/Linux distributions.
The main configuration file for jabberd server is jabber.xml which can be found under /etc/jabber. I went though the file patiently ( for which I am famous ;) ) since that was the most important place where we can fine tune the server according to our requirements. The configuration file seemed to be well explained at each and every portion with proper comments. For a basic server implementation, I found only a few changes to be made in the default configuration. There are a lot of guides available on the Internet which can guide anyone in adjusting the settings in the configuration file. READMEs which I found under /usr/share/doc/jabber-1.4.4 were quite helpful. Then I started server using the command
jabberd -H ipaddress -D
where ipaddress is the IP address of the server machine.
Next step was to test the server using an IM client which has a good support for XMMP protocol. I always use Kopete instant messenger whenever I have to use an IM service. It has excellent support for Jabber. I created a new account by filling necessary details. Instantly, I logged in to my own IM server. Wow… No errors or any kind of issues. I created a few accounts from other machines near by and the messaging system is working fine (of course limited by the resources available with my office workstation). I checked the file sending option. Its extremely fast since its happening inside the Intranet. This is one of the finest advantage we are going to get along with messaging once we set up it permanently for our organization.
Mandriva package repositories also have RPMs for three major transports for Jabber, which are AIM, Yahoo! and MSN. Transport means, we can use a third party IM protocol through our Jabber server. Interesting.. Isn’t it? For example, once we created an account in our Jabber server, if our server supports AIM transport, we can log in to our AIM network using our regular AIM id. Similar is the case with Yahoo! and MSN. I installed those packages so that I can try that feature with my server implementation. After installing, each of those transport created there own XML configuration files under /etc/jabber. Each transports has to be configured separately. Instructions are given in README files found in relevant directories under /usr/share/doc. Each transport has to be run as a separate process (one for each protocol) where they will talk with the server process. I configured the AIM transport by following the instructions given in README files. Then I opened a new console and ran the following command
jabberd -H ipaddress -c /etc/jabber/jabber-aim.xml -D
where ipaddress is the IP address of the server machine.
I checked the whether I can access AIM network, which we use at office, through jabber server. The AIM transport process was already running. So I used the ‘services…’ option from my Jabber account menu in Kopete. It provided a list of services supported by the server (AIM, MSN, Yahoo!, Conference, Jabber User Directory etc). Since I configured only the AIM transport and the AIM transport process was running on server, I was able to register to the AIM service listed by Jabber server using my regular AIM id and password. I logged in to the AIM network. The only slight disappointment I felt was that I need to add each and every existing contacts to my AIM network once again. I expected that the jabber server will be retrieving the list of my AIM buddies automatically from the AIM gateway. So far, I couldn’t find such a feature in jabberd server. But I hope that some other Jabber server may have already implemented this feature.
At beginning, I started talking about a limitation of the popular Pidgin IM client. The issue is that Pidgin does not provide an option using which we can discover as well as register to the services offered by a Jabber server. Very poor indeed. This is not expected from such a famous and widely used cross platform IM client. I have seen a lot of requests for the particular feature on Pidgin Trac. I think Pidgin follows GNOME Human Interface Guidelines, even though its not the direct part of GNOME project, which I am considering as the main issue behind the over simplicity of GNOME desktop and related applications which makes me stand away from using GNOME. Cutting down useful features ( part of history now :) ) and reluctant to implement vital features by representing the usability issues in a wrong way is real stupidity. One of the well known benefit of Jabber implementation is that it can act as an IM server which can be implemented anywhere and at the same time it can talk to servers handling various protocols. If we are not getting this benefit, what is the matter of using Jabber at all? I am not at all worried personally by seeing the particular shortcoming of Pidgin messenger since I never use it. But others in my office use it. So I have to recommend either Kopete ( long live Kopete :) ) or other cross platform Jabber clients such as Psi to my colleagues.
The phrase mentioned in the official jabber user guide, “Jabber can be addictive! :)”, seems to be working in my case. From past few days I almost got addicted to Jabber. Working with similar interesting and flexible Free Software technologies is really great. Now I am very much sure about its implementation in my organization. I am waiting for the green flag. But my thoughts goes to the next level of Jabber usage. What it can be? Where it can be? At present I don’t know. But I can announce one thing proudly. Jabber is really cool.
If you simply ask a question to me, with in the Free Software world, like ‘What will be the greatest achievement for Free Software community in 2008 ?’, I will always prefer to answer, KDE 4. K Desktop Environment project’s upcoming major release KDE 4 will introduce new innovative ways which will make day to day interaction with computers more revolutionary. KDE 4 initial release will be act as a platform up on which other major innovations in the field of desktop computing can be build up. I am eagerly waiting for this greatest New Year present from KDE community.