SlideShare a Scribd company logo
1 of 83
Introducing Vice - Outbound Syndication in Plone via the Zope Component Architecture Paul Bugni Center for Public Health Informatics Feed the Masses T: 206.221.7444 F: 206.616.5249 1100 NE 45 th  Street, Ste 405 Seattle, WA 98105 www.cphi.washington.edu
Agenda ,[object Object],[object Object],[object Object],[object Object],[object Object]
What is syndication?
To publish or broadcast ,[object Object]
“Web Feed” or “News Feed”
Data format for frequently updated content
Content distributors  syndicate  a web feed
Users can easily  subscribe  to the feed
Simplifies keeping up with changes
Using Aggregators
 
 
Prevailing syndication formats ,[object Object]
Two prevailing formats (as of mid-2005) ,[object Object],[object Object]
Exposing the myth of RSS compatibility ,[object Object],[object Object]
RSS Stands For? ,[object Object],[object Object],[object Object]
First, there was the mark up language RDF ,[object Object],[object Object]
RSS 0.90 ,[object Object],[object Object]
RSS 0.91 (part 1) ,[object Object]
RSS 0.91 (part 2) ,[object Object]
Confusion ensued ,[object Object]
RSS 1.0 ,[object Object],[object Object],[object Object]
So to clear things up ,[object Object],[object Object],[object Object],[object Object]
RSS 2.0 ,[object Object],[object Object]
Atom 1.0 ,[object Object]
Atompub Working Group
IETF (Internet Engineering Task Force)
The Atom syndication format has been adopted as IETF Proposed Standard RFC 4287
RSS 2.0 versus Atom 1.0 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Need For Better Syndication in Plone ,[object Object],[object Object],[object Object]
PLIP #128 Motivation ,[object Object]
PLIP #128 Motivation (continued) ,[object Object]
PLIP #128 Motivation (continued) ,[object Object]
PLIP #128 ,[object Object],[object Object]
Vice to the Rescue!
And the name ? ,[object Object],[object Object]
Vice was Born at the (now infamous) BBQ Sprint ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Then Vice Picked up a Sponsor ,[object Object],[object Object],[object Object]
Vice also benefited from additional sprints ,[object Object],[object Object]
Installing Vice
Add Vice to the Buildout Eggs ,[object Object],[object Object],[object Object],[object Object]
Include the Vice Configuration Files (a la zcml slug) ,[object Object],[object Object],[object Object]
That’s It? ,[object Object]
Workaround:  ,[object Object]
Re-run ./bin/buildout
Install Product in Portal  ,[object Object]
Configure for Use ,[object Object],[object Object],[object Object]
Out of the box demo ,[object Object]
Design Goals ,[object Object]
Ideally, none of them!
Separation of Concerns ,[object Object]
Goal: Make it easy to add additional feed types
Goal: Make it easy to extend beyond common object attributes
How to Manage the Complexity? ,[object Object]
The Previous Approach: ,[object Object],[object Object]
The Downsides ,[object Object],[object Object]
A Better Way ,[object Object]
Three Core Concepts ,[object Object],[object Object],[object Object]
Interfaces ,[object Object],[object Object]
Components ,[object Object]
Adapters ,[object Object],[object Object]
Types of Components ,[object Object],[object Object],[object Object],[object Object]
Zope Component Architecture ,[object Object],[object Object]
Core Vice Concepts ,[object Object],[object Object]
IFeedable ,[object Object],[object Object],[object Object],[object Object]
IFeed ,[object Object],[object Object]
IFeed ,[object Object],[object Object],[object Object],[object Object]
IFeed Adapters ,[object Object],[object Object]
IFeedItem ,[object Object]
IFeedItem ,[object Object],[object Object],[object Object]
IFeedItem Adapters ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Thus Vice Handles all AT Content Types “out of the box” ,[object Object]
How to Syndicate a New Type
New Type Must Be Adaptable to IFeedItem
Register the Adapter Factory ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Define the IFeedItem Adapter Class ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Page Template for Body of Feed Item ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
That’s It ,[object Object]
Adding a new Feed Format ,[object Object]
But there’s a vice sprint going on this weekend! ,[object Object]
Inbound Story? ,[object Object],[object Object],[object Object]
How to get involved ,[object Object],[object Object],[object Object],[object Object],[object Object]
Questions?

