These Lab Notes document my research in progress. My current research area is on the future of personal computing.
General purpose personal computing software
User-created application and system views
User-created item views
Browsing contexts & recent paths
Universal reference containers
Universal data portability
Building apps in minutes, not months
Introduction to these Lab Notes
In an operating system of the future that allows you to use any items such as emails, notes, tasks, and so on (LN 002) anywhere you want (LN 003, LN 004), and that renders those items in views you can swap out (LN 006), an important opportunity arises:
What if users could modify, or even create, their item views, within the system?
This is certainly not an unprecedented idea — HyperCard is effectively a cult classic, and plenty of other examples spring up as well.
Consider: Should you decide you don’t quite like how something is displayed, you could simply change it. In this case, the user decides to increase the size of the title in their notes view and separate it from the date.
But let’s take it even further:
What if you could define new kinds of items, and views for those types?
Let’s say you want to create a new item type for some data that you’d like displayed in some particular way. We’re going to lose the generic nature of these examples, so extrapolate to some kind of item you’d like to have around your own system in your own work.
Consider: You have a handful of clients, and you want to represent them within your system as client items, with a view that renders those items in a specific way: with links to different lists for you to track different resources, and a field to represent the current status of the client or their project.
Just like your system is home to the standard items like emails, notes, events, and more, it is now home to your client items as well. You can freely do with those what you can do with everything else: reference them in a note or in a todo list, add a note or todo list to them, and so on.
Being able to create, and at any point in the future, modify, custom items alongside standard items, means you can be always in control of your own tooling.
Consider: You’re learning guitar and want to keep all of your sheet music and guitar tabs in one place. Some are PDFs and some are links to various websites. You could create a new item for this type.
Now that you have this “sheet music” item type, you can use it anywhere in your system.
As shown here, you could create a collection of these items. Further, you could reference these items from anywhere else in your system: within a todo list, a date, a note, etc.
Further consider: Say you start learning the piano, too, and you want to keep your sheet music in this same collection, since you’re learning some of the songs on both guitar and piano.
You could add a way to distinguish which items apply to guitar, which to piano, and which to both. This could make it possible for you to look at just the items that apply to one instrument when you’re practicing.
Even if you had already been using this system of your own creation for years with just guitar tabs, you can easily modify it now to also support sheet music for piano.
Adding a new field like this is easy to do even for standard types, too. Say you want to track emails not by the read or unread state, but by an incomplete or complete state to indicate to yourself whether you completed any actions involved.
You could add such an element to the view for emails, and use it freely across your system. The OS automatically stores this metadata and keeps it around when you need to see it.
The implications and further directions from this functionality run quite far, and will be explored in future lab notes. Sign up to receive them when they are published.