SlideShare a Scribd company logo
Technology of the New News Workflow* Roger Theriault True/Slant *featuring WordPress MU
True/Slant
Contributors - Taibbi
Contributors – Colin Horgan
Contributors – Miles Obrien
Content surfaces on main site
Inbound Traffic >80% of inbound traffic is to individual posts We also need to expose these users to True/Slant via the single page template
Widgets
Related Posts and Streams
Topic Streams How to combine? Every author has a different way to organize categories, and a different opinion of what belongs We devised a ½ editorial, ½ automated Topic Fed by designating categories from specific contributors Fine tuned by manipulating on a post by post basis
Streams
Streams Editorial overrides Default based on post categories AJAX of course
Following
Following Simple list of contributor ids (and topics) stored for each user AJAX controls Other modules use the follow data (eg: email alerts, Facebook)
User Activity Feed Constant stream of user activity on the site Posts Comments by user Comments on user’s post Headline Grabs New follows Etc.
User Activity Feed Master activity table Multiple unique indexes Event type Acting user Receiving user Timestamp Blog id Post id or Link id Comment id Reciprocal events for receiver
Editorial Surface compelling content Leverage existing information Simple interface Don’t get in anyone’s way
Comment Curation Surface the best comments But permit the entire thread to be seen Show in streams and activity feeds Keeps conversations civilized
Comment  Curation Simple AJAX controls to “Call Out” a comment Alerts hook into it to send user notifications Rest is templates
Comment Curation
News Now
Network Header
Search
Contributor Tools
Technical Challenges How to integrate so many blogs? Consistent experience Fast performance
Caveat – what we are doing is OK No need to write everything as a separate plugin Need flexibility For easy scalability and maintenance, build hooks and filters in Be ready to throw a bunch of code away Don’t hack core! Copy and change functions if needed.
Editorial - AJAX Editors can’t always remember which tab in Admin to go to, so we put everything right in front of them Lots of hover – click elements for editors Some even for contributors  Curate Comments On backend, simple option storage usually is sufficient for editorial data Consistent UI elements eliminate complexity Conditional loading of editor elements and scripts
RSS – no
WordPress tables Posts Table
WordPress MU tables Posts Table Posts Table
WordPress MU tables Posts Table Posts Table Posts Table Posts Table X 300 ?
Shadow tables Posts Table Posts Table Posts Table Posts Table X 300 Master Posts Table
Shadow Tables Topic Streams Search Related Posts Activity Feed data Stats data not individual blog posts
Thank You Roger Theriault  [email_address] http://trueslant.com/rogertheriault/ True/Slant   http://trueslant.com/ “ News is more than what happens”

More Related Content

PPTX
Get rss to blogger
PDF
Ajax -a_new_approach_to_web_applications
PPTX
Manual versus Automatic Submission
PPSX
Ajax part i
PPTX
Manual versus Automatic Submission
PPTX
9 word press plugins you need to create killer Content
PPTX
ASP.NET - Ivan Marković
PDF
It's all about the google spider
Get rss to blogger
Ajax -a_new_approach_to_web_applications
Manual versus Automatic Submission
Ajax part i
Manual versus Automatic Submission
9 word press plugins you need to create killer Content
ASP.NET - Ivan Marković
It's all about the google spider

What's hot (14)

PPTX
Rest api to integrate with your site
PPTX
Mule integration with linkedin
PPTX
Mulesoft Salesforce Connector - OAuth 2.0 JWT Bearer
PPTX
Automated Acceptance Testing Example
PPT
Introduction to Adobe Flex - Zaloni
PPTX
Api crash
PPTX
Mule ESB integration with Stripe
PPT
Building Cool apps with flex
PPTX
Tube Tool Box
PPTX
Mule organization
PPTX
7 must have word press plugins for web developers
PPTX
6 types of web application development
ODP
What's Our Software Doing With All That User Input
PPTX
WordPress for Applications
Rest api to integrate with your site
Mule integration with linkedin
Mulesoft Salesforce Connector - OAuth 2.0 JWT Bearer
Automated Acceptance Testing Example
Introduction to Adobe Flex - Zaloni
Api crash
Mule ESB integration with Stripe
Building Cool apps with flex
Tube Tool Box
Mule organization
7 must have word press plugins for web developers
6 types of web application development
What's Our Software Doing With All That User Input
WordPress for Applications
Ad

Similar to Technology of the New News Workflow (20)

