TaskOE

A Task-centric, Configurable, Extensible Personal Computing Environment

Those who use Linux are familiar with "workspaces". By clicking on a workspace icon, usually at the bottom right of your screen, you can select a different workspace. Possibly you use this feature now to organize your activities. Workspace one might contain your browser. Workspace two might contain your editor, three your file browser and four your Skype. Now imagine that you can cluster your activities by workspace. If you are writing software, you might have an editor open on one or more files. You might also have a browser open to some specification. You might also have an open PDF on the workspace -- and more.

Now imagine that you close your computer and re-open it. Where did your work go? The workspace you used is empty and you must load everything all over again just to get back to work. Now suppose the workspace remembered itself and presented you with all of your apps all ready for you to use. Suppose further that you could type notes directly onto the workspace screen that is before you. Some of these notes might indicate the nature of the work being done in that space. Others might indicate where you left off last time in your thinking, or what your plans are for your next efforts.

But we are not yet out of "what ifs". What if your text on the workspace screen also contained hyperlinks to related workspaces -- perhaps other, similar projects, or hyperlinks to index workspaces that could take you many places. What if you could display a history, like in a browser, to take you back to former workspaces. What if you could bring up a tag index or tag cloud in that workspace that would help you find collections of workspaces on your PC, LAN and cloud? What if you could bring up a list of apps you might add to the workspace? What if you could copy the workspace and then modify it to suit a similar task?

To create an analogy to these familiar ideas, I have renamed the workspace a "screenful" and apps as "elements". This will help think of them in a new way without too much carryover from the old ideas.

Most computer and internet users are familiar now with a Wiki environment. It consists of pages of content hyperlinked together. Content such as text, photos, videos, music, tables and other forms of information or entertainment. A Wiki page even exists that functions as a web browser. It is possible to launch applications from a Wiki page. (cf. Tiddywiki)

The pages of a wiki are often referred to as microcontent. This suggests that information in the Wiki is being broken up into, or created in, small bits. These pages are commonly hyperlinked together which allows for all sorts of organizational schemes.

Another useful mechanism for organization is tagging. By adding tags to each page, one has the ability to produce lists of pages by tag. By combining hyperlinking and tagging, a very powerful organizational system is achieved.

In the early days of computing, the Operating System (OS) was conceived as the man-machine interface. Most of the effort of an OS was directed toward storing information in files, and executing programs. Though we have greatly improved the human interfaces to computing devices we are still bound to this noun-ish verb-ish paradigm. Operating environments have become increasingly prettier or more wobbly, but not measurably more organized.

Through the use of a personal Wiki over the past several years, I have come to be doing more and more of my work inside the Wiki rather than outside it. The superb organization it offers virtually guarantees that I will never lose track of old efforts. This makes my work modular in the sense that I can leverage past accomplishments to do current tasks.

The question logically follows: Why not a Wiki as an Operating System? The following is a functional specification for such an OS, or operating environment. Please feel free to send comments to my email address below. Anyone who wishes to code such a system is welcome to use these ideas and expand upon them.

I envision that the code can be executed within a browser window for prototyping purposes, as a shell for adaptability to existing kernels, and as itself running on top of the bare machine. The working name is TaskOE, suggesting the set of task oriented features upon which the system is formulated.

SYSTEM

SCREENFUL

ELEMENT PLUGINS

INDICATORS

CONFIGURATORS

SYSTEM ORGANIZATION

A conventional windowed computer system is organized through the mechanism of directories, sometimes called folders. A hyperlinked system self-organizes. But tagging allows many types of organization to take place. So even though hyperlinking can lead from a headword Screenful, to other Screenfuls, tagging is more powerful. This is because a particular Screenful can have any number of tags associated with it, allowing the user to display a link to the Screenful from many points of view.

To give an example, say there is Screenful "books" dedicated to reading mystery novels in Ebook format. The Screenful "books" contains an Element that is an index to Ebook Elements. Each Ebook may be written by a different author. So the Screenful "books" is accessible by the tags, book, ebook, johngardner, ianfleming, reading, reader, mystery, novel, and more if desired. It is easy to see that invoking a list Element giving the Screenfuls that contain the tag "mystery" would give a different organization to the resources than would be produced by listing the Screenfuls for tags, "johngardner", or "novel". Tagging allows us the ability to create sets that are more versatile than the sets created by folderizing data. Tags may be added, edited and removed in association with any Screenful.

You might be asking, "Why can't we do all of this in our browser? It would be easier to build this functionality in HTML5, for example." You are right. And that is possibly where we should start. But I envision a faster environment that would run as a window manager, and a yet faster one that might run right on top of the kernel. If TaskOE is a better operating environment, it might better serve us as the underpinnings of enhanced functionality and organization.