Paul Hammant's Blog: Resurrecting a small piece of Google Wave
Yes yes, I know Google Wave lives on at Apache, but I’m really only interested in one small thing, and that being thunked into existing standards (and apps).
IMAP Sub-accounts
This is for for machine to human conversations only, and I’ve blogged before on it, but here’s another attempt to explain it. Born perhaps from a failed attempt to explain it to an IMAP working-group that convened for a day at OSCON a month ago, as their major topic was JMAP which I am not going to go into here.
A worked example
Say I like my Capital One credit card spending notifications, but I’d like them better in my inbox as a single rolled-up message. And I’d like it even more if Capital One knew which ones I’d read (any device):
3 new payments of 5 total today, totaling $453.20 ($200 for holds). One restaurant charge from yesterday appears to have had a $16 tip added to the hold of $30 (above your preference of 18%), as it was finalized.
“New” is relative to when I last read the same (apparent) email - you see the email was rewritten a few times as payments were made, and despite me not actually reading it in my inbox.
The general idea
Any Machine to Human email that historically fills up your inbox with information that is soon to be out of date. Make a rollup message, from others (and delete them) They are constrained to emails delivered by this IMAP channel
More examples
- Hipchat “missed message” emails
- Github notifications
- Jenkins / CI build news
- Domain renewal summaries (you might own many)
- Application Monitoring alerts
- Twitter summaries
- Linkedin/Facebook invitations
- Meetup.com can delete past events
- Your Calendar app can do better with out of date invitations
How? - interim solution
-
Get two throwaway but private (secret) email addresses. One for the Capital One (or other) to email notifications to, and the second for your rolled-up summaries.
-
Host a daemon process somewhere that reads (and deletes) the emails from the first IMAP account above, and writes a roll-up summary the second to replacing any that it has to. I have (had) a proof of concept working, using Python to do the reading, writing and distilling. My proof of concept was no where near as sophisitcated as the Capital One example above, but it demonstrated the idea admirably.
-
Configure the second account in your mail reader (The outlook iPhone app has the edge over the built-in Mail app).
This advances the concept without requiring mail-server makers to implement sub-accounts, or service providers to do IMAP-rewriting for/to you instead of SMTP. Of course we want mail server makers to implement sub-accounts, but that’ll come after the first usages of this.
How? - proper solution
(after mail server makers do sub-accounts)
I log in to my mail-server’s UI, run though a wizard for “Capital One” (I choose the name), some credentials, for Capital One to use to post & modify:
Capital-One+paul@mydomain.org DIFFERENT-PASSWORD-TO-MY-MAIN-ONE imap.gmail.google.com:993 (or something more like a web-hook)
If the IMAP sub-accounts became a real IMAP thing (and Google did it too), I would discard the private/secret email account, and safely make sub-accounts in my main gmail account.
Note - Server technologies get the upgrades, and email clients can stay the same as they are today.
After this -standard- implementation change?
Email needs to be in a sandboxed viewer that supports JavaScript. Refer to It is Time for Email Apps to Support JavaScript. Yes this is perfectly doable - it just needs a first mover. And with respect to the Capital One example:
3 new payments of 5 total today, totaling $453.20 ($200 for holds). One restaurant charge from yesterday appears to have had a $16 tip added to the hold of $30 (above your preference of 18%), as it was finalized. .
Of course that can work today, but I’m sick of the mail app opening the Safari app, and the vestige pages/tabs left hanging around after I have performed the required action. I’m also sick of the messed up implementations of actionable emails that require me to log in to their web-app in the browser, despite originating in an email that’s clearly only to me.