great progress on dive site handling

Dirk Hohndel dirk at hohndel.org
Sat Jun 27 18:32:00 PDT 2015


On Sat, Jun 27, 2015 at 05:42:13PM -0700, Linus Torvalds wrote:
> On Sat, Jun 27, 2015 at 5:01 PM, Dirk Hohndel <dirk at hohndel.org> wrote:
> >
> > This has been rewritten since last week.
> 
> Dirk, I have tried the new thing. The "obvious thing" is as broken as
> it ever was.
> 
> The sane and natural thing DOES NOT WORK.
> 
> What you need to do right now is insane.
> 
> Let me walk you through it.
> 
>  - start subsurface with a dive that has no dive site info
> 
>  - use ^G to download GPS location. This works, but now you have a
> dive site called "Auto-created dive 1439" or something like that.

Why would you do such a thing. You download your dives from your dive
computer. You enter the names of the dive sites. Then you download the GPS
data. What is the semantic of loading GPS data for sites that don't have
names?

But hey, you want to do it backwards, I'll play along.

> So far so good. Things work and everything makes sense to me. So now
> you just want to fix things up and name it correctly.
> 
>  - So you select the dive and fight the Marble globe zoom until it
> actually shows the dive site, and recognize the place or see another
> dive, and realize that the dive site name is "Fish Rock".
> 
> Ok, so at this point, things actually still work really well, apart
> from the Marble oddity. It's not just the zooming, if you had that
> dive selected before, the globe didn't move, I think. But that's
> probabyl a marble thing.

Did you wait a couple of seconds? If you switch between dives with and
without GPS location we currently have this stupid 2.1 second wait before
we adjust zoom. I'm trying to work around this but since marble doesn't
tell me when it's done "flying" this is a pain in the ass.

But other than that it should show you the right location. If it doesn't,
it's a bug and I'd love to know how to reproduce that.

> But now the real problem occurs, because:
> 
>  - the *natural* thing to do is to just edit the dive site name. That
> actually seems to work, and even gives you auto-complete on the names,
> which makes you go "wow, that's convenient", and you are happy, and
> save the end result.
> 
> EXCEPT THAT DIDN'T WORK. Exactly like Miika described, and exactly
> like it was when I was in Maui.

Yes, because you are PICKING ANOTHER DIVE SITE.
If you want to edit the current dive site, you need to click edit and
change the name of your dive site.

> Yes, the new thing works when you press the odd icon on the right. And
> I do agree that that's a huge improvement functionality-wise (you now
> *can* get subsurface to do the sane thing), But it's not the natural
> interface.
> 
> And yes, I understand what actually happens when you start editing the
> dive site name. It actually picks a totally different divesite. I get
> it. But that's not how it appears to the user.
> 
> My gut feel is that in order to avoid this very natural confusion (and
> I say it's natural, because I did it, and Miika clearly did the same
> thing, and either that means that it's natural, or it means that Miika
> and I are some kind of mental twins) would be to simply:
> 
>  (a) make the "Location" string be non-editable entirely, so that the
> "natural" mistake just can't happen, and it also is visually clear
> that there isn't anything you can modify there.

Yes, you can modify something here. You can pick your divesite.
You just cannot rename the current dive site which for some reason you
think that you are doing.

>  (b) to change the location, you *have* to press that edit button, and
> then as part of that "Dive site edit" popup, you'd be able to either
> edit it (like now) or choose a new from a drop-down.
> 
> at that point, I think the dive site management would actually work fairly well.
> 
> But there might well be other options.  The above sounds like a
> reasonably minimal change.

I guess we simply and fundamentally disagree on what a reasonable workflow
would be. And you would never, ever, EVER think that what you propose was
reasonable in this scenario:

You have a dive site named Fishbowl, but you don't have GPS data for it.
You have a dive site Fishpool that has GPS data.
You're on a dive at Fishpool.
You think "hey, that was Fishbowl, wasn't it" and switch to that. Now
Fishbowl has Fishpool's GPS data.
WHAT THE FUCK?

No, the only reason why you think this should be allowable is because you
have the temporary site name. And because you see that this is just a
placeholder name you think you should be able to just edit it. And instead
of editing it in the dive site edit menu you want to do that right there
where you select the dive site.

The location field is no longer a name of where you were diving. It is the
name of a dive site that is managed independently of this individual dive.

And I think that's the crux where all this goes wrong. You treat this just
like it used to work in Subsurface 4.4 and earlier. I don't like that we
have dive site handling but that's what several people were vocally
advocating for. But if we do that then we need to treat dive sites as
first class citizens. And that means NO, you can't just type in a new name
on a dive and somehow think that this changes the name of your site. It
picks a different site. Period.

But having said all this, I get it. I understand that you, just like me,
find the idea of separate dive site management just a silly distraction
and an additional indirection that you don't care for. I certainly don't
care for it at all. But that's what we have.

So the solution (c) that I will investigate, so that people who decide to
FIRST download their GPS data and THEN add the names to their dive sites
can have what they appear to think is the obvious workflow, is to look at
the dive site that you were on before you were switching to a new dive
site by entering a name and if you 
(1) were on a dive site that was just an imported GPS fix and
(2) are switching to a dive site that has no GPS fix or to a new dive site
since you entered a new name
then we do the wrong thing and interpret this as just editing the name
(respectively copy the GPS fix if the name exists but has none).

I think this creates a far more inconsistent and illogical workflow / UI
than what we have now, but clearly I'm wrong since both you and Miika
appear to think this is how it works. Must be a Finnish thing.

What I will not do is make this UI even worse by preventing people from
just typing in the location field to pick an existing dive site.

I went to Hoodsport this week. Downloaded my dives, typed in "Y", "e" and
it offers "Yellow House". I pick it and I have the dive site set,
including the already existing GPS data.

I will not give up on this obvious and logical workflow just to accomodate
that you are confused by what it means to pick a different dive site by
entering it there.

And just to drive home my point... if you have an AL80 that you used and
you type in AL72... you don't expect that to rename the AL80 to AL72,
right? You expect that to pick the AL80 instead.

If your dive was with the buddy Linus and you change that to say Laura.
You don't expect that to rename Linus to Laura (and change that in all of
your other dives with Linus). You assume that this means you were instead
diving with a different buddy.

That's EXACTLY what happens with the location.
So if your location was Fishpool and you type in Fishbowl, you switched to
that dive site. You did not rename Fishpool to Fishbowl.

/D


More information about the subsurface mailing list