[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: NadaNet 3.1 Released



Jonno Downes wrote:
On May 28, 5:36 am, "Michael J. Mahon" <mjma...@aol.com> wrote:
My hope was that many Apple II enthusiasts,
having more than one Apple II anyway, would be enticed by the quantum
leap in functionality and the low barrier to entry to jump in and start
experimenting--with parallel computing, client-server computing, or
what-have-you, all in Applesoft.

Apparently, I was wrong.  Whether it's because it's a "programmer's
platform" or because it requires some simple adapters for the game port
(or maybe because I'm no good at marketing ;-), very few people have
actually hooked up a NadaNet.  (Or maybe they have, and are having
great fun with it in secret.  ;-)

Or maybe very few are interested in experimenting with network parallel
programming and client-server computing on Apple II's--which seems
strange, since it's the modern computing paradigm (clouds, anyone?).


Mike,

I'm probably as close to someone can get to being your 'target market'
without actually being a convert (i.e. I have a number of A2s,  and
have fun developing network apps on the C64 and A2), and given I've
come close a number of time to experimenting with NadaNet but never
have, I thought I'd explain why I think that is.

Basically I think for someone (or at least for me) wanting to do
anything client/server related on an A2, there is less 'friction' when
using IP over ethernet. I suspect for most of us, time is the scarcest
resource, more so than $ or even RAM, and doing something with
ethernet means you get a bunch of features that speed up development:

- cross development environments (e.g. cc65)
- able to test under an emulator
- able to use a modern PC dev environment for the server side
- able to use a protocol debugger (e.g. wireshark) both in a real and
an emulated environment
- 'known good' servers to test against

So if you were after some ideas for how to get more people into
NadaNet, here's a couple, with no consideration as to feasibility, and
no over at all to assist with implementation ;-)

- a PC<->NadaNet bridge (preferably a usb dongle)
- support in emulators - this probably would require tunnelling
NadaNet via IP between emulated devices
- some public NadaNet servers (would probably also require tunneling
NadaNet over IP) that people can hook up to, say a file server or chat
room.

I realise of course that none of the above is playing to NadaNet's
strengths, but if you had those things in place, I think you'd end up
with a larger pool of people experimenting with it, some of which
would then go on to do things more akin to the original spirit of
NadaNet.

Thank you for your reply.  I was hoping to hear what obstacles might
exist to people using NadaNet, and you've certainly done that.

I should begin by being more explicit about the "spirit of NadaNet".
I suppose I should have qualified my aspirations for experimenting with
parallel and client-server computing by adding that this was never
meant to be "practical" for "modern" computing in any way.  (I suspect
you already know that.)  So making it participate with any existing
clients or servers was never a goal (in fact, it would be so complex
that it contradicts the goal).

Instead, NadaNet's protocols were designed for streamlined simplicity
to run on a small machine, and use practically none of them, so that
most of its resources would be free for applications.  As you've no
doubt noticed, it is approximately 2KB of code--that's *it*!  It is
substantially smaller than DOS, ProDOS, or Applesoft.

Much of this simplicity is obtained by assuming that all communicating
machines are on the same physical network, seeing the same signals at
the same time as all other machines.  A NadaNet router or even switch
was never planned and not designed for.  The protocols are all real-time
protocols and are intolerant of what we today call "network delays",
so bridging NadaNet to an IP network is not really possible.

In fact, IP is a *huge* thicket of complexity in comparison to NadaNet,
and if anyone prefers to jump into IP networking to experiment with
networking, I applaud them, but I do not join them.  That would be
work, not play.  ;-)

The world is full of machines that speak IP over Ethernet, and it
certainly doesn't need me to add Apple II's to that list!

NadaNet was designed in the spirit of the Apple II:  all the
documentation and software required to fully understand and exploit
it can be held comfortably between two fingers.  ;-)

It is not intended to offer services to non-Apple II's, nor does
it even acknowledge that other computers exist.  ;-)  It, like
Applesoft, provides a fully interactive environment for communicating
with programs on other Apple II's.  Of course, those programs can be
developed in any way that the user desires, including cross-development,
but the native development environment is supported and expected.
(All of my projects are developed on a real Apple //e, with a trip to
an emulator only to generate .pdf listing files.)

It is a fully polled network, which means that if a machine isn't
actively listening at the moment, it isn't on the net!  All protocols
retry for a user-set amount of time, to allow for a rendezvous with a
machine only intermittently listening, though careful design eliminates
the need for most retrys.  The Message Server provides an "always
listening" post office for storing and retrieving queued messages,
which allows programs to be written that communicate asynchronously
without much "listening".  The simplicity of this approach in hardware
is apparent, but it means that applications must consider how their
communications will be organized.  All of this is profoundly different
from "modern" networking, but quite usable nonetheless.

One common way of organizing a computation is by having a "coordinator"
machine offering work to "worker bees" and receiving results from them.

A client-server protocol may use the Message Server to queue requests,
with the server returning results directly to the client machine.

I still really enjoy sitting down and programming in Applesoft or
assembler, running at 1MHz (or sometimes 8MHz ;-) and immediately
seeing this venerable hardware do my bidding.  I guess I'm getting
to be in the minority, more's the pity.

Unless something is happening too slowly, *speed is not a benefit*.
And that goes double for software development, where cooling my
heels in thought is often the most productive part of the day!

I enjoy playing with my systems so much that speeding things up
actually shortens the fun.  ;-)  Of course, making code as fast
as possible (on an Apple II) is part of the challenge, and making
the infrastructure faster enables more elaborate higher-level apps.

Of course, I'm retired now, so my time is my own.  I have no deadlines
except the non-metaphorical one.  ;-)  So by designing Nadanet for my
own amusement, I may have incidentally designed it for those who,
like me, enjoy "wasting" our time enjoyably.  (Maybe my target market
is fly fishermen who love Apple II's.  ;-)

That said, a function for promiscuously capturing network traffic is
also included, though the interactive analysis program for the trace
has not been fully developed (I simply haven't found it necessary).

I do have (and use) a client program that inserts a server into a
remote machine and provides a "remote console" for it.  This has
proven helpful in working with the AppleCrate, since most of its
machines have no keyboards.  It would not be as useful for machines
that had their own keyboards and displays.

In short, my Apple II activities are quite cut off from the modern
computing world, and I like it that way.  I have modern machine that
I use for "practical" purposes, and Apple II's that I use for fun.
(The closest they get is that they both see the same CF card from
time to time.  ;-)

At the risk of rambling, I hope I've clarified my goals, though in
the process I may have also revealed how out-of-step I am with the
current A2 community.  ;-)

Jonno Downes added:
> PS - I forgot to say NadaNet & AppleCrate blew me away when I first
> discovered them - it was what got me interested in networking on the
> A2 in the first place. Thanks for some amazing technology!

Thanks--I appreciate that, and am glad it served to spark your
interest!

It has been a very educational project for me--I was able to
re-invent most of Ethernet, which was delightful!

-michael

NadaNet 3.1 for Apple II parallel computing!
Home page:  http://home.comcast.net/~mjmahon/

"The wastebasket is our most important design
tool--and it's seriously underused."