I've been thinking again about a device to replace my phone. The latest motivation was Apple's announcement that it's "the year of AI" and they are going to cram a bunch of psudo-AI crap down all iOS user's throats (of which I currently am).
I started this round by thinking about the device as a simple "communicator", distinct from the sort of general-purpose computing device (although I wouldn't call a smartphone truly general-purpose). What I need from the phone is the ability to communicate via voice, SMS, maybe video, maybe other things...
...but as I thought about the user interface for this I got thinking about the journals I keep in a text file, and some of the other "conversational" interfaces I've been experimenting with and in particular the text-based interfaces of the Cat and Project Oberon and now I kind of want something a little more than a basic communicator but still much simpler than a smartphone.
The interface I'm interested now is a simple chronological record like a journal where the input and output of the device is serialized and recorded in a chronological timeline. I find this interesting because it captures the reality of our communications and interactions. Regardless of how much "multitasking" our devices support, humans (at least with regard to higher-order functions like language and communication) can only work on one task at a time, and I think an interface like this could not only help us by working with us the way we actually function but it could also record our work in a way that might provide insight into how we live our lives, how the work and demands on us impact our well-being and how we might improve.
So imagine a device with a screen that displays a page where text can be entered. Along the left is a timeline that starts now, and as text is entered the scale expands to indicate how much time is spent entering the text. As the journaling process starts and stops this scale records the blocks of time spent journaling as the text flows down the page.
A text message is received and it's contents are dumped directly into the journal. The timelines records the time this interruption consumes but the background color changes to indicate that this input came from the SMS unit. The timeline's background color returns to the default and journaling can continue or the insertion point can be moved back up into the region with the SMS background color and replied to. The reply is recorded, the timeline expands and once the SMS interaction is complete the insertion point can be moved back down into the "default" background area and journaling can continue.
Other types of input are treated the same. Text-based communications are recorded inline as text with a background color indicating where they came from. Other media (voice, video, etc.) are also recorded inline but represented as playable media, again with the timeline reflecting the time consumed by these interactions.
That covers inbound communications but what about outbound? Here I'm thinking of borrowing some ideas from the list thing and giving the journal some sort of "commands" (not sure if this would be an explicit "mode" or prompt or something more elegant yet) where text for the message is entered into the journal like anything else, selected and then a "text Bob" or "email Jane" sort of command is issued. Just like with inbound communications, the background color of the journal changes to reflect the interaction and any response flows directly into the journal.
These "commands" could include other activities as well, the most obvious/essential (as much as I'd like to avoid it) is web browsing. This might sound crazy, but here I'm suggesting that browsing sessions are recorded as well, both visually (like a video) and transactionally (the http requests themselves). This not only documents the time spent, but provides a way to reference the session visually as well as create the possibility of extracting automation from the interaction. An example of this would be a browsing session where a bank balance is checked, later re-used to create a new command that can check the balance and "deposit" the result directly into the journal as text, avoiding the need for another web browsing session. Other applications could be integrated this way as well, but I do want to be very disciplined about this as it would be very easy for this to "creep" and recreate the smartphone problems I'm trying to avoid in the first place.
I'd like to pull together some sort of prototype of this environment before spending too much time thinking about it as I think some of the open questions will more easily be answered simply by using the thing. I'm not sure how I want to go about that though, so it might be a bit before I have a prototype.