wiki:GSoCIdeas2010

Version 7 (modified by ndurner, at 2009-03-11T21:59:57Z) (diff)

add ND and libtahoe_webapi, FOSS'ification of the w32 client

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)
  • Opportinistic 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 pratical 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 have many machines and alternate 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 keep showing me the same first level directories in any level :)
  • Help with the C client library libtahoeclient_webapi
  • Make the Windows client use only free open-source software

Mentors

Who is willing to spend about five hours a week (according to Google) helping a student figure out how to do it right?