SlideShare a Scribd company logo
Mashing up

        Michael Brunton-Spall
michael.brunton-spall@guardian.co.uk
            @mibgames
About Us

 Online since 1995
 250M+ pages per month
 30M+ visitors per month
1995 - Guardian Online
1999 - Guardian Unlimited
1999 - Removed the registration wall
2007 - Rebuild and Redesign
2007 - Rebuild and Redesign
2007 - Rebuild and Redesign
2009 - MPs Expenses
Developing The Guardian
The Hackable Guardian

 Url Hacking
 Keyword Combiners
 RSS Feeds
Url Hacking

http://www.guardian.co.uk/
    [section]/[keyword]
        technology/internet
    [section]/all
        environment/all
     [publication]/[date]/[newspapersection]
        theguardian/2009/jun/11/technologyguardian
    profile/[name]
        profile/bobbiejohnson
RSS Feeds

RSS Everywhere!
  [section]/[keyword]/rss
      technology/internet/rss
  [section]/all /rss
      environment/all/rss
   [publication]/[date]/[newspapersection]/rss
      theguardian/2009/jun/11/technologyguardian/rss
  profile/[name]/rss
      profile/bobbiejohnson/rss
Full Fat!


http://www.flickr.com/photos/snapperwolf/
Url Combiners

  A Logical AND
  Almost any combination from before
     technology/internet+profile/bobbiejohnson
     theguardian/technologyguardian+technology/internet
  Except things that aren't actual tags:
     Dated newspaper sections
        theguardian/2009/jun/11... + anything = 404
     the all page
        .../all + anything = 404
Problems with this approach

  Fragile
  No Discovery
  Not well documented
  Copyright Issues
Build applications with the Guardian
Open Platform

  Opening up how we work with people both internally
  and externally
  A suite of services enabling partners to build
  applications with the Guardian
     Content API
     Data Store
Data Store
  A directory of useful data curated by Guardian editors
Data Store
  A directory of useful data curated by Guardian editors
Data Store
Data Store
Content API

  A service for selecting and collecting content from the
  Guardian for re-use
Content API

  A service for selecting and collecting content from the
  Guardian for re-use
Content API




              Search content
Content API




              Xml and Json
Content API




              Tag Metadata
Content API




              Full Article Body
Content API




              Filters
So why?


 guardian.co.uk has an amazing amount of
 quality content
 Incredible amounts of meta-data, curated by
 editors
 Aim to allow the guardian to become a rich
 source of facts and journalism for the web
How?
 Backed of our search platform
 Provides access to 10 years of article content and
 metadata
 Supports multiple output formats: XML, JSON, ATOM
 Supported free text search across content
 Search for keywords
 Guardian supported api projects in Java, PHP, Python
 and Ruby
 Community supported api projects in Perl, ActionScript
 and Coldfusion (and probably more?)
Pricing
Pricing




          FREE!
How free is free?

  You can publish full articles from the guardian on your
  website
  5k queries per day limit
  24 hour maximum cache lifetime
  Online support
  Partner with us on advertising
Beta trial


  Limited number of keys
  Collecting feedback
  Will open more widely at end of beta program
How do I use it?

  Home page
     http://www.guardian.co.uk/open-platform
  Sign up for an API key at
     http://guardian.mashery.com
  Use the API Explorer at
     http://api.guardianapis.com/docs/
  Use the python library at
     http://code.google.com/p/openplatform-python/
What can I do with it?


  Search our tag hierarchy
  Find content by tag
  Find content by search terms




         Display on your website!
MP's Expenses
MP's Expenses

 Written in Django
 Hosted on EC2
 Easy to modify
 Written in 2 weeks
MP's Expenses




                An MP's Page
View

def mp(request, id):
  mp = get_object_or_404(MP, pk = id)
  ...

  return render(request, 'mp.html', {
     'mp': mp,
     'documents': mp.documents.all(),
     'top_users': top_users[:5],
  })
View

def mp(request, id):
  mp = get_object_or_404(MP, pk = id)
  ...

  return render(request, 'mp.html', {
     'mp': mp,
     'documents': mp.documents.all(),
     'top_users': top_users[:5],
  })
