Summer of Code/2010/Abstract Browser: Difference between revisions

Lucian (talk | contribs)
Created page with '{{TOCright}} ''The results of this project are now in the Browse activity and at [http://git.sugarlabs.org/projects/browse/repos/webified a branch of Browse…'
 
Lucian (talk | contribs)
No edit summary
 
(10 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{TOCright}}
{{TOCright}}
''The results of this project are now in the [[Activities/Browse|Browse]] activity and at [http://git.sugarlabs.org/projects/browse/repos/webified a branch of Browse]. See also complementary work on [[Karma]].''
====About you====
====About you====


Line 10: Line 9:
lucian
lucian
* '''What is your IRC nickname?'''
* '''What is your IRC nickname?'''
lucian. backups are lucian1900 and sindbad1900
lucian
* '''What is your primary language? (We have mentors who speak multiple languages and can match you with one of them if you'd prefer.)'''
* '''What is your primary language? (We have mentors who speak multiple languages and can match you with one of them if you'd prefer.)'''
English and Romanian, either is fine.
English and Romanian, either is fine.
Line 20: Line 19:
I am a user of open source (linux, KDE, gcc, python, firefox, webkit) and am absolutely delighted by the concept. I am convinced it is the most efficient way of developing software, and perhaps not only software.<br />
I am a user of open source (linux, KDE, gcc, python, firefox, webkit) and am absolutely delighted by the concept. I am convinced it is the most efficient way of developing software, and perhaps not only software.<br />
I am especially interested in the Sugar project, as I have myself experienced the closed-mindedness that schools instill in their students by teaching them using closed source software. I have been fortunate enough to get some exposure to linux and kde early enough and I would like to help others by showing them the alternatives.
I am especially interested in the Sugar project, as I have myself experienced the closed-mindedness that schools instill in their students by teaching them using closed source software. I have been fortunate enough to get some exposure to linux and kde early enough and I would like to help others by showing them the alternatives.
I have also participated on GSoC last year with [[Webified]].


====About your project====
====About your project====


* '''What is the name of your project?'''
* '''What is the name of your project?'''
Webified
AbstractBrowser
* '''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?'''
* '''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?'''
Several people have expressed concern about xulrunner/hulahop and Browse maintainability. Also, there is a perception that webkit is faster and uses less memory than gecko. Various benchmarks do seem to show webkit to be superior, but results are inconclusive. Also, the Surf activity is significantly faster than Browse on XOs.
It would be good if Browse could switch between browser engines, if not at runtime at least with little effort. This would require an abstraction layer on top of hulahop/pywebkitgtk that Browse could target. This would open the road for other engines as well (like chromium).
Thus, this project has two parts:
# Design and implement a browser engine abstraction layer in Python with two backends: hulahop/xulrunner and pywebkitgtk/webkit.
# Port Browse to this new abstraction layer, complete with [[Webified|SSB support]].
Since recent efforts to empower browsers like HTML5, Jetpack and the Chrome extension API are minimalistic in nature, the web development world is moving towards engine-independent extensions. Thus, implementing Jetpack/Chrome extensions/similar homegrown API for Browse should be both feasible and would benefit from a wealth of existing code.
SSBs are becoming less "web app to replace desktop apps" and more "internet apps to fit better in the desktop". I will design Browse's new SSB support to match this trend.


* '''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.'''
* '''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.'''
Weeks:
# Write prototype of abstraction layer
#* WebView GTK widget that wraps hulahop.WebView or pywebkitgtk.WebView
#* nothing more than WebView.load_uri()
# Simple Browser activity based on the abstraction layer
#* recycle code from Browse & Surf
#* implement missing functionality as needed
# Basic browser functionality
#* DOM access
#* html events mapped to gobject events
# More browser functionality
#* downloads, history
#* user stylesheets
#* browser settings (i.e. proxy)
# Port SSB code from Browse's ssb branch
#* create ssb
#* edit userstyles/usersheets
#* bookmarklets
# More functionality
# Polish


* '''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.'''
* '''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.'''


Python is my favourite programming language and JavaScript is a close enough second.
Python is my favourite programming language and JavaScript is a close enough third.
I have some experience with python and I've built various things, from small utilities to websites with it. My most interesting project was helping to port a scientific application from c++ and Qt3 to Python and Qt4. It involved writing some Pyrex as well. It was lovely to see just how much the code shrunk, while keeping the application itself just as speedy.
I have some experience with python and I've built various things, from small utilities to websites with it. My most interesting project was helping to port a scientific application from c++ and Qt3 to Python and Qt4. It involved writing some Pyrex as well. It was lovely to see just how much the code shrunk, while keeping the application itself just as speedy.


Line 44: Line 75:
====You and the community====
====You and the community====
* '''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.'''
* '''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.'''
'''Myself''' <br />


* '''What will you do if you get stuck on your project and your mentor isn't around?'''
* '''What will you do if you get stuck on your project and your mentor isn't around?'''
Line 64: Line 94:
Web technologies are remarkably flexible and it would be great to encourage students to play around with them.
Web technologies are remarkably flexible and it would be great to encourage students to play around with them.


[[Category:2009 GSoC applications]]
[[Category:2010 GSoC applications]]