Webified

From Sugar Labs
Revision as of 09:50, 26 March 2009 by Lucian (talk | contribs)
Jump to navigation Jump to search

[work in progress]

About you

  • What is your name?

Lucian Branescu Mihaila

  • What is your email address?

lucian dot branescu at gmail dot com

  • What is your Sugar Labs wiki username?

lucian

  • What is your IRC nickname?

lucian1900 or 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.)

English and Romanian.

  • 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.
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?

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 on softpedia
I have also released one of my school projects as open source (a small web imap/pop3 client) and you can get it from my dropbox. I haven't contributed in a significant way to open source projects before, beside bug reports and small patches.
I am however 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.
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 and then used them for a few years.

About your project

  • What is the name of your project?

Webified Toolkit

  • 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 small toolkit that can allow building activities using web technologies.

The purpose of this toolkit is twofold:

  • it would make it easy to "sugarize" web apps (like gmail).
  • there are a lot 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.

Integration of web applications with the desktop is a very useful (and popular) thing to do. Gears, AIR, Prism, HTML 5 and various combinations between them extend the browser with: persistent storage, accessing files, desktop icons, running in a separate window/process, programmatic drawing, etc.

There are two main strategies for implementing this:

  1. Running a standard browser, as light as possible, that points to a small local webserver. 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 web developers would have a hard time hacking the toolkit itself. 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.
  2. 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. Javascript dbus access through pyxpcom or this. It would be very similar to other efforts to bring webapps to the desktop, thus familiar to web developers.
    A small utility (probably an extension to the Browser activity) will create activities out of websites.

I will be focusing on the second stragety.

  • Why not use existing solutions like Mozilla Prism or Titanium?
  1. 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. Porting Prism would be too much work, but there may be useful code in Prism, especially the webapp creation utility.
  2. 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 design is largely incompatible with Sugar, as it focuses on traditional desktops. Refactoring all that to fit into Sugar would be too much work.
  • 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, what web developers would use when starting web activities. A small utility that generates sugarified web applications would also use that template.
The utility and small demo of using the APIs directly(second usage of the toolkit) could then be made in a few days, one week at most. The rest of the time could then be spent for polishing things up, if nothing unexpected crops up.

  • 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.

I absolutely adore the web and I absolutely adore open source. Python is my favourite programming language and I know enough javascript to have made a small game.[todo]

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.

The result of my project would be something akin to Mozilla 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. It would also allow web developers to more easily develop applications for Sugar.

  • 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?
  • What will you do if you get stuck on your project and your mentor isn't around?

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?

In the worst case emails to my mentor and commits. Maybe I'll set up a blog and use that.

Miscellaneous

My development environment with a small modification to it. Running inside VirtualBox because sugar-jhbuild doesn't work on OS X
  • We want to make sure that you can set up a 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.

Changed the text buddymenu.py. Picture to the right.

  • What is your t-shirt size? (Yes, we know Google asks for this already; humor us.)

XL

  • Describe a great learning experience you had as a child.
  • 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?