Monday, 30 December 2013

Encore!

Few things are just plain addictive. Like writing blogs. Once you start enjoying it, there is no stopping you. Or as some would agree, doing open source projects! Or for that matter, improving upon previously done ones especially when we do get a chance to do that.

Till now we worked on the boa version 0.94.13 available on the official website, and having a second opportunity to correct the wrong, we decided to go with the development version, 0.94.14rc21. Not sure, if it is the right choice, but that isn't what we are exactly worried about right now!

Its good to be back!

Saturday, 14 December 2013

Not just code but beyond

A project, merely taken up maybe as a part of a course or otherwise would be limited to just coding. Making the end product work. Just the end result that matters.
This can lead to a much contrived way of doing things.

A project, done with the aim of software engineering on the other hand would concentrate more on the SE principles and aspects such as group dynamics and documentation.

Having experienced all of that and more, wondering how an open source project would be, we stepped into the world of delights as we ventured to take up the course offered as one of our electives. In it, we were mainly required to work on an open source project and it was our shot at giving something back to the community.
And this is what bloomed out of the entire process. A revelation. A sense of achievement and still the fire to do more, much more.
An open source project in its truest sense gave us the liberty to think and opened our minds to newer dimensions.
Not just the end result, but the journey, the journey mattered more than anything else. The knowledge gained out of the entire process. Not only making us technically sound, but ensuring an all-round development.
Distance  not  Displacement.

A self reference: The bloag : boa log that formed into a full fledged blog.
Creating a Mailing list!
Trying to contact the developers and the ecstasy when we got a reply.
Submitting a patch
Learning so many more things in the journey.
Making a video!
Who would have done that otherwise!


Our very own: Mailing List

oh what fun is porting

Amidst the chaos of testing for performance, I almost forgot to talk about cross-compatibility. Till now, we discussed about epoll instead of select, but this applies only to Linux systems. Epoll wouldn't work on Mac! We needed to ensure platform independence at least to an extent.

Hence, we went forward with implementing kqueue so as to be compatible with the FreeBSD environment. And a rush of conditional directives! We had to make changes in the Makefile too, so as to enable conditional compilation. This was again done for ensuring cross platform working of boa.

epoll and kqueue are similar in many respects. To start with, both are event based and have a control mechanism to add/delete modify file descriptors and events.
Kqueue is much more abstracted and hence general.

After implementing kqueue, we were wondering about the performance comparison between epoll and kqueue. But, it was not exactly the right thing to do since we had different system configurations on our laptops. Performance comparisons are only valid when all the other parameters remain same.
Theoretically, kqueue would do better. In the paper given link to below, more on performance has been discussed.

While going through the implementation of boa, we came across this in a comment "oh what fun is porting" and we agree too!!


Few useful links:
  Paper : Comparing and Evaluating Mechanisms : Page 217
  Select, Epoll, Kqueue
  Epoll