Sunday, November 13, 2005

Chat Mail

Every four or five months I clear out my email Mailbox, vowing as I do so that I will put some of the recommendations made in Mark Hurst's Managing Incoming Email management report and not let things get so bad ever again. (My email count last week was about 1600 messages, down to 18 today.)

Here are some nuggets:

The correct way to measure e-mail load is by the message count, or the number of e-mails currently sitting in the inbox. While message volume shows how much more e-mail users have to manage than yesterday, message count shows the total number of e-mails that are currently loading the user. A user who gets 100 messages a day may not be overloaded at all, if their message count is low; conversely, a user who gets ten e-mails a day may indeed be overloaded.

From this, the key recommendation to managing email follows straightforwardly:

Keep the inbox empty. In other words, clear out incoming e-mails before they pile up too high in the inbox. Delete most of them, file some of them (in mail folders or elsewhere), but most importantly, get them all out of the inbox before they really begin to pile up. Keep the inbox empty.

One thing I know from my own bitter experience is that I use all sorts of reasons to justify why I keep my Mailbox cluttered. These are succintly summarised in a section on The Misused Mailbox:

People often use the inbox for several purposes it was never intended for:
  • To-do list. Users often keep action items and other “to-dos” in the inbox. This is perhaps the most common misuse.

  • Filing system. Meeting notes, project status messages, attachments containing proposals and other important documents stay in the inbox, instead of going to a proper project folder.

  • Calendar. Dates and times for meetings, conference calls, or other events pile up in the inbox.

  • Bookmarks list. E-mails are kept that contain pointers to websites and other applications. Usernames and passwords may be in these messages as well.

  • Address book. Messages containing phone numbers and postal addresses of contacts may stay in the inbox instead of being entered into an actual address book.

There is another reason I'm aware of that contributes to my email overload, and that's not always deleting messages I reply to, or deleting throwaway messages I have sent. (You know the sort of thing - one liners saying 'thanks for that', or 'coffee?' - things that should be consigned to instant messaging - only I don't use IM, and neither do a lot fo people I know).

So this is where chat mail comes in. Chat mail is mail that is purely throwaway and conversational. To handle chat mail I would like a couple of new buttons in my email (Gmail?) client:

1) 'Reply and Delete' - if I take this option, I generate a reply to the current message, and when I send that reply the message I am replying to gets deleted.

2) 'Send and Delete' - when I take this option, send the current message and then delete it from my mailbox.



I've already mentioned Suprglu in a couple of posts (here and here, in fact), but it also came to mind when I recently revisited this exchange across the Library Clips and Data Mining blogs on managing conversations across blogs.

One of the key problems I think is that each blog post should be able to stand as a post in its own right, yet also contribute to a conversation ionvolving one or more other blogs. [In case this ramble needs to refer back to this, let's say each blog post can act as a freestanding conversational node.]

The cross-referral between blog posts/conversational nodes can be managed through formal Trackbacks, or informally through comments ("I blogged about something similar *here*"...).

But are there any other ways? I've been thinking about email a lot, lately (and hope to post something exciting(?!) on this topic on my other blog in the next couple of days) and wondered whether a cc: convention would work...

CC:? exactly? Well, consider Suprglu - it aggregates posts from a variety of feeds in date order to produce a derivative blog. Now, if we want to be able to read through a 'blogversation' , it's a pain following Trackback links. The Library Clips suggestion of a Conversation Exchange provides for a centralised collection of pings relating to a particular conversation, and I suppose (though I don't think it's mentioned) that this list could then provide a river of posts in a single feed reader.

My take is very similar to this, though it tries to develop a different metaphor. How about if we send a copy of our blog post to a derivative blog? (I know the scope for spam is horrendous...) That is, when I make a post in part as a contribution to a conversation, I cc: a copy of the post to the blog posts I am conversing with...or more likely, I cc: a copy of my post to a derivative blog where all the posts in the conversation can be viewed in one place.

To get the original post at the start of the derivative blog, the original author would add a cc:Blog link that, when it is polled the first time, creates a new derived blog, sends a copy of the post to a new derived blog as the first entry, and returns a unique ID for that conversation. The erson cc:Blogging the post then sends a copy of their post to the derivative blog.

The cc:Blog link on this second post, if polled, will return the ID of the derivative blog/conversation the post is contributing to...

To view the whole conversation, a reader simply has to visit the derived blog page.

Hmmm - much easier probably to set up a Coversation Exchange and provide an easy way for people access the OPML feed and read all the posts in a conversation in a single page...


Thursday, November 10, 2005

Rollyo Portable? PageLinks Search

Just after I made the SearchLinks post last night, it struck me that another possibly useful tool would be a federated search over all the sites linked to from a given page: Rollyo Portable, if you like (after the Rollyo services which allosws you to create personalised, aggregated searches via Yahoo).

How would this work? Quite straightforwardly, I imagine:
  1. It would use toolbar searchbox, or text field added to the page somehow, and
  2. a server-side script, to
  3. search a page for anchor (<a>) tags, then
  4. extract the href link information (domains and directory path information),
  5. and use them in multiple calls to Google, say, using the Google Search API and the site: switch set to each linked to domain in turn,
  6. aggregate the results, and then
  7. return them to the user.
Each page could then have it's own customised Rollyo search equivalent. So, a possibly useful feature for a Rollyo toolbar, perhaps?

NB I'm not convinced that Rollyo does all it could. In particular, I think it only searches on a domain, which means I can't use it to search my OUseful blog, which actually lives down quite a long path...


Just a quick, quick post about something I'm doodling with - SearchLinks.

The basic idea is to be able to hover over a link and then perform a Google search using your own search terms over that domain.

The first rush is v ropey/brittle, but can be made to work if you're gentle with it. If you want to try it out, it's here at the moment...

In the roadmap is: 1) generalise the scripts to extract href info;2) improve usability; 3) Greasemonkey it; 4) get it on the Google Toolbar ;-)

