Ratio Computers loves your work!

Dirk Hohndel dirk at hohndel.org
Sat May 26 09:46:51 PDT 2018

> On May 25, 2018, at 10:17 AM, Linus Torvalds <torvalds at linux-foundation.org> wrote:
> Hi Riccardo,
>   I suspect Dirk will want to say more (and more authoratively), but I'll
> put in a few early comments.

I'll give my perspective - mostly to point out where it is slightly different, I guess...

> On Fri, May 25, 2018 at 7:59 AM Riccardo Brama <
> riccardo.b at ratio-computers.com> wrote:
>> Since January I've been hired at Ratio Computers as their new CoE
>> and I like so much your work I'd love to see our dive computers
>> completely supported.
> We love seeing involvement from the dive computer manufacturer, it tends to
> make many things easier for us too.

No doubt that is true.

>>     We would love to tell our customers the application we sponsor for
>> PC interface is Subsurface instead of our current, and outdated,
>> Divelogger 4 application (running only for Windows and Mac).
> So just on a practical side, if you do that I do think you need to have one
> engineer in-house that at least part time maintains a subsurface binaries
> for  you.
> I say that simply because you'll want to have your own "official"
> subsurface binaries that you either ship with the dive computer, or that
> you simply link to in documentation etc. And while hopefully the normal
> subsurface releases "just work(tm)" for that, you really want the first
> customer experience to be with a binary that *you* guys provide and that
> has been Q&A'd and tested with the dive computer you ship.
> Now, the above doesn't necessarily take a lot of actual engineering: it's
> mostly making sure you have your own binary, and that you've done basic
> testing and quality assurance on it. You'll want to ship a basic manual
> etc, and again, we have one, but you'd want to make sure that you ship your
> own version if only to make sure it's available from
> http://www.ratio-computers.com, and maybe have somebody go over it.
> We obviously try to not break our binaries, and we obviously do have
> manuals etc that we provide, but I really think that if you want to replace
> your old binary, you'll want to make sure that the details are right for
> you. Maybe you want to customize the dive downloader to pick the Ratio dive
> computers by default, maybe you want to check that the Italian translation
> is up-to-date and good (it hopefully is, but you would want to verify).
> I assume the above is all obvious and you've already discussed it as part
> of the whole "if we do this, we need to ..." internally, but I wanted to
> just state it explicitly. We do *development*, but there's that step
> between development and productization that you'd need to be in charge of.
> That said, I'd hope the productization work also ends up resulting in some
> development that we'll take back, so it's obviously not one-sided.

All this is true. But over the last few years the one thing that I have learned
is that the expectations for a "product" (be it a desktop app or a mobile app)
are fundamentally different from a "project". And Subsurface is decidedly a
project with no interest in being anything else.

We don't take donations because it's too much work, but also because I
(and please note the change of pronoun here) absolutely do not want to
ever be in a conversation of "well, I gave you money, so I expect...". And
while I'm sure that most people would never dream of doing this, the amount
of emails that I delete and people that I end up blocking because of their
attitude of what they believe they are owed from this project... it's simply 
not worth it.

So: I have no problem with someone else using Subsurface for whatever
purpose they want (as long as they comply with the license of Subsurface
and the components that we use - i.e. make the full source code of the
version that you ship available to any user, among other things). 
But I politely request that you change the branding and that you provide 
your own support. You can call it "Ratio-Divelog (based on Subsurface)" or 
just "Ratio-Divelog". But please don't call the thing that you ship "Subsurface".
And please don't point your customers to us for support.

We've had one dive computer manufacturer who did exactly the thing I
didn't want. They told their customers to use Subsurface, sent them to us
for support, and then got angry with us when we didn't help them in a 
timely manner. I ended up stopping my work on support for that dive

> Also, practically speaking, you'd want to distribute a few of your current
> dive computers to some people. Most notably to Jef Driesen who does
> libdivecomputer, but it would probably be a good idea to send a couple to
> core subsurface developers too, just to make sure that they get more
> testing during development. That said, I think (again) that as part of
> productization, you should have somebody in-house also keeping up with the
> development tree (even if you may ship some older version to customers) to
> just again have some actual in-house tracking that things are going well
> for you in the development version too, and notice if something you rely on
> breaks.
>> Nevertheless up to now Divelogger is the only application allowing to
>> update our dive computers firmware, a thing we would love to see in
>> Subsurface too.
> Right now we support firmware updates only on a very small set of dive
> computers (some OSTC models), and it needs both libdivecomputer and
> subsurface support to add, and it needs a *lot* of documentation. It also
> really needs some way to test, which isn't just hardware, but two firmware
> images that you can switch between to test updating over and over again (so
> if you have some check for "only update to a newer firmware" in the dive
> computer itself, there would need to be some way to override that).

And this is not something that I have any interest for the community of
developers here to take on.

>>    Unfortunately, due basically to lack of free time, I
>> cannot add that feature to your code by myself: I need someone who would
>> like to do that. So don't hesitate to let me know if there around
>> someone is willing to implement additional features to support all the
>> Ratio Computers features. I'll share with him/her all the information
>> he/she needs.
> Note that due to being open source, the firmware update mechanism itself
> will inevitably be public. Documentation on how it works, and things like
> keys to maybe *generate* firmware updates (which might be needed as part of
> the "some way to override that" above) can be private, of course. Although
> hopefully as much of it as possible can be public.
> I'm not sure who would be able to do the work. Most of the core developers
> have real jobs not really connected to subsurface and are doing subsurface
> stuff on the side with not necessarily time for specific feature unless
> they are personally motivated.
> The obvious person to ask would be Anton Lundin who did the OSTC firmware
> code, but I'm not at all sure he'd have time or be motivated.

I don't like pointing companies at developers like this.
Worse, I actually don't like companies saying "hey, look, we'd love to use
your software, but here are the things you need to do for us in order for
that to work for us".

So yeah, this is where Linus and I disagree.

You want firmware update support? Go ahead, implement it, publish
the sources (see above about the license requirements), and we'll decide
if we want to include this.

But no, we won't do this for you.

>> P.S. I've not seen any way to sponsor the Subsurface Project with
>> donations... haven't you thought about it?
> Dirk has at least historically felt that donations are more pain than they
> are worth, and that actual patches and engineering resources and
> documentation - and access to hardware for testing - would be more
> appreciated.  Part of it is probably that he (and I) have real jobs that
> pay well, and part of it is simply that this is a hobby and the main
> concern hasn't been money, but lack of time and resources.

See above. I actually feel a lot more strongly about this than what Linus
has written here. I will not accept money for Subsurface. I provide the
services that I provide at my own cost because this is fun and it's something
I do to stay sane (for some definition of "sane"). I will not ever allow this to
become something that anyone else feels they have the right to demand
from me.

So go ahead, support us with engineering. Or donate to the Micronesian
Shark Foundation. Or don't.

> The subsurface page has a link to

Yeah, that was broken. Fixed now.


More information about the subsurface mailing list