GSOC 2009 Ideas

Page history last edited by Onar Vikingstad 9 mos ago

We are going to apply for the Google Summer of Code 2009, a program that offers student developers stipends to write code for various open source projects. This page will function as an ideas list for the SproutCore application. If you have an idea and would like to mentor it, please add it here.

 

Keep in mind that according to the GSoC, the most successful projects are the ones proposed by students themselves, so if you are a student and want to work on an idea, please add it here as well.

 

Some of these ideas might be too big for a single student to accomplish over one summer, so feel free to split them up into more manageable parts.

 

Note that Google has not announced the list of accepted projects for GSoC 2009 yet. If we do get accepted, we will add more information here on how you can apply as a student.

 

Possible Projects

 

View Builder

A browser based WYSIWYG View Builder, similar to what Interface Builder brings to Cocoa. This would use the power of the new SproutCore 1.0 View API as well as being a showcase for SproutCore itself to develop the Builder application.

Requirements: Extensive knowledge of Javascript and the DOM.

 


 

Rich Text Editor view

A view that uses contentEditable to edit html in place. It should postprocess the DOM so that differences between browsers don't make it into the edited source. It should also be easy to hook up standard buttons and controls to the actions of the editor.

Requirements: Expert knowledge Javascript and DOM/browser quirks.

 


 

Offline Storage layer

Provide an offline storage layer that will use the offline storage capabilities in HTML 5.

Requirements: Extensive knowledge Javascript and HTML5.

 


SC.TableView

Requirements: Expert knowledge Javascript 

 


  

Separate out the build tools from SproutCore

Provide and package the SproutCore build tools (Abbot) separately from SproutCore so it can be easily used by any framework or web application.

Requirements: Extensive knowledge of Ruby and Javascript.

 


 

Comet/Long Polling

A layer for handling Comet and/or long polling.

Requirements: Extensive knowledge of Javascript, HTTP protocol.

 


 

Web Services Integration Layer (Google App Engine, Amazon SimpleDB etc) 

A web services layer that can interact with cloud data services such as Google App Engine, Amazon SimpleDB, EC2 etc. Should be modularized to provide support for any open web data API.

Requirements: Extensive knowledge of JavaScript, Web APIs and the HTTP protocol.

 


 

SproutCore 1.1

Include major classes deferred from 1.0.

Requirements: Extensive knowledge of JavaScript


 

Full Internet Explorer 6 and 7 compatibility

Provide full compatibility with IE6 and IE7, in terms of features and performance.

Requirements: Extensive knowledge of JavaScript and IE browser quirks

 


 

File Uploader

Develop a robust file uploader that can handle multiple file uploads in various formats and upload them asynchronously with a progress bar (ala gmail).

Requirements: Flash? 


 

        Audio Support

          Develop a robust way to support audio playback and controls across popular browsers.

          Requirements: Javascript, Media Pluggins (Windows Media Player, QuickTime) or Flash.


 

 

 

 

Contact

If you have questions or are interested in any of these projects, please contact Onar Vikingstad (onar at vikingstad.com or onar on IRC freenode) or -someone volunteering?-

 

Also feel free to use any of our community channels:

 

 

 

Comments (9)

profile picture

Bryon Fryer said

at 6:30 pm on Mar 11, 2009

I really want to make a 'flash-less' mp3 player and in looking for flash alternatives I was led to SproutCore. Any feedback on that idea would be appreciated.

profile picture

Onar Vikingstad said

at 9:34 pm on Mar 11, 2009

Maybe you can submit your idea around a more general audio/video enhancement and not necessarily just MP3 player? That said, Flash is probably your best for audio on the web in 2009 for maximum compatibility, unfortunately...

profile picture

Maurits Lamers said

at 11:53 pm on Mar 11, 2009

The problem with audio in a browser is that a plugin is always needed. The problem with the current plugins is that they are all really bad in the sense of high quality audio. If you give Flash access to your microphone and listen back to what it returns, the sound quality is such that you will have trouble understanding your own words.
Moreover, they all seem to regard JavaScript as a script language, as the only thing that is allowed most of the times is doing .start(), .stop() and .pause(). It would be much more interesting to have a new open source plugin that allows JavaScript to be used for small effects. generate it's own audio (it takes about half a second to generate 20 seconds of CD quality stereo audio) and have real control of the audio without having to rely on proprietary software. SC is about bringing desktop grade applications to the browser, why not also bringing desktop grade audio to the browser?

It is not really difficult, as such a plugin can be easily based on open source multi-platform audio engines like PortAudio (http://www.portaudio.com). I worked out a sort of rudimentary way of implementing it, but I have not too much C and C++ experience and also no experience whatsoever in writing a browser plugin, so a reasonable C or C++ programmer could do it, especially within a summer project I think.

profile picture

Faruk Ates said

at 9:48 am on Mar 12, 2009

Bryon,

Take a look at what Apple's done with the new iPod shuffle's VoiceOver page: http://www.apple.com/ipodshuffle/voiceover.html
It uses Javascript and Quicktime to do audio in the browser, with some Canvas for the rendering. I suspect that it doesn't look or work quite as well in IE6 but using Quicktime for the audio is a good option: it's typically already supported in the browser (meaning you don't have to write a custom plugin that people would have to install) and it offers a lot more controls in Javascript:
http://developer.apple.com/documentation/QuickTime/Conceptual/QTScripting_JavaScript/aQTScripting_Javascro_AIntro/Introduction%20to%20JavaScript%20QT.html

profile picture

Maurits Lamers said

at 2:11 pm on Mar 12, 2009

@Faruk: What is possible with Quicktime and JavaScript is still .start(); .stop(); and .pause(); though a bit more extended. While this may suffice for playing back existing sounds, it is completely unsufficient for a proper musical web application. What is needed is functionality that allows JavaScript to be used to generate audio data or process audio data derived from the microphone. Like a normal desktop application is able to when needed. :)

profile picture

Faruk Ates said

at 4:55 pm on Mar 12, 2009

Hrm. Well if that's the kind of functionality you'd wanna do in a web client, yeah I guess you're right, you'll have to write a plugin for it. A plugin that emulates half of Garageband perhaps, but y'know… ;-)

profile picture

Juan Pinzon said

at 1:47 pm on Mar 26, 2009

guys check this out javascript/flash winamp
http://www.nihilogic.dk/labs/juicydrop/

Btw, i did an audio/video recorder in flash for an fb app (http://www.facebook.com/video/video.php?v=24951085412) . The main problem is not the quality, you can actually adjust it to be cd quality... the problem is that you need a Flash Media Server ( open source version http://code.google.com/p/red5/) and your architecture will depend on a server and lots of bandwidth.

profile picture

Juan Pinzon said

at 1:51 pm on Mar 26, 2009

I think if we want a simple audio player flash is the way to go.

You don't have permission to comment on this page.