Changes

1,311 bytes added ,  22:52, 26 March 2009
no edit summary
Line 42: Line 42:     
->Implemented 7-zip compressed commics support in Evince Document Viewer, Gnome  Bug: #532312
 
->Implemented 7-zip compressed commics support in Evince Document Viewer, Gnome  Bug: #532312
   #Link: http://ftp.gnome.org/pub/GNOME/desktop/2.23/2.23.5/NEWS
+
   * Link: http://ftp.gnome.org/pub/GNOME/desktop/2.23/2.23.5/NEWS
 +
 
 +
-> Was involved in the designing of a Joint Architecture for Unmanned Systems (JAUS) compliant Software Development Kit as a part of a startup I am co-founder off. Things I worked on (all in c/c++):
 +
  * Unix System calls
 +
  * Unix,UDP and TCP sockets
 +
  * Threads, semaphores and mutex.
 +
  * Design of the architecture which involved making UMLs
 +
  * Object oriented designing
 +
I cant provide the link to the source code since the work if proprietary.
 +
 
 +
->Designed and implemented an Asynchronous Information Dissemination System using Delay Tolerant Networks. Was selected in the top 12 teams from Asia Pacific by Google as a part of Google Product Prodigy. The finals will take place in April.
 +
  * Link: http://www.google.co.in/intl/en/productprodigy/finalists.html 
 +
  * Team: Mobile Health
 +
  * Here specifically a lot of PyGtk was used along with XML DOM, imaplib, smtplib etc.
 +
TODO: Ask Google if the source code can be made public.
 +
 
 
->Implemented a peer-to-peer file search and transfer utility in python. It had the following main features:
 
->Implemented a peer-to-peer file search and transfer utility in python. It had the following main features:
 
     #Remote discovery of active peers
 
     #Remote discovery of active peers
Line 48: Line 63:  
     #Object matching using regular expressions
 
     #Object matching using regular expressions
 
     #Link: http://code.google.com/p/p2p-lan/downloads/list
 
     #Link: http://code.google.com/p/p2p-lan/downloads/list
 +
 
->Made a distributed game based on Flash and Python and used Asynchronous servers, Mysql db, DOM in its design and implementation.
 
->Made a distributed game based on Flash and Python and used Asynchronous servers, Mysql db, DOM in its design and implementation.
 
   #Link: http://code.google.com/p/etheravtar/downloads/list
 
   #Link: http://code.google.com/p/etheravtar/downloads/list
Line 58: Line 74:     
Ans : File Sharing Utility
 
Ans : File Sharing Utility
 +
    
----
 
----
 +
    
Q.2 : '''Describe your project in 10-20 sentences. What are you making? Who are you making it for, and why do they need it? What technologies (programming languages, etc.) will you be using?'''
 
Q.2 : '''Describe your project in 10-20 sentences. What are you making? Who are you making it for, and why do they need it? What technologies (programming languages, etc.) will you be using?'''
Line 65: Line 83:  
a) : '''What are you making'''
 
a) : '''What are you making'''
   −
Ans : There is a lack of file sharing activity in the Sugar Learning Platform, which is quite a roadblock when it comes to the remote sharing of files present in the Journal. There has been some work done with respect to this in Sucrose 0.84 release[1]. But it has very limited and restricted option of only sharing of files among friends with no other capabilities.
+
Ans : There is a lack of file sharing ability in the Sugar Learning Platform right now. Sugar relies on Telepathy for most of its network requirement. Telepathy in turn uses XMPP Extensions as the bases of their various interfaces. The XMPP Extensions for File Repository and Sharing is XEP:0214 . There is no Telepathy interface for this XEP currently and therefore File Sharing is not their right now. Also the File Transfer API is only to send files at the most, not request them. Therefore there will be a need to design a Telepathy interface to announce files, retrieves files from contact and request a file.
 +
 
 +
'''''Steps for the complete implementation :'''''
 +
 
 +
1) To design a Telepathy interface to announce files, retrieves files from contact and request a file.
 +
 
 +
2) Understand XEP-0214 and Telepathy enough to write a Telepathy Interface Specification for the functionality of XEP-0214.
   −
'''''Features'''''
+
3) Implementing that interface in Gabble.
   −
#Shared folders which will contain files to be shared
+
4) XEP-0214 only gets you us as far finding out what files a person has.  Step 4 is writing python code to actually retrieve those files, using
#Sharing among peers in LAN and Internet
+
Telepathy's existing FileTransfer API.
#File search query among shared folders of active peers
  −
#Show active peers via remote discovery
  −
#Easy to use Interface to carry out these functionalities
     −