PS I just stumbeled across this not totally dissimilar idea - page contextualised search from Yahoo, referred to as Y!Q Search

Tuesday, November 08, 2005

Me, Aggregated, Part 2

It struck me driving in to work today that while Suprglu potentially provides me with single aggregated view of a variety of my web offerings, it doesn't let me search them...

But Rollyo does... doesn't it?

For example, here's my Rollyo enabled Suprglu page...

But it doesn't work properly :-(

For example, my OUseful blog can't be searched from the root domain... and I don't think the search on my Micro-Info blog at Blogger works either...

Ho hum...does anyone out there know of a php script (or js script) that will take a list of url's (as RSS? or OPML?) and mash them, perhaps one at a time, with a site: call to Google using the Google API, and then display a list of combined results? tags:

Monday, November 07, 2005

Me: Aggregated

I just stumbled across Suprglu which seems to be some sort of "blog syndicator". Give the service a feed or two, from a blog, flickr or, for example, and it will aggregate everyting for you and republish it as a web page.

I think this may be useful, but I'm not sure how yet...

For an idea of what it does, here's me online...

Sunday, November 06, 2005

Browser OS - A Single Application Operating System

In his Observer column this week (Pitiful spectacle of an old DOS trying to do new tricks) John Naughton comments on the announcement of Microsoft Office Live:

"...a web service is technospeak for a computer function that is available via a browser rather than from a program running on your computer. A web search is an example. So are Hotmail and Google Mail, Maps, Froogle, Blogger and others.

"The idea of such services is almost as old as the web itself, but it is only with the advent of widespread broadband access that they have started to come into their own, because they can now offer levels of performance comparable to locally-running software.

" access web services, all you need is a browser - and it doesn't have to be Microsoft's own Internet Explorer. Nor does your computer have to run Windows. Firefox running on Linux or Safari running on a Mac are just as good for web mail or search as Explorer running on Windows."

Which got me thinking... What do I really need from my operating system, if I'm doing everything through a browser?

The browser would have to be quite a powerful one, of course - standards compliant, able to accept extensions, a robust (and quick) implementation of Javascript, etc.

