Tuesday, 23 August 2011

Rate Control in ftp transfer is ready!!!

Hi all,

Project Details:
http://summertimekde.blogspot.com/2011/06/improvements-in-kio-file-transfer.html

As a first deliverable, we have rate control available for ftp slave in KIO sub system of kdelibs.

Two patches got submitted on KDE review board for this code. First patch is adding updated ftp kio slave into kdelibs while second one is clearing all the review comments given by kdelibs developers.

1st patch: https://git.reviewboard.kde.org/r/102267/
2nd patch: https://git.reviewboard.kde.org/r/102307/

You can see this code in action by running KGet. You need to set download limit(KB per second) in KGet. After then try to download a file over ftp protocol. Average download speed will fall near to what speed we are setting.

Currently this code is following this convention:
- If download limit is 0, then download data at full speed. No rate control will be provided and ftp slave will run with out any speed limit.

I wanted to see whether the basic rate control algorithm will work or not in kdelibs. So as an experiment, I tried it on ftp kio slave only.

Now I am trying to apply this algorithm at one level above. So instead of updating each kio slave, I can put this rate control at a point from where all kio slave is passing data to application.

If above idea is working than this code will enable every kio slave with rate control capability!!!

About SoK:
Its awesome to work in SoK. I am getting good experience of working with KDE developers. It is giving me more confidence about my work.It is also improving my coding capabilities. I am enjoying the whole experience of working with open source community.

One thing I learned from SoK is that how I can give more quality work by thinking, designing and implementing a good code. Not only it is increasing my confidence but also giving me the best practises of working in a team.

Saturday, 4 June 2011

About Me :)


Hello, all...

I am Tushar Mehta. I am from Gujarat, India. Currently, I am doing my M.Tech in International Institute of Information Technology, Bangalore.(IIITB)

I have done my undergraduate in computer science(CS) and thereafter I joined a company called eInfochips as an Embedded Engineer. This place was the point where It took me to the open source world :) I started working with Linux kernel and started to understand how this world is very different and good also :D...After that, I decided to for higher study and thought of giving myself some more time in the area I would like to work in future... of course in open source ;)

I joined IIITB and now I am doing more open source activity :)...and that's why life is good...!!!
Recently, one KDE conference was held in Bangalore only and I got a chance to attend it. There I met few developers(one of them was Volker :)...) My experience was good and response was KDE team were very helpful and encouraging :)

After that, I was planning to get engaged myself in contributing to KDE and so I took part in GSoC-2011. I did not get selected for this competition but got a chance to work with the KDE family in Season of KDE 2011. Thanks to Lydia, Lukas and all the KDE team members :)

Currently, I am getting help from the mailing list, my mentor and Lydia while doing work on the project and I must say even a person who does not know anything about open source, will not feel uncomfortable while working with the KDE team :)...People are very helpful, active and supportive.

I started writing blog because of KDE only :) Change is Good...:)

I will keep updating this but, for now, this much good :)

Rate Control on KIO slave protocols

Hello all...:)

This project deals with studying existing KIO system and implement a way to have a rate control in KIO Slave protocols.

This feature was requested from developers. Following are the links(KDE Bug tracking system) where it was proposed first time.

https://bugs.kde.org/show_bug.cgi?id=87600
https://bugs.kde.org/show_bug.cgi?id=210694

The main idea is to update the kdelibs, which is the core library of KDE, used by almost all the applications. kdelibs is responsible for creating kio slaves for the application which is requesting file(data) transfer over different protocols(http, ftp and others). Current kio system transfers data at full speed.

Currently I am working under Lukas Applhans who the core developer of KGet application which is a download manager for KDE.

A download manager should have the facility to control the bandwidth for each transfer happening over network. This will increase the response of the network and we can prioritize downloads in KGet.

This project will add bandwidth throttling in KGet.

I have done many projects for open source and mostly worked on projects related to system programming like writing device drivers. But this time working on KDE platform is all different experience. :)

Currently I am clearing basic concept like how QT is used for KDE application. I am going through the KGet application flow and understanding how it using KIO.

We still need to look out what are the different alternative is available to make this task successful. I am understanding how KIO protocols are used by application.

Goal of the project:
To have a rate control over http/ftp transfer in KGet. :)

I will keep updating this blog as I am getting more clarity about KIO and its internals.