Other addition which I aim to make to this project outside the paradigm of Google Summer of Code includes:
+
5) Modify the Sugar interface (probably Journal and Neighborhood view) to expose this functionality to the user, i.e to give an option to share a file or not.
Multiple downloads simultaneously
  −
#API to be used by third party applications
  −
#Dbus Interface
      
----
 
----
Line 84: Line 102:  
b) : '''Who are you making it for'''
 
b) : '''Who are you making it for'''
   −
Ans : Primary, Secondary and Higher Secondary Students and Teachers. At a later stage it will be of immense use to developers too.
+
Ans : This will be of immense use for any one associated with sugar be it students, teachers and even developers since allowing such kind of functionalities will truly enhance Sugar's ability and bring to it a feature which is considered a basic utility in any platform.  
    
----
 
----
Line 90: Line 108:  
c) : '''Why do they need it '''
 
c) : '''Why do they need it '''
   −
Ans : A typical use of this application is the transfer of assignments and similar work among students. There can be many uses of this activity for other activities as well as sharing has been a primary goal for the Sugar Platform.
+
Ans : A typical use of this application is the transfer of assignments and similar work among students. Their can be many uses of this functionality for other activities as sharing has been a primary goal for the Sugar Platform. In order to connect the sugar community File Sharing according to me is some thing of prime importance.
    
----
 
----
Line 96: Line 114:  
d) : '''What technologies (programming languages, etc.) will you be using?'''
 
d) : '''What technologies (programming languages, etc.) will you be using?'''
   −
Ans : This project will be started from scratch since their will be a complete rework to the existing file sharing utility in Sucrose 0.84. As most of networking in sugar uses XMPP protocol, hence all the data whether metadata or actual data will be sent in accordance to the XMPP specifications. Major technologies that will be used includes XML, Data Object Model (DOM), Socket Programming, Regular Expressions, GTK, Glade Interface Designer, Twisted libraries and few others.
+
Ans : Most of the programming will be done in C followed by some part in python too. A major portion of this project will be to understand Telepathy's existing interfaces therefore Telepathy will be a major technology involved. The GUI will be done using PyGTK. Other technologies involved include D-BUS as the underlying IPC mechanism, GObject etc.  
 
      
----
 
----
Line 103: Line 120:  
Q.3  : '''What is the timeline for development of your project? The Summer of Code work period is 7 weeks long, May 23 - August 10; tell us what you will be working on each week. (As the summer goes on, you and your mentor will adjust your schedule, but it's good to have a plan at the beginning so you have an idea of where you're headed.) Note that you should probably plan to have something "working and 90% done" by the midterm evaluation (July 6-13); the last steps always take longer than you think, and we will consider cancelling projects which are not mostly working by then.'''
 
Q.3  : '''What is the timeline for development of your project? The Summer of Code work period is 7 weeks long, May 23 - August 10; tell us what you will be working on each week. (As the summer goes on, you and your mentor will adjust your schedule, but it's good to have a plan at the beginning so you have an idea of where you're headed.) Note that you should probably plan to have something "working and 90% done" by the midterm evaluation (July 6-13); the last steps always take longer than you think, and we will consider cancelling projects which are not mostly working by then.'''
   −
Ans : Before the official program starts I would have made my self comfortable with the Sugar environment and as a prerequisite would have gone through the XMPP specification. The basic development approach will be to design the GUI and write the functionalities simultaneously. Here is the division of my work per week:
+
Ans : Since overall quite a lot of work is involved including learning many new things, therefore I specially aim to use the preios between filing my application and the actual begining of GSoc to maximum use. I aim to make my self done with Telepathy's existing source code in this period along with having a first draft of the TP interface to to announce files, retrieves files from contact and request a file in this period only.
   −
Week 1: Design the basic framework of the application. Start coding of the GUI and as I move on, will keep on adding functionalities to           This week will require substantial communication with my mentor.
+
TODO: Detail of the timeline in the official Gsoc period to be finalised after more discussion with developers.  
 
  −
Week 2: Enable the task of shared folders and estabilishment of the basic protocol for peer lookup. After this the feature of remote discovery will be done in LAN.
  −
 
  −
Week 3: The task of remote discovery on the Internet will also be completed in this week and other miscellaneous backend task of the whole framework will be done with.
  −
  −
Week 4:Will be done with the tasks of file search query and file transfer on LAN.
  −
 
  −
Week 5: This week will mainly be concentrated on extending most of the work on Internet.
  −
 
  −
Week 6: This week will be utilized for exaustive testing.
  −
 
  −
Week 7: Final compilation of the whole work with small alterations will be done.
  −
 
  −
TODO: This list needs to have a lot of changes after having advice from some developers.
      
----
 
----
   −
