Sunday, September 28, 2008

A lesson while fixing blockage in the sink..

The other day my wife was complaining that there was a blockage in our Kitchen sink and the water is getting clogged. As a typical Martian, I went out immediately to fix it. After initial investigation, I figured out there was a small vessel which was obstructing the water. As there was water in the sink I tried to use sharp edged weapons in kitchen :) to take it out. It seemed like a real battle!

It looked like it was struck hard so the vessel didn't come outside after the initial attempts. The troubleshooter in me said that - "Know the problem well before you attempt to fix it". So I decided to take all the water out and see what is blocking.. Once we drained we figured out that the we were trying to take the portion of the sink itself and not the obstructing vessel.

If we had continued we would have damaged the sink itself. And once we isolated the problem we could just take the small vessel using hand and no sophisticated weapon or method is required.. So, the lesson learnt..
Know Your Problem well enough before you attempt to fix! :-)

Wednesday, March 12, 2008

The Art of Listening

How important is Listening? How does it matter? What difference does it make?
I pondered.. and that led me to write this blog.

Listening is a great thing especially when it comes to interpersonal relations. Some thoughts:
  • When you listen to people, you make them feel important, you make them feel special. You encourage them to share their feelings, thoughts, sorrow. Eventually, you make good friends sooner. You see a connection established between you and the them.
  • Listening, as explained perfectly by a Interpersonal relationship skills trainer years ago to me.
L - Look Interested
I - Inquire with questions
S - Stay focused
T - Test your understanding
E - Evaluate the message
N - Neutralize your feelings

This is Active listening.
  • Looking interested makes a difference, for sure. Try listening with smiling eyes making an eye contact next time when you listen to your close ones and observe the difference. I'm not saying, listen to whatever crap the other person says without expressing your feelings or thoughts [sometimes you've to do this if you listening to your girl friend or boy friend :) ]. I'm saying whenever you listen make an attempt to look interested and not be indifferent and evaluate than being indifferent.
  • Of course, the sweetest of conversations are the ones when a listener asks questions, understands and appreciates whenever appropriate. And I recommend, testing your understanding especially when it contradicts your theory or belief.
  • Often we put so much emphasis on "Talking". We don't do that much on "Listening" whereas both are equally important.
  • How many times we'd ignored our parents, kids, friends. It does no good to relationship. Even if you're not in a position to listen for e.g. tired, make it clear and telling them that you won't be able to listen attentively is much better. And how many relationship would have been saved if the involved people actually listened?
  • I think good Listening is a great skill everyone should master along with being observant.

Wednesday, March 5, 2008

Variety is the Spice of Life!

Yup, the old template was boring. Just changed it to more livelier one. Also, the Blog name was too formal, changed it too ;-)

And, with regards to the title of this blog - Yes I believe, Life is more exciting when you try different types of experiences, when you meet people from different parts of the world, when you come across different culture, when you try new hobbies. So reminding myself, that Variety is the Spice of Life" :)

Sunday, March 2, 2008

Journeyer Inside is born!!

As promised in the previous post, I have started blogging technical and work-related stuff here.
"Journeyer Inside" is the name of the blog. The URL is http://journeyerinside.blogspot.com/
I chose to keep personal ones here.

Take a peek at it once in a while.

Saturday, March 1, 2008

Writer Sujatha

Writer Sujatha, a multi-faceted personality - a great writer, the man behind Electronic Voting Machines and a Linux enthusiast died on 27th Feb.

I am a great fan of Sujatha. Though I haven't read much of his novels, I like very much the way he
simplified and explained the complex stuff in various areas, right from Neurology to Computer science. He had always been curious about how things are working and explaining it to people such that everyone understands. He has made countless contributions in various fields.

May his heart rest in peace.

Wednesday, February 20, 2008

Time to fork?

I was thinking about this for a while - whether to separate work-related blog from personal blog?
I think it's a good idea mainly because audience are different and I would like to submit the feeds of my work related to some well-known websites.

Soon the announcement will follow :)

Catching up!