View

def mp(request, id):
  mp = get_object_or_404(MP, pk = id)
  ...

  return render(request, 'mp.html', {
     'mp': mp,
     'documents': mp.documents.all(),
     'top_users': top_users[:5],
  })
Using the Guardian API

  Getting all articles about an MP
     results = client.search(q='"%S"' % (name))
     returns a paginating iterator
     for x in results:
         print x['headline']
     Shows only first 10 by default
Get the client

def mp(request, id):
  mp = get_object_or_404(MP, pk = id)
  ...
  client = Client(settings.GUARDIAN_APIKEY)

  return render(request, 'mp.html', {
     'mp': mp,
     'documents': mp.documents.all(),
     'top_users': top_users[:5],
  })
Make the request

def mp(request, id):
  mp = get_object_or_404(MP, pk = id)
  ...
  client = Client(settings.GUARDIAN_APIKEY)

  return render(request, 'mp.html', {
     'mp': mp,
     'documents': mp.documents.all(),
     'top_users': top_users[:5],
     'articles': client.search(q='"%s"'%(mp.name)),
  })
Update the template

<div id="about-mp">
  <ul>
     {% for article in articles %}
     <li>
        <a href="{{article.webUrl}}">{{article.headline}}</a>
     </li>
     {% endfor %}
  </ul>
</div>
And the result!
Additions?

  Use Memcached to cache the response from guardian API
  Don't create a new client each time
  Article bodies
Who else is using it?
Who else is using it?
Who else is using it?
Who else is using it?
Public API Key?

 jbynv3fwdp8ju5625mt2axw3
 Only 5k queries a day
 Will be closed on Friday 14th August
 Will be closed if abused
 Strongly encourage you to sign up for your own key
Questions?
Mashing up

        Michael Brunton-Spall
michael.brunton-spall@guardian.co.uk
         twitter: @mibgames

More Related Content

Viewers also liked

From Publisher To Platform: How The Guardian Used Content, Search, and Open S...
From Publisher To Platform: How The Guardian Used Content, Search, and Open S...From Publisher To Platform: How The Guardian Used Content, Search, and Open S...
From Publisher To Platform: How The Guardian Used Content, Search, and Open S...
The Guardian Open Platform
 
Guardian at MediaCom Engage October 2013
Guardian at MediaCom Engage October 2013Guardian at MediaCom Engage October 2013
Guardian at MediaCom Engage October 2013
MediaCom Edinburgh
 
WVPDX 2014 - Hammering Responsive Web Design Into Shape
WVPDX 2014 - Hammering Responsive Web Design Into ShapeWVPDX 2014 - Hammering Responsive Web Design Into Shape
WVPDX 2014 - Hammering Responsive Web Design Into Shape
Ken Tabor
 
Comunicación y Diseño para el Desarrollo. Caso: Entre soles y lunas
Comunicación y Diseño para el Desarrollo. Caso: Entre soles y lunasComunicación y Diseño para el Desarrollo. Caso: Entre soles y lunas
Comunicación y Diseño para el Desarrollo. Caso: Entre soles y lunas
Hospital Italiano de Buenos Aires
 
Grandes cosas ocurren cuando dios se junta con el hombre visita de swami ...
Grandes cosas ocurren cuando dios  se junta con el hombre    visita de swami ...Grandes cosas ocurren cuando dios  se junta con el hombre    visita de swami ...
Grandes cosas ocurren cuando dios se junta con el hombre visita de swami ...CENTRO SAI HISPANO
 
MMI África - Universidades en Nigeria
MMI África - Universidades en NigeriaMMI África - Universidades en Nigeria
MMI África - Universidades en NigeriaGlocalUp
 
Le Nouveau LycéE GéNéRal Et Technologique[1]
Le Nouveau LycéE GéNéRal Et Technologique[1]Le Nouveau LycéE GéNéRal Et Technologique[1]
Le Nouveau LycéE GéNéRal Et Technologique[1]isport
 