It would also be handy if it came with a simple server that could serve text documents, like HTML, and XML, as well as multimedia files. (If Google Desktop can ship with a small browser included, I'm sure Mozilla could too).

So just looking at the browser, we'd quickly come up with quite a comprehensive list of requirements for the operating system, but hopefully less than if we had to support an open-ended number of unknown applications. (Or perhaps not - I never have taken an operating systems course...)

On the hardware side, too, there'd be a need to get all the right drievers in place. But what drivers would be shipped with our installer disk?

In my minimal, Browser Operating System (BOS), I'd only want access to the drivers I need for the system I've got.

Over the last 3 years, our home PC set-up has acquired two new external USB modems (one when we got broadband, when when I upgraded to a wireless router) and a new laser printer. It's also had to accept one new USB memory stick, a Palm docking station, a digital camera and an external music keyboard.

But those are peripherals, and I've found that most of them had obsolete or redundant drivers shipped with them, in the sense that the drivers were all available on product websites, and often in a higher version that the supplied driver.

Part of the point behind BOS is that we expect to be online most of the time, ideally with a persistent connection. Once I have the BOS customised for my hardware set-up, I don't really need a thousand and one drivers available, just in case I add a periheral, if I know I'm going to be able to install the appropriate driver from the web.

What I see for BOS, therefore, is a simple, if hefty, installation profiling client that looks at my system, works out what's there, gets the drivers I need, and bundles them for me with a single application - my heavyweight browser - in a customised BOS installer.

And that's what I install.

Just one application - the browser. Only the drivers I need. And only the supporting functions I need to get the browser to work on my particular system.

NB I do have to admit to cursing when asked for the Windows CD I don't have (this is a work's machine) when installing a new piece of hardawre, but one of the trade-off's runinng my lightweight BOS would be having to grab any future driver files I need from the net.

So although Universal Plug and Play (UPnP) is a real boon, my permanently connected machine running BOS should be able to make use of GPnP, shouldn't it? (Err, that's G for get, as in "get, Plug and Play", rather than "Gnu" or "Google"...)

And how would I know where to get the driver for my new gadget? Well, a clunky way would be to send the user to something like a TinyURL, perhaps via a path corresponding to the manufacturer and the particular product code of whatever I want to install?

Saturday, November 05, 2005

Asides, (Timerolls) and Pingrolls

Over on my other blog I just had call, within one post, to create another post containing an aside (i.e. self-contained footnote).

The process went as follows: as I was writing the first post, I created a second post, published it, got the persisitent URL and Trackback ping for that post and integrated them into the first post. Note that as a side-effect of the way I have set my blog up (the post date is when I created the post, not necessarily when I first published it*)

*here's another opportunity for an aside post, in partcular on what the correct time stamp for a blog post is? Created date? First saved timestamp? First published timestamp? Last published (e.g. following a reviosion) timestamp? Do we need timerolls (or editrolls) associated with each blog post, perhaps, delivering in the extreme case something like a MediaWiki page's History tab? Hmm - this use of roll sn't really ion keeping with the sense of the way it's used in blogroll, linkroll, or searchroll, through, is it?

I think a pingroll is, though - and this is another matter that arises from the way I use my other blog.

In particular, I've started included search links, rather than static links, on some occasions. For example, here's how I might refer to my writings in that blog on library toolbars. Note that I could also pull up a selection of links via a keyword search, category search or even a linkroll (I tend to bookmark and tag all my own postings...).

From this two things come to mind.

Firstly, a linkscript (scriptlink? That is, a Javascript include that will pull some content directly into a page) that will pull out all the links identified by the search, and perhaps include them as specific, unique but very generally labelled links (e.g. going through the list of links and including them in the page as: "here, here and here" for example).

Secondly, the need for a pingroll associated with the links that are pulled in. Now I don't know how sophisticated most blogging software is, but it would be nice if: 1) all pages came with an autodiscoverable Trackback/pingable URL; 2) all publishing systems polled all the links within a page, seeking out their ping IDs and sending a ping. (Can pings get retracted too, e.g by an unping?!)

Even if publishing systems were so enabled (with automated linkpingers(!)), the use of scriptlinks to pull in several links to a page using Javascript and perhaps the results from a call to a search engine may cause some problems. For example, if you just do a 'View Source' on a page that includes a scriptlink, all you'll see is reference to the script URL, rather than the code that the javascript causes to be displayed.

Unless, that is, you view source code using a tool like Jennifer Madden's View Rendered Source Firefox extension. Which is the sort of thing a linkpinger came with.

It might be interesting, though, if linkroll generators, however they're provided, also published pingrolls that mirrored the items referred to in a linkroll? tags:

Tuesday, November 01, 2005

Online Playgrounds, Part I: XSLT

As background research for a possible new course on web technologies, I've been looking around for web-based scratchpads to allow students to play about a bit and get a feel for what's possible in environment with no real overhead in terms of installing or setting up software.

So to start things off, here's a link to Google's open source AJAXSLT toolkit. This library supports cross-platoform, browser based XSL transformations, which is really handy for displaying XML documents grabbed through xmlhttprequest, for example.

One thing that's particulalry neat about this, of course, is that it means you can set up a browser based playground for trying out XSL transformations (e.g. you can try out the demo that Google ship with the toolkit here).