ARGON
Documentation
Login

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. If you access an entity that requires, or is improved by, being identified to that thing, some user-interface component will offer you the opportunity to identify yourself to it instead of being anonymous.

One option that is always available is to use your user agent's identity to access it; sharing that identity with the remote entity will give it the opportunity to contact your agent to send you messages in future, which is of course a mixed blessing.

Or you can create an arbitrary number of pseudonyms for yourself (which, technically, are public keypairs with attached user metadata), and pick one of those to identify yourself to the entity with.

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.

You can create entities of your own, but you need to ask an existing entity to let you create your new entity "alongside" it (technically, in the same storage volume). You can ask your user agent to make entities for you, and they'll be stored wherever your user agent is stored; that's your personal area, and you can set the access control lists of the entities you create to say whether they're entirely private to you, or accessible to others.

And you may be able to create entities in shared or public volumes. You do this by choosing a "template" for the new entity, and choosing the entity you'd like to ask 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.