Yarn- Working with Messages in Diverse Formats and Protocols.notes

Friday, March 25, 2005

TITLE OF PAPER: Yarn: Working with Messages in Diverse Formats and Protocols
URL OF PRESENTATION: _URL_of_powerpoint_presentation_
PRESENTED BY: Abe Fetting
REPRESENTING: _name_of_the_company_they_represent_

CONFERENCE: PyCon 2005
DATE: _date_of_your_conference_here_
LOCATION: _venue_and_room_in_venue_
--------------------------------------------------------------------------

REAL-TIME NOTES / ANNOTATIONS OF THE PAPER:
{If you've contributed, add your name, e-mail & URL at the bottom}

"All programs expand until they can read mail" -- jwz

Reading Mail
Sending Mail
Download RSS feeds
Post to weblogs
And upload images

Information wants to be decantralized
    Useful information is spread around thentwork
    specialized hosted dat sources
    
Strategies for Interop
    1. All our data are belong to us (Roach Motel strategy)
    2. Teach your users to cut and paste
    3. Teach your applications to talk to other services

Interop is harad
    Learn spec
    Implement spec
    Learn how things work in the real world
    
Interop is Boring

It's all about messages
    From a person or application
    To a person, group, or application
    Contains
        Title
        Body
        Links (maybe)
        Metadata
    
    Email (MIME) message
    blog post
    RSS item
    Atom item
    Bookmark
    Google search result
    IM

Yarn
    A Python/Twisted library for workig w/ mesage
    standard API for reading/, writing, manipulating messages
    Originally developed for HEP - attempt at a universal message proxy
    http://yarnproject.org
    Version 0.7
    
HEP is not dead
    It is "just resting"
    Next release will follow Yarn 0.7

DEMO
    Yarn browser - Python and GTK
    uses browser to visit:
        a local mbox
        Slashdot RSS feed
        imap folder
        Google search results
        del.icio.us
            Yarn includes a credentials management framework
    browser can search what is being displayed
    can create messages (example of creating a del.icio.us entry)
    
Yarn Architecture
    Core classes provide common infastructure
        client api
        connection sharing
        cache managment
        credential management
        searching
        query parsing
        ... missed a few
    Plugins
        Protocols - HTTP, POP3, iMAP
        Formats - RSS, Atom, mbox
        MIME type conversion (HTMl -> text, HTML -> XHTML)

API details slide

15 line App slide

Yarn Messages
    Preserve underlying data
    Convert on demand
    
DEMO
    - load slashdot rss feed into Python interpeter using Yarn, and then manipulate data interactively using REP loop
    Because yarn preserves underlying data, you can edit data via python and have the underlying data get updated

Why use Yarn
    support multiple protocols without any extra work
    concenrat on more intersting problems

Where to use Yarn
    Universal Personal Proxy
    
Roadmap
    Code in SVN
    New release next week
    1.0 summer 2005
    
--------------------------------------------------------------------------
REFERENCES: {as documents / sites are referenced add them below}


--------------------------------------------------------------------------
QUOTES:



--------------------------------------------------------------------------
CONTRIBUTORS: {add your name, e-mail address and URL below}
Ted Leung <twl@sauria.com> <http://www.sauria.com>


--------------------------------------------------------------------------
E-MAIL BOUNCEBACK: {add your e-mail address separated by commas }



--------------------------------------------------------------------------
NOTES ON / KEY TO THIS TEMPLATE:
A headline (like a field in a database) will be CAPITALISED
    This differentiates from the text that follows
A variable that you can change will be surrounded by _underscores_
    Spaces in variables are also replaced with under_scores
    This allows people to select the whole variable with a simple double-click
A tool-tip is lower case and surrounded by {curly brackets / parentheses}
    These supply helpful contextual information.

--------------------------------------------------------------------------
Copyright shared between all the participants unless otherwise stated...