Minimal object containing this commit
Commit Diff
commit 3e54de83bd2f381ce713e852631b10e7dfa8c94f3f7824f86fbe2b011d6c5f37
Author: yihanwu1024 <yihanwu1024>
Date: Wed Apr 17 00:00:00 2024 +0000
create article proposing the concept of permissive navigation
diff --git a/00ac5cd2adef053e8d85f1fa4e33e21074d50cf78a54338323cc3d1930840b2a b/00ac5cd2adef053e8d85f1fa4e33e21074d50cf78a54338323cc3d1930840b2a
new file mode 100644
index 0000000..fbd00c8
--- /dev/null
+++ b/00ac5cd2adef053e8d85f1fa4e33e21074d50cf78a54338323cc3d1930840b2a
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<article xmlns="http://docbook.org/ns/docbook" xml:id="00ac5cd2adef053e8d85f1fa4e33e21074d50cf78a54338323cc3d1930840b2a">
+<title>Discussions on Permissive Navigation</title>
+<include xmlns="http://www.w3.org/2001/XInclude" href="a10f59e2f753483d92c73d275e329371239f528811ca472590145a6f2698d053"/>
+<para>Can we allow this creativity?</para>
+<include xmlns="http://www.w3.org/2001/XInclude" href="690b981d70d34c93b088adc4c0916d0fe8de8e3a96ec46a4b55bc776dd85d080"/>
+<include xmlns="http://www.w3.org/2001/XInclude" href="7615facde599670528de10c227a38d7141eb35bb149de6eb3a9a5010d511e503"/>
+<include xmlns="http://www.w3.org/2001/XInclude" href="a5d7c89171292a4aae9a8576ede876cde989b47ebc8a40062fd8898e7b7618d9"/>
+<include xmlns="http://www.w3.org/2001/XInclude" href="5ea6cfed3fd7b3f9481172daf9e8f4fcc386db936a5af43b2f3804f287e550f7"/>
+</article>
diff --git a/086aecab285de7f9c3c484dab11c13d6cce5aa5b42c83f31c476239b34b19f4b b/086aecab285de7f9c3c484dab11c13d6cce5aa5b42c83f31c476239b34b19f4b
new file mode 100644
index 0000000..15ae6e0
--- /dev/null
+++ b/086aecab285de7f9c3c484dab11c13d6cce5aa5b42c83f31c476239b34b19f4b
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<section xmlns="http://docbook.org/ns/docbook" xml:id="086aecab285de7f9c3c484dab11c13d6cce5aa5b42c83f31c476239b34b19f4b">
+<title>An Example</title>
+<para>Let us visit an example: a digital geography map.</para>
+<para>Google Maps will only ever let you view details of one location at a time, as with most map programs.
+Occasionally, I found myself in need of comparing multiple places.
+Suppose you are given the task of comparing user comments on three bars.
+Before a certain Google Maps update, I had to do this:</para>
+<itemizedlist>
+<listitem>
+<para>Pan map to location 1</para>
+</listitem>
+<listitem>
+<para>Click on location 1</para>
+</listitem>
+<listitem>
+<para>Pan map to location 2</para>
+</listitem>
+<listitem>
+<para>Click on location 2</para>
+</listitem>
+<listitem>
+<para>Repeat</para>
+</listitem>
+</itemizedlist>
+<para>The “map + one information panel” scheme is an improvement from a total stack, but really just one map view with a stack laid over it.
+The extended details for a location can expand to the full panel and show you a back button.
+You know you can access the comments section of each, but you cannot see them side-by-side.
+You know this can be done in principle because you have seen that information, but the interface does not allow you to do it.</para>
+<para>Later, Google Maps added a Recents feature to alleviate this problem.
+I will write more about history below.
+Here presumably, a feature allowing multiple location detail frames can also help, so I demonstrate how <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="4f6daf5cfb4d46eba8d8ed3c7697c19c6656fb4ba58c4bc1a561f8a499e39dd3">Design the negative version</link> works.
+The program happily opens a small frame for a location you visit, and lets you Pin it so it becomes persistent; otherwise, when you visit the next location, the previous volatile frame is overridden.
+Unsurprisingly, this sounds like something a professional GIS will do, but I have not personally encountered such a design in any program, and it might not be immediately <emphasis>useful</emphasis>.</para>
+</section>
diff --git a/0a9be658b291d75fe0b68fc0265e6b69188f6d927ef4099900ae4fc9a34324f2 b/0a9be658b291d75fe0b68fc0265e6b69188f6d927ef4099900ae4fc9a34324f2
new file mode 100644
index 0000000..473a0f4
diff --git a/12090fed2d4a480191397982e5776db5a06ee384fcb4457c9e5fb025d39c81b9 b/12090fed2d4a480191397982e5776db5a06ee384fcb4457c9e5fb025d39c81b9
new file mode 100644
index 0000000..58e9462
--- /dev/null
+++ b/12090fed2d4a480191397982e5776db5a06ee384fcb4457c9e5fb025d39c81b9
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<listitem xmlns="http://docbook.org/ns/docbook" xml:id="12090fed2d4a480191397982e5776db5a06ee384fcb4457c9e5fb025d39c81b9">
+<para>Or, we can even assign this differentiation to the primary mouse button: single-clicking opens a <emphasis>volatile</emphasis> frame, and double-clicking opens a <emphasis>persistent</emphasis> frame.
+(This is due to Visual Studio.)
+The Pin button is still available.</para>
+</listitem>
diff --git a/1bc07b934bc14126ad1ce082d966a872f9d2c4fc98f541dcb2a6bf05303e8097 b/1bc07b934bc14126ad1ce082d966a872f9d2c4fc98f541dcb2a6bf05303e8097
new file mode 100644
index 0000000..fca8433
--- /dev/null
+++ b/1bc07b934bc14126ad1ce082d966a872f9d2c4fc98f541dcb2a6bf05303e8097
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<para xmlns="http://docbook.org/ns/docbook" xml:id="1bc07b934bc14126ad1ce082d966a872f9d2c4fc98f541dcb2a6bf05303e8097"><emphasis role="strong">Thesis. Homogeneity determines negative permissive navigation.</emphasis>
+If navigation involves homogeneous content (such as directories and web pages), then negative permissive navigation is preferred.
+If navigation involves heterogeneous content (such as different parts of an app), then positive permissive navigation is preferred.</para>
diff --git a/37a2ecd7e2b14797b08ac43bcf1ace5dc556b9120e8c45a48b2d1991d3be085f b/37a2ecd7e2b14797b08ac43bcf1ace5dc556b9120e8c45a48b2d1991d3be085f
new file mode 100644
index 0000000..7494b59
--- /dev/null
+++ b/37a2ecd7e2b14797b08ac43bcf1ace5dc556b9120e8c45a48b2d1991d3be085f
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8"?>
+<phrase xmlns="http://docbook.org/ns/docbook" role="strong" xml:id="37a2ecd7e2b14797b08ac43bcf1ace5dc556b9120e8c45a48b2d1991d3be085f">positive permissive navigation</phrase>
diff --git a/40c0173e8a8779b720db11e1764f78431e137cc61c8fba7d6501b17a677013e2 b/40c0173e8a8779b720db11e1764f78431e137cc61c8fba7d6501b17a677013e2
new file mode 100644
index 0000000..272c7dd
--- /dev/null
+++ b/40c0173e8a8779b720db11e1764f78431e137cc61c8fba7d6501b17a677013e2
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<figure xmlns="http://docbook.org/ns/docbook" xml:id="40c0173e8a8779b720db11e1764f78431e137cc61c8fba7d6501b17a677013e2">
+<title/>
+<mediaobject>
+<imageobject>
+<imagedata fileref="0a9be658b291d75fe0b68fc0265e6b69188f6d927ef4099900ae4fc9a34324f2"/>
+</imageobject>
+</mediaobject>
+</figure>
diff --git a/4d96d48de4bd43eba88e95c7c40ef79ce4296a0ac9e34cb586dd55f3028a2895 b/4d96d48de4bd43eba88e95c7c40ef79ce4296a0ac9e34cb586dd55f3028a2895
new file mode 100644
index 0000000..3bca6eb
--- /dev/null
+++ b/4d96d48de4bd43eba88e95c7c40ef79ce4296a0ac9e34cb586dd55f3028a2895
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<para xmlns="http://docbook.org/ns/docbook" xml:id="4d96d48de4bd43eba88e95c7c40ef79ce4296a0ac9e34cb586dd55f3028a2895"> A convention at the operating system level governing all GUI programs: all information is presented through small “frames” that are a less committed, less contentful version of what we currently know as windows.
+Consider embeddable COM frames, Android Fragments, Android Slices, Android rich notifications, Picture-in-picture, widgets, widgets, widgets, or <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.mercuryos.com/architecture">Mercury OS Modules</link>.
+If you cannot imagine these, just think of windows without their gross 80-pixel shadow.
+The reason for a new concept of frame here is that we need small units of interactive content to meaningfully speak of navigation.</para>
diff --git a/4f6daf5cfb4d46eba8d8ed3c7697c19c6656fb4ba58c4bc1a561f8a499e39dd3 b/4f6daf5cfb4d46eba8d8ed3c7697c19c6656fb4ba58c4bc1a561f8a499e39dd3
new file mode 100644
index 0000000..c108fed
--- /dev/null
+++ b/4f6daf5cfb4d46eba8d8ed3c7697c19c6656fb4ba58c4bc1a561f8a499e39dd3
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<listitem xmlns="http://docbook.org/ns/docbook" xml:id="4f6daf5cfb4d46eba8d8ed3c7697c19c6656fb4ba58c4bc1a561f8a499e39dd3">
+<para>It can also be done in a negative fashion: the frame is equipped with an additional Pin button, which if used makes the frame <emphasis>persistent</emphasis>; otherwise frames are all <emphasis>volatile</emphasis> and can be overridden by subsequent navigation.</para>
+</listitem>
diff --git a/5ea6cfed3fd7b3f9481172daf9e8f4fcc386db936a5af43b2f3804f287e550f7 b/5ea6cfed3fd7b3f9481172daf9e8f4fcc386db936a5af43b2f3804f287e550f7
new file mode 100644
index 0000000..82b7ad1
--- /dev/null
+++ b/5ea6cfed3fd7b3f9481172daf9e8f4fcc386db936a5af43b2f3804f287e550f7
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<section xmlns="http://docbook.org/ns/docbook" xml:id="5ea6cfed3fd7b3f9481172daf9e8f4fcc386db936a5af43b2f3804f287e550f7">
+<title>Critique of the Status Quo</title>
+<para>The navigation scheme is often determined by the UI framework and operating system.
+They have extremely profound influence on the ecosystem and design philosophy.
+Consequently, most GUIs are programmed totally within a stack architecture.</para>
+<para>There are many established paradigms in navigation design.
+Stack navigation is one of the most important consequences of Steve Jobs’ mobile operating system.
+It reduces possible ways a program can be interacted with, facilitating interactions that are predetermined to be useful, but also <emphasis role="strong">strongly claiming creative interactions useless</emphasis>.
+Usability, done to the extreme without truly considering the user capacity, degenerates into tyranny as too many decisions are made to please the users in the short term.
+(<emphasis role="strong">d852084c.</emphasis>) In fact, we are already seeing the shortcomings of “usable design” under complex workloads, as users end up needing software products specifically <emphasis>designed for</emphasis> a particular <emphasis>workflow</emphasis>, rather than a generic tool waiting for a workflow to be abstracted at user capacity.
+If users cannot know and recreate their tools to a large extent, they are effectively alienated from their working process.</para>
+</section>
diff --git a/5f80a289ef7a321ab70d6f7d09213dc1a04f1a2a7f46d6fa5a40e695e6a0917c b/5f80a289ef7a321ab70d6f7d09213dc1a04f1a2a7f46d6fa5a40e695e6a0917c
new file mode 100644
index 0000000..5194973
--- /dev/null
+++ b/5f80a289ef7a321ab70d6f7d09213dc1a04f1a2a7f46d6fa5a40e695e6a0917c
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<figure xmlns="http://docbook.org/ns/docbook" xml:id="5f80a289ef7a321ab70d6f7d09213dc1a04f1a2a7f46d6fa5a40e695e6a0917c">
+<title>Windows File Explorer showing its state after step 6.</title>
+<mediaobject>
+<imageobject>
+<imagedata fileref="f8365c7ab4c086c9779924f1d00d3eb5b75bf8642846c47cc254d8a0a134dab5"/>
+</imageobject>
+</mediaobject>
+</figure>
diff --git a/690b981d70d34c93b088adc4c0916d0fe8de8e3a96ec46a4b55bc776dd85d080 b/690b981d70d34c93b088adc4c0916d0fe8de8e3a96ec46a4b55bc776dd85d080
new file mode 100644
index 0000000..6254d2b
--- /dev/null
+++ b/690b981d70d34c93b088adc4c0916d0fe8de8e3a96ec46a4b55bc776dd85d080
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<section xmlns="http://docbook.org/ns/docbook" xml:id="690b981d70d34c93b088adc4c0916d0fe8de8e3a96ec46a4b55bc776dd85d080">
+<title>Permissive Navigation</title>
+<para>I propose an “axiom” about navigation schemes, which will serve as a foundation for all reasoning about navigation.
+All kinds of navigation can be expressed within this system.</para>
+<para>Preceding this thesis is:</para>
+<include xmlns="http://www.w3.org/2001/XInclude" href="4d96d48de4bd43eba88e95c7c40ef79ce4296a0ac9e34cb586dd55f3028a2895"/>
+<para>Now we are ready for the thesis:</para>
+<para><emphasis role="strong">Thesis.
+Permissive navigation.</emphasis> The most permissive navigation scheme is one where any navigation act does not inhibit any other navigation act that could have taken place.
+This expresses a maxim: that navigation is the act of accessing <emphasis>new</emphasis> information, but not necessarily discarding previous information.</para>
+<para>I can think of at least the following concrete designs.
+Any of them can be immediately implemented in today’s GUIs if beneficial to the user.</para>
+<orderedlist>
+<include xmlns="http://www.w3.org/2001/XInclude" href="c6a10203ed7a4b78a47361e5b015052d8a3d12b30bed405096105d4e1055defa"/>
+<include xmlns="http://www.w3.org/2001/XInclude" href="4f6daf5cfb4d46eba8d8ed3c7697c19c6656fb4ba58c4bc1a561f8a499e39dd3"/>
+<include xmlns="http://www.w3.org/2001/XInclude" href="12090fed2d4a480191397982e5776db5a06ee384fcb4457c9e5fb025d39c81b9"/>
+</orderedlist>
+<para>In the future, I will write more to explain why I want some version of this to happen.
+It primarily has to do with user freedom and creativity.
+But here, let me state <emphasis>what</emphasis> it is that I want happen.
+I am proposing a very generalized theory of GUI navigation, so instead of thinking about pages, bars, go-here-buttons, go-there-buttons, back buttons, bottom tabs, bottom sheets and so on, they are described as special cases under one system of navigation.
+This is also not an argument for regressing to the situation before apps, namely desktop programs with complicated detachable panels.</para>
+<include xmlns="http://www.w3.org/2001/XInclude" href="086aecab285de7f9c3c484dab11c13d6cce5aa5b42c83f31c476239b34b19f4b"/>
+<include xmlns="http://www.w3.org/2001/XInclude" href="6fcd486c6f22aaffdf8a7b72a6850c3799695a65e82a94b71b97ea5fa54565d5"/>
+</section>
diff --git a/6e21678bee964843955b86627ae4b47b6fa8b1e03c4e4b5f80cfac913078f57d b/6e21678bee964843955b86627ae4b47b6fa8b1e03c4e4b5f80cfac913078f57d
new file mode 100644
index 0000000..e4c1eff
--- /dev/null
+++ b/6e21678bee964843955b86627ae4b47b6fa8b1e03c4e4b5f80cfac913078f57d
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<section xmlns="http://docbook.org/ns/docbook" xml:id="6e21678bee964843955b86627ae4b47b6fa8b1e03c4e4b5f80cfac913078f57d">
+<title>Back-Forward-Recents Paradigm</title>
+<para>Take a look at a different program, the File Explorer on Windows as an example of a certain navigation paradigm, <emphasis role="strong">the Back-Forward-Recents Paradigm</emphasis>.
+The File Explorer has a <emphasis>Back</emphasis> button everyone uses, but I doubt even one tenth of us are comfortable using the other three buttons: <emphasis>Forward</emphasis>, <emphasis>Recent Locations</emphasis>, and <emphasis>Go Up One Level</emphasis>.
+Note, this File Explorer <emphasis>Back</emphasis> button is to be distinguished from a <emphasis>Stack Back</emphasis> button.</para>
+<include xmlns="http://www.w3.org/2001/XInclude" href="40c0173e8a8779b720db11e1764f78431e137cc61c8fba7d6501b17a677013e2"/>
+<para>As an example, I performed these navigation steps:</para>
+<orderedlist>
+<listitem>
+<para>\Control Panel</para>
+</listitem>
+<listitem>
+<para>\Pictures</para>
+</listitem>
+<listitem>
+<para>\Pictures\Saved Pictures</para>
+</listitem>
+<listitem>
+<para>\Music</para>
+</listitem>
+<listitem>
+<para>\Music\C418</para>
+</listitem>
+<listitem>
+<para>From <emphasis>Recent Locations</emphasis>, go back to \Pictures.
+Equivalent to clicking <emphasis>Back</emphasis> three times.</para>
+</listitem>
+<listitem>
+<para>From <emphasis>Recent Locations</emphasis>, mouse hover before going forward to \Music\C418.
+Equivalent to clicking <emphasis>Forward</emphasis> three times.</para>
+</listitem>
+</orderedlist>
+<include xmlns="http://www.w3.org/2001/XInclude" href="5f80a289ef7a321ab70d6f7d09213dc1a04f1a2a7f46d6fa5a40e695e6a0917c"/>
+<para>If after step 6 I go somewhere that is not in <emphasis>Recent Locations</emphasis>, then all <emphasis>Recents</emphasis> newer than \Pictures are deleted and replaced with my new navigation.
+This works the same way as a standard (linear) undo/redo history.
+After the user performs a few undo steps, if the user proceeds to make a change in the document, then all history newer than this point are deleted and replaced with new changes.</para>
+<para>Did you know that your browser probably follows a paradigm similar to File Explorer?
+In many browsers, the <emphasis>Recent Locations</emphasis> menu does not have a button, but is accessible by right-clicking on the <emphasis>Back</emphasis> and <emphasis>Forward</emphasis> buttons.</para>
+</section>
diff --git a/6fcd486c6f22aaffdf8a7b72a6850c3799695a65e82a94b71b97ea5fa54565d5 b/6fcd486c6f22aaffdf8a7b72a6850c3799695a65e82a94b71b97ea5fa54565d5
new file mode 100644
index 0000000..a22cd1e
--- /dev/null
+++ b/6fcd486c6f22aaffdf8a7b72a6850c3799695a65e82a94b71b97ea5fa54565d5
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<section xmlns="http://docbook.org/ns/docbook" xml:id="6fcd486c6f22aaffdf8a7b72a6850c3799695a65e82a94b71b97ea5fa54565d5">
+<title>On Index</title>
+<para>It is easy for a designer to come up with a page that scrolls or pans.
+Usually, the app does not save the scrolling position.
+That is considered an extra, <foreignphrase>ad hoc</foreignphrase> feature for the designer and programmer, but it can in fact be subsumed in the framework derived from the <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="690b981d70d34c93b088adc4c0916d0fe8de8e3a96ec46a4b55bc776dd85d080">permissive navigation thesis</link> with an additional provision for indexes.</para>
+<para>What about panning the map?
+Often the geography itself is of interest, not the small pins on it.
+Panning is also a form of navigation, yet there is no Recents for it, obviously because the computer cannot precisely tell if you have reached a place of interest.
+What about jump-browsing in a timeline that is one kilometer long?
+Do we need a search bar, or a fast-scrolling bar where you must spend a few seconds precisely controlling your finger?
+Here we face situations where things must be handled in parallel.
+It appears that an index is a “space” to the user, and it always makes sense to bookmark a place in a space.
+Maps, timelines, and almost all indexes are spaces.</para>
+<include xmlns="http://www.w3.org/2001/XInclude" href="923af141e476484abf3f5f59e855d4189aa30a766af94ecb8c7dca7e20d0eb53"/>
+<para>Did you know that many browsers will keep the scrolling position when you duplicate a tab?
+This demonstrates the current principle.</para>
+</section>
diff --git a/7615facde599670528de10c227a38d7141eb35bb149de6eb3a9a5010d511e503 b/7615facde599670528de10c227a38d7141eb35bb149de6eb3a9a5010d511e503
new file mode 100644
index 0000000..e119eea
--- /dev/null
+++ b/7615facde599670528de10c227a38d7141eb35bb149de6eb3a9a5010d511e503
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<section xmlns="http://docbook.org/ns/docbook" xml:id="7615facde599670528de10c227a38d7141eb35bb149de6eb3a9a5010d511e503">
+<title>The Role of History</title>
+<para><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="690b981d70d34c93b088adc4c0916d0fe8de8e3a96ec46a4b55bc776dd85d080">Permissive navigation</link> can be seen as equipping any navigation scheme with a visiting history, so things can stay unchanged in view and wait for future interactions.
+This availability has more than navigational importance.
+These elements are available <emphasis>so that</emphasis> they can be used to derive further actions, including user-defined automation (<emphasis role="strong">9382a99c</emphasis>).
+Obviously, for any subsequent creativity to happen, the user must gather all necessary information, and in GUIs this is always done by showing all of them on the screen.
+The role of history, as it accompanies any navigation, appears to be paramount in light of user creativity and flexibility.</para>
+<include xmlns="http://www.w3.org/2001/XInclude" href="6e21678bee964843955b86627ae4b47b6fa8b1e03c4e4b5f80cfac913078f57d"/>
+<include xmlns="http://www.w3.org/2001/XInclude" href="f19e83eaa88c1ff46406d46cf282e4e0c11ad33a69452f5f2e1002609a72148a"/>
+</section>
diff --git a/891ed800479f25e8bc1c1bd8f23a2a18c41df6159d020b4b44d0a886dafd39db b/891ed800479f25e8bc1c1bd8f23a2a18c41df6159d020b4b44d0a886dafd39db
new file mode 100644
index 0000000..6189a6a
--- /dev/null
+++ b/891ed800479f25e8bc1c1bd8f23a2a18c41df6159d020b4b44d0a886dafd39db
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<section xmlns="http://docbook.org/ns/docbook" xml:id="891ed800479f25e8bc1c1bd8f23a2a18c41df6159d020b4b44d0a886dafd39db">
+<title>Non-discrete Navigation</title>
+<para>Written 2024-06-18</para>
+<para>Permissive navigation has discrete navigation <emphasis>steps</emphasis>.
+Not all things do well with discrete steps.
+For example, consider a chat session with your friend.
+In its miniature form, it could be your friend’s name only.
+If you allow it to be a little bit larger, it can show one line of message preview, then perhaps a date, then perhaps an input bubble.
+In all these cases, the chat is a real chat, itself, in the sense of Alexander Obenauer.
+There is no clear way to specify at which point the user has <emphasis>navigated to</emphasis> the chat, as it is not very discrete.</para>
+<para>There is a solution: <emphasis>Zoom and Detach</emphasis>.
+The user will be able to zoom on an object, creating an easily dismissible bubble on top of it, to reveal more aspects of the item.
+The bubble can be interactive.
+If the user wants the full interface to persist, then they will detach the bubble, declaring that view independent.</para>
+<para>Ultimately, you can see this as a special version of map zooming.
+Duplicating a view is the remedy to any non-discrete navigation.</para>
+</section>
diff --git a/8b63ea90355c49dc15a21fc373ff2b36af235a2f6fe65611c6bcf5e29e560327 b/8b63ea90355c49dc15a21fc373ff2b36af235a2f6fe65611c6bcf5e29e560327
new file mode 100644
index 0000000..279d2ab
--- /dev/null
+++ b/8b63ea90355c49dc15a21fc373ff2b36af235a2f6fe65611c6bcf5e29e560327
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<section xmlns="http://docbook.org/ns/docbook" xml:id="8b63ea90355c49dc15a21fc373ff2b36af235a2f6fe65611c6bcf5e29e560327">
+<title>Too Much History</title>
+<para>Information is not supposed to proliferate without discretion.
+It is a bad idea to keep all information (history) regardless of its significance; that would scarcely be manageable.
+This is why a perfect lambda calculus machine was found impossible.</para>
+</section>
diff --git a/923af141e476484abf3f5f59e855d4189aa30a766af94ecb8c7dca7e20d0eb53 b/923af141e476484abf3f5f59e855d4189aa30a766af94ecb8c7dca7e20d0eb53
new file mode 100644
index 0000000..c859733
--- /dev/null
+++ b/923af141e476484abf3f5f59e855d4189aa30a766af94ecb8c7dca7e20d0eb53
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="utf-8"?>
+<para xmlns="http://docbook.org/ns/docbook" xml:id="923af141e476484abf3f5f59e855d4189aa30a766af94ecb8c7dca7e20d0eb53"><emphasis role="strong">Thesis.
+Property of the index.</emphasis> An index always warrants a button to duplicate the current view at its viewing position or bookmark it.</para>
diff --git a/a10f59e2f753483d92c73d275e329371239f528811ca472590145a6f2698d053 b/a10f59e2f753483d92c73d275e329371239f528811ca472590145a6f2698d053
new file mode 100644
index 0000000..64e5d90
--- /dev/null
+++ b/a10f59e2f753483d92c73d275e329371239f528811ca472590145a6f2698d053
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<section xmlns="http://docbook.org/ns/docbook" xml:id="a10f59e2f753483d92c73d275e329371239f528811ca472590145a6f2698d053">
+<title>On Stack Navigation</title>
+<para>In computer science, a stack is a data structure which can contain zero or more items and supports two operations: <emphasis>push</emphasis> (add an item) and <emphasis>pop</emphasis> (remove topmost item).
+You can see this as an opaque tube with only one open end.
+Items can be <emphasis>pushed</emphasis> into the tube in a certain order, after which only the topmost item in the tube is accessible, so items are <emphasis>popped</emphasis> back in reverse order.</para>
+<para>This exactly describes our navigation within apps.
+If you open a page in an app, it usually covers the whole viewing area and shows a back button, so you can only access the topmost item.
+This is the <emphasis role="strong">stack navigation paradigm</emphasis>.</para>
+<para>Based on many assumptions app designers make, they infer that the user only needs one page of information at a time.
+Compared to the old-school desktop program, it reduces possible ways an otherwise professional program can be interacted with, facilitating interactions that are prescribed to be useful, but also strongly claiming creative interactions useless, as they intend to only allow these prescribed series of interactions for prescribed scenarios.</para>
+</section>
diff --git a/a5d7c89171292a4aae9a8576ede876cde989b47ebc8a40062fd8898e7b7618d9 b/a5d7c89171292a4aae9a8576ede876cde989b47ebc8a40062fd8898e7b7618d9
new file mode 100644
index 0000000..eca0f8c
--- /dev/null
+++ b/a5d7c89171292a4aae9a8576ede876cde989b47ebc8a40062fd8898e7b7618d9
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<section xmlns="http://docbook.org/ns/docbook" xml:id="a5d7c89171292a4aae9a8576ede876cde989b47ebc8a40062fd8898e7b7618d9">
+<title>Problems</title>
+<include xmlns="http://www.w3.org/2001/XInclude" href="891ed800479f25e8bc1c1bd8f23a2a18c41df6159d020b4b44d0a886dafd39db"/>
+<include xmlns="http://www.w3.org/2001/XInclude" href="8b63ea90355c49dc15a21fc373ff2b36af235a2f6fe65611c6bcf5e29e560327"/>
+</section>
diff --git a/c6a10203ed7a4b78a47361e5b015052d8a3d12b30bed405096105d4e1055defa b/c6a10203ed7a4b78a47361e5b015052d8a3d12b30bed405096105d4e1055defa
new file mode 100644
index 0000000..9b88554
--- /dev/null
+++ b/c6a10203ed7a4b78a47361e5b015052d8a3d12b30bed405096105d4e1055defa
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<listitem xmlns="http://docbook.org/ns/docbook" xml:id="c6a10203ed7a4b78a47361e5b015052d8a3d12b30bed405096105d4e1055defa">
+<para>In the first possibility, any navigation act will open an additional frame on the side, and frames do not close unless the user decides to click a Close button.</para>
+</listitem>
diff --git a/f19e83eaa88c1ff46406d46cf282e4e0c11ad33a69452f5f2e1002609a72148a b/f19e83eaa88c1ff46406d46cf282e4e0c11ad33a69452f5f2e1002609a72148a
new file mode 100644
index 0000000..0c1af6e
--- /dev/null
+++ b/f19e83eaa88c1ff46406d46cf282e4e0c11ad33a69452f5f2e1002609a72148a
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<section xmlns="http://docbook.org/ns/docbook" xml:id="f19e83eaa88c1ff46406d46cf282e4e0c11ad33a69452f5f2e1002609a72148a">
+<title>Positive and Negative Permissive Navigation</title>
+<para>A <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="6e21678bee964843955b86627ae4b47b6fa8b1e03c4e4b5f80cfac913078f57d">Back-Forward-Recents</link> navigation becomes functionally equivalent to <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="690b981d70d34c93b088adc4c0916d0fe8de8e3a96ec46a4b55bc776dd85d080">permissive navigation</link> if everything is equipped with an “open in new frame/window/tab” button, so the user does not lose any history when attempting another direction.
+This is fortunately the case with File Explorer and popular browsers.
+I call this <include xmlns="http://www.w3.org/2001/XInclude" href="f227c54582f14b4b920129aace46f7a43a5e60c0d9f04ab489c9006da01286a3"/>, because although the users are able to complete all navigation that could have taken place, they are only able to do that by explicitly visiting history.
+The original three formulations of permissive navigation are now examples of <include xmlns="http://www.w3.org/2001/XInclude" href="37a2ecd7e2b14797b08ac43bcf1ace5dc556b9120e8c45a48b2d1991d3be085f"/>.</para>
+<para>We can easily see that negative permissive navigation causes more friction when the user needs to access history, but it takes up less space on the screen.
+On the other side, positive permissive navigation has the opposite properties, simply because “history” content is already in view.
+How does a designer choose one over another, if their difference is rather arbitrary?
+Extrapolating from current cases, a pattern seems to hold:</para>
+<include xmlns="http://www.w3.org/2001/XInclude" href="1bc07b934bc14126ad1ce082d966a872f9d2c4fc98f541dcb2a6bf05303e8097"/>
+</section>
diff --git a/f227c54582f14b4b920129aace46f7a43a5e60c0d9f04ab489c9006da01286a3 b/f227c54582f14b4b920129aace46f7a43a5e60c0d9f04ab489c9006da01286a3
new file mode 100644
index 0000000..53361f6
--- /dev/null
+++ b/f227c54582f14b4b920129aace46f7a43a5e60c0d9f04ab489c9006da01286a3
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8"?>
+<phrase xmlns="http://docbook.org/ns/docbook" role="strong" xml:id="f227c54582f14b4b920129aace46f7a43a5e60c0d9f04ab489c9006da01286a3">negative permissive navigation</phrase>
diff --git a/f8365c7ab4c086c9779924f1d00d3eb5b75bf8642846c47cc254d8a0a134dab5 b/f8365c7ab4c086c9779924f1d00d3eb5b75bf8642846c47cc254d8a0a134dab5
new file mode 100644
index 0000000..473a0f4