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!
Category Archives: Uncategorised
Demonstrating keyboard controls in InPlace
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.
Release v0.7.0: Model checking and ARIA
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.
Release v0.5.0: Alpha Version!
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!
Perspectives Distributed Runtime is Open Source
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.
NLnet supports Perspectives!
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!
Perspectives on Design Thinking
Design Thinking is an approach, created by the Stanford Design School, to solving problems by empathy, focus, brainstorming, and rapid prototyping. Empathy for placing yourself in the role of others to understand their goals and behaviour, focus to limit the scope of the problem that is solved, brainstorming to think out-of-the-box about solutions and finally repeated prototype and test to determine the viability of solutions in an early phase. Obviously Design Thinking has a lot in common with Perspectives. For some more words on the commonalities between Design Thinking and Perspectives please read this.
Contexts as Behavioral Markov Blankets
Karl Friston has a very simple and elegant explanation of the definition of life from cells to bacteria to brains and human behaviour. In his theory of Free Energy, a Markov Blanket is a border that separates the inside of a system from the outside. If there were no such a border we would observe only dissipating energy and increasing entropy.
In his view, at every scale, from cells to bacteria to brains, the entity adapts to its environment to sustain its existence. A cell will only show simple, mostly chemical, behaviour. Brains will show complex behaviour, with human brains as the ultimate example.
A Context may act as a Behavioural Markov Blanket. It introduces an inside and outside, not in a physical sense but in a sociological sense. It defines a border within which certain behaviour is relevant and expected.
This is easily put in an evolutionary explanation of cognitive development. As a way to structure reality, to be able to understand it and to choose relevant and expected behaviour. This as a prerequisite for social interaction and cooperation.
Based on statistical evidence and Bayesian learning strategies, Friston explains that human behaviour is mostly determined by minimising the difference between ones expected behaviour in a certain context, and the behaviour one actually shows. Friston calls this Active Inference and maybe it is not a coincidence that this is abbreviated AI.
In Perspectives, we explicitly model the possible actions a role may perform in a certain context. Because of its non-deterministic nature, the model will not predict the actual behaviour of the users. Maybe Friston's theory of Free Energy and Active Inference will one day provide a statistical background for expected behaviour in contexts, instead of just observing what happens. And maybe Friston's work may actually lead to a comprehensive theory of consciousness.
For a short introduction into Friston's ideas, please watch this interview.
Why IT As We Know It Cannot Be Private By Design
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.