The content of this blog is my personal opinion only. Although I am an employee - currently of Nvidia, in the past of other companies such as Iagination Technologies, MIPS, Intellectual Ventures, Intel, AMD, Motorola, and Gould - I reveal this only so that the reader may account for any possible bias I may have towards my employer's products. The statements I make here in no way represent my employer's position, nor am I authorized to speak on behalf of my employer. In fact, this posting may not even represent my personal opinion, since occasionally I play devil's advocate.

See http://docs.google.com/View?id=dcxddbtr_23cg5thdfj for photo credits.

Monday, September 18, 2006

Ideal Communication Tool

On 9/17/06, Dean Kent wrote:
So - let me ask you a question: Do you have an idea of what would be your
ideal tool for all your communication needs? Without sticking to what
exists today. For example, if everyone on Usenet would instantly convert to
this new tool as well as everyone else you currently communicate with, or
download information from, etc. What kind of things would such a tool need
to do in order to satisfy you (Yes, I read your post all the way through,
but it seems like much of it was based upon 'what is', rather than 'what
would be ideal'.)

Just curious... (of course, you can post the answer to comp.arch if you
wish, rather than directly to me - if you desire to answer it at all).

I may post it to my blog, but it's off-topic for comp.arch. Not sure what USEnet group it would be on-topic for.

First off, "without sticking to what exists today" is impractical. The purpose of a communication tool is communication - the best tool is useless if there is nobody to talk to. So, a first requirement is that the tool talk all of the standard protocols - email, nntp, IM, RSS, etc.

Let's start off with the text oriented tools:
I/O: email, USEnet news, blogging, IM'ing
I was about to put RSS down as input ony, but that is not true - I may have a wiki site that generates an RSS feed to others.

Output: one of my key desires is multimode multicast: you compose a block of text. Maybe with graphics - your favorite format, XML, with graphic SVG, bitmaps, etc. You want to be able to send it or post it to any subset of selected services. NOT you cut and paste it from one to another, e.g. write email and cut and paste it to post in your wiki. Instead, you write the text once, and then you can set one or all of the following:
Email: To, CC, and Bcc
USEnet newsgroups to post to
Blog sites to post to
e.g. I often want to post the same item to my inside-the-company internal blog and my external blogger blog
Wiki sites to post to
wikis are a bit odd in that they are context sensitive - typically you click on a page.
but nevertheless I find that I often need the same stuff posted in more than one wiki
Similarly, many wiki pages contain text boxes and the like, such as TWiki's comment.
All of these are really separate potential output streams
IM conversations to post to
Yes, occasionally I am in 3 or 4 IM conversations at once - not the same conversation, but several separate
- and I want to post something to more than one
FAX: send to fax
SMS: send to cell phone text

I want to be able to create a "list" which consists of any or all of the above.

Note: above I am just talking about a user interface for media. I am not designing new media. Let's do a media mode taxonomy, and see if anything is missing:
Email: transient, deferred, disconnected, point to point
Blog: transient, semi-permanent, but temporal; deferred, disconnected, broadcast, one to many
IM: immediate, point to point (with multicast); transient, temporal
Wiki: permanent, reference - not intened to be temporal

Out of all of these, I think that what is missing are tools to assist you in cretaing both the transient, temporally contextual, stuff, as well as the current latest reference stuff. E.g. I was in a meeting this AM. Rajeev wrote up minutes: I updated our POR (Plan of Record) document. It would be nice if we could get both at once.

I guess that I am really vocifereously arguing against having to do things more than once.

Also... I think that everybody, every individual, needs a personal issue tracking system. Something to keep track of the highest priority thing to do next.

Note that YOU said "communications system". I said "communications and information management system". Communication is just one form of information. Memory is another. I want my communications, both incoming and outgoing, to be prioritized in the same list as my To-do items.

Most issue tracking systems are too heavyweight. You have to create an issue report. I want to be able to just say "Action Required" in a document, e.lg. in an outgoing email, and I want an entry in the issue tracker to be automatically created. (E.g. with a pointer back to the orignal document, possibly with the surrounding paragraphs extracted to explain the issue.

Similarly "Action Required By YYYY MM DD" should automatically do the date extraction thing. As should PORs, etc.

The personal information management system should track resources. So, e.g., if you commit to 3 days of work here, and 4 there, in the next 5 days, it should warn you of an overcommit.

... But you asked about communications, not calendaring, so I will not go too far down this path in this email.

Let's return to communication. We have already talked about multimodal multicast output. Now let's talk about input:

Basically, I see all of these separate input streams - email, RSS, IM, phone, etc.

I want my filtering going on, prioritizing. E.g. any communication from my wife or boss takes priority, no matter the input channel.

I want the same reader interface to be used for all inputs. Certainly easy enough to see for textual. For recorded voice or video, similarly easy.

For live voice or video, may be harder - you snooze, you lose. Although that's actually part of what I want to avoid. Record everything - all text, all voice, all visual inputs. If you are listening in on 2 phone meetings simulaneously while listening to email, have the ability to play back the last 2 minutes when something catches your ear. Compress... it's fairly easy to compress voice into 1/3rd the elapsed time. So, do small scale time shifting and scaling - listen in a minute or so behind. With this, you may actually be able to listen to several meetings all at once, without losing anything.

Speech to text - its a help. I can manage 4 IM conversations, but only 2 phone meetings.

Enough for now. I will now cut and paste this to my blog.