Re: [NTLK] Open Sourcing ATA Support

From: Paul Guyot (pguyot_at_kallisys.net)
Date: Mon Oct 22 2001 - 17:15:39 EDT


>Of course. This is a labour of love. It's a market with only a small
>number of enthusiasts on what is currently a dead-end platform.

Just like Steve actually.

>So answer this: what would you consider reasonable revenue under the
>shareware model? If revenues were your only concern all potential users
>would have to do is match the discounted sum of those revenues.

I don't know. If money would be my primary concern, I would know.
It's just like Steve, I hope to be able to get new hardware with
shareware revenues, that's all.

>But now were are getting onto the red herring. First you outline
>existing people who could potentially help. Fine. It's a small group. It
>misses someone else that might enter the Newton community and be skilled
>enough to hack the driver but this has a low probability of occurring
>given the platform.

No, it seems that you didn't follow. The problem is not to be
skilled. There are a lot of very skilled either ARM programmers or
C++ programmers around, and I haven't included them in the list
because what you need is not generic C++ or assembly knowledge, it's
NewtonOS native programming knowledge.
Let's take another example, I haven't included Steve Weyer in my list
of developers who could actually quite quickly work on the project,
although he is nevertheless a very talented programmer. The reason is
that Sean told me he never did code in C++ for the NewtonOS. There
are plenty of things involved. Just like task to task communication.
I think, and I'll be happy to be wrong, that nobody knows how the
APIs I'm using in ATA Support work but me. Well, maybe Konstantinos
or Kip or Simon even have some knowledge of it they've discovered by
themselves, but I don't think they worked on these part. I've
indicated some stuff to Laurent and sent him some source code, but
that's all.
There are other examples, such as all the MacApp inherited classes
I'm using in my code (CDynamicArray, CList, etc.). They're not hard
to understand, it's true. But there are things that aren't written
anywhere that you can only recollect from little pieces. This is what
is required to work on a project such as ATA Support.

>That's wrong. Users get the benefit of an open source ATA driver for all
>time. They can buy another second hand Newton and the driver will just
>work. No need to obtain another license code.

Here, it's just like releasing the software as freeware. You talked
about honest users, so you admit that honest users probably won't
donate the equivalent of two licenses if they have two Newtons.

>Development costs won't be any higher if you open source the driver.

I disagree. But it's probably because you don't know what I'm doing
with all the software I wrote on my hard drive. Maybe you know Harri
Hohteri, he's not really of the imbecile kind, on the contrary, he's
quite clever although he seems quite fearful with maths equations ;)
Nevertheless, with my software to build a dictionary from a word list
and the bowels document I wrote explaining the thing, he wasn't able
to build the finish dictionary, and I spent more time giving him
explanations than building it myself. It's not his fault at all, it's
fully mine. The best would be a totally functional software. That's
actually why I haven't released it, and giving it to Harri was a
test. I don't want users to ask me for help because they've got
trouble using it. This is typically what I fear if ever anyone wants
to give a hand for the ATA Support project. It won't benefit the
community at large.

>You don't have to talk/give time to people that are trying to demand your
>attention.

But the thing is that I do. I'm probably stupid to do so, but I can't
help. I feel like I owe things to the community and to other
developers. I wouldn't know all I know and do all I do without them.
I can't leave a message unanswered if it requires an answer (if ever
I do, it's because I get too many mails and I forget them in my huge
Eudora Database).

>You've tried to show how open sourcing the driver could divert other
>Newton developers from what they are doing. I suspect you're not giving
>them enough credit. I suspect they will tell you that they are capable
>of deciding for themselves whether they may wish to look at the code.

No. I shouldn't have worked on various projects and rather focus on
ATA Support if we only consider the benefit of the Newton community
as a whole, this is only what I meant. Additionally, putting someone
in the train now will be a big waste for all the reasons I've
explained so far. ATA Support is nearly finished, it's not the moment
to take someone to help me.

>We have user benefits. We have potential development benefits (they are
>at least not negative). The other important issue is your revenue
>stream. So again, what amount would make that a non-issue?

No, we don't have user benefits nor development benefits, I disagree.
If I open source ATA Support, it will be a waste for the users
because of all these other projects I mentionned which will get less
time.
It will also be a waste of time for me which is what I value most
(and not money as you seem to think). I don't want to (a) provide
support for bits written here or there (including answering: no, this
part has been written by X, see with them) and (b) explain X or Y how
the software works and how they can work on it.

