More Location Fixes.

Dirk Hohndel dirk at
Tue Jul 14 12:15:14 PDT 2015

On Tue, Jul 14, 2015 at 11:51:40AM -0700, Linus Torvalds wrote:
> On Mon, Jul 13, 2015 at 4:42 PM, Dirk Hohndel <dirk at> wrote:
> >
> > 1. empty location field
> > 1.1. no GPS data (so that means we had no dive site, I guess)
> > 1.1.1, user types in name, picks one of the completions
> > 1.1.2. user types in name, doesn't pick one of the completions
> > ...
> So quite frankly, I think the fact that 1.1.1 and 1.1.2 might be
> different is a big design mistake.
> I really think the very fact that you ask "what should. the semantics
> be" ends up being a sign that the interface is bad. Because even if we
> pick semantics that everybody agrees on, what does it mean that we had
> to ask that question? Really?

It means that this is complecated. And that we want to think about the
different cases and make sure that what we pick makes sense.

> To me, it means that any new user who wasn't part of the discussion is
> clearly *not* going to find whatever semantics we picked - whether we
> all agree on them or not - to be intuitive.

I don't think you can draw that conclusion. What we are doing here is that
we are breaking it down to make sure we understand the scenarios and we
ask ourselves what would be the reasonably expected thing to do in those

> So let me suggest something that is at least easier to explain than
> your "16 scenarios so far".
> I suggest that we really have two VERY CLEARLY separate cases:
>  - the user wants to type in the dive site name (with name completion,
> the same way we have text completion for buddy names etc etc)
>  - the user wants to pick a previous dive site that he/she has dove
> many times before.

No, that's not the distinction. Because both start with typing in the name
and Subsurface doesn't know which of the two cases it is.

> and I think we should keep those two cases separate, and not ever mix them up.
> So the two cases are:
>  (1) when the user types in a dive site name, whether it is a
> "completion" or not is entirely immaterial - all it does is set the
> name. Nothing else.
>      And by definition, since the user didn't pick an old dive site,
> the newly created dive site is a new unique dive site. This never
> changes any other dive sites, and it never changes the GPS coordinates
> fro this dive. You *only* edited the name for that dive.
>  (2) when the user picks a dive site from a list, the user picks
> *that* dive site (and that GPS information). We throw the old dive
> site away.
>      Now, we *might* want to warn and ask for confirmation if "throw
> the old dive site away" means that we actually lose the GPS
> information. The test for that would basically be: (a) does the dive
> site we throw away have GPS information, and (b) was this the last
> user of that dive site, so that it now is "orphan".
> But the important part - for me - is that these two choices are very
> *clear* and obvious. I think the thing I really really hate about the
> current dive site model is how that text entry field we have now does
> *both*.

And that is exactly the thing that I WANT. Because that's how users USE
the field.

> So I think *that* is the real bug we have now. The
> text-field/drag-down that mixes old dives sites with new is wrong. It
> mixes up those two choices, which means that any semantics we give it
> is automatically wrong and confusing.
> In other words, I really think that the "Location entry" text field
> should _just_ be a text field. Yes, it autocompletes, but even when it
> auto-completes it does nothing else. So it would be (1).
> And I think the button to the right of it is what should open a "list
> of pre-existing dive sites". So we'd have a clearly separate way to
> actually pick old dive sites, and this would be (2).

No, that is not what I want. That's a horrible user experience.

> So now there is clear separation, and no question about semantics. Add
> a tool-tip thing maybe to *explain* it, so that when a person hovers
> over the button on the right it says "pick an existing dive site and
> its GPS information", and when the user hovers over the divemaster
> text-field it says "edit the name of the dive for this dive, creating
> a new dive site".
> So the advantage of this is that it's fairly easy to explain, and it
> supports very naturally the whole notion of
>  (a) diving a lot at the same sites (perhaps a local one) for when you
> do *not* tend to use the companion app to get GPS locations (since why
> would you: using the companion app every time you dive at the Yellow
> House would just be crazy)
>  (b) you use the companion app, and you basically start off assuming
> that you'll just create new dive sites, but you may still want to
> auto-complete the name, and the workflow should *not* behave
> differently whether you download the GPS location first or last.
> So note how there are no "16 cases". There are two fairly simple
> cases, and they have clearly separate GUI elements. So there's never
> any mix-up between the two.
> Hmm?


This makes sense to you because of the way you see the location field. The
fact that in your design you can't simply enter an existing site without
hitting a button is just silly.

I drive up to Hoodsport. I dive two dives at the Yellow House, two at Sund
Rock. I don't want to have to click a button before I can pick those
existing sites which have correct GPS information. I want to just type in
"Sund" and get all the sites with Sund Rock in it (and as I scroll through
the list, the sites are shown on the globe - that patch will land in
master in a couple of minutes).
Then on the other dives I type in "Yel" and get my two sites that start
with those three letters and pick the one that I want.

Now I fly to Hawaii and go diving. I run the companion app. I am one of
the people who first download the GPS fixes before they start editing the

I go to my first dive. The globe rotates to the GPS fix. It shows the
existing dive sites near by. I start typing in the name of an existing
one. Completion list shows. It includes the distance from this fix (patch
for that will also land in master once I'm done typing here). I pick one
of them. OR this is a new site. So I just type in the new name and hit
apply changes and that's a new site.

Intuitive, straight forward, easy to understand. No extra buttons to push.
I don't have to know if I already have this divesite or not. Subsurface
helps me figure out if I do. Both based on name AND based on GPS fix.


More information about the subsurface mailing list