Changes

Jump to navigation Jump to search
no edit summary
Line 1: Line 1:  
{{TOCright}}
 
{{TOCright}}
 +
[backup proposal]
 
====About you====
 
====About you====
   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/>
  −
  −
The purpose of this project is twofold:<br />
  −
* it would make it easy to "sugarize" web apps (like gmail).<br />
  −
Users could press a button in the Browse activity (or there could be a separate activity for this) and a small tool would help them create a sugarized web app as a new activity.
  −
* there are a lots of web developers out there that are familiar with HTML(5), CSS and JavaScript and it would be great to take advantage of their skills.<br />
  −
Web developers could use Webified to port their web apps to sugar using only web technologies, without having to learn Python.<br /><br />
  −
I have been inspired by [http://fluidapp.com/ Fluid], which creates custom SSBs for websites. Fluid has Gears and GreaseMonkey plugins and provides a simple JavaScript API to websites for common native calls (like sounds, notifications, badges, etc.),  which makes it very easy to extend web apps to provide more integration. For example, GMail in a custom Fluid SSB feels like a native application.
  −
<br /><br />
  −
There are two main strategies for implementing this:
  −
# Running a standard browser, as light as possible, that points to a small local webserver (SimpleHTTPServer). It would use AJAX or a wrapper on top of that (like jsonrpc) to provide the bridge to python. The biggest downside would be that the SSB would have to call the python backend for persistence and interaction with Sugar. Another problem would be that this process could not easily be automated. Some python code would have to be written for any semi-interesting application. It would also be harder for web developers to hack Webified itself.
  −
# In a small controller application, embed a browser runtime (with hulahop). The resulting activity would be completely standalone and would not depend on a web server anymore. Gears would have to be installed as a plugin for xulrunner. Some form of [https://addons.mozilla.org/en-US/firefox/addon/748 GreaseMonkey] would be very useful. Javascript dbus access through [http://sandbox.movial.com/wiki/index.php/Browser_DBus_Bridge#WebKit_.28JavaScriptCore.29_version_notes this bridge], [https://www.socialtext.net/lukec/index.cgi?xocom XOCOM], pyxpcom directly or, in a worst case scenario, AJAX. It would be very similar to other efforts to bring web apps to the desktop and it could also provide better integration with Sugar.<br />Browse could be used as a base for the Webified SSB. A small utility (probably an extension to the Browse activity) would create activities out of websites.<br />
  −
I will be focusing on the second stragety.<br />
  −
  −
* Why not use existing solutions like Mozilla Prism or Titanium?
  −
# Prism. It's just a stripped-down firefox. To make it useful, at least Gears would have to be installed and there would still remain the issue of integration, since Prism is designed for regular desktops. Building on hulahop and the existing Browse activity would yield better integration. There may still be useful code in Prism, like the SSB creation utility.
  −
# 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.
I plan to get Gears integration, dbus access and a nicer js wrapper on top of that done in the first 2-3 weeks. This would create a template for web-based activities, that web developers could already build on. A small utility that generates sugarified web applications would also use that template. <br />The utility and a nice demo of Webified usage could then be made in a few days, two weeks at most. <br />
  −
The remaining time could then be spent on better integration, providing a small JavaScript wrapper API similar in concept to [http://fluidapp.com/developer/ Fluid's]), polishing things up and for any eventual emergencies.
  −
  −
<br />Milestones:
  −
# Webified SSB can load a website (hello world)
  −
# Webified SSB can use GMail in offline mode (through Gears)
  −
# JavaScript from within a Webified SSB can make dbus calls (dbus hello world)
  −
# Browse can successfully "sugarize" GMail
  −
# Webified SSB can run a hello world userscript (GreaseMonkey)
  −
If time allows it:
  −
# Webified SSB can save it's Gears state in the Journal.
      
* 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.
Line 71: Line 43:  
====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.
<strong> Myself</strong> <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 web is moving towards websites-as-applications and there are many projects to help integrate these new applications with the various desktop environments ([http://en.wikipedia.org/wiki/Adobe_Integrated_Runtime AIR], [http://en.wikipedia.org/wiki/Silverlight#Silverlight_3 Silverlight Out-of-Browser Experience], [http://developer.mozilla.org/en/Prism Mozilla Prism], [http://fluidapp.com Fluid]). There is also the bold [http://en.wikipedia.org/wiki/Palm_webOS webOS] from Palm, that fully embraces web technologies by making them the default toolkit for building applications for the platform.
  −
:It would be great to bring these ideas to Sugar, as they would enable easier usage of web applications and in general more orientation towards the web. It would also allow web developers to easily extend those websites to better integrate with Sugar, increasing the developer pool of and raising awareness towards Sugar.<br />
  −
<strong>Bryan Berry</strong> [http://lists.sugarlabs.org/archive/iaep/2009-January/003451.html mailing list thread]<br />
  −
:Again, this requires people to learn python, a whole new language that they don't necessarily use at work. We need to enable developers to be very productive in just 2-3 hours per week. For them to be productive they need to be using tools they are already familiar w/.
  −
:Python is a tool popular among sysadmins and hackers. It is great tool. But folks who develop web UIs use css, html, javascript, and flash. I highly doubt that will change in the near or distant future. These are people we need to recruit as activity designers.
  −
<strong>Tomeu Vizoso</strong> [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
  −
Are you a mentor? Could I please get a paragraph in here from you? Pretty please?
   
* 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?]
158

edits

Navigation menu