>I don't. I think you're looking at this as a zero sum game.

This is the case when we're talking about time. Non zero sum game are
only based on money or other things and we consider only a part of
the system (if we consider everyone and having money linearily, it's
a zero sum game too). Here I'm only talking about time.

>If someone helps you it doesn't necessarily mean they will stop
>their other work.

No. But it would be so much time not spent on other projects of their
own, and so much of my time wasted to explain them why and what I've
done (or just to publish the source code or whatever).
I have what you called "ethics", i.e. I value above all to do what I
said and be responsible for what I thrown away to the internet or
anywhere else; presently, I really feel bad because:
(a) John Skinner cannot serve web pages from NPDS
(b) a user I forgot the name of spammed me every day for a Brazilian
dictionary I finally built but I haven't released it -- and he
stopped spamming me, so I should release it
(c) there is this project with Michael I haven't worked on for weeks
(d) two users reported problems with LearnFast I should work on
(e) Jochen wants me to put the DCL in a CVS (the DCL is an open
source project of mine he plans to port to Java)
(f) I should port Xerces for Grant
(g) the remaining bits of the ZLib for Steve
(h) the NIL project for Simon and Grant
(i) the Waba sockets work more or less but this definitely isn't a
correct final situation
(j) there are also all these software around I've published with bugs
or without a decent documentation (such as alt.rec...., DictMgr) and
I probably forget one or two things (I hate to make lists of things I
have to do, it depresses me). And I'm just talking about
closely-related Newton projects

Don't tell me that open sourcing solves these problems. NPDS is open
source, LearnFast is or used to be (ok, I forgot (k), all these
software I planned to (re-)open source I haven't because of lack of
time), Waba is, the DCL is and I sent the source to Jochen, Xerces is
open source, I sent the NIL source to Simon, the ZLib is open source,
etc.

>You've made loads of other contributions to the Newton platform.
>Imagine if you were free to choose to work on other things. Someone
>may come up with a
>solution that you were stuck on, freeing extra time.

Except that in the very case of ATA Support, it cannot happen soon,
and the priority is nevertheless make it available as soon as
possible. By available, I mean reliable and supported, not just
thrown away without limitations.

>Anyway, I see your contributions to Waba every time I click the about
>box. I doubt "that everyone here agrees" that you shouldn't have
>contributed because "I prefer that Paul works on his own project." When
>it's put that way can you see how it just doesn't make sense?

Sean told me to work on ATA Support, and he was right, i.e. for the
community at large, my contribution to the Waba project is not worth
time I would have spent on the ATA project. This is what I meant with
"I prefer".

>OK. With my rudimentary Python skills I might be able to write a script
>that takes each comment, submits it to a translation engine, and inserts
>the English translation in brackets (best to keep the original French
>comments in place). It wouldn't be perfect but it would probably be
>understandable. Finding the appropriate engine interface would be the
>hardest part.

LOL. I've tried several comments with babelfish, and got surprising
results. The hardest part would be that my comments, even when
they're in English, when I code for myself are cryptic as Victor said
(full or private jokes, gallicisms or germanism, a mix between all
the languages I more or less can pronounce), but let's say that your
solution would work. It would nevertheless be another bunch of time
wasted.

>There's a chance someone might be able to help. And if not one person
>helps in the slightest what would you have lost? (you would still have
>received some money from users wanting a fully functional driver to be
>released).

If nobody makes modifications to the software, all I lose is indeed
monetary contribution at first sight. But there is something else
I've noticed when writing a software for EIMS, Filtre & Go. I
released it as unsupported freeware, as I wrote it for a friend.
You definitely don't have the same relationship with users depending
on the fact that a software is free or not. For the moment, I haven't
released any shareware (all I have released are freewares, open
source software and commercial projects for single customers).
For a software requiring a technical support like ATA Support (and a
solid one, I haven't received as many as reports as I did before,
including people showing discontent - I've received kudos only very
recently), I prefer to have a shareware-kind relationship. Users tend
to behave like they bought the software with freeware, including if
you say that it's not supported at all. This is the key reason why I
didn't want to release ATA Support as free when I've started to work
on it.

