As of version v0.8.0, InPlace runs in the browser. If we’re really honest, that is not yet very useful because you’re still required to run Couchdb on your computer, too, but that requirement will be dropped with the next release. In the meantime, check out the video below showing off some of the things we can do in the browser as opposed to running in Electron!
As of release v0.7.0, InPlace can be controlled entirely (well, almost, see below) by the keyboard. In outline:
- all active controls on a screen can be navigated to using tab and shift+tab, including cards that represent roles.
- cards can be moved to and from a card clipboard as follows:
- select the card that has focus by pressing space or enter;
- tab-move to a drop area (these areas can only be reached by tabbing when there is a card on the clipboard);
- press space or enter again.
- in order to open the context that is represented by a card, press shift and space (or return) simultaneously.
The last bit is the tricky part to remember. Pressing space when a card has focus will move it to the card clipboard. But sometimes, as, e.g. in the SimpleChat application, clicking a card will open the context it represents (notice that the items on the list of chats are cards, as well!). To do the same with the keyboard, press shift and space together.
Below is a video demonstrating this.
Currently there are two limitations to controlling InPlace with the keyboard:
- It is not yet possible to drop a card on the bin (so the role or context will be removed).
- To accept an invitation, it’s file must be dropped onto the appropriate area in the upper bar. We will add an upload button later to circumvent this.
We did not write about release v0.6.0. It’s main feature is that InPlace can now be installed conveniently on both MacOsx and Linux. However, the new version v0.7.0 has an important new feature. It checks each modification received from a peer against the relevant model, rejecting any changes that the peer is not authorised to make. To be precise: the peer must fulfil a role that has a perspective on the object that he has changed, that allows that change.
The movie below shows this in action. In it, you’ll see two InPlace user windows. In the upper window, user “Joop” creates a new Chat and invites user “Cor” to it. While both can enter their messages and have them delivered to the other side, only Joop can change the title of the chat – because he is in the Initiator role, while Cor is in the Partner role (for the Chat). This is how it is modelled (model shown at the end of the movie).
When you watch the movie, you’ll notice that the peer (in the lower window) can actually change the title locally – that is, in his own screen. It just doesn’t make it to the other side! You might be excused for thinking that this is rather confusing: user Cor may be right in thinking he has actually changed the title. And you’re right! The screen for the Partner should never allow him to make changes to the title at all. A well-written App would not give him the opportunity. However, a hacker might change that screen, so he can actually – and illegally – change the title. But that would do him no good, as we’ve seen: no other user will ever accept his changes. The fraud cannot spread.
A further major change is that the application can now be completely controlled with the keyboard. Appropriate ARIA labeling has been added, too, to make InPlace accessible to those who need assistence.
With release v0.5.0 comes the Alpha version of the Perspectives Distributed Runtime. Having reached this milestone, we’re able to demonstrate how two installations connect for the first time and then exchange information through a private channel. The functionality that illustrates this is a very simple Chat application. On this page we explain in some detail what mechanisms are behind the demonstration.
The NLnet sponsorship structures our work process in so far that we release a new version every month, now. So here is the second public release of the Perspectives Distributed Runtime. In the current state of the project there is not much to run, alas. However, it is now possible to use the software to parse an ARC model file on the command line. It will output the JSON serialisation of the internal representation of the types contained in the ARC file. This goes to show some progress: the language is no longer just something on paper, it is parsed and partly checked and transformed. Soon the runtime will be a program that can actually be run. We will then publish a little user interface, so you can play a bit with it. Watch this space!
As of today, we have put the sources of the Perspectives Distributed Runtime in the public domain. By doing so we hope to put Perspectives on a course towards a strong, supportive and collaborating community. We hope our work is adopted by and improved upon by others, for the benefit of the community. This is why we have published much of our work under the The GNU General Public License v3.0. Finally, we strongly believe that the internet will benefit by and is in dire need of software to easily support co-operation and that such software should be fully transparent.
The start page of the project contains links to many resources, including the projects on Github that host the sources.
We are extremely proud to be able to announce that NLnet has kindly decided to support our project with a grant (Perspectives on the NLnet site). The project with name A Distributed Software Stack For Co-operation and number 2019-06-024 is funded from the NGI Zero Search and Discovery Fund.
The Next Generation Internet is an initiative of the European Union.
The overall mission of the Next Generation Internet initiative is to re-imagine and re-engineer the internet for the third millennium and beyond to shape a value-centric, human and inclusive society for all.
Perspectives in NGI Zero Search
There is a strong relation between the indexing capacities of Perspectives and search. Search engines were the early Web’s main indices. Today, we see many companies offering domain-specific search, paired to excellent software that supports the parties in conducting their business, after they have connected. A savvy web user does no longer use a general search engine to find accommodation, second hand goods, a cab, a partner, a book, etcetera.
To dominate a domain, combine supply-demand matching with co-operation support!
Perspectives is to co-operation, what ActivityPub is to social networks. It provides the conceptual building blocks for co-operation, laying the groundwork for a federated, fully distributed infrastructure that support endless varieties of co-operation.
ActivityPub unlocks citizens from their enclosure by the major commercial players that have come to dominate the social domain. It opens the vista of a federalised infrastructure, accommodating cultural diversity while at the same time offering a uniform, unbroken user experience.
Likewise, Perspectives provides the conceptual and practical tools to foster growth of a distributed and federated infrastructure for co-operation support that encompasses the domains of the big supply-demand matchers. Their services can and will be complemented by many others for which currently no business model exists. These services will be integrated by design, much in contrast to the vertical silos of today’s giants. In the end, supply-demand matching may be reduced to (machine-callable) services, called from distributed software for co-operation.
This opens up a vista of a large, federated infrastructure that will be navigated, rather than searched, to let citizens engage with each other and with providers of real-world services. Navigation, after all, is the complement of search!
On Dennets Dangerous Idea
To the mind of an IT professional, information is the stuff to be delved and made available for the common good. Data is the new gold and digging it up can be hard work. It has tremendous value and a lot of the everyday work of an IT professional is dedicated to construct machinery to extract it, collect it, store it, ship it from one place to another and to present it in as many and beautiful ways as possible.
Privacy, however, means hiding information.
That goes against the grain!
It is, by its very nature, not on the agenda of an IT professional.
I’ve exaggerated a bit. Of course individual IT professionals may be very much aware of privacy issues. So let me switch from motive to means. I will argue that the tools available to the IT professional make it very hard for him to even think properly about privacy.
IT systems are designed before they are programmed – or at least, they should be. For design, the professional reaches to the Unified Modelling Language (UML) tool bag. It is a collection of diagram types for various aspects of information systems. As the name implies, it arose as the unification of several approaches to modelling, in the mid-nineties of the previous century. The diagrams allow an IT professional to express the structure of information, the behavior of programs in connection to pieces of information, the packaging of program parts, the deployment of the code on physical hardware, and more. And yes, it also sports diagrams showing how users perform actions. But the real weight is put behind the task of describing the program. UML is about designing software machines.
There is no symbol for privacy. There is no diagram for privacy. It was not a concern at all for the founding fathers of UML. To be fair, in recent years there have been academic proposals to add diagram types and notation to express privacy concerns. But the point I want to make is that, in its bones, UML is privacy-ignorant. It was made to describe information and machines that make it available.
Let me dig deeper yet. UML is for information systems. What is this information thing? We divide our world in two domains. On the one hand, the physical world with tangible things that we understand so well, scientifically. On the other the mental domain that each of us knows so intimately. The connection between the two is a bone of contention. What is the relation between the physical and the mental? Is there causation? If so, in what direction? All sides have been defended fiercely.
Now information holds a special position in this great debate. Of late, we’ve come to consider it as straddling the divide. It is physical, as we can literally grasp a hard disk and yet it is mental, as the right information can sway minds. In the 1980-s, philosophers of mind recognized this and founded their theories on it. Essentially these say that the mind is a Turing machine, a computer, really: it is embedded in the physical world as ‘wetware’ and yet handles symbols, firmly entrenched in the mental domain. These philosophers have shaped the minds of many influential IT professionals.
Etymologically, ‘to inform’ is to give a shape. A shape to what? A shape to a thought. This is what we do when we want to convey that thought to someone else. We need to put it into words, or a drawing, a gesture – any shape will do as long as it is interpreted correctly by the addressed party. This is the cradle of the concept of information. It arises in the context of parties trying to share thoughts. Now we’re all familiar with the phenomenon of information used outside its original context and then being misinterpreted. So we know that there is an important triangle between information, context and meaning (where context involves people).
Yet, information has been extremely objectified, in our times. This is nicely illustrated by the phrase “information carrier”, by which I mean devices such as hard disks and CD ROMs. But it is not information, that such devices carry – they hold thoughts, given a shape! A hard disk is information: it is thoughts, in a particular physical shape. “Information carrier” promotes the thought that information itself is meta-physical, just as the popular phrases ‘information can take many forms’ and ‘information can be copied easily’.
Why is this important? Because it is not just a play of words. It is a dangerous idea. The idea is that information is meta-physical and, in that capacity, intrinsically carries meaning. To have the information is to have the thought. Period. Regardless of context, regardless of people! But at the same time it is physical, as magnetic orientations on a hard disk or ink marks on paper. And thus can be cut up, bolted together and otherwise used to construct new things – that then are supposed to carry meaning.
This dangerous idea underlies IT’s fascination with information. It explains the mistaken idea that, once a model of information has been drawn, the machine building can be carried out without looking back. It explains why many IT projects fail and especially why ‘system integration’ is particularly hard.
No one contributed more to the spread of this idea than the philosopher Daniel Dennet. He has greatly influenced popular Western thought on the mind body problem through many of his popular books. His work is based on this alleged Rosetta-stone like quality of the concept of ‘information’. Even though he certainly is not the originator of the idea I will, in recognition of his contribution to spreading it, call it Dennet’s Dangerous Idea.
Privacy advocates have called for privacy by design. They have drawn up an internationally acknowledged framework with seven foundational principles that must lead to information systems that inherently protect privacy. The privacy by design framework was published in 2009 and adopted by the International Assembly of Privacy Commissioners and Data Protection Authorities in 2010.
This is important work. But it’s impact will be limited. I have argued no less than that in order to have IT professionals really design systems for privacy, we need to provide them with new conceptual tools. Otherwise privacy will remain an afterthought. Just think of the frustrating flurry of Cookie notices that GDPR has caused in recent months: absolutely unworkable bolted-on privacy protection.
What IT needs is a conceptual framework that recognizes that information should remain in its context. That takes co-operation between people as its point of departure and downplays the idea of information as bits and pieces that need to be captured, stored and sent.
Such a new toolset is available. It is called Perspectives, sports just five graphical symbols, two diagrams and a single connector, allows an analyst to design co-operation from many perspectives and results in an executable prototype. It’s basic concepts are context, role and action. It does not describe software in any way, yet software can be generated from it. Combined with the distributed infrastructure that Perspect IT built to run models on, it results in truly privacy protecting systems for co-operation.
Historically, the Perspectives Project (2016-present) originated in work we (Cor Baars and Joop Ringelberg) did for the Dutch National Police (2013-2015). Working as main Architect and lead programmer respectively, we created a foundation for the new software to be used by all 60.000 officers (the so-called OPP program, frequently in the news: see e.g. this article). Cor perceived the police officer primarily as a knowledge worker, rather than as a production worker, as was the received wisdom at the time. But a police officer is involved in many cases at any time, switches context all the time and must rely on his own judgement continuously. This kind of work can never be captured in a step by step process model but instead relies on knowledge, insight and judgement.
From this background, eventually, during the years 2016-2018, the core Perspectives concepts of role, context, action, view, perspective and property emerged. These are the abstractions of the original ideas of (police) files, the RACI model, tasks, etc. that we used to describe the world of maintaining the law and criminal investigation.
I just read the booklet “The Rhineland Model” by Jaap Peters and Mathieu Weggeman and was struck by how this vision of organisation chimes with Perspectives core concepts. Just look at this list of Rhineland core values:
- decentralise responsibility and power;
- focus on employee needs and wants;
- promote co-operation;
- co-ordinate on lower levels: do not rule top-down;
- put value on worker initiative
- communicate laterally versus vertically.
The Rhineland model moves away from process models with fixed steps. It sees an organisation as a co-operation and strives towards decentral decision making. In hindsight, even though the police organisation formally has a hierarchical structure, on the operational level it is very much Rhineland oriented.
Perspectives lets you analyse co-operative work in terms of role and context. (Formal) organisations only come secondary or tertiary in the picture: organisational bounds are unimportant as employees of any organisation transcend its organisational borders (it has to interact with the world, right?). So a context in which both employees and customers, or employees of other organisations, play a role is a natural analysis. Roles are defined in terms of the actions they can perform – which we call the role perspective on the context. Process flow is only secondary, in Perspectives: we assume roles are fulfilled by knowledgeable workers.
With Perspectives, one designs (and generates!) software that supports co-operation, that is: real interaction on the work floor. This software empowers workers by enabling (structured) communication over a distance in space and time.
It may be no exaggeration to state that Perspectives is to the Rhineland model what the Business Process Model and Notation (BPMN) is to the Anglo-American model. Where the latter focusses on top-down driven, centrally designed process flow with minimal local decision power, the former enables knowledge workers in context.
In other words, Perspectives may be a natural language to describe an organisation adhering to Rhineland values. With the bonus of working software as a result, of course!
Copernicus famously put the sun at the center of the universe and so drove man to the periphery. Countless revolutions were to follow, pushing man ever further away in the name of objective science. But the IT industry has taken a step too far with the objectification of information. And society followed: we now take information to be physical and yet have intrinsic meaning. At the same time, we all know that words taken out of their context may take on significance and meaning never intended by their speaker.
I realised this morning that this is exactly what we try to restore with Perspectives! We have constructed a method of creating computer programs that tie information to its context. Information is a physical object (e.g. a letter) that is the result of technology (c.q. paper, ink, the art of writing) that lets people communicate over a distance in space or time. But physical objects persist and can be moved out of that context of communication, hence re-used and misinterpreted, hence the problem. Big Tech in Silicon Valley bases its empires on that fact and thereby has a vested interest in the status quo of IT. Moving information out of its context is a business model. Alternatives have not been given serious thought: billions hang in the balance.
Enter Perspectives, that lets people keep the physical objects (data as represented on a medium like a hard disk) in their physical context of use, because the system is inherently distributed, meaning that each user brings his own device. It is back to the future in the sense that before 1990 we all kept our own (paper) files in a drawer in our study: all of our insurance policies, employment contracts, etc were in our own house. We restore that. It is as simple as that, the difference being that with Perspectives we do not need a postman to communicate: we can have the full benefits of the information age yet keep our own stuff safe.
So we need an anti-Copernican revolution, in IT. Man, for once, should be in the centre of the scheme: not his data.