Beyond Ausgabe #4 – Leseprobe
Beyond Ausgabe #4 – LeseprobeBeyond Ausgabe #4 – Leseprobe
Beyond Ausgabe #4 – Leseprobe
SCM – School for Communication and Management
 
Day1 sp2 babatunde-icgfmpp_sp
Day1 sp2 babatunde-icgfmpp_spDay1 sp2 babatunde-icgfmpp_sp
Day1 sp2 babatunde-icgfmpp_sp
icgfmconference
 
Résultats enquête citoyens Développement Durable
Résultats enquête citoyens Développement DurableRésultats enquête citoyens Développement Durable
Résultats enquête citoyens Développement DurableRouen
 
UXPA Dallas - Google Analytics and What's Before Mobile First
UXPA Dallas - Google Analytics and What's Before Mobile FirstUXPA Dallas - Google Analytics and What's Before Mobile First
UXPA Dallas - Google Analytics and What's Before Mobile First
Ken Tabor
 
Marc Durand - Le point sur Anticosti et enjeux des EES en cours
Marc Durand - Le point sur Anticosti et enjeux des EES en coursMarc Durand - Le point sur Anticosti et enjeux des EES en cours
Marc Durand - Le point sur Anticosti et enjeux des EES en cours
CollectifScientifique
 
Welche Rolle passt zu welcher Situation? Entdecken Sie Ihre eigenen Rollen!
Welche Rolle passt zu welcher Situation? Entdecken Sie Ihre eigenen Rollen! Welche Rolle passt zu welcher Situation? Entdecken Sie Ihre eigenen Rollen!
Welche Rolle passt zu welcher Situation? Entdecken Sie Ihre eigenen Rollen!
Project Management Berlin Meetup
 
Collaboration between project management and developers
Collaboration between project management and developersCollaboration between project management and developers
Collaboration between project management and developers
Tobias Zander
 
Q2 Presentation
Q2 PresentationQ2 Presentation
Q2 Presentation
PA Resources AB
 
Pareto securities corporate bond conference 23 January 2014
Pareto securities corporate bond conference 23 January 2014Pareto securities corporate bond conference 23 January 2014
Pareto securities corporate bond conference 23 January 2014
PA Resources AB
 
Pareto E&P conference PA Resources
Pareto E&P conference PA ResourcesPareto E&P conference PA Resources
Pareto E&P conference PA Resources
PA Resources AB
 
Erweitern sie ihr Data Center mit Cloud Services
Erweitern sie ihr Data Center mit Cloud ServicesErweitern sie ihr Data Center mit Cloud Services
Erweitern sie ihr Data Center mit Cloud Services
AWS Germany
 
PA Resources Q4 Interim report
PA Resources Q4 Interim report PA Resources Q4 Interim report
PA Resources Q4 Interim report
PA Resources AB
 
Unternehmensuebergreifendes Projektmanagement
Unternehmensuebergreifendes ProjektmanagementUnternehmensuebergreifendes Projektmanagement
Unternehmensuebergreifendes Projektmanagement
Heiko Bartlog
 

Viewers also liked (20)

From Publisher To Platform: How The Guardian Used Content, Search, and Open S...
From Publisher To Platform: How The Guardian Used Content, Search, and Open S...From Publisher To Platform: How The Guardian Used Content, Search, and Open S...
From Publisher To Platform: How The Guardian Used Content, Search, and Open S...
 
Guardian at MediaCom Engage October 2013
Guardian at MediaCom Engage October 2013Guardian at MediaCom Engage October 2013
Guardian at MediaCom Engage October 2013
 
WVPDX 2014 - Hammering Responsive Web Design Into Shape
WVPDX 2014 - Hammering Responsive Web Design Into ShapeWVPDX 2014 - Hammering Responsive Web Design Into Shape
WVPDX 2014 - Hammering Responsive Web Design Into Shape
 
Comunicación y Diseño para el Desarrollo. Caso: Entre soles y lunas
Comunicación y Diseño para el Desarrollo. Caso: Entre soles y lunasComunicación y Diseño para el Desarrollo. Caso: Entre soles y lunas
Comunicación y Diseño para el Desarrollo. Caso: Entre soles y lunas
 