PPTX
Superautomatic! Data Feeds, Bricks, and Blocks, with Server-side Transformat...
PDF
Vskills Wordpress Developer Sample Material
ODP
Wordpress as a CMS
PPT
Lotus Notes Blog Template
PPT
Blogswikisrss
PPT
Open Source CMS
PPTX
Usability AJAX and other ASP.NET Features
PPT
Drupalcamp
PPT
Selecting A Content Management System
PPT
Blogs and Wikis
PPTX
Share point 2010-uiimprovements
PPT
Just dev it presenation modified word press 101
PPT
TeamPage Beginner to Jedi, Jordan Frank
PPT
Internet Librarian Slides
PPTX
Bringing Zest to SharePoint Sites Using Out-of-the-Box Technology
PPT
PPT
Introduction web tech
PPTX
WordPress 3.x for the sake of your sanity
PPTX
Easy tabs, Slideshows, Dashboards, etc - Client Side Scripts for SharePoint
PPTX
Client Building Functional webapps.
Superautomatic! Data Feeds, Bricks, and Blocks, with Server-side Transformat...
Vskills Wordpress Developer Sample Material
Wordpress as a CMS
Lotus Notes Blog Template
Blogswikisrss
Open Source CMS
Usability AJAX and other ASP.NET Features
Drupalcamp
Selecting A Content Management System
Blogs and Wikis
Share point 2010-uiimprovements
Just dev it presenation modified word press 101
TeamPage Beginner to Jedi, Jordan Frank
Internet Librarian Slides
Bringing Zest to SharePoint Sites Using Out-of-the-Box Technology
Introduction web tech
WordPress 3.x for the sake of your sanity
Easy tabs, Slideshows, Dashboards, etc - Client Side Scripts for SharePoint
Client Building Functional webapps.
Ad

Recently uploaded (20)

PPTX
Modernising the Digital Integration Hub
PDF
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
PDF
Zenith AI: Advanced Artificial Intelligence
PDF
Getting Started with Data Integration: FME Form 101
PDF
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
PDF
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
1 - Historical Antecedents, Social Consideration.pdf
PDF
Web App vs Mobile App What Should You Build First.pdf
PPTX
O2C Customer Invoices to Receipt V15A.pptx
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
PDF
2021 HotChips TSMC Packaging Technologies for Chiplets and 3D_0819 publish_pu...
PPTX
TLE Review Electricity (Electricity).pptx
PDF
Hybrid model detection and classification of lung cancer
PDF
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
PDF
DP Operators-handbook-extract for the Mautical Institute
PDF
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
PPTX
cloud_computing_Infrastucture_as_cloud_p
PDF
A novel scalable deep ensemble learning framework for big data classification...
Modernising the Digital Integration Hub
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
Zenith AI: Advanced Artificial Intelligence
Getting Started with Data Integration: FME Form 101
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
Assigned Numbers - 2025 - Bluetooth® Document
1 - Historical Antecedents, Social Consideration.pdf
Web App vs Mobile App What Should You Build First.pdf
O2C Customer Invoices to Receipt V15A.pptx
Programs and apps: productivity, graphics, security and other tools
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
2021 HotChips TSMC Packaging Technologies for Chiplets and 3D_0819 publish_pu...
TLE Review Electricity (Electricity).pptx
Hybrid model detection and classification of lung cancer
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
DP Operators-handbook-extract for the Mautical Institute
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
cloud_computing_Infrastucture_as_cloud_p
A novel scalable deep ensemble learning framework for big data classification...

Technology of the New News Workflow

  • 1. Technology of the New News Workflow* Roger Theriault True/Slant *featuring WordPress MU
  • 7. Inbound Traffic >80% of inbound traffic is to individual posts We also need to expose these users to True/Slant via the single page template
  • 10. Topic Streams How to combine? Every author has a different way to organize categories, and a different opinion of what belongs We devised a ½ editorial, ½ automated Topic Fed by designating categories from specific contributors Fine tuned by manipulating on a post by post basis
  • 12. Streams Editorial overrides Default based on post categories AJAX of course
  • 14. Following Simple list of contributor ids (and topics) stored for each user AJAX controls Other modules use the follow data (eg: email alerts, Facebook)
  • 15. User Activity Feed Constant stream of user activity on the site Posts Comments by user Comments on user’s post Headline Grabs New follows Etc.
  • 16. User Activity Feed Master activity table Multiple unique indexes Event type Acting user Receiving user Timestamp Blog id Post id or Link id Comment id Reciprocal events for receiver
  • 17. Editorial Surface compelling content Leverage existing information Simple interface Don’t get in anyone’s way
  • 18. Comment Curation Surface the best comments But permit the entire thread to be seen Show in streams and activity feeds Keeps conversations civilized
  • 19. Comment Curation Simple AJAX controls to “Call Out” a comment Alerts hook into it to send user notifications Rest is templates
  • 25. Technical Challenges How to integrate so many blogs? Consistent experience Fast performance
  • 26. Caveat – what we are doing is OK No need to write everything as a separate plugin Need flexibility For easy scalability and maintenance, build hooks and filters in Be ready to throw a bunch of code away Don’t hack core! Copy and change functions if needed.
  • 27. Editorial - AJAX Editors can’t always remember which tab in Admin to go to, so we put everything right in front of them Lots of hover – click elements for editors Some even for contributors Curate Comments On backend, simple option storage usually is sufficient for editorial data Consistent UI elements eliminate complexity Conditional loading of editor elements and scripts
  • 30. WordPress MU tables Posts Table Posts Table
  • 31. WordPress MU tables Posts Table Posts Table Posts Table Posts Table X 300 ?
  • 32. Shadow tables Posts Table Posts Table Posts Table Posts Table X 300 Master Posts Table
  • 33. Shadow Tables Topic Streams Search Related Posts Activity Feed data Stats data not individual blog posts
  • 34. Thank You Roger Theriault [email_address] http://trueslant.com/rogertheriault/ True/Slant http://trueslant.com/ “ News is more than what happens”

