Changes

Jump to navigation Jump to search
915 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====
   −
* What is your name?
+
* '''What is your name?'''
 
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
* What is your IRC nickname?
+
* '''What is your IRC nickname?'''
 
lucian. backups are lucian1900 and sindbad1900
 
lucian. backups are lucian1900 and sindbad1900
* 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.
* Where are you located, and what hours do you tend to work? (We also try to match mentors by general time zone if possible.)
+
* '''Where are you located, and what hours do you tend to work? (We also try to match mentors by general time zone if possible.)'''
 
Mostly in the UK, perhaps a short while in Romania during the summer break.<br /> I don't have a 'coding time' in my schedule, anything goes. I also often stay up late at night.
 
Mostly in the UK, perhaps a short while in Romania during the summer break.<br /> I don't have a 'coding time' in my schedule, anything goes. I also often stay up late at night.
* Have you participated in an open-source project before? If so, please send us URLs to your profile pages for those projects, or some other demonstration of the work that you have done in open-source. If not, why do you want to work on an open-source project this summer?
+
* '''Have you participated in an open-source project before? If so, please send us URLs to your profile pages for those projects, or some other demonstration of the work that you have done in open-source. If not, why do you want to work on an open-source project this summer?'''
 
I've started a small project on freshmeat called statusPidgin that fetched text from various sources and made it a status message in Pidgin. It's now abandoned, but you can find the source [http://linux.softpedia.com/get/Communications/Chat/statusPidgin-31896.shtml  on softpedia ]<br />
 
I've started a small project on freshmeat called statusPidgin that fetched text from various sources and made it a status message in Pidgin. It's now abandoned, but you can find the source [http://linux.softpedia.com/get/Communications/Chat/statusPidgin-31896.shtml  on softpedia ]<br />
I have also released one of my school projects as open source (a small web imap/pop3 client), but I doubt it's still hosted anywhere. You can get it from [http://dl.getdropbox.com/u/317039/easymail.zip my dropbox]. I haven't contributed in a significant way to open source projects before, beside bug reports and small patches. <br />
+
I have also released one of my school projects as open source (a small web imap/pop3 client), but I doubt it's still hosted anywhere since there was little interest. You can get it from [http://dl.getdropbox.com/u/317039/easymail.zip my dropbox]. I haven't contributed in a significant way to open source projects before, beside bug reports and small patches. <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 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.
Line 22: Line 23:  
====About your project====
 
====About your project====
   −
* What is the name of your project?
+
* '''What is the name of your project?'''
 
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 43: Line 44:  
# Titanium. Titanium is more interesting, as it already is an SDK for creating desktop applications with web technologies. It's only real technical disadvantage is introducing a new dependency (webkit) in Sugar. However, it's [http://titanium-js.appspot.com/Core/Titanium design] is largely incompatible with Sugar, as it focuses on traditional desktops. Refactoring all that to fit into Sugar would be too much work.<br />
 
# Titanium. Titanium is more interesting, as it already is an SDK for creating desktop applications with web technologies. It's only real technical disadvantage is introducing a new dependency (webkit) in Sugar. However, it's [http://titanium-js.appspot.com/Core/Titanium design] is largely incompatible with Sugar, as it focuses on traditional desktops. Refactoring all that to fit into Sugar would be too much work.<br />
   −
* 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.
      −
* 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 second.
Line 104: Line 111:     
====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 />
 
'''Myself''' <br />
 
:The result of my project would be something akin to Fluid (and Prism), but tailored for Sugar. It would allow users to make separate activities out of websites and, if those websites support Gears, also take them offline.<br />
 
:The result of my project would be something akin to Fluid (and Prism), but tailored for Sugar. It would allow users to make separate activities out of websites and, if those websites support Gears, also take them offline.<br />
Line 114: Line 121:  
'''Tomeu Vizoso''' [http://lists.sugarlabs.org/archive/iaep/2009-January/003445.html same mailing list thread] <br />
 
'''Tomeu Vizoso''' [http://lists.sugarlabs.org/archive/iaep/2009-January/003445.html same mailing list thread] <br />
 
: Without needing to get into what is better for our deployments, I do see value in making easier to make Sugar activities using technologies such as HTML, CSS, etc.
 
: Without needing to get into what is better for our deployments, I do see value in making easier to make Sugar activities using technologies such as HTML, CSS, etc.
* 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?
+
* '''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?'''
 
I'm not familiar with schools near where I live, as I am an international student. [Any suggestions?]
 
I'm not familiar with schools near where I live, as I am an international student. [Any suggestions?]
* 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?'''
 
Google, check sugarlabs/olpc forums/mailing lists/wikis. Ask on #sugar/mailing list.
 
Google, check sugarlabs/olpc forums/mailing lists/wikis. Ask on #sugar/mailing list.
 
Ask other mentors and GSoC students or developers of related open source software.
 
Ask other mentors and GSoC students or developers of related open source software.
* How do you propose you will be keeping the community informed of your progress and any problems or questions you might have over the course of the project?  
+
* '''How do you propose you will be keeping the community informed of your progress and any problems or questions you might have over the course of the project?'''
 
In the worst case scenario, just emails to my mentor and commits. IRC has proven itself time and again and I intend to proudly announce any advances made.
 
In the worst case scenario, just emails to my mentor and commits. IRC has proven itself time and again and I intend to proudly announce any advances made.
 
I intend to set up a blog and use that as well. Identi.ca or Twitter may also prove useful.
 
I intend to set up a blog and use that as well. Identi.ca or Twitter may also prove useful.
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.)'''
 
XL
 
XL
* Describe a great learning experience you had as a child.
+
* '''Describe a great learning experience you had as a child.'''
 
The most important thing I ever learned was to never be certain of anything and to always be prepared for the worst.
 
The most important thing I ever learned was to never be certain of anything and to always be prepared for the worst.
* Is there anything else we should have asked you or anything else that we should know that might make us like you or your project more?
+
* '''Is there anything else we should have asked you or anything else that we should know that might make us like you or your project more?'''
 
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:2009 GSoC applications]]
9

edits

Navigation menu