Grandes cosas ocurren cuando dios se junta con el hombre visita de swami ...
Grandes cosas ocurren cuando dios  se junta con el hombre    visita de swami ...Grandes cosas ocurren cuando dios  se junta con el hombre    visita de swami ...
Grandes cosas ocurren cuando dios se junta con el hombre visita de swami ...
 
MMI África - Universidades en Nigeria
MMI África - Universidades en NigeriaMMI África - Universidades en Nigeria
MMI África - Universidades en Nigeria
 
Le Nouveau LycéE GéNéRal Et Technologique[1]
Le Nouveau LycéE GéNéRal Et Technologique[1]Le Nouveau LycéE GéNéRal Et Technologique[1]
Le Nouveau LycéE GéNéRal Et Technologique[1]
 
Beyond Ausgabe #4 – Leseprobe
Beyond Ausgabe #4 – LeseprobeBeyond Ausgabe #4 – Leseprobe
Beyond Ausgabe #4 – Leseprobe
 
Day1 sp2 babatunde-icgfmpp_sp
Day1 sp2 babatunde-icgfmpp_spDay1 sp2 babatunde-icgfmpp_sp
Day1 sp2 babatunde-icgfmpp_sp
 
Résultats enquête citoyens Développement Durable
Résultats enquête citoyens Développement DurableRésultats enquête citoyens Développement Durable
Résultats enquête citoyens Développement Durable
 
UXPA Dallas - Google Analytics and What's Before Mobile First
UXPA Dallas - Google Analytics and What's Before Mobile FirstUXPA Dallas - Google Analytics and What's Before Mobile First
UXPA Dallas - Google Analytics and What's Before Mobile First
 
Marc Durand - Le point sur Anticosti et enjeux des EES en cours
Marc Durand - Le point sur Anticosti et enjeux des EES en coursMarc Durand - Le point sur Anticosti et enjeux des EES en cours
Marc Durand - Le point sur Anticosti et enjeux des EES en cours
 
Welche Rolle passt zu welcher Situation? Entdecken Sie Ihre eigenen Rollen!
Welche Rolle passt zu welcher Situation? Entdecken Sie Ihre eigenen Rollen! Welche Rolle passt zu welcher Situation? Entdecken Sie Ihre eigenen Rollen!
Welche Rolle passt zu welcher Situation? Entdecken Sie Ihre eigenen Rollen!
 
Collaboration between project management and developers
Collaboration between project management and developersCollaboration between project management and developers
Collaboration between project management and developers
 
Q2 Presentation
Q2 PresentationQ2 Presentation
Q2 Presentation
 
Pareto securities corporate bond conference 23 January 2014
Pareto securities corporate bond conference 23 January 2014Pareto securities corporate bond conference 23 January 2014
Pareto securities corporate bond conference 23 January 2014
 
Pareto E&P conference PA Resources
Pareto E&P conference PA ResourcesPareto E&P conference PA Resources
Pareto E&P conference PA Resources
 
Erweitern sie ihr Data Center mit Cloud Services
Erweitern sie ihr Data Center mit Cloud ServicesErweitern sie ihr Data Center mit Cloud Services
Erweitern sie ihr Data Center mit Cloud Services
 
PA Resources Q4 Interim report
PA Resources Q4 Interim report PA Resources Q4 Interim report
PA Resources Q4 Interim report
 
Unternehmensuebergreifendes Projektmanagement
Unternehmensuebergreifendes ProjektmanagementUnternehmensuebergreifendes Projektmanagement
Unternehmensuebergreifendes Projektmanagement
 

Similar to Mashing Up The Guardian

Simplify your professional web development with symfony
Simplify your professional web development with symfonySimplify your professional web development with symfony
Simplify your professional web development with symfony
Francois Zaninotto
 
Api's and ember js
Api's and ember jsApi's and ember js
Api's and ember js
Edwin Cruz
 
apidays Paris 2022 - France Televisions : How we leverage API Platform for ou...
apidays Paris 2022 - France Televisions : How we leverage API Platform for ou...apidays Paris 2022 - France Televisions : How we leverage API Platform for ou...
apidays Paris 2022 - France Televisions : How we leverage API Platform for ou...
apidays
 
