monotone-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Monotone-devel] Re: user-friendly hash formats, redux


From: Nathaniel Smith
Subject: Re: [Monotone-devel] Re: user-friendly hash formats, redux
Date: Fri, 3 Dec 2004 23:40:19 -0800
User-agent: Mutt/1.5.6i

On Fri, Dec 03, 2004 at 10:20:13PM -0800, Nathan Myers wrote:
> On Sat, Dec 04, 2004 at 12:16:08AM -0500, graydon hoare wrote:
> > Nathan Myers wrote:
> > 
> > >It's a little bit longer than the hex, but not badly so.  ...  Four 
> > >words gives you forty bits, extremely unlikely to collide, yet are 
> > >easier to recall (or say) than six hex digits that yield only 24 
> > >bits.  Although the choice of formats could be a command-line or 
> > >configuration option, I don't see any real reason to retain the hex 
> > >format.
> > 
> > there's actually an old branch njs put together to do this with a format 
> > called "bibblebabble".. the idea keeps coming up, but I've never really 
> > felt it helped much. it adds another way of referring to things, and it 
> > doesn't bring you any improvement in order or meaning, just helps with 
> > rememberability. I don't know how much we need to remember them, rather 
> > than just enter them, and copy-and-paste works just as well with either.
> 
> Bibblebabble, IIRC, wasn't actual words.  

This is a feature, not a bug.  The primary design criterion for
Bibblebabble was being as language-neutral as possible -- English
words really don't cut it there :-).  Assuming all your users speak
English is, well, rude.

> What need is there to use, or even _have_, a hex representation at 
> all, if a more human-compatible format works better?  To me, to need 
> to copy-and-paste is a nuisance.  I'd much rather type two or three
> three-letter words than touch the mouse or even the numeric row.  
> Three words gives me 30 bits, which would take eight hex digits to 
> match.

Bibblebabble gives 8 bits/5-letter "word".  Not quite as high density,
but pretty good.  And with tab-completion, the problem is more
recognition than recollection, and recognition for this sort of id
coding should be especially good.

>  Few can remember eight hex digits even long enough to say 
> or type, but three words is easy for anyone.  You might not find 
> yourself naming revisions over the phone, but many of the rest of us 
> certainly will.
> 
> The reason this keeps coming up is that the hex codes are probably the 
> most immediately intimidating thing about Monotone.  Those terrifying 
> blocks of hex codes probably keep more people away from Monotone than 
> any sort of unfamiliarity with its concepts, or any lack of features.  

Yeah.  I dunno if they're the biggest thing keeping people away --- we
seem to be doing okay getting new users right now, and if we keep
growing then buzz will tend to overcome such fears, I think.  But
there is a reasonable argument to be made that pronounceable
identifiers are significantly better wrt human factors.  A few weeks
ago I was talking to Derek on IRC, and we were talking about what had
happened in part of the revision graph, and I was getting completely
lost trying to keep track of 3-4 different identities at once; similar
thing happened another time, when I was trying to read out a
description of a merge from an email so I could turn it into a test
case.

I haven't been making any argument for Bibblebabble, though, because I
don't know how strong these human factor effects are.  "When the going
gets tough, the tough get empirical" -- my plan was to put together a
little app to test this, that people could run on themselves and send
me the results and I could make pretty graphs and figure out whether I
should make an argument or not.  Unfortunately, the little app has
been sitting half-finished for a few months now.

> I would also suggest inserting a period after the word where, at the
> moment, the revision is uniquely identified in the current state of the
> repository.  I expect it would usually appear after the second word
> even in big repositories.

Huh, that's a neat idea -- nonintrusive and simple.  Should be
relatively easy to make efficient, too, if we keep around a trie of
existing revision ids.

-- Nathaniel

-- 
The best book on programming is still Strunk and White.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]