The namespace for nicknames is quite an issue in most communities and chat systems. You usually don't get to have the nickname you would like to have, and figuring out how to route to any random nickname is quite a challenge, too. That's why we have the personal nickspace in PSYC. It provides a nickname namespace for every user individually, and uses real addresses in the background, formatted as uniforms (see below).
A nickspace is the term we use for any one-dimensional namespace as used by many chat technologies. For instance IRC uses one nickspace for each IRC network. Keeping the nickspace properly defined across the network causes a large part of IRC overhead. Many centralistic systems like AIM, friendster, myspace use a single nickname as identificator for people, quickly running into the typical nickspace problem of nickname already taken by somebody else. We call this phenomenon a nickname collision.
Some smarter technologies avoid nickspaces, like MSN. They use (potentially pseudo) e-mail addresses instead.
PSYC goes beyond that, and uses uniforms to identify people. But since uniforms aren't always nice to use (especially type), in PSYC every person also has her own nickspace. As she meets people in PSYCspace, she collects nicknames in her own list of known people. She can then address them by nickname, not only by their PSYC uniform. It's essentially like being able to use a person's first name instead of the entire first and last name. Nickname collisions are handled by the person owning her nickspace and does not require treatment on a global level as in IRC. All in all however this kind of local nickspace is less important when using graphical clients than with command line oriented clients.
Jabber uses pseudo e-mail addresses for identification, too. They are called JIDs. This brings some limitations, but it is better than a global nickspace. Jabber also has an alias facility for contacts available for clients to download and use, so in a simple way Jabber too has a nickspace functionality, but unfortunately it isn't integrated with Jabber's Multi-User Chat functionality, which runs its own nickspace, allowing for ambiguities.
Aliasing your peeps
Hey, typing these uniforms all the time is annoying. We would like to retain the comfort of the plain nickspace. Hence we implemented aliases. They are simply a bidirectional mapping
alias <-> uniform
So, if you have an alias
lynX <-> psyc://ve.symlynx.com/~lynX
just start talking to lynX. If he answers, only the short form of his identification will be displayed.
On IRC it is natural to only see a nickname, no matter where the person is. You then employ /who or /whois to find login@host details of a person, or the client does it automatically for you.
For psyced to behave more like an IRC server, we should replicate this behaviour and automatically assign nicknames to people. IRCers will be competent enough to find out who people are, and understand they are not on the same server, if that is of any relevance really. Not offering this only makes psyced appear less IRC compatible.
Advanced PSYC users have however become very familiar with seeing new people by uniform at first, and actually like this behaviour. Autoalias could feel patronizing (although we don't really know, yet). So an autoalias setting is absolutely necessary.
The automatic aliasing feature has been implemented in psyced, but isn't activated yet, as it comes with some side effect bugs. Please debug if interested!
Public Key Aliasing
One day we may have a PSYC that identifies people by public key rather than by uniforms, heading towards a more server-independent approach. In that case outputting such an identification becomes pretty useless. We would automatically record that person's nickname in our nickspace, or use an alternate nick she provided. The actual process of recognizing a person would work through the choice of friends we have in common (who are the people that trust her the most?), and maybe the photo she posted along with her basic contact data.