Dear Ubuntu developers,<br><br>I am Yang Jie, a 2nd-year MSc student in Xi&#39;an Jiaotong University from China. I am especially 
interested in the project of <b>GNOME centralized file sharing 
administration</b> and want to apply for this project.
<div><br></div><div>It has been multiple years since I had chosen Ubuntu as my 
major OS due to its <span style="font-family: arial,sans-serif; line-height: 20px;">humanized</span> and convinence( of course, another 
important reason is that it&#39;s a Linux OS). I had got
 some opportunities to handle some administration tasks based both on 
Ubuntu Server &amp; Desktop Edition, when I contributed a file server 
with samba &amp; nfs, so I have had some basic knowledge about them. 
<br><br>Additional, my group do researches mostly on Linux, and I have some experience on Open Source projects as well as a strong background of C++ &amp; Perl, so I think I am fit 
for this job. <b>The link of my proposal on the Ubuntu wiki is as follows:</b><br><a href="https://wiki.ubuntu.com/GSoC/2010/YangJie" target="_blank">https://wiki.ubuntu.com/GSoC/2010/YangJie</a><br></div><div><br></div>

<div>Be so kind to give me any adivce, please! Your advices will considerably encourage me. I will be keeping on with the improvement of my proposal, to make it as clear and proper as possible. I will try my best to give a <span style="font-family: arial,sans-serif; line-height: 20px;">humanized</span> file
 sharing administration tool with quality, as my contribution to Ubuntu. I am the one for it!<br><br>The following is an abstract and some teasers of my proposal:<br><br>Abstract<br><br>In this proposal, an <i>extendible </i>GNOME centralized file 
sharing administration tool is designed. It provides a <i>uniform </i>UI just 
like Nautilus to browse and control the shared/sharable directories 
based on protocols, which gives users a humanized interface to manage 
their sharing intuitively and conveniently. The tool works based on a 
set of <i>Schema files </i>in which record the necessary properties, scripts 
and service libraries of specified protocols, and the whole 
configuration work flow is managed by a <i>configuration manager 
</i>implemented from a uniform interface, also based on specified protocols.
 Both of the above features make it easy and convenient to add new 
protocols to this tool, making it <i>a extendible architecture for long 
time evolution</i>.<br><br>How will the tool serve for users &amp; developers?<br><br><div>1. The centralized file sharing manager has a <b>main workspace </b>similar with nautilus and a <b>administration tool </b>with individual interface. File sharing tasks are 
carried out as the following method: Any of the mounted 
network places through Samba/NFS are detected and shown in the workspace
 of this tool, just like the style of nautilus. Users click on a mount 
point to open nautilus and browse the files or right click on it to get 
the details.</div><div>2. People also use the menu bar or context menu 
in the tool to open the <b>administration tool</b>, in which users setup some parameters and mount a new network place. The required parameters, such 
as protocols, URLs, folder path and mount points and so on, are all 
given through a dialog box. Note that currently only samba and NFS is 
supported.</div><div>3. Support for certain protocols should be <b>designed
 as module</b>, so that the future work on <b>extend for other protocols are easy</b> to 
be carried out.</div><br>A tentative project architecture !<br><ol type="1"><li><p class="line862">My experience considered, I choose <b>Perl </b>as my 
main language, <b><a class="http" href="http://gtk2-perl.sourceforge.net/">gtk2-perl</a></b>
 as the graphical library to develop the GUI and <b>Moose </b>as the OO 
framework when developing the backend; <span class="anchor" id="line-35"></span></p></li><li>The tool will be completed after 2 months with the 1st alpha version, the tool will be able to support <b>
Samba and NFS </b>file sharing; <span class="anchor" id="line-36"></span></li><li>The
 tool setup the configurations based on <b>a set of Schema files</b>. These 
files are all XML files. According to the configuration files of a 
specified protocol, Those files record the necessary properties in the 
conf file and their meta-properties, scripts, and deb libraries to 
install the services. The Schema file is the base of this tool; <span class="anchor" id="line-37"></span></li><li>There are three levels in 
the design of its architecture. <span class="anchor" id="line-38"></span><ul><li>The
<b> UI </b>level has three modules. The main workspace is where the shared 
directories are mounted and shown automatically and most operations 
towards sharing directories take place. The administration tool is a 
dialog box, in which users are able to add or remove a shared URL, share
 directories with specified protocol in their computers and do other 
necessary configurations. The Schema Viewer shows schema file of 
specified protocol in a humanized style. <span class="anchor" id="line-39"></span></li><li>The <b>Protocol Management </b>level is where the 
configuration takes place. Four modules handle the task. File Manager 
handles all the file operations; Schema Helper analyzes Schema files to 
generate the property hash table; Config Manager is a kernel module in 
this level. It decides the work flow according to the requirement of the
 current protocol, and updates the hash table according to user 
operation; Service Manager is called to execute scripts or manages the 
deb libraries if necessary. <span class="anchor" id="line-40"></span></li><li>The
 last level is the <b>file system </b>level, in which the <b>Schema </b>file is the 
most important. As stated, Schema files record the properties and other 
required information. Other important elements are the controlled 
objects such as services, shared URLs and the deb libraries. </li></ul></li></ol>Milestones of the project<br><ul><li><p class="line862">Week 1-2: Get more information on Samba and <a class="http" href="http://gtk2-perl.sourceforge.net/">gtk2-perl</a>. <span class="anchor" id="line-45"></span></p>

</li><li>Week 3-5: Start with a 
read-only GUI towards samba sharing configurations. <span class="anchor" id="line-46"></span></li><li>Week 6-10: Add to the function of reading 
the NFS sharing configurations; Make it enable to modify those 
configurations to manage the sharing. <span class="anchor" id="line-47"></span></li><li>Week
 10-12: Write the documentation and submit the project; tackle bugs and 
submit patches. </li></ul><br>Thank you for all !<br><br><br>Best wishes!<br></div><br>-- <br>Yang Jie(杨杰)<br><a href="http://hi.baidu.com/thinkdifferent" target="_blank">hi.baidu.com/thinkdifferent</a><br>

<br>Group of CLOUD, Xi&#39;an Jiaotong University<br>Department of Computer Science and Technology, Xi’an Jiaotong University<br><br>PHONE: 86 1346888 3723<br>TEL: 86 29 82665263 EXT. 608<br>MSN: <a href="mailto:xtyangjie2004@yahoo.com.cn" target="_blank">xtyangjie2004@yahoo.com.cn</a><br>



<br>once i didn&#39;t know software is not free; then i knew it days later; now i find it indeed free.<br>