Building Awesome APIs in Grails
Building Awesome APIs in GrailsBuilding Awesome APIs in Grails
Building Awesome APIs in Grailsclatimer
 
Generating Unified APIs with Protocol Buffers and gRPC
Generating Unified APIs with Protocol Buffers and gRPCGenerating Unified APIs with Protocol Buffers and gRPC
Generating Unified APIs with Protocol Buffers and gRPC
C4Media
 
Yahoo is open to developers
Yahoo is open to developersYahoo is open to developers
Yahoo is open to developers
Christian Heilmann
 
SymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years later
SymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years laterSymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years later
SymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years later
Haehnchen
 
Need for Speed: Removing speed bumps in API Projects
Need for Speed: Removing speed bumps in API ProjectsNeed for Speed: Removing speed bumps in API Projects
Need for Speed: Removing speed bumps in API Projects
Łukasz Chruściel
 
Introduction to python scrapping
Introduction to python scrappingIntroduction to python scrapping
Introduction to python scrapping
n|u - The Open Security Community
 
CCCDjango2010.pdf
CCCDjango2010.pdfCCCDjango2010.pdf
CCCDjango2010.pdf
jayarao21
 
API Workshop: Deep dive into REST APIs
API Workshop: Deep dive into REST APIsAPI Workshop: Deep dive into REST APIs
API Workshop: Deep dive into REST APIs
Tom Johnson
 
Benefits of the CodeIgniter Framework
Benefits of the CodeIgniter FrameworkBenefits of the CodeIgniter Framework
Benefits of the CodeIgniter Framework
Toby Beresford
 
Building a Bank with Go
Building a Bank with GoBuilding a Bank with Go
Building a Bank with Go
C4Media
 
Hacking the browser with puppeteer sharp .NET conf AR 2018
Hacking the browser with puppeteer sharp .NET conf AR 2018Hacking the browser with puppeteer sharp .NET conf AR 2018
Hacking the browser with puppeteer sharp .NET conf AR 2018
Darío Kondratiuk
 
The Big Picture and How to Get Started
The Big Picture and How to Get StartedThe Big Picture and How to Get Started
The Big Picture and How to Get Started
guest1af57e
 
A Basic Django Introduction
A Basic Django IntroductionA Basic Django Introduction
A Basic Django IntroductionGanga Ram
 
Adopting F# at SBTech
Adopting F# at SBTechAdopting F# at SBTech
Adopting F# at SBTech
Antya Dev
 
Making the most out of kubernetes audit logs
Making the most out of kubernetes audit logsMaking the most out of kubernetes audit logs
Making the most out of kubernetes audit logs
Laurent Bernaille
 
Advanced Web Development
Advanced Web DevelopmentAdvanced Web Development
Advanced Web Development
Robert J. Stein
 
IBM Omnifind Enterprise Portal Seach To Improve Productivity
IBM Omnifind Enterprise   Portal Seach To Improve ProductivityIBM Omnifind Enterprise   Portal Seach To Improve Productivity
IBM Omnifind Enterprise Portal Seach To Improve Productivity
Francis Ricalde
 

Similar to Mashing Up The Guardian (20)

Simplify your professional web development with symfony
Simplify your professional web development with symfonySimplify your professional web development with symfony
Simplify your professional web development with symfony
 
Api's and ember js
Api's and ember jsApi's and ember js
Api's and ember js
 
apidays Paris 2022 - France Televisions : How we leverage API Platform for ou...
apidays Paris 2022 - France Televisions : How we leverage API Platform for ou...apidays Paris 2022 - France Televisions : How we leverage API Platform for ou...
apidays Paris 2022 - France Televisions : How we leverage API Platform for ou...
 
Building Awesome APIs in Grails
Building Awesome APIs in GrailsBuilding Awesome APIs in Grails
Building Awesome APIs in Grails
 
Generating Unified APIs with Protocol Buffers and gRPC
Generating Unified APIs with Protocol Buffers and gRPCGenerating Unified APIs with Protocol Buffers and gRPC
Generating Unified APIs with Protocol Buffers and gRPC
 
