Doug Engelbart's I N V I S I B L E R E V O L U T I O N
Email2Blog HyperScope for Invisible Revolution Original Version
This was the original spec for the email to blog HyperScope. It has since been split into two as a natural break came in development.
The way the email to blog (RSS) would work is (in principle) simple.User emails a bunch of text to an email account (theirname@cynapse.org) and it gets posted on the web (http://theirname.cynapse.org).
There is one admin page for the user. The user gets there by logging on (simple dialog box asking for username and password) to http://theirname.cynapse.org/admin
On that page they can see all posts and delete posts. They can also choose a template for how their page should look. The template is a collection of HTML pages with <--body and such server-side tags to indicate what should go where. The reason the template is a collection of pages and not one is so that we can easily describe the look of the post itself and separately the page it is on and later even a frame set. For now though, this is just something to keep in mind, a simple start page would do.
INPUT Email parsing would be taking information from the email and saving them in an internal XML format.
email parsing
OUTPUT : WEB & RSS WEB
The page template would include <Head> information as well as the formating line and refer to how the posts should be listed with a single <--post comment. It could include CSS info and whatever.
Each blog page will be a collection of posts with added controls, as detailed in 'Email parsing' above. There will also be a full page worth of <BR> at the end, to ensure that anchors can pull pages all the way up.
web template notesSample Web layout available here.
Further dicsussion on the HyperScope functionality for the web blog and web pages in invisible revolution in genral can be found here.
Attachments/images/enclosures:
From http://backend.userland.com/enclosuresAggregators RSS 2.0 has a neat feature that allows an item to have an enclosure.
Like the enclosure of an email message, an RSS item enclosure is something big that may take a long time to download, or something binary that isn't text you read. You can read the text that describes the enclosure, or the enclosure may somehow be related to the item.
An example. Suppose a news source, like the NY Times runs a movie review. It might make sense to enclose a trailer for the movie along with the review. Or a band might use RSS to keep their fans informed of what they're up to. An enclosure could include a bit of music to illustrate a point.
The cool thing about enclosures is that they can be time-shifted. The aggregator or news readers should not download the enclosure until the computer is idle, and should not present the item with the enclosure to the user until the enclosure has been downloaded and is resident on the local hard disk. The key premise is No More Click-Wait.
Please read the background piece for more on the philosophy of enclosures. This article is a walkthrough for developers showing them how to support this feature of RSS.
RSS
Getting the RSS 'feed' to the world:
From http://www.webdevtips.com/webdevtips/developer/rss/index.shtml Basically here's how it works:
You create a file that contains all your headlines, links and descriptions.
You go to relevant news sites and submit your feed for approval.
The sites will check your file for changes at a time scheduled by the individual sites.
If the file has been updated then your updated headline(s) will be processed into the system.Step 1 - create the file
Step 2 - validate the file
Step 3 - submit the url
Step 4 - what to expectFUTURE WEB
The image which loads will be a link to go back.
The user will be able to choose frameset or not.
We'll be adding a blogroll. "logrolls are a collection of links on the home page of a weblog that point to sites that are somehow related to yours. They serve several purposes, they direct readers to the sites that are important to you, and serve as a set of bookmarks for you. They also help build page rank in search engines for sites you wish to bestow page rank on." Not sure how to do this yet, most likely via the admin page. http://radio.outliners.com/stories/storyReader$85
RESOURCES RSS is an XML/RDF vocabulary for describing metadata about websites, and enabling the display of "channels" on the "My Netscape" website.
http://www.intertwingly.net/"stories/2002/09/02/reallySimpleSyndication.html is useful.
"This document explores the basic concepts behind the various XML grammars which were derived from this base and makes suggestions as to directions for their further evolution: http://www.intertwingly.net/"stories/2002/09/02/reallySimpleSyndication.html
The History of Weblogs is at http://newhome.weblogs.com/historyOfWeblogs
http://backend.userland.com/rss is a good intro site. It describes required attributes and looks quite simple.
for trackback: http://www.movabletype.org/docs/mtmanual_trackback.html
A NOTE ON CODING Note for Mikhail:
There is one thing which is very important with the email to rss & html system which I have not pointed out yet, but which you were likely to do anyway.
It's very important that the code which covers the input of the emails, the parsing, the storing of internal XML versions of the post, the XML to RSS conversion and the XML to HTML conversions (with it's attendant display settings) are very separate. I'm sure the list I wrote it here is not functionally correct, but the point is that hopefully it'll be relatively easy to focus on only one component of the whole flow.
This is bearing in mind expected bugs in the system in general, and particular growth of the internal XML structure which will come to take on all the features of Augment plus more, as well as the HTML view specification service, which is not intended to exist in the first version at all, but should ideally be able to plug into the HTML generation.
Now, you are also completely free to reject all of this and get a simple system together as a learning exercise for all of us. You are the head developer and it's up to your judgment. I just need to know how this is coming together internally.