ARGON
Documentation
Not logged in

The user's view of ARGON really depends on what kind of user they are. My initial implementation plans all focus on using it as a server-side platform for APIs and Web applications, in which case the user's view will be unchanged from current server platforms (the benefits are all to the developers and administrators, I'm afraid) - but I've designed the infrastructure for ARGON to provide a direct user interface, and some kind of minimal implementation of that will be needed as the user interface for administrators and developers!

You sit down at your desktop / open up your laptop / pull out your palmtop / sit down at a shared workstation in an office / computer lab / internet cafe; or fire up an "ARGON browser" app on your existing UNIX/Windows/Apple device.

In the case of a device that you personally own, are just asked for your password, as it knows who to expect; on devices that are centrally administered and reserved for the use of a fixed list of people, you may be asked to enter a username or choose from a fixed list of users. Or you might be allowed to use the system as a guest without logging in at all, like a public kiosk.

Or you could enter your global CARBON name (which I need to think of a catchier name for, like "URL"...) and password to log into an identity stored somewhere out there on the Internet.

Once logged in, you enter the browser. The exact details of the user interface are unspecified; I hope to have more than one interface, anyway. So I'll talk in general here. The browser is your window onto a world of entities; many of them are container entities, like a folder, that contain lists of other entities, providing the navigational structure. Or you can enter a CARBON name (which are generally shorter than URLs), or use a search engine to find things by name.

Everything is an entity; the things we'd think of as files and applications (although that particular distinction is avoided in ARGON in favour of a more object-oriented paradigm), as well as things like colours and concepts. Some entities are just static information you can view. Some you can edit. Some are interactive things like games or calculators or search engines. Some are interfaces to real-world objects like printers and cameras and nuclear reactors and computers (as in, the box on your desk: to turn it off, you find it in the browser and tell it to turn off).

The browser provides some kind of top-level menu of places to start browsing from: the resources of the computer your're sitting at (local removable drives, printers, etc); the resources of the local area network (shared printers, entities relating to the organisation that provides the network); resources autodiscovered locally (Bluetooth, Rendezvous, and so on); the global Internet directory; the local private directory of your employer; your private workspace (if you're not using it anonymously), and any others that it can find.

You don't enter usernames and passwords into things, once logged in. You yourself are represented as an entity, and everything you do is identified as being done by that entity (unless you choose anonymity). Magic happens under the hood to tell entities what entity is trying to access their services, while preventing other entities from pretending to be you.

When you log out, then log back in again (even from another machine), your 'desktop' is exactly as you left it. And you never 'load', 'save' or 'close' things, it's all just entities that you interact with.

If you use an anonymous login, you can browse to find your own entity, then ask to assume its identity. If you enter your username and password correctly, then you're now logged in as yourself, with access to your private stuff and with other entities recognising your identity.

In some entities, you can create entities of your own. You can make entities within your user entity; that's your private area. And you may be able to create entities in shared or public areas. You do this by choosing a template entity, and choosing the entity within which you want to create your entity, and telling the browser to create. And hey presto, you get a new entity, with its access control set so that only you can access it, but that you get full control over it, until you specify otherwise.