Yahoo is open to developers
Yahoo is open to developersYahoo is open to developers
Yahoo is open to developers
 
SymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years later
SymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years laterSymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years later
SymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years later
 
Need for Speed: Removing speed bumps in API Projects
Need for Speed: Removing speed bumps in API ProjectsNeed for Speed: Removing speed bumps in API Projects
Need for Speed: Removing speed bumps in API Projects
 
Introduction to python scrapping
Introduction to python scrappingIntroduction to python scrapping
Introduction to python scrapping
 
CCCDjango2010.pdf
CCCDjango2010.pdfCCCDjango2010.pdf
CCCDjango2010.pdf
 
API Workshop: Deep dive into REST APIs
API Workshop: Deep dive into REST APIsAPI Workshop: Deep dive into REST APIs
API Workshop: Deep dive into REST APIs
 
Benefits of the CodeIgniter Framework
Benefits of the CodeIgniter FrameworkBenefits of the CodeIgniter Framework
Benefits of the CodeIgniter Framework
 
Building a Bank with Go
Building a Bank with GoBuilding a Bank with Go
Building a Bank with Go
 
Hacking the browser with puppeteer sharp .NET conf AR 2018
Hacking the browser with puppeteer sharp .NET conf AR 2018Hacking the browser with puppeteer sharp .NET conf AR 2018
Hacking the browser with puppeteer sharp .NET conf AR 2018
 
The Big Picture and How to Get Started
The Big Picture and How to Get StartedThe Big Picture and How to Get Started
The Big Picture and How to Get Started
 
A Basic Django Introduction
A Basic Django IntroductionA Basic Django Introduction
A Basic Django Introduction
 
Adopting F# at SBTech
Adopting F# at SBTechAdopting F# at SBTech
Adopting F# at SBTech
 
Making the most out of kubernetes audit logs
Making the most out of kubernetes audit logsMaking the most out of kubernetes audit logs
Making the most out of kubernetes audit logs
 
Advanced Web Development
Advanced Web DevelopmentAdvanced Web Development
Advanced Web Development
 
IBM Omnifind Enterprise Portal Seach To Improve Productivity
IBM Omnifind Enterprise   Portal Seach To Improve ProductivityIBM Omnifind Enterprise   Portal Seach To Improve Productivity
IBM Omnifind Enterprise Portal Seach To Improve Productivity
 

Recently uploaded

From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 

Recently uploaded (20)

From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 

