[NTLK] Open Sourcing ATA Support (was Re: Experiencing Serious ATA 1.0b8-D Data Corruption ...)

From: Paul Guyot (pguyot_at_kallisys.net)
Date: Mon Oct 22 2001 - 05:24:42 EDT


>I don't want to put pressure on you Paul so I wrote this to you
>personally.

Oh you could have posted it to the list. I don't feel any pressure, I
think that folks on the list now know how I work. And actually, I
think that maybe the list is interested about your suggestion and my
answer (ok, I admit it, this is a bad excuse for spaming it again
with a big post :)

>Just taking a week or two off to think about it won't matter overall.
>You sound a little overworked.

Actually, I'm very tired partly because it's a side effects of
medicine I take against migranes. I'm going to see a specialist for
alternatives.

>I've not done programming in your league but I am aware that being able
>to step back and do other things can help me to gain perspective with
>difficult decisions.

It's basically how I work. The best ideas I have for technical
problems occurred when running or showering. This is the running and
showering cycles as Carsten put it.

[Sorry folks if there is that big quoted part, but you haven't got
the original message]

>This is such a difficult programming task have you considered this
>possible open source suggestion: I've just thought of it. Perhaps it is
>a viable business model :-) (feel free to forward/discuss this
>suggestion with list members if you are interested):
>
>1. Ask for expressions of interest to prepay not for the final code
>release but for the open source code (and set out an estimated price
>people would pay for the code release). Explain that this is to cover
>some of the costs of your work to date and potential technical support.
>We all know how much effort you've put into this.
>
>2. Decide what (realistic) revenue you want to make before releasing the
>code. Come back to users and make this offer: If users send me $x in
>total (average $y per person) then I will release the code under open
>source license z when it is ready (I'd suggest BSD or (L)GPL). If this
>doesn't happen you will not release the code and are under no obligation
>to return any money.
>
>If 2 succeeds then there may be at least one other person that could
>assist you with ongoing development. Plus you will have made some money
>without any obligation of ongoing technical support.
>
>If 2 fails then focus on a closed source release like previously (but
>again you are under no obligation to refund any money).
>
>[If this worked I would like to write a case study about this for my PhD
>as a potential open source business model].
>
>If you want to go ahead with this idea then I am right behind you. I'll
>help promote it to list members and I'll even pledge 100 Euros towards
>the revenue goal.
>
>After the open source release this would be the Newton community's
>driver. Far more testing will occur. Others may be able to solve
>problems. Once you release a fully functional version closed source
>version the serial number check may be cracked. That could be the end of
>a significant amount of your revenues (and how much time do you want to
>have to spend on trying to secure the product from crackers anyway?)
>
>What are the incentives:
>
>1. Honest users:
>These will want to pay for the driver. You will quite likely be
>supported either way you proceed.
>
>2. Somewhat dishonest users:
>Will obtain a crack of a closed source release if at all possible. But
>they may still consider paying for a source code release (since this may
>be the only way to get a fully functional driver).
>
>Think about the idea. There is no pressure because I have only mentioned
>it to you.

I thought about using an open source model before, and here are my
conclusions. But first, I'm not against open source at all, I just
consider it has pros and cons. I worked on several open source
projects including for the NewtonOS platform, and I have open sourced
some of my software.

About the revenue. For this project (and for any other Newton
project), I don't think that the shareware or whatever revenue we can
get (including some models you suggested) would cover the actual
cost. I know I already said this, but if I wanted to make money, I
wouldn't write programs for NewtonOS. I'm sorry to say it, but I
think this is true for any shareware author, on whatever platform.

And fortunately, I don't have any (well, not many rather) bills to
pay. It would be great if I could get new hardware with these
revenues, but that's all (Robert keeps me an eMate just for that
purpose). I had some hardware cost I wish I could cover (to repair
the two MP2100s I killed and for the CF card, but that's all). And in
the case where I really need money (for the moment, I'm looking for a
way to do a PhD in one of the top four US universities for CS),
shareware revenue will of course not cover it.

Anyway, I think that everyone who is still making money out of Newton
software (I'm thinking about Steve Weyer and John Del Pizzo) will
agree with that analysis. And this is positive for your proposition
because maybe open sourcing reduces development costs (but it very
likely increases technical support costs), but it's sure that it
reduces sales, even with asking contributions as you suggest (well, I
could open source the ATA driver and keep the transactional
persistent object store closed, I know a company which do that, but I
can't recall it's name, I think it sounds like a grocery shop).

I am not sure in your suggestion, if I should release the source once
it is ready, so it doesn't reduce development time, or if I should
release it now. Let's consider the latter, since the former doesn't
bring any advantage of open source. (BTW, the GPL is illegal on
NewtonOS as you have to include in source form the tools used to
create the software since they don't come with the OS, and I don't
think you have this, and the notion of library doesn't really apply
to NewtonOS, so you're probably screwed with LGPL).

The problem is that if I do release ATA Support under open source,
who will it benefit to? Other developers who will work on that are
either developers who already know C++ Newton programming or
developers who plan to learn.

In the first category, I'll put (sorry if I forget anyone):
* Simon Bell
* Laurent Daudelin (apparently learning with his own project)
* Gopi Flaherty (not sure)
* Harri Hohteri (also learning with his own project)
* Jonathan K. Knight (not sure)
* Sean Luke
* Hiroshi Noguchi
* Victor Rehorst (not sure)
* Konstantinos Xonis

Maybe I've forgot one or two persons (sorry again), but probably not
more. Are you sure it would be the benefit of the community that
these people spend some time on ATA Support instead of working on
their own Newton projects?
And for developers that will learn, shouldn't they rather work on
other projects which we all need (such as SSH/SSL, just to pick one)?

I prefer that Simon works on IMAP and other SimpleMail improvements.
I prefer that Gopi, Laurent and Hiroshi work on the Orinico driver
(and of course, ATA Support source code may help them in this task,
but probably less than if I directly give a hand - Laurent accepted,
no news from Hiroshi, Gopi seems to not have the time).
I prefer that Harri works on his own project which sounds really cool.
I prefer that Kip works on reverse engineering the NTK protocol and
other things with Konstantinos.
I prefer that Sean works on Waba.
I prefer that Victor spends the small spare time he has on a couple
of nice projects the community would benefit at large (including an
ethernet driver).

And I think that everyone here agrees.

Another problem is that although my code is largely commented (you
can't work otherwise, especially on a long period and on a big
project like this one), but it is mostly commented in French. In the
previous list of developers, AFAIK, only Laurent speaks French.

ATA Support is nearly finished (at least fully functional). It's not
like open sourcing something not finished to get support from other
developers. OK, I know I may seem to say "heh, too late", but I don't
think that working on that expecially with a big part of reverse
engineering and hacking would have been very efficient with the help
of other developers (and actually, I got proposition of help very
late, and I would have had to explain them what I have discovered,
how I think things work and so on).

BTW, who worked on Waba native code? On Hemlock? Who worked on NPDS
code? Who worked on Avi's Backdrop code?
In the first case, Sean had to put it open source because of the
license. But I don't think that things would have been much different
if it was a closed source freeware. The original release was made by
Sean and Steve (they worked together before open sourcing it), and I
don't recall anyone but I who worked on the code, and I don't think I
really improved Waba. I don't think that Harri and Victor's
contributions to the project by testing required the source code (and
I'm not sure they actually used it at all).
In the case of NPDS and Avi's Backdrop, their original developers
more or less abandonned them (for lack of time in both cases). I
think there are three developers who actually modified NPDS source
code (with two branches) and I think I'm the only one who has
modified Avi's Backdrop since Avi open-sourced it, although I've read
here recently that a lot of folks want a feature to have both the
meetings and the birthdays shown.

I'm very sorry about the Newton-developers community situation, and I
try to do what I can to improve it with the small amount of time I
have. But there are much more useful things than looking at something
like 30,000 lines of dirty hacks in C++ to learn NewtonOS programming.

Also you mention that ATA Support could easily be cracked. To be
honest, I wish it could, because it would mean that there would be
folks around who have time to waste on cracking a software (and
therefore probably also on writing some) and who know a lot about the
bowels of the Newton OS, including task to task communication,
NewtonOS multithreading, DES encryption and other nice things I have
discovered and not documented (yet, and only because of lack of time,
but I documented how to build dictionary packages and AFAIK, I'm the
only one building them). The protection scheme I have (partially)
implemented isn't meant to be perfect, just not worth EUR 50 to crack.

Finally, there might be some legal problem with open sourcing ATA
Support because I've done some reverse engineering to write some
dirty hacks and while it is allowed by the French law to reverse
engineer to interface with a software, it's probably not allowed to
publish some results in source form.

I agree to discuss that point or anything else (except about the
illegal aspect of the GPL, please let us not discuss it on the list,
it's just my interpretation and it means that I won't release
anything under this license on NewtonOS - and on other platforms, but
for other reasons).
I'm not totally closed to any suggestion (although of course I look
like a very narrow-minded person :).

At least, I posted a big message, and it's not technical :)
Victor, do we have stats on message length? ;)

Paul

-- 
Home page: http://www.kallisys.com/
Newton-powered WebServer: http://newt.dyndns.org:8080/

-- This is the Newtontalk mailinglist - http://www.newtontalk.net To unsubscribe or manage: visit the above link or mailto:newtontalk-request_at_newtontalk.net?Subject=unsubscribe



This archive was generated by hypermail 2.1.2 : Thu Nov 01 2001 - 10:02:24 EST