More Related Content

Similar to Feed the Masses

RSS and Atom in the Social Web
RSS and Atom in the Social WebRSS and Atom in the Social Web
RSS and Atom in the Social Web
hchen1
 
Site Templates in SP 13
Site Templates in SP 13Site Templates in SP 13
Site Templates in SP 13
Shahzad S
 
Integrating Files Into Drupal 7 Authoring Workflow
Integrating Files Into Drupal 7 Authoring WorkflowIntegrating Files Into Drupal 7 Authoring Workflow
Integrating Files Into Drupal 7 Authoring Workflow
Matt Mendonca
 

Similar to Feed the Masses (20)

FED presentation
FED presentationFED presentation
FED presentation
 
Flask
FlaskFlask
Flask
 
RSS and Atom in the Social Web
RSS and Atom in the Social WebRSS and Atom in the Social Web
RSS and Atom in the Social Web
 
20100707 e z_rmll_gig_v1
20100707 e z_rmll_gig_v120100707 e z_rmll_gig_v1
20100707 e z_rmll_gig_v1
 
Understanding and extending p2 for fun and profit
Understanding and extending p2 for fun and profitUnderstanding and extending p2 for fun and profit
Understanding and extending p2 for fun and profit
 
Rewriting a Plugin Architecture 3 Times to Harness the API Economy
Rewriting a Plugin Architecture 3 Times to Harness the API EconomyRewriting a Plugin Architecture 3 Times to Harness the API Economy
Rewriting a Plugin Architecture 3 Times to Harness the API Economy
 
A winning combination: Plone as CMS and your favorite Python web framework as...
A winning combination: Plone as CMS and your favorite Python web framework as...A winning combination: Plone as CMS and your favorite Python web framework as...
A winning combination: Plone as CMS and your favorite Python web framework as...
 
Build Python CMS The Plone Way
Build Python CMS The Plone WayBuild Python CMS The Plone Way
Build Python CMS The Plone Way
 
Site Templates in SP 13
Site Templates in SP 13Site Templates in SP 13
Site Templates in SP 13
 
ODF Mashups
ODF MashupsODF Mashups
ODF Mashups
 
Facets of applied smw
Facets of applied smwFacets of applied smw
Facets of applied smw
 
Migraine Drupal - syncing your staging and live sites
Migraine Drupal - syncing your staging and live sitesMigraine Drupal - syncing your staging and live sites
Migraine Drupal - syncing your staging and live sites
 
Plone -- Evolving Python CMS
Plone -- Evolving Python CMSPlone -- Evolving Python CMS
Plone -- Evolving Python CMS
 
Maven Introduction
Maven IntroductionMaven Introduction
Maven Introduction
 
Integrating Files Into Drupal 7 Authoring Workflow
Integrating Files Into Drupal 7 Authoring WorkflowIntegrating Files Into Drupal 7 Authoring Workflow
Integrating Files Into Drupal 7 Authoring Workflow
 
Fewd week1 slides
Fewd week1 slidesFewd week1 slides
Fewd week1 slides
 
Web 2.0
Web 2.0Web 2.0
Web 2.0
 
DM110 - Week 9 - Content Syndication
DM110 - Week 9 - Content SyndicationDM110 - Week 9 - Content Syndication
DM110 - Week 9 - Content Syndication
 
Creating a Wiki-Based Online Help System (Abridged)
Creating a Wiki-Based Online Help System (Abridged)Creating a Wiki-Based Online Help System (Abridged)
Creating a Wiki-Based Online Help System (Abridged)
 
iOS Course day 2
iOS Course day 2iOS Course day 2
iOS Course day 2
 

Recently uploaded

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Recently uploaded (20)

Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 

Feed the Masses