Responses to documents vs. streams

A number of people have contacted me with comments on my post yesterday about Document vs. Stream UI approaches.

Of particular note is a wiki Rudd-O has set up on Streams vs. Documents. If you find the concept interesting, you might find that a useful place to collaborate with others.

JL Dugger also shared some thoughts with me on Dataflow Languages. I wasn't familiar with the term, but the concept is one I've seen and used previously. I don't think it's necessary to write apps in one of these data flow languages - you can probably model that style of data flow processing in *any* language - but looking at how those languages are designed could probably give a ton of good implementation strategies. Another commenter echoed this with a quite informative discussion about 'functional reactive programming'.

Indeed, I think a lot of the ideas here are covering ground many others have thoroughly tread before. A few people pointed out various technologies and tools that already exist for doing stream oriented stuff; again though, my point is not that we *can't* handle streams, but rather that we already are doing lots of stream stuff, but the OS is not giving the support it should. Someone mentioned a not-yet-released Microsoft project called LiveMesh. (Personally, I long, long ago got worn out by MS products that take a great concept and implement only about half of it - with no way for me to get in and hook up the remaining bits myself, but to each their own.)

kyb outlined some thoughts about task streams with workflow aspects - something I totally agree with and have thought quite a bin on myself. I like the idea of prioritizing streams by work style type ("casual"/"concentrated"/"in the zone"). I myself find when working on bug triaging, that I deliberately break down my work in this fashion - in the mornings when I'm fresh I'll work on a handful of bugs that require a lot of thought, but in the evenings when I'm tired I prefer doing simpler triaging (typically going through and requesting bug reporters attach their Xorg.0.log's *grin*).

Both kyb and enobrev emphasized the need to be able to collate different kinds of streams (email, web urls, SMS, etc.) which may require indexing them into some neutral form, and then assigning various metadata properties to aid in organizing them, prioritizing them, determining if they must be seen or can age and expire, etc. Totally agreed.

Another user inquired about tracking changes on a collaborative SVG document in Inkscape. Glad you asked! :-) For a few years now we've been maintaining an experimental thing Ted Gould thought up called 'inkboard', an online whiteboard which allows multiple inkscape instances to interface to each other by communicating document changes through the jabber protocol. We don't ship it turned on by default, but if you rebuild inkscape from source, you can just pass configure the --enable-inkboard to flip it on. (We learned a lot of hard lessons in this; working effectively with streams is a lot more complex in practice than you realize.)

One comment pointed out that Google Apps, etc. provide these services on the server. I knew someone would inevitably bring up Google Apps. ;-) Web services obviously play a HUGE role in streams. Ignoring the open/closed issue here for now, my point is really that rather than consign my kick ass powerful desktop machine to being essentially just a dumb terminal, the underlying OS ought to get more involved in all these streams going around. Browsing lists, viewing bug reports, etc. etc. through firefox is operating at sluggish Comcast network speeds; we deserve the ability to do all this stuff at CPU speeds!

Also, a point I hope to get into in a future blog post is that an issue we have is that there are too many different UI's, and unfortunately with web services, the situation isn't much better. For instance, I love the Netflix UI approach, but it's completely different from GMail or Flickr (which also have great UI's optimized for their own purposes). Anyway, I'll leave that whole discussion for later.

This would be a good spot to mention an extremely interesting Desktop session at UDS2008 I enjoyed sitting through about UI integration of single-sign-on for web services. Ted Gould is maintaining a set of blueprints on the topic. The Ubuntu desktop team has some very intriguing plans under way.

Posted in Submitted by bryce on Wed, 2008-06-25 18:26.
bryce's blog

I am not so sure about the timelines approaches. They usually look good (like Picasa Timeline or Outlook Journal) but in the most cases I am only interered in the latest version of an artifact and a list of changes.

So working in information streams often require to switch context often. Two technologies build on that:

a) Myl

b) HumanEdj, which deals with cooperation on different projects and processes. It builds on top of Mails and Documents (also an Eclipse application, btw): http://www.rolemodellers.com/download.html

Beside that, RSS streams, Microblogging and Technologies like Yahoo pipes play a important role in the future workspace of Knowledge Workes.

Greetings
Bernd

Bernd Eckenfels (not verified) | Sun, 2008-07-13 17:21

After reading through that wiki page, it seems to me that much of this is about events. Where an event would be receiving a new mail, starting playback of an audio file, opening a document and so on.

Maybe the term Stream should be reserved for data that flows through a channel. Data that can be processed in tiny bits, without having received the whole thing already.

Wouldn't Package be a better term for email and chat?

Thorsten Wilms (not verified) | Thu, 2008-06-26 09:26

If the point is that the OS doesn't support it, perhaps you should switch to Plan9, with integrated "Plumbing" support. Its in Wikipedia somewhere, and would have to qualify as prior art here.

As you mention we already have tons of languages and implementations in different domains. What we need is an integrated representation for these. In my opinion, the first step would be to write up something like dia without the suck. A dataflow language doesn't need to be a linear text representation (it can help if one exists), as long as the interpreter software can understand it unambiguously and create something awesome as intended.

--
jldugger

jldugger | Wed, 2008-06-25 21:53

It's still an available option in Inkscape in Ubuntu though. What's interesting, though, is that it doesn't work. Kjcole and I tried it sitting across a table from each other, on the same subnet, and no good. I couldn't see his stuff, he couldn't see mine, but in our jabber windows we could see ourselves sending/receiving the information that *should* have told Inkscape what to display.

Mackenzie (not verified) | Wed, 2008-06-25 21:53

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.
More information about formatting options