Changes

Jump to navigation Jump to search
770 bytes added ,  14:40, 5 November 2009
add links to current activity at the top
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 5: Line 6:  
Lucian Branescu Mihaila
 
Lucian Branescu Mihaila
 
* '''What is your email address?'''
 
* '''What is your email address?'''
lucian dot branescu at gmail dot com
+
lucian dot braneNOSPAMscu at gmail dot com
 
* '''What is your Sugar Labs wiki username?'''
 
* '''What is your Sugar Labs wiki username?'''
 
lucian
 
lucian
Line 25: Line 26:  
Webified
 
Webified
 
* '''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?'''
I'm making a template [http://en.wikipedia.org/wiki/Site-specific_browser SSB] activity and a small utility that can create activities out of websites using that template.<br/><br/>
+
I'm making a template [http://en.wikipedia.org/wiki/Site-specific_browser SSB] activity and a small utility that can create activities out of websites using that template. This combination will make sugarizing web apps almost entirely automatic.<br/><br/>
    
The purpose of this project is twofold:<br />
 
The purpose of this project is twofold:<br />
Line 45: Line 46:  
* '''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.'''
   −
<br />'''Milestones''':
+
<br />'''Milestones'''
# Webified SSB can load a website (hello world)
+
Legend: - todo, + prototype done, # done
:: Requires:  
+
* Webified SSB can load a website (hello world)
::: - getting more familiar with Sugar and Browse code
+
: Requires:  
::: - building the Webified SSB.
+
:: # getting more familiar with Sugar and Browse code
:: '''Week 1'''
+
:: # building the Webified SSB.
# Both Browse and Webified SSB can use GMail in offline mode (through Gears)
+
: '''Week 1'''
:: Requires:  
+
* Both Browse and Webified SSB can use GMail in offline mode (through Gears)
::: - getting the Firefox Gears extension working in Browse and the Webified SSB
+
: Requires:  
:: '''Week 2, at worst 3'''
+
:: + getting the Firefox Gears extension working in Browse and the Webified SSB
# Browse (with its utility extension) can successfully "sugarize" GMail and the resulting activity works.
+
: '''Week 2, at worst 3'''
:: Requires:
+
* Browse (with its utility extension) can successfully "sugarize" GMail and the resulting activity works.
::: - activity template as host for the Webified SSB
+
: Requires:
:::: '''Week 3'''
+
:: # activity template as host for the Webified SSB
::: - python tool that packages up activities, using the activity template
+
::: '''Week 3'''
:::: '''Week 3, at worst 4'''
+
:: # python tool that packages up activities, using the activity template
::: - button in Browse that uses the python tool
+
::: '''Week 3, at worst 4'''
:::: '''Week 4'''
+
:: # button in Browse that uses the python tool
# JavaScript from inside a Webified SSB can call dbus stuff
+
::: '''Week 4'''
:: Dbus is vital for good integration, but there may not be enough time in GSoC for making a nice JavaScript-side API. So I will at least provide a javascript-dbus bridge that web developers can build on.
+
* JavaScript from inside a Webified SSB can call dbus stuff
:: Requires investigating:
+
: Dbus is vital for good integration, but there may not be enough time in GSoC for making a nice JavaScript-side API. So I will at least provide a javascript-dbus bridge that web developers can build on.
::: - [http://sandbox.movial.com/wiki/index.php/Browser_DBus_Bridge#Gecko_version_notes This] javascript-dbus bridge
+
: Requires investigating:
::: - if that is not appropriate, try marshalling calls to Python with [http://en.wikipedia.org/wiki/JSON-RPC JSON-RPC]
+
:: + [http://sandbox.movial.com/wiki/index.php/Browser_DBus_Bridge#Gecko_version_notes This] javascript-dbus bridge
:::: - through PyXPCOM (hulahop). almost as good as a direct bridge
+
:: - if that is not appropriate, try marshalling calls to Python with [http://en.wikipedia.org/wiki/JSON-RPC JSON-RPC]
:::: - through AJAX. sounds like the easiest way, but doing some [http://en.wikipedia.org/wiki/Cross-site_scripting XSS] would be needed
+
::: - through PyXPCOM (hulahop). almost as good as a direct bridge
:: '''Week 5'''
+
::: - through AJAX. sounds like the easiest way, but doing some [http://en.wikipedia.org/wiki/Cross-site_scripting XSS] would be needed
 +
: '''Week 5'''
    
The remaining time could then be spent on polishing things up and for any eventual emergencies.
 
The remaining time could then be spent on polishing things up and for any eventual emergencies.
   −
If I have extra time.
+
If I have extra time. In no particular order.
# Webified SSB can save and resume its state with the Journal.
+
* Webified SSB can save and restore its state with the Journal.
# Build a JavaScript-side API for basic functionality that cannot be achieved easily with HTML and Gears
+
: Save & restore the browser state. possibilities:
: similar in concept to [http://fluidapp.com/developer/ Fluid's], but tailored for Sugar.
+
:: # Browse does this
: based on the javascript-dbus bridge
+
: Save & restore Gears state
# Webified SSB can run a userscript (GreaseMonkey)
+
:: # do nothing. Gears provides resuming state. The only real drawback is that only the latest version will be available to resume. No actual data would be stored in the Journal.
: Should be as easy as injecting some JavaScript in the page
+
:: - save the entire Gears profile. Could be very slow for large profiles.
: a GUI like the one GreaseMonkey has is outside the scope of this project
+
:: - save just the sqlite databases. Could be very slow for large databases (GMail).
:: there will be instructions for how to add/remove userscripts
+
* Build a JavaScript-side API for basic functionality that cannot be achieved easily with HTML and Gears
# Webified SSB can use a userstyle (CSS)
+
: - similar in concept to [http://fluidapp.com/developer/ Fluid's], but tailored for Sugar. Based on the javascript-dbus bridge
: again, should be just injecting some CSS
+
* Webified SSB can run a userscript (GreaseMonkey)
: again, no GUI will be provided, just instructions
+
: + should be as easy as injecting some JavaScript in the page
 +
: - a GUI like the one GreaseMonkey has is outside the scope of this project
 +
: - there will be instructions for how to add/remove userscripts
 +
* Webified SSB can use a userstyle (CSS)
 +
: # a user stylesheet can be made in data/style.user.css
 +
: + there's a GUI for it
    
Beyond GSoC, I would like to keep working on this.
 
Beyond GSoC, I would like to keep working on this.
Line 125: Line 132:  
====Miscellaneous====
 
====Miscellaneous====
 
[[Image:lucian-dev-env.png|thumb|right|My development environment with the small hack.]]
 
[[Image:lucian-dev-env.png|thumb|right|My development environment with the small hack.]]
* '''We want to make sure that you can set up a [[DevelopmentTeam#Development_systems|development environment]] before the summer starts. Please send us a link to a screenshot of your Sugar development environment with the following modification: when you hover over the XO-person icon in the middle of Home view, the drop-down text should have your email in place of "Restart." See the image on the right for an example. It's normal to need assistance with this, so please visit our IRC channel, #sugar on irc.freenode.net, and ask for help.'''
+
* '''We want to make sure that you can set up a [[Development Team#Development_systems|development environment]] before the summer starts. Please send us a link to a screenshot of your Sugar development environment with the following modification: when you hover over the XO-person icon in the middle of Home view, the drop-down text should have your email in place of "Restart." See the image on the right for an example. It's normal to need assistance with this, so please visit our IRC channel, #sugar on irc.freenode.net, and ask for help.'''
 
Picture to the right.
 
Picture to the right.
 
* '''What is your t-shirt size? (Yes, we know Google asks for this already; humor us.)'''
 
* '''What is your t-shirt size? (Yes, we know Google asks for this already; humor us.)'''
9

edits

Navigation menu