Want to receive my work as I publish it?

LAB NOTES
LAB NOTES
LN 022
02•27•2022

These Lab Notes document my research in progress. My research area is in the future of personal computing.

TOC Previous Next Latest


LN 040

The venerable hyperlink

LN 039

Notes on time

LN 038

Semantic zoom

LN 037

Gestural view construction

LN 036

Free and easy organizations and associations

LN 035

The Messy Desktop

LN 034

Live items & Contextual notifications

LN 033

Swappable reference views

LN 032

System injections

LN 031

Fluid workspaces

LN 030

Foldable views

LN 029

Experimenting with the item as the core primitive

LN 028

Designing systems for computer literacy and evolvability

LN 027

Personal Computing Network & Devices

LN 026

Internet Modules

LN 025

Publishing items

LN 024

Mutations & Item change logs

LN 023

Higher-level primitives

LN 022

Undo Actions

LN 021

Automations

LN 020

Item Actions

LN 019

Notifications

LN 018

Services & Item Drives

LN 017

Today & Daily summary

LN 016

Calendar views

EXPERIMENT 001

Cross-reference Navigation in Obsidian

LN 015

Cross-references & References cloud

LN 014

The Graph OS

LN 013

Why is our thinking on computers so restrained?

LN 012

References box & Topics

LN 011

General purpose personal computing software

LN 010

User-created application and system views

LN 009

User-created item views

LN 008

Unified views

LN 007

Atomized apps

LN 006

Swappable views

LN 005

Associated items

LN 004

Browsing contexts & recent paths

LN 003

Universal reference containers

LN 002

Universal data portability

LN 001

Composing application interfaces

LN 000

The Lab Notes

Undo Actions

In LN 018, we explored services, which are the components that store or supply items: an email service might supply email, draft, and contact items; a calendar service might supply calendar and event items.

And in LN 020, we explored item actions, which services could also make available: an email service might supply an action to archive an email, or a calendar service might supply an action to RSVP to an event invite.

But when providing each action, services might provide some additional information that we’ll cover in the next few Lab Notes, starting with this one.


Each service, which might be stock or from a third-party, supplies with each action it makes available another action that will undo the original action.

With both actions, the system is able to offer the user a consistent, system-wide undo and redo experience. And each individual developer doesn’t need to build their own implementations; they only need to identify what actions undo their undoable actions.

For example, your email service might provide an action to archive an email, and with it, the service provides an action that will unarchive the email. When you archive an email via any of the action triggers explored in LN 018, the system will add the action to an undo / redo stack, where – even after other changes or a system restart – you’re able to see the action that was taken, and optionally undo it. And the system can make the undo / redo stack available to you with straightforward controls (modern systems tend to rely on global shortcuts and menu items, either of which could be easily offered on this itemized system as well).


Undo / redo is well-defined and almost always expected by the user. And yet, developers have to rebuild the concept within their software surprisingly often, and it can become surprisingly complex. This constant double-work runs rampant in software development today, an issue intentionally addressed by the itemized OS of the future in a number of ways.

Both actions and items serve as higher-level primitives for software development, allowing third-party developers to build far less, while allowing the system to provide users with more cohesive interactions and experiences. We’ll explore more on this in a future lab note.

Something spark a thought? Email me, or come chat on Mastodon or on Twitter.


« Previous: LN 021

TOC

Next: LN 023 »


Want to receive my work as I publish it?