Version 3 (modified by zooko, at 2010-03-16T17:48:46Z) (diff) |
---|
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 (one of the Tahoe-LAFS developers hosts his blog using TiddlyWiki stored in Tahoe-LAFS), Hadoop, and a number of others.
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? 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 editor).
Nathan Wilcox wrote most of interactive tree browser frontend in JavaScript (see the RelatedProjects page); Toby Murray wrote a front-end in Cajita; 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.
One specific project in this category would be inventing a new secure decentralized wiki as described at GSoCIdeas. Another would be to extend and improve the current TiddlyWiki-on-Tahoe-LAFS implementation, which has the disadvantage that it is not built from the ground up to support secure transclusion and mash-ups, but the advantage that it lets you re-use a large library of extensions for TiddlyWiki.
Required skills: HTML and JavaScript for web applications.