>A fully functional and tested version may be a little futher away than
>you expect. You may be the only person in the world who has tested the
>ATA driver with full sized stores.

No, I haven't done that, actually not recently. The reason why I
don't allow more than 4 MB is that I don't want to come and explain
to someone who lost data that I can't do anything for them. I get
mail from people who lost data on their linear cards, and I really
can't do anything for them neither. It's the kind of things I hate to
say.

>If securing the binary was no longer a concern we could start beta
>testing the "fully functional" version.

The fully functional version doesn't exist so far. The only way to
create partitions larger than 4 MB is by connecting NTK and calling
some internal functions.

>You would instantly be able to throw away beta testing the registration
>code. The binary would be smaller.

How much? I don't think this is an issue here. ATA Support is quite
small already, especially for a software allowing cheap storage.

>I'm not saying your decision was wrong. It was very specialised
>technical and difficult development.

What I mean is that it still is.

>We now have an open development platform for the Newton.

Er. Sorry, I don't get the interest of having it open source for Java
users except that they can help fixing bugs. I don't understand what
you put under the concept of open development platform. NTK is quite
bug free and fully documented. I'm not a regular NDE user at all, but
I think it's quite bug free as well. Idem for LittleLisp, Charm
(well, I only recall the old name), etc.

This last statement seems to me like a déjà vu meaningless
open-source propaganda statement. Additionally, open doesn't apply
totally to Waba. Sean developed some APIs specific to the Newton
version, but he cannot entirely change waba APIs, because he has to
support Waba applets running on other platforms. In the end, it's not
totally open. Not much more than Sun JVM or Apple's MRJ which are
closed-source AFAIK.

> > 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.
>
>Nah. They just put you in the credits for the hell of it :-)

Wait. I haven't said "I don't think I really spent time on Waba". I
said "I don't think I really improved it", there is a fair
difference. Sean put me in the credits for the time I've spent on the
software, because he knows how to manage a team of developers, if
someone puts some effort somewhere, you should give credit to him.
This is totally normal, and of course, I wouldn't have liked it if I
hadn't been there. I think it's the same for Victor and Harri
(although by testing, I think that they did serve Waba more than I
did).
Just like I feel so grateful to beta testers that I added them in the
credits for ATA Support (in addition to everyone who made this
software possible, for very different reasons, actually).

>And with the source perhaps someone will add that feature some day.

With the source, I've added improvements to Avi's BD, and I thank Avi
to have open source it.
But here it's totally different. Avi doesn't have time to work on his
backdrop. He doesn't even have time to post the versions I sent to
him or just change the webpage to say that the software moved, he
just has the time to tell me by mail that he's sorry he doesn't have
the time to do so ;). Same for Matt. Since I've coded for NPDS, Matt
did help by sending mails but didn't code a single line. He sometimes
restart his tracker, he did fix some bugs in it, but now that
Victor's tracker is solid, he hasn't done anything in that direction.

I think that's why Avi released the source, and I encourage anyone
who leaves the platform to do the same (by leaving the platform I
mean no longer supporting the software). Personally, when I'll leave
the platform (I won't be the last one because I hate turning off the
backlight), I'll probably open source my software.

Open sourcing a project such as ATA Support which is a little bit
like my baby could have this effect. I could consider that well,
since I open sourced it, I don't owe anything to anyone and now it's
up to you to make it work. I should say that sometimes, I'm working
on bugs because I think that if I don't, nobody will.

Anyway, my point here was that this feature has been requested for a
long time. I discussed it with Avi who said: 'no, it has to fit on
1x0 screens', and that's why I haven't implemented it (at that time,
he was still doing development on the software). I changed my mind
because I got additional requests (actually from Victor) but nobody
(including Victor) did implement it yet. And this, anyone with a
little NewtonScript knowledge and a will to learn what they're
lacking can do it. Did anyone do it? No. It's more than 22 months
since Avi's Backdrop has been open sourced. Do you think that, in the
case of ATA Support where as I said, only half a dozen of developers
currently have enough knowledge to be able to make modifications
without a long learning time of NewtonOS bowels will do it? Let me
doubt it. We won't have just a Nick's-Test-It-10 KB/s transfer rate
(twice what I got today with my Hitachi) if I open source it (and I
no longer work on it, that is) in the next 60 days, and nevertheless,
this is probably one of the key feature that is requested by
everyone. I'm not ready to try the experiment because the loser will
be the community as a whole.