Q.4 :  '''Convince us, in 5-15 sentences, that you will be able to successfully complete your project in the timeline you have described. This is usually where people describe their past experiences, credentials, prior projects, schoolwork, and that sort of thing, but be creative. Link to prior work or other resources as relevant.'''
+
Q.4 :  '''Convince us, in 5-15 sentences, that you will be able to successfully complete your project in the timeline you have described. This is usually where people describe their past experiences, credentials, prior projects, school work, and that sort of thing, but be creative. Link to prior work or other resources as relevant.'''
   −
Ans : I have quite a lot of experience with all the technologies that will be involved with this project. Other than this I have done substantial amount of work in Python in the past. My biggest asset which will accelerate the speed of the development process is my prior experience of developing a complete working peer to peer file transfer application in Python which handled many of the tasks I have listed for this project. Some of the key time consuming problems were taken care during the development of this application and I will build up on this experience. I again have done a lot of work with PyGTK which again simplifies the development process for me.Having worked on Linux for three years now makes me have an experience with the basics of Sugar. Also I have sound knowledge of content management systems and thus a lot of time will be saved here too. All these facts makes me competent enough to complete my project with quality in the given time frame.
+
Ans : The biggest asset with this proposal is that this proposal has been a result of intense discussion with developers associated with the parent projects i.e Telepathy and Sugar. Very crucial issues like the viability of the implementation and the actual use of such a project for the Sugar community were taken into account before I actually sat down to write this proposal. Therefore I am very clear about the major tasks that I need to complete. Also I being in constant touch with developers had provided me with a basic approach to actually implement these tasks.
 +
Regarding the issue of my personal skills to complete this task, I have been involved in a startup which helped me realise how the principles of Software Engineering are actually brought into action in the real world. Other then this most of the work I am doing in this startup is infact in C, the major language I will be using.
 +
Regarding the Python I have done many small/mid-sized projects which make use of each of the libraries I will be needing to conceptualise this proposal. I have also done few projects which were specifically addressing the File sharing (and transfer). This again brings clarity of the process involved.
 +
Other then this my wish to contribute to the Open Source community in any way possible (Gsoc or no Gsoc) will be the biggest inspiration that will make me complete this project.
    
----
 
----
Line 134: Line 140:  
Q.1 : '''If your project is successfully completed, what will its impact be on the Sugar Labs community? Give 3 answers, each 1-3 paragraphs in length. The first one should be yours. The other two should be answers from members of the Sugar Labs community, at least one of whom should be a Sugar Labs GSoC mentor. Provide email contact information for non-GSoC mentors.'''
 
Q.1 : '''If your project is successfully completed, what will its impact be on the Sugar Labs community? Give 3 answers, each 1-3 paragraphs in length. The first one should be yours. The other two should be answers from members of the Sugar Labs community, at least one of whom should be a Sugar Labs GSoC mentor. Provide email contact information for non-GSoC mentors.'''
   −
Ans : With the completion of this project one of the biggest hurdle of the Sugar Platform will be taken care of. Having the freedom of sharing with anyone any time is essential for such a platform and this project essentially achieves that. Other than this it opens the door for other developers to make creative use of this utility for their own activities.
+
Ans : With the completion of this project a very essential feature will be made available to the Sugar Platform. Having the freedom of sharing with anyone any time is essential for such a platform and this project essentially achieves that. Other than this it opens the door for other developers to make creative use of this utility for their own activities. Also it will be a way for Sugar to payback to the Telepathy Community which it makes use of for so many of its needs :)
    
----
 
----
Line 140: Line 146:  
Q.2 : '''Sugar Labs will be working to set up a small (5-30 unit) Sugar pilot near each student project that is accepted to GSoC so that you can immediately see how your work affects children in a deployment. We will make arrangements to either supply or find all the equipment needed. Do you have any ideas on where you would like your deployment to be, who you would like to be involved, and how we can help you and the community in your area begin it?'''
 
Q.2 : '''Sugar Labs will be working to set up a small (5-30 unit) Sugar pilot near each student project that is accepted to GSoC so that you can immediately see how your work affects children in a deployment. We will make arrangements to either supply or find all the equipment needed. Do you have any ideas on where you would like your deployment to be, who you would like to be involved, and how we can help you and the community in your area begin it?'''
   −
Ans : I would like the deployment to be at a near by Government school for the poor since they are the students that are usually isolated from the strength of electronic education and hence have the maximum curiosity to learn. ----
+
Ans : I would like the deployment to be at a near by Government school for the poor since they are the students that are usually isolated from the strength of electronic education and hence have the maximum curiosity to learn.  
 +
 
 +
----
    
Q.3 : '''What will you do if you get stuck on your project and your mentor isn't around?'''
 
Q.3 : '''What will you do if you get stuck on your project and your mentor isn't around?'''
29

edits