[tahoe-dev] Tahoe-LAFS is widely misunderstood

James A. Donald jamesd at echeque.com
Wed Feb 2 08:48:59 UTC 2011


On 2011-02-02 11:04 AM, Chris Palmer wrote:
 > Tahoe-LAFS, et c. are just plain hard to explain because
 > there is so much going on. "Oh sure, you can mount it like
 > a normal filesystem. Just use the FUSE module that
 > implements SFTP to talk to your gateway which in turn... Oh
 > well there are some semantic impedance mismatches... Well
 > of course you'll need the FUSE kernel module, didn't I
 > mention that? Have you tried the WUI?  ... No, the WUI, not
 > the gateway..."
 >
 > I wish you guys would take a hard turn toward the nvi
 > mentality. Then you'd have less to explain, and people
 > would have less to understand. (I don't advocate going into
 > cat territory.)

nvi is not exactly famous for user friendliness either.  You
have doubtless heard the argument that nvi causes brain
damage, in that once someone has learned to use nvi
effectively, there is no room left in his brain for anything
else.  Also, like a combination chain saw, tuning fork,
pocket knife, nail file, and jackhammer, nvi is so remarkably
powerful that almost any random sequence of keystrokes is
likely to do something dramatic, surprising, and hard to
predict without a fair bit of thought.

One should always start design from the user interface, and
start design of the user interface with the user interface
for the most basic, simple, common and important operations,
rather than acquiring a user interface as an afterthought and
the result of a series of accidents.

 > 1. It's a FUSE program. The end. You mount a filesystem,
 > and then browse around. The UI is whatever your current
 > filesystem UI is.

Mismatch.  Browsing works, but manipulation has subtle
differences.

 > 2. There are clients and there are servers. There are no
 > gateways, introducers, WUI servers, helpers, et c.

Most of these things turn up as a result of the need to
pass capabilities around.  Clients and servers are only
sufficient if your client already has its capabilities.

So far no one has proposed a capability system wherein
capabilities are usefully and conveniently shared between
several people, which is a serious flaw since capabilities
are most useful when you want have interactions between
several people, and administration and setup always requires
passing some capabilities around.

You always wind up needing to pass capabilities around, and the
methods for doing so always turn out to be surprising,
cumbersome, and unexpected.  Typically you copy and paste a
long incomprehensible text string from some place to another
place.  No one has proposed a nice clean system for passing
capabilities around, except in the vaguest and most general
fashion.




More information about the tahoe-dev mailing list