Mashing Up The Guardian

  • 1. Mashing up Michael Brunton-Spall michael.brunton-spall@guardian.co.uk @mibgames
  • 2. About Us Online since 1995 250M+ pages per month 30M+ visitors per month
  • 4. 1999 - Guardian Unlimited
  • 5. 1999 - Removed the registration wall
  • 6. 2007 - Rebuild and Redesign
  • 7. 2007 - Rebuild and Redesign
  • 8. 2007 - Rebuild and Redesign
  • 9. 2009 - MPs Expenses
  • 11. The Hackable Guardian Url Hacking Keyword Combiners RSS Feeds
  • 12. Url Hacking http://www.guardian.co.uk/ [section]/[keyword] technology/internet [section]/all environment/all [publication]/[date]/[newspapersection] theguardian/2009/jun/11/technologyguardian profile/[name] profile/bobbiejohnson
  • 13. RSS Feeds RSS Everywhere! [section]/[keyword]/rss technology/internet/rss [section]/all /rss environment/all/rss [publication]/[date]/[newspapersection]/rss theguardian/2009/jun/11/technologyguardian/rss profile/[name]/rss profile/bobbiejohnson/rss
  • 15.
  • 16.
  • 17. Url Combiners A Logical AND Almost any combination from before technology/internet+profile/bobbiejohnson theguardian/technologyguardian+technology/internet Except things that aren't actual tags: Dated newspaper sections theguardian/2009/jun/11... + anything = 404 the all page .../all + anything = 404
  • 18. Problems with this approach Fragile No Discovery Not well documented Copyright Issues
  • 19. Build applications with the Guardian
  • 20. Open Platform Opening up how we work with people both internally and externally A suite of services enabling partners to build applications with the Guardian Content API Data Store
  • 21. Data Store A directory of useful data curated by Guardian editors
  • 22. Data Store A directory of useful data curated by Guardian editors
  • 25. Content API A service for selecting and collecting content from the Guardian for re-use
  • 26. Content API A service for selecting and collecting content from the Guardian for re-use
  • 27. Content API Search content
  • 28. Content API Xml and Json
  • 29. Content API Tag Metadata
  • 30. Content API Full Article Body
  • 31. Content API Filters
  • 32. So why? guardian.co.uk has an amazing amount of quality content Incredible amounts of meta-data, curated by editors Aim to allow the guardian to become a rich source of facts and journalism for the web
  • 33. How? Backed of our search platform Provides access to 10 years of article content and metadata Supports multiple output formats: XML, JSON, ATOM Supported free text search across content Search for keywords Guardian supported api projects in Java, PHP, Python and Ruby Community supported api projects in Perl, ActionScript and Coldfusion (and probably more?)
  • 35. Pricing FREE!
  • 36. How free is free? You can publish full articles from the guardian on your website 5k queries per day limit 24 hour maximum cache lifetime Online support Partner with us on advertising
  • 37. Beta trial Limited number of keys Collecting feedback Will open more widely at end of beta program
  • 38. How do I use it? Home page http://www.guardian.co.uk/open-platform Sign up for an API key at http://guardian.mashery.com Use the API Explorer at http://api.guardianapis.com/docs/ Use the python library at http://code.google.com/p/openplatform-python/
  • 39. What can I do with it? Search our tag hierarchy Find content by tag Find content by search terms Display on your website!
  • 41. MP's Expenses Written in Django Hosted on EC2 Easy to modify Written in 2 weeks
  • 42. MP's Expenses An MP's Page
  • 43. View def mp(request, id): mp = get_object_or_404(MP, pk = id) ... return render(request, 'mp.html', { 'mp': mp, 'documents': mp.documents.all(), 'top_users': top_users[:5], })
  • 44. View def mp(request, id): mp = get_object_or_404(MP, pk = id) ... return render(request, 'mp.html', { 'mp': mp, 'documents': mp.documents.all(), 'top_users': top_users[:5], })
  • 45. View def mp(request, id): mp = get_object_or_404(MP, pk = id) ... return render(request, 'mp.html', { 'mp': mp, 'documents': mp.documents.all(), 'top_users': top_users[:5], })
  • 46. Using the Guardian API Getting all articles about an MP results = client.search(q='"%S"' % (name)) returns a paginating iterator for x in results: print x['headline'] Shows only first 10 by default
  • 47. Get the client def mp(request, id): mp = get_object_or_404(MP, pk = id) ... client = Client(settings.GUARDIAN_APIKEY) return render(request, 'mp.html', { 'mp': mp, 'documents': mp.documents.all(), 'top_users': top_users[:5], })
  • 48. Make the request def mp(request, id): mp = get_object_or_404(MP, pk = id) ... client = Client(settings.GUARDIAN_APIKEY) return render(request, 'mp.html', { 'mp': mp, 'documents': mp.documents.all(), 'top_users': top_users[:5], 'articles': client.search(q='"%s"'%(mp.name)), })
  • 49. Update the template <div id="about-mp"> <ul> {% for article in articles %} <li> <a href="{{article.webUrl}}">{{article.headline}}</a> </li> {% endfor %} </ul> </div>
  • 51. Additions? Use Memcached to cache the response from guardian API Don't create a new client each time Article bodies
  • 52. Who else is using it?
  • 53. Who else is using it?
  • 54. Who else is using it?
  • 55. Who else is using it?
  • 56. Public API Key? jbynv3fwdp8ju5625mt2axw3 Only 5k queries a day Will be closed on Friday 14th August Will be closed if abused Strongly encourage you to sign up for your own key
  • 58. Mashing up Michael Brunton-Spall michael.brunton-spall@guardian.co.uk twitter: @mibgames