Theodor Holm Nelson, Founding Designer, Project Xanadu
XanaduÆ is a registered trademark of Project Xanadu. TransLitô is a claimed trademark of Project Xanadu.
Permascrolls, and partially hiding their content, have been discussed at length in at least two papers--
- PscrLogic-D10 (or later drafts)
- purpBlackoutPermask-D9 (or later drafts)
Those papers were concerned with hiding the content for publishing.
Here I want to discuss hiding their content for privashing. The issues are the same and the mechanisms can be the same.
=== FUNCTIONAL SUMMARY
The local permascroll module
- holds original content privately
- when content made available to workgroup, updates a redacted permascroll to the collaboration server
= PRIVATE PERMASCROLL ON OWN MACHINE
Each member has a local private permascroll on his local machine. Putting it on the local machine shields the member's casual material from inappropriate scrutiny. (Same as the strategy for published permascrolls in Xanadu Purple.)
Why? We will assume that for security from pointy-haired bosses, users will prefer to keep their permascrolls on their own machines.
LEGAL NOTE: in American corporations, it is legal for the pointy-haired boss to read through your emails. It will therefore be legal for the boss to look at all your input content.
To discourage this, each member will keep his private permascroll on the member's local machine. This is no guarantee against snooping bosses, but raises the barrier somewhat against such intrusion.
= SHARED, REDACTED PERMASCROLL ON COLLABORATION SERVER
Each member will have a shared permascroll on the collaboration server. This will be redacted to contain only the content the member wishes the group to see, among blackout characters.
With each new contribution by a member, that member's shared permascroll will be updated on the server to include whatever new content has been privashed by that contribution.
= PRIVATE REDACTION BY BLACKOUT MASKING
The technique of blackout permascrolls (default method of Xanadu Purple) can be easily adapted to permascrolls shared by a group. (See purpBlackoutPermask-Dx.)
Simplest: the member's permascroll module contains--
- the uncensored permascroll of whatever the member types
- a Mask (masking textfile) the same length as the member's permascroll, with each character shared from the permascroll being matched by a "shared" character in the Mask (say, $).
When the member posts a comment, the text in the permascroll is automatically matched against the Mask by the shared character.
A new version of the redacted permascroll is then created, with each Shared character exposed and the others replaced by a nonsense character (the same nonsense characcter, say *).
This is then sent to the server as the member's new shared permascroll.
The steps are:
- user's local permascroll routine notes that the content is now privashed to the workgroup.
- user's local permascroll routine updates local blackout mask, freeing on blackout map the newly-privashed content
- user's local permascroll routine prepares new redacted permascroll with newly-available content unmasked
- user's local permascroll routine uploads member's new group permascroll
- newly-privashed content becomes available to workgroup
=== MULTI GROUPS, MULTI MASKS: GENERALIZATIONS OF REDACTED PERMASCROLL
The same blackout technique proposed for published permascrolls can be used for multiple groups, each of which is entitled to see different things.
For each group, there can be
- a different masking plane
- a different masking symbol. This would mean that a phrase opened to more than one group would have to have a masking symbol that referred to both groups simultaneously-- a very bad idea.