Editor's Notes

  • #3: This site is built on WordPress MU, with about 300 contributors, each with their own blog (“site”). If you’re familiar with WordPress MU, you’ll understand that out of the box, no plugins, each blog/site stands apart. You can’t search across blogs, you can’t query posts across blogs. It’s great for each blog – nice fast pageloads. But to integrate the network installation into one presence, you need to build on this great WordPress platform. I’m going to walk you through some of the things True/Slant can do, including editorial workflows – not everything you see is automated. And then I’ll get into techniques and methods to combine multiple blogs into something bigger than the sum of its parts.
  • #4: This is one blog. This particular one by Matt Taibbi who also writes for Rolling Stone. The functionality here is pretty simple, just a few sidebar pieces to show content from the rest of the site, and what we call an Activity Feed showing what the contributor has done in the past few weeks. We started this before BuddyPress was really available, and haven’t had a chance to check it out – in case you were wondering if there’s any BPress in True/Slant. Not yet…
  • #5: Here’s another contributor. This is the main page – very similar, and a common theme.
  • #6: And here’s another. They are all the same theme, just different content and writers. So why not stop here? Because it’s more than just one writer, just like any newspaper is more than just one column.
  • #7: Here are some of the bits we put on the home page. With 300 contributors, there are a lot of viewpoints. We have basically one full-time editor picking content to feature. And to keep him productive, we’ve created a few tools. But some things are automated.
  • #8: Many users arrive on our site at a specific post. Our chance to engage them starts on the single post page. These sidebar modules will attract users to other posts on the site.
  • #9: Here’s our footer. The most popular posts, recent contributors, and the last few posts and comments wind up here. This is all automatic.
  • #10: Rather than just posts from this contributor, we feature related posts from all blogs. We also have what we call topic streams. They aren’t exactly categories or tags; a post can be assigned to multiple topics; this exposes them to the site-wide topic streams.
  • #12: We call these Live Streams, but they’re more like topics. Posts can be assigned to multiple topics, based on - which category they are in in their home blog, or - an editor’s manual selection per post (either forcing a post into a topic, or possibly excluding it) Inside the streams, we can have posts and various status updates – such as this bit that lists recently recommended posts in the stream. In the sidebar, we can feature a post. All the editor needs to do is hover over the story, and click a link.
  • #13: This is how an editor manually overrides the automatic topic assignment. Here, the contributor’s Category placed this post into the World topic, but the editor manually added the post to the Haiti Earthquake topic as well.
  • #14: A user can follow contributors and topics, once you follow them, you can receive email alerts, and this handy drop-down shows you the latest updates.
  • #15: We modularized our code, so that we can hook in additional features later. When we added Facebook Share, and Email alerts, we did not have to modify the Follow code or change the Follow workflow for the user. If a user is not connected to Facebook, the Facebook part doesn’t appear.
  • #16: Everything a user does on the site can be displayed to other users.
  • #17: We implemented this with a special master table, listing all events. We indexed it and made some keys unique, so that there’s only one record, with the latest timestamp.
  • #18: We created several editorial tools, which add to the automation. The idea is to get the best content exposed, We have data to help us – eg post views, trends, comments. But don’t make it hard for the editor, And certainly don’t make anyone jump through hoops We use a lot of AJAX, which is only exposed to privileged users
  • #19: This is one of the first, and simplest customizations we did.
  • #20: The only thing you need to do here is increment comment_karma in the comment table by 1, and use that to set a class on the comment. Also, alerts hooks into the comment being called out action, so we can send a note to the original commenter.
  • #21: We also enabled an interface on the backend to curate comments from the comment list; green here indicates a called-out comment.
  • #22: Our home page needed a bit fancier set of tools, to create and arrange posts in panels.
  • #23: This network header editor allows editors to prioritize panels, hide them, change or re-crop the thumbnails and headlines, etc.
  • #24: To make search results fast across all blogs, we Added a new column to our shadow posts and comments table with just the searchable text of the post Made a fulltext index of that Intercepted the standard search query and queried our shadow table instead We also derive topics and contributors to provide refinement tools and links in the sidebar
  • #25: We also give contributors some tools – this is my dashboard Blog stats, top posts, referers all via internal stats (which we use in many other ways)
  • #26: Needs work
  • #29: One big issue we faced early was combining the multiple blogs into one. Does it make sense to use RSS feeds if the database is right there? What other information do we need? And – we’d still need to pull 300 feeds! Forget that!
  • #30: This is a normal, single “site” or blog.
  • #31: When you have two blog sites, you have to use a JOIN to query both tables at the same time (eg to find the latest post)
  • #32: When you have 300 blogs/sites, a normalized database is hard to deal with for reads. It would kill performance.
  • #33: Solution: de-normalize the data; we hooked into the post update and comment update actions and copied the data into this shadow table. Adding a blog_id column.
  • #34: No point in using this for each blog; WordPress handles things fine.