= Ideas = What could a smart student do in one summer, if they didn't need to worry about getting a summer job to pay the bills? * Dealing with NAT, ideally making it as easy to ignore as possible (taking advantage of upnp-igd and Zeroconf NAT-PMP) * Opportunistic grid membership: * Dynamic share migration to maintain file health * use Zeroconf or similar so nodes can find each other on a local network to enable quick local share migration * Deal with unreliable nodes and connections in general, getting away from allmydata's assumption that the grid is a big collection of reliable machines in a colo under a single administrative jurisdiction * Shell friendly errors. When cli (the shell command tool) is failing, it would be good, for shell users, to have a nicer output in text format, not html/css. The latter could be kept for webgui errors only. * 'tahoe sync'. The proposed #601 bidirectional sync option would be great for using tahoe as we would with dropbox (http://www.getdropbox.com/). Like the latter, the user could have a daemon which keeps things in sync in pollings within a one or two seconds schedule (maybe using inotify for uploads). In practical terms an user could have many machines pointing to the same tahoe:dir, each machine mapping this resource to a local directory, and all these machines could then have their local copies in sync, via tahoe:dir. I think this is good when someone has many machines and alternates use between them, like a notebook, a home desktop and an office desktop, for instance. * sshfs working properly in linux boxes. Yeah, my Fedora 9 isn't ok with trunk revision, it keeps showing me the same first level directories in any level :) * Help with the C client library [http://allmydata.org/trac/libtahoeclient_webapi libtahoeclient_webapi] * Make the [http://allmydata.org/trac/tahoe-w32-client Windows client] use only free open-source software * Various web frontend applications: * An interactive tree browser web frontend. * A blog-like app (perhaps addressing tiddly wishlist items) * Port another light-weight server open source web app to Tahoe+javascript (calendar, photo album) * Fix Same-Origin-Policy design issue. Web content from different authors can interact in unintended ways in the victims browser, such as Javascript iterating over open windows, or peeking at a referrer header. Before this project is undertaken, the problem description and proposed solutions need careful design review and consideration! The solutions should be considered prototypes and should be backwards compatible with the Tahoe network. * Domain Mangling approaches: * HTTP proxy approach * Special scheme handling in browser add-ons * CAJA approach: Require all Javascript to pass the CAJA verifier in the Tahoe web frontend, then create an interface to the tahoe webapi which matches the intended capability semantics. = Mentors = Who is willing to spend about five hours a week (according to Google) helping a student figure out how to do it right? [[br]] * [http://ndurner.de Nils Durner] (C/C++ work) * Brian Warner (core coding, Python/Twisted/Foolscap) * Zooko O'Whielacronx (core coding, Python/C/C++/JavaScript, cryptography) * [http://www.randombit.net Jack Lloyd] (C/C++/Python, cryptography) * Nathan Wilcox (frontends Python/JavaScript/C/C++, security)