What is your e-mail address and IRC nick?
Email: chenmingyang ict gmail com
IRC nick: calvin
· Do you have a web page, blog, or microblog?
Yes, this is my blog:http://blog.csdn.net/lishirui
· What is your academic background?
I'm a graduate student in Institute of Computing Technology, Chinese Academy of Sciences, China. My research interests focus on computer graphics and computer architecture (especially the memory systems).
· What is the ultimate goal of your proposal?
Append “data sync” feature to Epiphany:
1.Make it possible for different instances of Epiphany and Firefox to share user data.
2.The data includes bookmarks, history,session state and cookies
· What components/modules will the proposed or modify or create?
We will create a sync module for the client, which will store user data to the server and download it from the server.
· What benefits does your proposed work have for GNOME and its community?
My work will append “data sync” feature for Epiphany.
· Why are you the right person to work on this project?
I have researched much on this project. I have read much on Mozilla’s sync service. After some study on Epiphany’s code, I have understood the overall structure and some critical classes. In addition, having developped several related projects, I am familiar with C and GTK+.
· How do you plan to achieve completion of your project?
1. The structure of our project is as follows:
Client:
· Store
· Translate data to Firefox’s format
· Encrypt data
· Send record to server
· Update
· Retrieve record from server
· Decrypt data
· Translate data to Epiphany’s format
Server:
Use the Firefox sync server.
2. Steps:
· Find out sync mechanism and implementation details of the Firefox client.
· Read documentation and code of Epiphany to learn about the data structure of bookmark, history, session state and cookies. Find out corresponding “get” and “set” methods.
· Develop the sync module.
· Integrate the sync module into Epiphany and do integration testing.
· Fix bugs reported by users.
· It really helps to see a schedule with dates and important milestones/deliveries (preferably in two weeks increments).
Week 0 – Beginning 21st of May
Read Mozilla’s sync service documentation [1]. Look through the code of the client’s sync part. Discuss in the mail list about details of the sync client and server.
Week 2 - Beginning 4th of June
Read the documentation and code of Epiphany. Learn about the implementation of funtions. Find out data structure of bookmark, history, session state and cookies. Keep discussing with mentor and developers.
Week 4 - Beginning 18th of June
Develop the translater which traslates Epiphany’s bookmark, history, session state and cookies data to Firefox’s format. Connect the translater and the sync module in Firefox to make an Epiphany’s syncer.
Week 6 - Beginning 2nd of July (Includes Mid-Term)
Design the UI and integrate syncer into Epiphany.
Week 8 - Beginning 16th of July
Test and fix bugs. Deliver, ask for feedbacks.
Week 10 - Beginning 30th of July
Modify according to feedbacks.
Week 12 - Beginning 13th of August
Documentation, any left over work.
· What will showable at mid-term?
Two clients which can sync data with each other through Firefox sync server. Because the UI is in development, data retrieved from server will be printed just for demonstration.
· What are your past experiences with the open source world as a user and as a contributor?
I have been an open source software user for several years. I like to spread open source softwares among my friends.
· What other relevant projects have you worked on previously and what knowledge you gained from working on them?
I have finished the “Component-level Power Monitoring System” project in my lab. The system uses a GTK+-based client to monitor the realtime change of the power. I’m familiar with GTK+, C, and Linux programming.
[1]http://docs.services.mozilla.com/
Best regards,
calvin