More than 50 days since my last blog. Was little busy, mostly personal stuff...

  • Moved into my new home, settling down slowly (I'm a proud owner now :)
  • Some of close friends got married, was attending weddings/functions almost all weekends.
  • It took a while to get Internet connection at home.
Need to get charged up and have to do a lot better..

Sunday, December 16, 2007

FOSS.IN/2007 experience

FOSS.IN is one of the premier FOSS events that happens in Bangalore, India every year around November/December. I remember the days when I attended the first ever Linux Bangalore event LB/2001 (FOSS.IN then called Linux Bangalore). The event has grown by leaps and bounds; not only focusing specifically on Linux, but also on all other FOSS technologies. The venue this year was IISc, Bangalore during Dec 4 - Dec 8.

Along with the usual Main Conference, BOFs, Expos, two new additions to FOSS.IN/2007 are:
  1. Project Days and
  2. HackCenter
"Project Days" are inspired by mini-conferences - full day sessions on a single FOSS project, led by the lead developers/contributors (e.g. KDE, GNOME, OpenOffice etc).

"HackCenter" is basically a large area provided with power, switches n/w, Internet, tables and chairs where people can get together and work on a FOSS project as a group.

Sponsors of the event include Sun, Google, Red Hat, IBM, HP, Citrix, Zimbra, ABB, Akamai, Trolltech, SpikeSource, Geodesic Information systems Media Partners (Dataquest and PCQuest) and others. My employer's event absence was heavily questioned and I was tired diplomatically answering those question.

The main conference started on 6th Dec with the inaugural talk by Atul Chitnis, the man behind the event, that was followed by Naba kumar's keynote on Anjuta DevStudio.

James Morris gave a talk which is aimed to demystify the Kernel development process and encourage contributors. Last year, we had Christoph Hellwig talking on Kernel development mostly covering the same aspects. Though the information was nothing new and was talked about by Greg KH in his "Kernel development HOWTO" or Randy Dunlap's "Kernel development: Getting started", his talk was filled with interesting self experiences.


The talk I most liked was by Rusty Russell on lguest, the hypervisor written using paravirt_ops. I tried to setup lguest on my Thinkpad during the event in the "HackCenter", I got stuck because of some scsi issues with 2.6.24-rc4 vanilla kernel. The next interesting talk was on Union Mount, VFS based Filesystem Namespace Unification by Bharata B Rao. After the talk we had an unplanned BOF on Union Mount since there was a lot interest.

Kamalesh Babulal gave a talk on Linux kernel testing, a nice talk covering almost all aspects of Linux kernel testing. He correctly pointed out the need for developer's contribution to test cases and the low test case coverages given the number of lines being added per release.

The project days this year covered mostly with the basic stuff. There were a few interesting talks. One among them was on "ZeroConf networking with Avahi" by Lennart Poettering.

Most of the sponsors had a stall including Sun, Google, Red Hat, Citrix, Zimbra, IBM, Akamai, Spikesource, ABB and others. Almost every stall happened to be a recruitment booth. Sun had few interesting demos on Open cluster, Grid computing, Glass fish, OpenDS and so on. IBM had a demo of System tap.

There is a global perspective that Indian software industry is a big consumer of FOSS projects and contributes very less, given its size and international presence. This is a sad truth. I should say FOSS.IN is a concious effort to change that perspective. It may a take a year or two or may be few years, but lam confident that the number of Indian FOSS contributors will surely grow.

Friday, November 23, 2007

What's The "Fuzz" All About?

As part of my day's work, I was trying to adjust a 'fuzz'[2] when I tried to patch [1] manually. Since I have never encountered much of fuzz while patching earlier, I didn't think of a better way of adjusting fuzz than doing manually.

For e.g. while patching you might get a message like:

"Hunk #3 succeeded at 717 with fuzz 2 (offset 7 lines)."

This means that patch had to adjust the location of the change (in this example it needed to move 7 lines from where it expected to make the change to make it fit). The fuzz factor as we see in this example is 2. This factor determines how far from its original line a hunk is allowed to match. The default is two I suppose.

Manually fixing the fuzz is a pain if the patch results in multiple fuzzes. This seems a simpler way to me if you are using 'quilt'[3] to manage patches:

1. quilt new # the patch name can be different from the original patch
2. quilt add file1.c file2.c # files that are changed by this patch
3. patch -p1 < ../file.diff # Apply the original patch using patch command 4. quilt refresh # creates the new patch that is fuzz adjusted This can also be done manually by applying the original patch and recreating the patch without quilt as Jony pointed out. However, if you are working on a patchset it is difficult to manage without patch managing utilities like quilt.
] when I tried to patch [1] manually. Since I have never encountered much of fuzz while patching earlier, I didn't think of a better way of adjusting fuzz than doing manually.

----
NOTE: There seems to be a much simpler way using quilt for adjusting fuzz and handling rejects.
$quilt import
$quilt push

(a) If there are no rejects, quilt applies the changes and doing a
$quilt refresh
ensures that the patch is and fuzz adjusted and updated.

(b) If there are rejects, quilt will not apply the changes by default, you need to force quilt using
$quilt push -f'
to apply changes and it create file.c.rej files which gives details about the rejects.
Now look at the file.c.rej file and manually edit the file to reflect the changes.
$vim file.c.rej file.c
Once done with the changes, do
$quilt refresh
This ensures that the rejects are being handled and the new patch reflects the change. So simple, right?
----

This comes in handy when you need to create patches for multiple versions and you have multiple patches to manage.

Be warned that a 'fuzz' could indicate that the source has changed and the resulting file after patch adjusts may or may not be OK. Double check to be sure.


[1] - A patch is a file containing the delta of changes between two different versions of a source tree. Patches are created with the "diff" program and they are so common in *nix world.

[2] - Whenever patch utility applies a patch that it had to modify a bit to make it fit, it'll tell you about it by saying the patch applied with 'fuzz'. When patch encounters a change that it can't fix up with fuzz it rejects it outright and leaves a file with a .rej extension (a reject file)

[3] - quilt allows to manage a series of patches by keeping track of the changes each patch makes. Patches can be applied, un-applied, refreshed, etc.