Boston Linux & UNIX was originally founded in 1994 as part of The Boston Computer Society. We meet on the third Wednesday of each month at the Massachusetts Institute of Technology, in Building E51.

BLU Discuss list archive


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

Is the command line the only way to free software?



On Mar 17, 2010, at 11:10 PM, Lim, Seung Chan wrote:
> 
> I just looked up Newton soup on wikipedia, but couldn't make much of
> the description... How exactly does it do what I described?

Forget everything you know about how computers and PDAs store data.

Newton has no file systems.  It has stores.  A store is a chunk of random access storage, just like the RAM in your Linux PC.  A soup is an object oriented database that resides somewhere in a store.  The Union Soup is a special soup that functions as the root of all soups and links soups across stores.  You could have a chunk of your address book in the internal store and a different chunk on a removable card.  The Union Soup provides the links that make the separate soups seem like one soup.  And this is where Newton gets clever: this works for every soup.  I'll get back to this in a moment.

Newton soups are simple.  You start with a template which is really just a simple table.  For example, the built-in address book soup template has named slots for people's names, addresses, telephone numbers, etc.  Each entry (object) in the address book starts blank, with each slot pointing to the root template.  You can change the contents of a slot, and when you do the pointer to the next level up is overwritten with that data.  The rest of the slots in the object retain their pointers to their parents.

Now, you come along some 10+ years after Apple stops supporting the Newton platform, and you want to add a SIP alias field to the address book.  For any other device it would be a pain in the hind quarters.  On Newton it's as simple as a glass of water: you just add a new slot to the object.  The rest of the slots form a chain back up to the root template.  Applications unaware of your custom slots ignore them while applications that know about your custom slots will use them.  This is one of the great things about parent inheritance.  Parent is slow compared to class inheritance but it can do cool things like this.

Now, getting back to the Union Soup.  Every soup in a Newton device is registered in the Union Soup.  Through the Union Soup any application can access, use, modify (if modifiable), whatever any slots in any soup in the device.  You have a mail application?  Just build a pick list from the "Email Address" slots in the "Address Book" soup.  Want to save a user's PGP public key?  Create a "Public Key" slot in that user's address book object.  Got a web browser?  Want to associate a home page with a user?  Just add a "Home Page" slot to that user's address book object.  Got a SIP softphone application?  Want to dial a user's SIP address?  Pull it from the user's address book entry and go.  You can go the other way:  Got a patent record-keeping application?  Rather than add slots to the addres
 s book soup you create a new soup template that points to (inherits from) the address book.  You then add your own slots to your own soup.  The address book data is automatically available; you just reference slots by name.  If you change a user's name or address in the address book then those changes are reflected in your own application -- or vice-versa because it's the same data, not a copy.

It's all seamless, transparent, and it *works*.

--Rich P.








BLU is a member of BostonUserGroups
BLU is a member of BostonUserGroups
We also thank MIT for the use of their facilities.

Valid HTML 4.01! Valid CSS!



Boston Linux & Unix / webmaster@blu.org