>OK. You've dazzled me with your protection mechanisms.

My protection mechanism are based on very simple mechanisms used
everywhere in ATA Support.

>But to say it's "just not worth EUR 50 to crack" omits that people
>routinely crack software that is a lot cheaper.

Indeed. But experience shows that hackers finally give up if the
protection requires too much time to be cracked. They usually don't
buy the software nevertheless. (I've been working on protection
schemes on MacOS).

>Do you want to spend time on finishing the protection implementation?

Yes, it's part of the fun of the development work. It's the kind of
things I discuss with my father (who definitely has more psychopath
ideas than I have in that matter, such as dynamic linking of the code
at runtime) and I enjoy it. You want to prevent me to do have fun?

>Isn't this the reason that no-one has been allowed to try a fully
>functional version?

No. I wrote it before, the reason is that the full version isn't
finished yet. I've been sending some versions compiled without demo
to folks here and there, but they weren't fully functional. (and
anyway, with the bugs out there, nobody wants the full version I
guess, at least, I wouldn't want the full version if it can corrupt
my data).

>I can't imagine a situation where you would be actually affected
>(Apple going after an Apple Newton developer who releases a driver
>for a platform they
>abandoned years ago? Highly, highly unlikey. And one of the dumbest
>public relations moves Apple could ever make).

They've done stupid moves, but what I'm more scared of is that they
scare my hosting ISP, which will mean troubles for me. We all
remember troubles Victor had. That's why the 710031 system udpate
I've made is only available on my website as an updater to apply to
Apple's system update. Additionally, I'm (or I try to be) highly
consciencious of law. It's not because nobody gonna catch me that I
will break the law. Additionnally I have two reasons to do so with
intellectual property protection, it's that my own work is protected
as well.

This is something some open source apostles don't understand. I'm
responsible for the code I write but I also own a copyright
(including rights which can't be transferred) on it and it's an
intellectual creation of myself. I value this right a lot. Not that I
don't want everyone to copy what I've done (in some cases, I
encourage it), it's just that I own what I created and at least a
part of the rights on it, unlike a manual worker, even if I'm
exploited (although I've only really been exploited when I served
beers for GBP 1.2 per hours in a London pub).

>I think the sweat and tears you have put into your source is your speech
>and you should be free to be able to speak it. But free speech rights
>for programmers is a somewhat controversial proposition.

FYI, free speech put as a universal ideal as you do is a very
anglo-saxon notion.

I should say that I've been hesitating a lot with your suggestion,
although I haven't been seduced more than a seconds with your open
source business model, I just thought about open sourcing the project
for free.
I've asked three friends & Newton users (well, the fourth said "I
don't know much about open source") what they thought about it, and
they all said that I shouldn't open source this project since I'm
still working on it and supporting it (indeed, open sourcing in that
case would probably mean that I'll feel less responsibilities on
having it finished and rock solid). Only one said I should open
source when I'll abandon it, but I think they all agree with that
point.

If I take your original message, you suggest open sourcing (with your
business model you want to test with your PhD) because "This is such
a difficult programming task". The main answer is that indeed it's a
difficult task, but I almost finished it. I think I was the only one
mad enough to undertake such a project with such a goal -- Hiroshi,
who's the only developer I know mentionning the possibility of an ATA
driver, clearly mentions that it wouldn't be for storage like linear
stores but there would be some exchange thru files required. Well,
there is also this thread on Smaller about Iomega Clik drives
(http://talk.smaller.com/Forum1/HTML/000847.html).

I doubt that open sourcing it at the beginning would have helped, (I
remember the MP3 project failure, and I'm not particularly proud of
it) and open sourcing it now won't help neither from my own point of
view and from the point of view of the community (if we take out that
they will have it for free if I do open source it) for all the
reasons I've mentioned.

But I'm not closed at all to open source when it could benefit
everyone. The DCL, as soon as I finished the verbose presentation of
the license it will be released under and I'll have submitted it to
the OSI, will be publically open sourced. And I expect open sourcing
it to benefit to everyone because it complies to (nearly) every
single argument you gave.

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:26 EST