add Secure Decentralized Wiki, add Brian to Share Migration

[Imported from Trac: page GSoCIdeas2010, version 90]
zooko 2010-03-16 17:43:19 +00:00
parent 10419d4197
commit d28dc7b97c

@ -14,8 +14,9 @@ Deadlines and directions for students' applications to the Google Summer-of-Code
|---|---|---|
|*Project*|*Difficulty*|*Contact*|
|[#RedundantArrayofIndependentClouds Redundant Array of Independent Clouds]|Medium|[Zooko Wilcox-O'Hearn]mailto:zooko@zooko.com or any mentor|
|[#ShareMigration Share Migration]|Medium|any mentor|
|[#CloudApps Cloud Apps]|EasyHard|Jack Lloyd or any mentor|
|[#ShareMigration Share Migration]|Medium|[Brian Warner]mailto:warner-tahoe@lothar.com or any mentor|
|[#SecureDecentralizedWiki Secure Decentralized Wiki]|Medium|[Zooko Wilcox-O'Hearn]mailto:zooko@zooko.com or any mentor|
|[#CloudApps Cloud Apps]|EasyHard|[Jack Lloyd]mailto:lloyd@randombit.net or any mentor|
|[#WebDAV WebDAV]|Medium|[David-Sarah Hopwood]mailto:david-sarah@jacaranda.org or any mentor|
|[#DistributedIntroduction Distributed Introduction]|Easy|[Zooko Wilcox-O'Hearn]mailto:zooko@zooko.com or any mentor|
@ -64,19 +65,17 @@ file health and accounting, so prospective students would do well to explore
those open issues, too. A good accounting jumping-off point is #666. A good
jumping-off point for health is #778.
# Secure Decentralized Wiki
Write a wiki in Google's ["caja"](http://code.google.com/p/google-caja/) dialect of JavaScript. This wiki will load and store data directly on a Tahoe-LAFS storage grid so that it is a full "Cloud App"—there is no server. All computation is done in the user's web browser in caja and all of the storage is done by the decentralized Tahoe-LAFS storage grid. This wiki should leverage Tahoe-LAFS's secure sharing features to offer fine-grained, dynamic, and easy transclusion or client-side mashups. This project is intended to be the successor to [the [TiddlyWiki](TiddlyWiki)-on-Tahoe-LAFS project](http://allmydata.org/trac/tiddly_on_tahoe), which is a wiki written in JavaScript and hosted on Tahoe-LAFS, but one that has been "bolted on" to Tahoe-LAFS instead of designed for Tahoe-LAFS, and is currently incapable of good transclusions or mashups.
To get started, play with [the [TiddlyWiki](TiddlyWiki)-on-Tahoe-LAFS quick start](http://testgrid.allmydata.org:3567/uri/URI:DIR2-RO:7h7syiurogz5erc2au74tjwguu:h7bdxvjtvidlkcdbld3j2d5sbgyzsbqs7wdnu6yznqrejzssc5za/wiki.html), read the source code of [the !HTTPSavingPlugin](http://allmydata.org/trac/tiddly_on_tahoe/browser/tahoe_tiddly/HTTPSavingPlugin.js) and [the TahoePlugin](http://allmydata.org/trac/tiddly_on_tahoe/browser/tahoe_tiddly/TahoePlugin.js) for TiddlyWiki, and experiment with [writing live caja applets](http://caja.appspot.com/).
# Cloud Apps
Difficulty: easy to hard, depending on project choice and how far you want to push it
There are a lot of applications that could potentially make good use of Tahoe-LAFS replacing the typical centralized storage of flat files or SQL databases. Currently supported projects include [TiddlyWiki](http://www.tiddlywiki.com/) (one of the Tahoe-LAFS developers hosts his blog using [TiddlyWiki stored in Tahoe-LAFS](http://allmydata.org/trac/tiddly_on_tahoe)), [Hadoop](http://hadoop.apache.org/), and [a number of others](RelatedProjects).
There are still many useful and interesting things that have yet to be built using Tahoe-LAFS. Perhaps the most promising is in the area of web applications; what applications can you think of that could make use of a highly reliable filesystem accessible from both desktops and [handheld devices](http://github.com/ctrlaltdel/TahoeLAFS-android)? Keep in mind that Tahoe-LAFS's architecture allows sharing and delegation opportunities that are difficult or impossible to implement using other backends. Some ideas people have suggested include a calender or photo album, or porting Mozilla's [Bespin](https://bespin.mozilla.com) editor).
Nathan Wilcox wrote most of interactive tree browser frontend in JavaScript (see [the [RelatedProjects](RelatedProjects) page](RelatedProjects)); Toby Murray wrote [a front-end in Cajita](http://allmydata.org/pipermail/tahoe-dev/2010-March/004137.html); what interesting ways might this be extended?
This is in some ways the most interesting area for development as it combines security and distributed systems problems with providing a user interface that lets a person who isn't particularly security minded operate safely by default. This is a hard problem, but offers great rewards in terms of learning, and even the ability to break new ground in safe-by-default interface design.
Required skills: HTML and JavaScript for web applications. For other tie-ins, will depend on the base project (for instance porting the git DVCS to run on Tahoe would good C-fu, with git experience helpful).
Invent your own Summer-of-Code project by building a new web app on top of Tahoe-LAFS. The [#SecureDecentralizedWiki Secure Decentralized Wiki] is one example of a Cloud App. See [GSoCIdeas](GSoCIdeas)/CloudApps for other ideas.
# WebDAV
@ -92,9 +91,6 @@ Implement a protocol for distributed introduction, thus removing the only remain
*Who is willing to spend about five hours a week (estimated) helping a student do it right?*
<br>
* [Zooko Wilcox-O'Hearn]mailto:zooko@zooko.com [blog](http://testgrid.allmydata.org:3567/uri/URI:DIR2-RO:j74uhg25nwdpjpacl6rkat2yhm:kav7ijeft5h7r7rxdp5bgtlt3viv32yabqajkrdykozia5544jqa/wiki.html) (Python/C/C++/JavaScript, security+cryptography)
* Jack Lloyd [blog](http://www.randombit.net) (C/C++/Python, security+cryptography)
* [Jack Lloyd]mailto:lloyd@randombit.net [blog](http://www.randombit.net) (C/C++/Python, security+cryptography)
* [David-Sarah Hopwood]mailto:david-sarah@jacaranda.org (Python/C/JavaScript, SFTP frontend, security+cryptography)
* [Brian Warner]mailto:warner-tahoe@lothar.com (Python/C/JavaScript, security+cryptography)
----
This page was modelled on [the NetBSD Summer-of-Code page](http://www.netbsd.org/contrib/soc-projects.html).