SlideShare a Scribd company logo
1 of 58
Download to read offline
Diving and digital data
For example: Fotografie
Name all the Fish....
Talk about accomadations....
and the dangers for you and your data...
Clouds
Google Data APIs
Frank Mantek
“The benefit [of GData] is that you'd have a single
 API that could be used to query, update, and index
 structured data on the web--anywhere on the web.
 It's a pretty powerful vision and something I didn't
 expect to see for a couple more
 years.”



Jeremy Zawodny, Yahoo
Contrast this with the API efforts on Yahoo! Developer Network or
Windows Live Dev which are an inconsistent glop of incompatible
RESTful protocols, SOAP APIs and XML-RPC methods all under the
same roof. In the Google case, an app that can read and write data
to Blogger can also do so to Google Calendar or Picasa Web Albums
with minimal changes. This is not the case when using APIs provided
by two Yahoo! services (e.g . Flickr and del.icio.us) or two Windows
Live services (e.g. Live Search and Windows Live Spaces) which
use completely different protocols, object models and authentication
mechanisms even though provided by the same vendor.quot;

 Dare Obasanjo, Architect, Microsoft
Google’s APIs

     • Google Offers Many APIs
       – AJAX APIs – Presentation Oriented APIs
          • Maps, Search, Feeds
       – Google Data APIs – Full Fidelity Data APIs
          • Calendar, Blogger, Base, ...
       – AdWords API – SOAP based RPC API
       – Gadgets API – Portable JavaScript “Applets”
       – Checkout API – ReST based API
       – Desktop API – Extended Search
       – ... and many more ...


11
                                                       QCon
                                                       2008
Building Web Services the REST way




                                     QCon
                                     2008
Building Web Services the REST way

• SOAP:
  – Arbitrary actions (verbs)
  – Arbitrarily data payloads
  – Complex service description and behavior (WSDL)




                                                      QCon
                                                      2008
Building Web Services the REST way

• SOAP:
  – Arbitrary actions (verbs)
  – Arbitrarily data payloads
  – Complex service description and behavior (WSDL)
• REST:
  – Common actions (HTTP Get, Post, Put, Delete)
  – Operate on whole resources (XML documents)
  – Uniform resource names and links (URIs)




                                                      QCon
                                                      2008
Building Web Services the REST way

• SOAP:
  – Arbitrary actions (verbs)
  – Arbitrarily data payloads
  – Complex service description and behavior (WSDL)
• REST:
  – Common actions (HTTP Get, Post, Put, Delete)
  – Operate on whole resources (XML documents)
  – Uniform resource names and links (URIs)
• Why REST over SOAP?
  – It’s how the web works! (stateless, cachable, scalable)
  – It’s easy on the programmer
                                                              QCon
                                                              2008
Elements of the Data API

                  • Simple Format
        Atom
                     – Atom Syndication
     Publishing          Format
      Protocol    • Simple Protocol
                     – HTTP


                  • Google Extensions     Google
                                           Data
                     –   Data Model
                                           APIs
                     –   Query
                     –   Concurrency
                     –   Authentication

13
                                               QCon
                                               2008
Data Model: Standard Atom

     <entry xmlns:gd=quot;http://schemas.google.com/g/2005quot;>
         <category scheme=quot;http://schemas.google.com/g/2005#kindquot;
                   term=quot;http://schemas.google.com/g/2005#eventquot;/>
         <id>http://mycal.example.com/feeds/jo/home/full/e1a2af0</id>
         <published>2005-01-18T21:00:00Z</published>
         <updated>2006-01-01T00:00:00Z</updated>
         <title>Discuss BazMat API</title>
         <content>We will discuss integrating GData with BazMat.</content>
         <author>
              <name>Jo March</name>
         </author>
         <gd:when startTime='2005-01-18T21:00:00Z' endTime='2005-01-18T22:00:00Z'>
              <gd:reminder minutes='15'/>
         </gd:when>
         <gd:where valueString='Building 41, Room X'/>
         <gd:eventStatus value=quot;http://schemas.google.com/g/2005#event.confirmedquot;/>
         <gd:visibility value=quot;http://schemas.google.com/g/2005#event.publicquot;/>
     </entry>


14
                                                                                      QCon
                                                                                      2008
Data Model: Google Kinds and Extensions

     <entry xmlns:gd=quot;http://schemas.google.com/g/2005quot;>
         <category scheme=quot;http://schemas.google.com/g/2005#kindquot;
                   term=quot;http://schemas.google.com/g/2005#eventquot;/>
         <id>http://mycal.example.com/feeds/jo/home/full/e1a2af0</id>
         <published>2005-01-18T21:00:00Z</published>
         <updated>2006-01-01T00:00:00Z</updated>
         <title>Discuss BazMat API</title>
         <content>We will discuss integrating GData with BazMat.</content>
         <author>
              <name>Jo March</name>
         </author>
         <gd:when startTime='2005-01-18T21:00:00Z' endTime='2005-01-18T22:00:00Z'>
              <gd:reminder minutes='15'/>
         </gd:when>
         <gd:where valueString='Building 41, Room X'/>
         <gd:eventStatus value=quot;http://schemas.google.com/g/2005#event.confirmedquot;/>
         <gd:visibility value=quot;http://schemas.google.com/g/2005#event.publicquot;/>
     </entry>


15
                                                                                      QCon
                                                                                      2008
Querying a Feed

• Full Text Search
   – http://www.example.com/feeds/friends?q=John
• Categories (Tags)
   – http://www.example.com/feeds/friends/-/work|play
• Update Time
  – http://www.example.com/feeds/friends?
     updated-min=2005-08-09T10:57:00-08:00
• Custom ...
  – eg. spreadsheets supports min-row, max-row, ...
• Output Format
  – http://www.example.com/feeds/friends?alt=json

                                                        QCon
                                                        2008
Optimistic Concurrency

     GET /feeds/entry1

     200 OK
     <link rel=quot;editquot; href=quot;http://www.example.com/feeds/entry1/version1/quot;/>



     PUT /feeds/entry1/version1/

     200 OK
     <link rel=quot;editquot; href=quot;http://www.example.com/feeds/entry1/version2/quot;/>



     DELETE /feeds/entry1/version1/

     409 CONFLICT



17
                                                                               QCon
                                                                               2008
Security and Authentication

     • Authentication for Desktop Apps
        – Users authenticates to Google Authentication Service
        – Google returns Auth Token to Application
     • Authentication for Web Apps
        – Web Application redirects to Google Auth Service (1)
        – Login to Google, redirect back to app with Auth Token (2)
        – Web Application uses Token to proxy GData (3)
        – Password remains secure

                                          (1b)                 Accounts
                  (2a)                                 Authentication
         Client
        Browser
                  (1a)
                                Web App          (3)           Calendar
                         (2b)                            data API
18
                                                                          QCon
                                                                          2008
Atom Publishing Everywhere?

     •   Google Apps data API
     •   Google Base data API
     •   Blogger data API
     •   Google Calendar data API
     •   Google Code Search data API
     •   Google Notebook data API
     •   Picasa Web Albums data API
     •   Google Spreadsheets data API
     •   Google Doclist data API
     •   YouTube data API
     •   ... and the list is growing ...
19
                                           QCon
                                           2008
Developer Support

• Open Source Client Libraries
   – Java               – .NET
   – PHP                – Python
   – Objective C        – JSON (JavaScript)
• Contributed Client Libraries
   – Ruby               – Perl              – Lisp
• Documentation
   – Developer Guides
   – Knowledge Base
• Active Developer Community (Google Groups)
   – Google Data API Group, ...
   – Google Groups Wiki ...

                                                     QCon
                                                     2008
Google Apps data API

     • Functionality
       – Programmatically enable access to these Google Apps
          applications
       – Create, retrieve, update and delete user accounts,
          nicknames and email lists.
     • Supported Client Libraries
       – Basic HTTP
       – Java
       – .NET




21
                                                               QCon
                                                               2008
Google Base data API

     • Functionality
       – Query Google Base data to create applications and
           mashups.
       – Input and manage Google Base items programmatically.
     • Supported Client Libraries
       –   Basic HTTP
       –   Java
       –   .NET
       –   PHP
       –   Python




22
                                                                QCon
                                                                2008
Blogger

     • Functionality
       – Create new blog posts, edit or delete existing posts, and
           query for posts that match particular criteria.
     • Supported Client Libraries
       –   Basic HTTP
       –   Java
       –   .NET
       –   PHP
       –   Python
       –   Objective C




23
                                                                     QCon
                                                                     2008
Google Calendar

     • Functionality
       – Create new events, edit or delete existing events, and query
           for events that match particular criteria.
     • Supported Client Libraries
       –   Basic HTTP
       –   Java
       –   .NET
       –   PHP
       –   Python
       –   Objective C




24
                                                                  QCon
                                                                  2008
Google Code Search

     • Functionality
       – Read Only - Query for public code snippets that match
           particular criteria.
     • Supported Client Libraries
       –   Basic HTTP
       –   Java
       –   .NET
       –   PHP
       –   Python
       –   Objective C




25
                                                                 QCon
                                                                 2008
Picasa Web Albums

     • Functionality
       – Request a list of a user's albums, photos, comments, or
          tags, edit or delete content in an existing entry, and query
          the content in an existing entry
     • Supported Client Libraries
       – Basic HTTP
       – Java
       – .NET support soon




26
                                                                         QCon
                                                                         2008
Google Spreadsheets

     • Functionality
       – Request a list of a user's spreadsheets, edit or delete
           content in an existing Spreadsheets worksheet, and query
           the content in an existing Spreadsheets worksheet
     • Supported Client Libraries
       –   Basic HTTP
       –   Java
       –   .NET
       –   Python




27
                                                                   QCon
                                                                   2008
What Some Developers are Doing

                      Ambient Clock
                       (Calendar)
                                      Phixr Online
                                      Photo Editor
                                      (PicasaWeb)




 Timesheets with
Google Office Tools
 (Spreadsheets,
    Calendar)




                                                     QCon
                                                     2008
Spanning Sync (www.spanningsync.com)

     • two way synchronization between iCal and Google
      Calendar
     • Client/Server architecture, all GData operations happen on
      the server
     • Straight HTTP calls using PHP
     • around 6M GData API calls per day




29
                                                              QCon
                                                              2008
Gumiyo (www.gumiyo.com)

     • Buyer/Seller platform using Google Base data api
     • Allows creation of ads completely on your mobile device
      (take picture, send MMS to your account)
     • Searching/buying on the phone
     • Rule based alert system that sends real time
      notifications to your phone




30
                                                             QCon
                                                             2008
Bloghud (www.bloghud.com)

     • This is a Second Life “Heads Up” device (900 Linden for
      the Pro Version)
     • It allows you to post to your blog from inside the virtual
      world, using Google Authentication for Web Apps
     • /9 “your message” posts or drag text based notecards on
      the Hud




31
                                                                    QCon
                                                                    2008
Choosing REST over SOAP

• Technologies of REST are well understood
  • HTTP, URIs, XML, Atom
• Four actions are sufficient
  • most of the time (90% solution)
• Developers like it
  • Every API behaves the same
• REST was a good choice




                                             QCon
                                             2008
Is REST as flexible as SOAP?

• Some Operations are not obvious
  – eg. transactions
  – eg. send notification with reply

• Be creative
  • notifications as side effects of update
  • drop box feeds (insert only)
  • virtually infinite feeds (get & update only)


• REST is sufficient, but you may have to be creative

                                                        QCon
                                                        2008
Using the Atom Publishing Protocol ...




34
                                              QCon
                                              2008
Using the Atom Publishing Protocol ...

     • Good REST based design




34
                                              QCon
                                              2008
Using the Atom Publishing Protocol ...

     • Good REST based design
     • Missing Query:
       – Solution: query parameters
       – Not always sufficient ... an open issue




34
                                                   QCon
                                                   2008
Using the Atom Publishing Protocol ...

     • Good REST based design
     • Missing Query:
       – Solution: query parameters
       – Not always sufficient ... an open issue
     • Missing Authentication:
       – Solution: Google Auth
       – More secure than Basic Auth, slowed integration




34
                                                           QCon
                                                           2008
Using the Atom Publishing Protocol ...

     • Good REST based design
     • Missing Query:
       – Solution: query parameters
       – Not always sufficient ... an open issue
     • Missing Authentication:
        – Solution: Google Auth
        – More secure than Basic Auth, slowed integration
     • Concurrent Operations
        – Solution: Optimistic Concurrency via Edit URIs
        – We should have used strong eTags


34
                                                            QCon
                                                            2008
Extending the Atom Publishing Protocol ...

     • Engineers care about efficiency

     • Forced Read-Modify-Write
       – Solution: URIs based on the data (ACL)

     • Batch Processing
       – Solution: GData batch extension

     • Incremental Changes / Updates
       – an open issue ...


35
                                                  QCon
                                                  2008
Using Atom Data Format ...




36
                                  QCon
                                  2008
Using Atom Data Format ...

     • Originally designed for blogs not data




36
                                                QCon
                                                2008
Using Atom Data Format ...

     • Originally designed for blogs not data

     • Drawbacks
       – syntax constraints (atom:content, atom:updated)




36
                                                           QCon
                                                           2008
Using Atom Data Format ...

     • Originally designed for blogs not data

     • Drawbacks
       – syntax constraints (atom:content, atom:updated)

     • Benefits
       –   standardized (IETF)
       –   extensible
       –   useful fields (atom:id, atom:updated)
       –   can use a feed reader (cool!)




36
                                                           QCon
                                                           2008
Using Atom Data Format ...

     • Originally designed for blogs not data

     • Drawbacks
       – syntax constraints (atom:content, atom:updated)

     • Benefits
       –   standardized (IETF)
       –   extensible
       –   useful fields (atom:id, atom:updated)
       –   can use a feed reader (cool!)


     • Overall, a very good choice


36
                                                           QCon
                                                           2008
Modeling Data in Atom ...




37
                                 QCon
                                 2008
Modeling Data in Atom ...

     • How to indicate extensions / semantics?
       – Solution: atom:category URI to indicate “kind”
       – Should have been human readable string




37
                                                          QCon
                                                          2008
Modeling Data in Atom ...

     • How to indicate extensions / semantics?
       – Solution: atom:category URI to indicate “kind”
       – Should have been human readable string

     • How to indicate related feeds and entries?
       – Solutions: ...
          • link@rel, gd:feedLink, gd:entryLink, content@href
       – No clear standard, try to be consistent



37
                                                                QCon
                                                                2008
Designing New Data Formats ...




38
                                      QCon
                                      2008
Designing New Data Formats ...

     • The Idea: GD-namespace
       – Create reusable extensions and kinds
       – Manage extensions in one namespace




38
                                                QCon
                                                2008
Designing New Data Formats ...

     • The Idea: GD-namespace
       – Create reusable extensions and kinds
       – Manage extensions in one namespace




38
                                                QCon
                                                2008
Designing New Data Formats ...

     • The Idea: GD-namespace
       – Create reusable extensions and kinds
       – Manage extensions in one namespace

     • Our Experience:
       – Almost every Google API has extended it
       – Used only by Google APIs (so far)




38
                                                   QCon
                                                   2008
Designing New Data Formats ...

     • The Idea: GD-namespace
       – Create reusable extensions and kinds
       – Manage extensions in one namespace

     • Our Experience:
       – Almost every Google API has extended it
       – Used only by Google APIs (so far)

     • Alternatives:
       – Reuse existing XML schemas (GeoRSS, MediaRSS)
       – Create an ecology of ‘kinds’ (GData ACL)


38
                                                         QCon
                                                         2008
Care for your Developers

• Protocol Centric & Language Agnostic

• Open your Code

• Give Fair Warnings of Changes

• Meet your Developers




                                         QCon
                                         2008
Do you feel lucky?

     • Questions, comments?




40
                              QCon
                              2008
Frank Mantek Google G Data

More Related Content

What's hot

Web 2 0 Data Visualization With Jsf
Web 2 0 Data Visualization With JsfWeb 2 0 Data Visualization With Jsf
Web 2 0 Data Visualization With Jsfrajivmordani
 
Ajax World Oct2008 Jrd
Ajax World Oct2008 JrdAjax World Oct2008 Jrd
Ajax World Oct2008 Jrdrajivmordani
 
MongoDB World 2019: Why NBCUniversal Migrated to MongoDB Atlas
MongoDB World 2019: Why NBCUniversal Migrated to MongoDB AtlasMongoDB World 2019: Why NBCUniversal Migrated to MongoDB Atlas
MongoDB World 2019: Why NBCUniversal Migrated to MongoDB AtlasMongoDB
 
Egl Rui Ajax World
Egl Rui Ajax WorldEgl Rui Ajax World
Egl Rui Ajax Worldrajivmordani
 
Turbo Enterprise Web 2.0 Ajax World 20081
Turbo Enterprise Web 2.0 Ajax World 20081Turbo Enterprise Web 2.0 Ajax World 20081
Turbo Enterprise Web 2.0 Ajax World 20081rajivmordani
 
Introducing WebLogic 12c OTN Tour 2012
Introducing WebLogic 12c OTN Tour 2012Introducing WebLogic 12c OTN Tour 2012
Introducing WebLogic 12c OTN Tour 2012Bruno Borges
 
Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaSc...
Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaSc...Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaSc...
Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaSc...Joonas Lehtinen
 
Why NBC Universal Migrated to MongoDB Atlas
Why NBC Universal Migrated to MongoDB AtlasWhy NBC Universal Migrated to MongoDB Atlas
Why NBC Universal Migrated to MongoDB AtlasDatavail
 
Vaadin, Rich Web Apps in Server-Side Java without Plug-ins or JavaScript: Joo...
Vaadin, Rich Web Apps in Server-Side Java without Plug-ins or JavaScript: Joo...Vaadin, Rich Web Apps in Server-Side Java without Plug-ins or JavaScript: Joo...
Vaadin, Rich Web Apps in Server-Side Java without Plug-ins or JavaScript: Joo...jaxconf
 
Have You Seen Java EE Lately?
Have You Seen Java EE Lately?Have You Seen Java EE Lately?
Have You Seen Java EE Lately?Reza Rahman
 
Professional Frontend Engineering
Professional Frontend EngineeringProfessional Frontend Engineering
Professional Frontend EngineeringNate Koechley
 
Nuxeo Corporate Presentation - April 2007
Nuxeo Corporate Presentation - April 2007Nuxeo Corporate Presentation - April 2007
Nuxeo Corporate Presentation - April 2007Stefane Fermigier
 
Sap integration with_j_boss_technologies
Sap integration with_j_boss_technologiesSap integration with_j_boss_technologies
Sap integration with_j_boss_technologiesSerge Pagop
 
Web前端性能分析工具导引
Web前端性能分析工具导引Web前端性能分析工具导引
Web前端性能分析工具导引冰 郭
 
3. Sql Services 概览
3. Sql Services 概览3. Sql Services 概览
3. Sql Services 概览GaryYoung
 
Weblogic Server
Weblogic ServerWeblogic Server
Weblogic Serveracsvianabr
 

What's hot (20)

JavaOne 2010 Keynote
JavaOne 2010 Keynote JavaOne 2010 Keynote
JavaOne 2010 Keynote
 
Web 2 0 Data Visualization With Jsf
Web 2 0 Data Visualization With JsfWeb 2 0 Data Visualization With Jsf
Web 2 0 Data Visualization With Jsf
 
Ajax World Oct2008 Jrd
Ajax World Oct2008 JrdAjax World Oct2008 Jrd
Ajax World Oct2008 Jrd
 
MongoDB World 2019: Why NBCUniversal Migrated to MongoDB Atlas
MongoDB World 2019: Why NBCUniversal Migrated to MongoDB AtlasMongoDB World 2019: Why NBCUniversal Migrated to MongoDB Atlas
MongoDB World 2019: Why NBCUniversal Migrated to MongoDB Atlas
 
Egl Rui Ajax World
Egl Rui Ajax WorldEgl Rui Ajax World
Egl Rui Ajax World
 
Cloud Computing2
Cloud Computing2Cloud Computing2
Cloud Computing2
 
Turbo Enterprise Web 2.0 Ajax World 20081
Turbo Enterprise Web 2.0 Ajax World 20081Turbo Enterprise Web 2.0 Ajax World 20081
Turbo Enterprise Web 2.0 Ajax World 20081
 
Introducing WebLogic 12c OTN Tour 2012
Introducing WebLogic 12c OTN Tour 2012Introducing WebLogic 12c OTN Tour 2012
Introducing WebLogic 12c OTN Tour 2012
 
Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaSc...
Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaSc...Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaSc...
Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaSc...
 
Java EE 7 - Overview and Status
Java EE 7  - Overview and StatusJava EE 7  - Overview and Status
Java EE 7 - Overview and Status
 
Why NBC Universal Migrated to MongoDB Atlas
Why NBC Universal Migrated to MongoDB AtlasWhy NBC Universal Migrated to MongoDB Atlas
Why NBC Universal Migrated to MongoDB Atlas
 
Vaadin, Rich Web Apps in Server-Side Java without Plug-ins or JavaScript: Joo...
Vaadin, Rich Web Apps in Server-Side Java without Plug-ins or JavaScript: Joo...Vaadin, Rich Web Apps in Server-Side Java without Plug-ins or JavaScript: Joo...
Vaadin, Rich Web Apps in Server-Side Java without Plug-ins or JavaScript: Joo...
 
Have You Seen Java EE Lately?
Have You Seen Java EE Lately?Have You Seen Java EE Lately?
Have You Seen Java EE Lately?
 
Professional Frontend Engineering
Professional Frontend EngineeringProfessional Frontend Engineering
Professional Frontend Engineering
 
Nuxeo Corporate Presentation - April 2007
Nuxeo Corporate Presentation - April 2007Nuxeo Corporate Presentation - April 2007
Nuxeo Corporate Presentation - April 2007
 
Sap integration with_j_boss_technologies
Sap integration with_j_boss_technologiesSap integration with_j_boss_technologies
Sap integration with_j_boss_technologies
 
Gubendran Lakshmanan
Gubendran LakshmananGubendran Lakshmanan
Gubendran Lakshmanan
 
Web前端性能分析工具导引
Web前端性能分析工具导引Web前端性能分析工具导引
Web前端性能分析工具导引
 
3. Sql Services 概览
3. Sql Services 概览3. Sql Services 概览
3. Sql Services 概览
 
Weblogic Server
Weblogic ServerWeblogic Server
Weblogic Server
 

Viewers also liked

Digital Marketing Trends (and Nonprofit Comm Trends in General) for BloomCon
Digital Marketing Trends (and Nonprofit Comm Trends in General) for BloomConDigital Marketing Trends (and Nonprofit Comm Trends in General) for BloomCon
Digital Marketing Trends (and Nonprofit Comm Trends in General) for BloomConKivi Leroux Miller
 
中国的互联网
中国的互联网中国的互联网
中国的互联网Liu Xing
 
5 Things Flashmeet Version
5 Things Flashmeet Version5 Things Flashmeet Version
5 Things Flashmeet VersionCon Morris
 
Precepto Chino1
Precepto Chino1Precepto Chino1
Precepto Chino1joanvinpa
 
Routines 6
Routines 6Routines 6
Routines 6gaizfra
 
Generic Protege Orientation
Generic Protege OrientationGeneric Protege Orientation
Generic Protege OrientationShamilla Essop
 
Lasse Koskela What Does It Do Does It Work
Lasse Koskela What Does It Do Does It WorkLasse Koskela What Does It Do Does It Work
Lasse Koskela What Does It Do Does It Workdeimos
 
Farms in Montgomery County Maryland
Farms in Montgomery County MarylandFarms in Montgomery County Maryland
Farms in Montgomery County MarylandShashi Bellamkonda
 
Como voce se imagina daqui a 40 anos
Como voce se imagina daqui a 40 anosComo voce se imagina daqui a 40 anos
Como voce se imagina daqui a 40 anosLuca Bastos
 
Infofinal Presentation_re
Infofinal Presentation_reInfofinal Presentation_re
Infofinal Presentation_reBockit
 
Economisind Viata
Economisind ViataEconomisind Viata
Economisind ViataAlexandru S
 
energy resources
energy resourcesenergy resources
energy resourcesbbrendaa
 
Traffic Calming In Fort Worth
Traffic Calming In Fort WorthTraffic Calming In Fort Worth
Traffic Calming In Fort WorthJustin Flowers
 
Looking after the environment
Looking after the environmentLooking after the environment
Looking after the environmentgaizfra
 
Scuola Madre Teresa India
Scuola Madre Teresa IndiaScuola Madre Teresa India
Scuola Madre Teresa Indiamaurinbu
 

Viewers also liked (20)

Digital Marketing Trends (and Nonprofit Comm Trends in General) for BloomCon
Digital Marketing Trends (and Nonprofit Comm Trends in General) for BloomConDigital Marketing Trends (and Nonprofit Comm Trends in General) for BloomCon
Digital Marketing Trends (and Nonprofit Comm Trends in General) for BloomCon
 
中国的互联网
中国的互联网中国的互联网
中国的互联网
 
5 Things Flashmeet Version
5 Things Flashmeet Version5 Things Flashmeet Version
5 Things Flashmeet Version
 
Precepto Chino1
Precepto Chino1Precepto Chino1
Precepto Chino1
 
Routines 6
Routines 6Routines 6
Routines 6
 
Generic Protege Orientation
Generic Protege OrientationGeneric Protege Orientation
Generic Protege Orientation
 
Badajoz
BadajozBadajoz
Badajoz
 
Lasse Koskela What Does It Do Does It Work
Lasse Koskela What Does It Do Does It WorkLasse Koskela What Does It Do Does It Work
Lasse Koskela What Does It Do Does It Work
 
Reclame
ReclameReclame
Reclame
 
Animalute
AnimaluteAnimalute
Animalute
 
和風談判
和風談判和風談判
和風談判
 
5th day
5th day5th day
5th day
 
Farms in Montgomery County Maryland
Farms in Montgomery County MarylandFarms in Montgomery County Maryland
Farms in Montgomery County Maryland
 
Como voce se imagina daqui a 40 anos
Como voce se imagina daqui a 40 anosComo voce se imagina daqui a 40 anos
Como voce se imagina daqui a 40 anos
 
Infofinal Presentation_re
Infofinal Presentation_reInfofinal Presentation_re
Infofinal Presentation_re
 
Economisind Viata
Economisind ViataEconomisind Viata
Economisind Viata
 
energy resources
energy resourcesenergy resources
energy resources
 
Traffic Calming In Fort Worth
Traffic Calming In Fort WorthTraffic Calming In Fort Worth
Traffic Calming In Fort Worth
 
Looking after the environment
Looking after the environmentLooking after the environment
Looking after the environment
 
Scuola Madre Teresa India
Scuola Madre Teresa IndiaScuola Madre Teresa India
Scuola Madre Teresa India
 

Similar to Frank Mantek Google G Data

Google G Data Reading And Writing Data On The Web
Google G Data Reading And Writing Data On The WebGoogle G Data Reading And Writing Data On The Web
Google G Data Reading And Writing Data On The WebQConLondon2008
 
Google G Data Reading And Writing Data On The Web 1
Google G Data Reading And Writing Data On The Web 1Google G Data Reading And Writing Data On The Web 1
Google G Data Reading And Writing Data On The Web 1QConLondon2008
 
Integrating Google APIs into Your Applications
Integrating Google APIs into Your ApplicationsIntegrating Google APIs into Your Applications
Integrating Google APIs into Your ApplicationsChris Schalk
 
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 Startedguest1af57e
 
Using the Google AJAX APIs
Using the Google AJAX APIsUsing the Google AJAX APIs
Using the Google AJAX APIsChris Schalk
 
Advanced Gadget And Ui Development Using Googles Ajax Ap Is
Advanced Gadget And Ui Development Using Googles Ajax Ap IsAdvanced Gadget And Ui Development Using Googles Ajax Ap Is
Advanced Gadget And Ui Development Using Googles Ajax Ap IsGoogleTecTalks
 
GDD Japan 2009 - Designing OpenSocial Apps For Speed and Scale
GDD Japan 2009 - Designing OpenSocial Apps For Speed and ScaleGDD Japan 2009 - Designing OpenSocial Apps For Speed and Scale
GDD Japan 2009 - Designing OpenSocial Apps For Speed and ScalePatrick Chanezon
 
iPhone Development For Experienced Web Developers
iPhone Development For Experienced Web DevelopersiPhone Development For Experienced Web Developers
iPhone Development For Experienced Web Developerslisab517
 
CodeCamp Iasi - Creating serverless data analytics system on GCP using BigQuery
CodeCamp Iasi - Creating serverless data analytics system on GCP using BigQueryCodeCamp Iasi - Creating serverless data analytics system on GCP using BigQuery
CodeCamp Iasi - Creating serverless data analytics system on GCP using BigQueryMárton Kodok
 
Open Social Summit Korea Overview
Open Social Summit Korea OverviewOpen Social Summit Korea Overview
Open Social Summit Korea OverviewChris Schalk
 
App Engine On Air: Munich
App Engine On Air: MunichApp Engine On Air: Munich
App Engine On Air: Munichdion
 
03 integrate webapisignalr
03 integrate webapisignalr03 integrate webapisignalr
03 integrate webapisignalrErhwen Kuo
 
Behavior Driven Development and Automation Testing Using Cucumber
Behavior Driven Development and Automation Testing Using CucumberBehavior Driven Development and Automation Testing Using Cucumber
Behavior Driven Development and Automation Testing Using CucumberKMS Technology
 
Supercharge your data analytics with BigQuery
Supercharge your data analytics with BigQuerySupercharge your data analytics with BigQuery
Supercharge your data analytics with BigQueryMárton Kodok
 
Devfest09 App Engine Java
Devfest09  App Engine  JavaDevfest09  App Engine  Java
Devfest09 App Engine JavaChris Schalk
 
Applications of the REST Principle
Applications of the REST PrincipleApplications of the REST Principle
Applications of the REST Principleelliando dias
 
App Engine Overview @ Google Hackathon SXSW 2010
App Engine Overview @ Google Hackathon SXSW 2010App Engine Overview @ Google Hackathon SXSW 2010
App Engine Overview @ Google Hackathon SXSW 2010Chris Schalk
 
Connecting the Dots: Kong for GraphQL Endpoints
Connecting the Dots: Kong for GraphQL EndpointsConnecting the Dots: Kong for GraphQL Endpoints
Connecting the Dots: Kong for GraphQL EndpointsJulien Bataillé
 
IE 8 et les standards du Web - Chris Wilson - Paris Web 2008
IE 8 et les standards du Web - Chris Wilson - Paris Web 2008IE 8 et les standards du Web - Chris Wilson - Paris Web 2008
IE 8 et les standards du Web - Chris Wilson - Paris Web 2008Association Paris-Web
 

Similar to Frank Mantek Google G Data (20)

Google G Data Reading And Writing Data On The Web
Google G Data Reading And Writing Data On The WebGoogle G Data Reading And Writing Data On The Web
Google G Data Reading And Writing Data On The Web
 
Google G Data Reading And Writing Data On The Web 1
Google G Data Reading And Writing Data On The Web 1Google G Data Reading And Writing Data On The Web 1
Google G Data Reading And Writing Data On The Web 1
 
Integrating Google APIs into Your Applications
Integrating Google APIs into Your ApplicationsIntegrating Google APIs into Your Applications
Integrating Google APIs into Your Applications
 
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
 
Using the Google AJAX APIs
Using the Google AJAX APIsUsing the Google AJAX APIs
Using the Google AJAX APIs
 
Advanced Gadget And Ui Development Using Googles Ajax Ap Is
Advanced Gadget And Ui Development Using Googles Ajax Ap IsAdvanced Gadget And Ui Development Using Googles Ajax Ap Is
Advanced Gadget And Ui Development Using Googles Ajax Ap Is
 
GDD Japan 2009 - Designing OpenSocial Apps For Speed and Scale
GDD Japan 2009 - Designing OpenSocial Apps For Speed and ScaleGDD Japan 2009 - Designing OpenSocial Apps For Speed and Scale
GDD Japan 2009 - Designing OpenSocial Apps For Speed and Scale
 
iPhone Development For Experienced Web Developers
iPhone Development For Experienced Web DevelopersiPhone Development For Experienced Web Developers
iPhone Development For Experienced Web Developers
 
CodeCamp Iasi - Creating serverless data analytics system on GCP using BigQuery
CodeCamp Iasi - Creating serverless data analytics system on GCP using BigQueryCodeCamp Iasi - Creating serverless data analytics system on GCP using BigQuery
CodeCamp Iasi - Creating serverless data analytics system on GCP using BigQuery
 
Open Social Summit Korea Overview
Open Social Summit Korea OverviewOpen Social Summit Korea Overview
Open Social Summit Korea Overview
 
App Engine On Air: Munich
App Engine On Air: MunichApp Engine On Air: Munich
App Engine On Air: Munich
 
03 integrate webapisignalr
03 integrate webapisignalr03 integrate webapisignalr
03 integrate webapisignalr
 
Behavior Driven Development and Automation Testing Using Cucumber
Behavior Driven Development and Automation Testing Using CucumberBehavior Driven Development and Automation Testing Using Cucumber
Behavior Driven Development and Automation Testing Using Cucumber
 
Supercharge your data analytics with BigQuery
Supercharge your data analytics with BigQuerySupercharge your data analytics with BigQuery
Supercharge your data analytics with BigQuery
 
Scale By The Bay | 2020 | Gimel
Scale By The Bay | 2020 | GimelScale By The Bay | 2020 | Gimel
Scale By The Bay | 2020 | Gimel
 
Devfest09 App Engine Java
Devfest09  App Engine  JavaDevfest09  App Engine  Java
Devfest09 App Engine Java
 
Applications of the REST Principle
Applications of the REST PrincipleApplications of the REST Principle
Applications of the REST Principle
 
App Engine Overview @ Google Hackathon SXSW 2010
App Engine Overview @ Google Hackathon SXSW 2010App Engine Overview @ Google Hackathon SXSW 2010
App Engine Overview @ Google Hackathon SXSW 2010
 
Connecting the Dots: Kong for GraphQL Endpoints
Connecting the Dots: Kong for GraphQL EndpointsConnecting the Dots: Kong for GraphQL Endpoints
Connecting the Dots: Kong for GraphQL Endpoints
 
IE 8 et les standards du Web - Chris Wilson - Paris Web 2008
IE 8 et les standards du Web - Chris Wilson - Paris Web 2008IE 8 et les standards du Web - Chris Wilson - Paris Web 2008
IE 8 et les standards du Web - Chris Wilson - Paris Web 2008
 

More from deimos

Aspect Orientated Programming in Ruby
Aspect Orientated Programming in RubyAspect Orientated Programming in Ruby
Aspect Orientated Programming in Rubydeimos
 
Randy Shoup eBays Architectural Principles
Randy Shoup eBays Architectural PrinciplesRandy Shoup eBays Architectural Principles
Randy Shoup eBays Architectural Principlesdeimos
 
Remy Sharp The DOM scripting toolkit jQuery
Remy Sharp The DOM scripting toolkit jQueryRemy Sharp The DOM scripting toolkit jQuery
Remy Sharp The DOM scripting toolkit jQuerydeimos
 
Ola Bini J Ruby Power On The Jvm
Ola Bini J Ruby Power On The JvmOla Bini J Ruby Power On The Jvm
Ola Bini J Ruby Power On The Jvmdeimos
 
Joe Walker Interactivewebsites Cometand Dwr
Joe Walker Interactivewebsites Cometand DwrJoe Walker Interactivewebsites Cometand Dwr
Joe Walker Interactivewebsites Cometand Dwrdeimos
 
Aslak Hellesoy Executable User Stories R Spec Bdd
Aslak Hellesoy Executable User Stories R Spec BddAslak Hellesoy Executable User Stories R Spec Bdd
Aslak Hellesoy Executable User Stories R Spec Bdddeimos
 
Venkat Subramaniam Building DSLs In Groovy
Venkat Subramaniam Building DSLs In GroovyVenkat Subramaniam Building DSLs In Groovy
Venkat Subramaniam Building DSLs In Groovydeimos
 
Venkat Subramaniam Blending Java With Dynamic Languages
Venkat Subramaniam Blending Java With Dynamic LanguagesVenkat Subramaniam Blending Java With Dynamic Languages
Venkat Subramaniam Blending Java With Dynamic Languagesdeimos
 
Udi Dahan Intentions And Interfaces
Udi Dahan Intentions And InterfacesUdi Dahan Intentions And Interfaces
Udi Dahan Intentions And Interfacesdeimos
 
Tim Mackinnon Agile And Beyond
Tim Mackinnon Agile And BeyondTim Mackinnon Agile And Beyond
Tim Mackinnon Agile And Beyonddeimos
 
Steve Vinoski Rest And Reuse And Serendipity
Steve Vinoski Rest And Reuse And SerendipitySteve Vinoski Rest And Reuse And Serendipity
Steve Vinoski Rest And Reuse And Serendipitydeimos
 
Stefan Tilkov Soa Rest And The Web
Stefan Tilkov Soa Rest And The WebStefan Tilkov Soa Rest And The Web
Stefan Tilkov Soa Rest And The Webdeimos
 
Stefan Tilkov Pragmatic Intro To Rest
Stefan Tilkov Pragmatic Intro To RestStefan Tilkov Pragmatic Intro To Rest
Stefan Tilkov Pragmatic Intro To Restdeimos
 
Rod Johnson Cathedral
Rod Johnson CathedralRod Johnson Cathedral
Rod Johnson Cathedraldeimos
 
Mike Stolz Dramatic Scalability
Mike Stolz Dramatic ScalabilityMike Stolz Dramatic Scalability
Mike Stolz Dramatic Scalabilitydeimos
 
Matt Youill Betfair
Matt Youill BetfairMatt Youill Betfair
Matt Youill Betfairdeimos
 
Pete Goodliffe A Tale Of Two Systems
Pete Goodliffe A Tale Of Two SystemsPete Goodliffe A Tale Of Two Systems
Pete Goodliffe A Tale Of Two Systemsdeimos
 
Paul Fremantle Restful SOA Registry
Paul Fremantle Restful SOA RegistryPaul Fremantle Restful SOA Registry
Paul Fremantle Restful SOA Registrydeimos
 
Ola Bini Evolving The Java Platform
Ola Bini Evolving The Java PlatformOla Bini Evolving The Java Platform
Ola Bini Evolving The Java Platformdeimos
 
Neal Gafter Java Evolution
Neal Gafter Java EvolutionNeal Gafter Java Evolution
Neal Gafter Java Evolutiondeimos
 

More from deimos (20)

Aspect Orientated Programming in Ruby
Aspect Orientated Programming in RubyAspect Orientated Programming in Ruby
Aspect Orientated Programming in Ruby
 
Randy Shoup eBays Architectural Principles
Randy Shoup eBays Architectural PrinciplesRandy Shoup eBays Architectural Principles
Randy Shoup eBays Architectural Principles
 
Remy Sharp The DOM scripting toolkit jQuery
Remy Sharp The DOM scripting toolkit jQueryRemy Sharp The DOM scripting toolkit jQuery
Remy Sharp The DOM scripting toolkit jQuery
 
Ola Bini J Ruby Power On The Jvm
Ola Bini J Ruby Power On The JvmOla Bini J Ruby Power On The Jvm
Ola Bini J Ruby Power On The Jvm
 
Joe Walker Interactivewebsites Cometand Dwr
Joe Walker Interactivewebsites Cometand DwrJoe Walker Interactivewebsites Cometand Dwr
Joe Walker Interactivewebsites Cometand Dwr
 
Aslak Hellesoy Executable User Stories R Spec Bdd
Aslak Hellesoy Executable User Stories R Spec BddAslak Hellesoy Executable User Stories R Spec Bdd
Aslak Hellesoy Executable User Stories R Spec Bdd
 
Venkat Subramaniam Building DSLs In Groovy
Venkat Subramaniam Building DSLs In GroovyVenkat Subramaniam Building DSLs In Groovy
Venkat Subramaniam Building DSLs In Groovy
 
Venkat Subramaniam Blending Java With Dynamic Languages
Venkat Subramaniam Blending Java With Dynamic LanguagesVenkat Subramaniam Blending Java With Dynamic Languages
Venkat Subramaniam Blending Java With Dynamic Languages
 
Udi Dahan Intentions And Interfaces
Udi Dahan Intentions And InterfacesUdi Dahan Intentions And Interfaces
Udi Dahan Intentions And Interfaces
 
Tim Mackinnon Agile And Beyond
Tim Mackinnon Agile And BeyondTim Mackinnon Agile And Beyond
Tim Mackinnon Agile And Beyond
 
Steve Vinoski Rest And Reuse And Serendipity
Steve Vinoski Rest And Reuse And SerendipitySteve Vinoski Rest And Reuse And Serendipity
Steve Vinoski Rest And Reuse And Serendipity
 
Stefan Tilkov Soa Rest And The Web
Stefan Tilkov Soa Rest And The WebStefan Tilkov Soa Rest And The Web
Stefan Tilkov Soa Rest And The Web
 
Stefan Tilkov Pragmatic Intro To Rest
Stefan Tilkov Pragmatic Intro To RestStefan Tilkov Pragmatic Intro To Rest
Stefan Tilkov Pragmatic Intro To Rest
 
Rod Johnson Cathedral
Rod Johnson CathedralRod Johnson Cathedral
Rod Johnson Cathedral
 
Mike Stolz Dramatic Scalability
Mike Stolz Dramatic ScalabilityMike Stolz Dramatic Scalability
Mike Stolz Dramatic Scalability
 
Matt Youill Betfair
Matt Youill BetfairMatt Youill Betfair
Matt Youill Betfair
 
Pete Goodliffe A Tale Of Two Systems
Pete Goodliffe A Tale Of Two SystemsPete Goodliffe A Tale Of Two Systems
Pete Goodliffe A Tale Of Two Systems
 
Paul Fremantle Restful SOA Registry
Paul Fremantle Restful SOA RegistryPaul Fremantle Restful SOA Registry
Paul Fremantle Restful SOA Registry
 
Ola Bini Evolving The Java Platform
Ola Bini Evolving The Java PlatformOla Bini Evolving The Java Platform
Ola Bini Evolving The Java Platform
 
Neal Gafter Java Evolution
Neal Gafter Java EvolutionNeal Gafter Java Evolution
Neal Gafter Java Evolution
 

Recently uploaded

A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
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 organizationRadu Cotescu
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 

Recently uploaded (20)

A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
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
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 

Frank Mantek Google G Data

  • 1.
  • 4. Name all the Fish....
  • 6. and the dangers for you and your data...
  • 9. “The benefit [of GData] is that you'd have a single API that could be used to query, update, and index structured data on the web--anywhere on the web. It's a pretty powerful vision and something I didn't expect to see for a couple more years.” Jeremy Zawodny, Yahoo
  • 10. Contrast this with the API efforts on Yahoo! Developer Network or Windows Live Dev which are an inconsistent glop of incompatible RESTful protocols, SOAP APIs and XML-RPC methods all under the same roof. In the Google case, an app that can read and write data to Blogger can also do so to Google Calendar or Picasa Web Albums with minimal changes. This is not the case when using APIs provided by two Yahoo! services (e.g . Flickr and del.icio.us) or two Windows Live services (e.g. Live Search and Windows Live Spaces) which use completely different protocols, object models and authentication mechanisms even though provided by the same vendor.quot; Dare Obasanjo, Architect, Microsoft
  • 11. Google’s APIs • Google Offers Many APIs – AJAX APIs – Presentation Oriented APIs • Maps, Search, Feeds – Google Data APIs – Full Fidelity Data APIs • Calendar, Blogger, Base, ... – AdWords API – SOAP based RPC API – Gadgets API – Portable JavaScript “Applets” – Checkout API – ReST based API – Desktop API – Extended Search – ... and many more ... 11 QCon 2008
  • 12. Building Web Services the REST way QCon 2008
  • 13. Building Web Services the REST way • SOAP: – Arbitrary actions (verbs) – Arbitrarily data payloads – Complex service description and behavior (WSDL) QCon 2008
  • 14. Building Web Services the REST way • SOAP: – Arbitrary actions (verbs) – Arbitrarily data payloads – Complex service description and behavior (WSDL) • REST: – Common actions (HTTP Get, Post, Put, Delete) – Operate on whole resources (XML documents) – Uniform resource names and links (URIs) QCon 2008
  • 15. Building Web Services the REST way • SOAP: – Arbitrary actions (verbs) – Arbitrarily data payloads – Complex service description and behavior (WSDL) • REST: – Common actions (HTTP Get, Post, Put, Delete) – Operate on whole resources (XML documents) – Uniform resource names and links (URIs) • Why REST over SOAP? – It’s how the web works! (stateless, cachable, scalable) – It’s easy on the programmer QCon 2008
  • 16. Elements of the Data API • Simple Format Atom – Atom Syndication Publishing Format Protocol • Simple Protocol – HTTP • Google Extensions Google Data – Data Model APIs – Query – Concurrency – Authentication 13 QCon 2008
  • 17. Data Model: Standard Atom <entry xmlns:gd=quot;http://schemas.google.com/g/2005quot;> <category scheme=quot;http://schemas.google.com/g/2005#kindquot; term=quot;http://schemas.google.com/g/2005#eventquot;/> <id>http://mycal.example.com/feeds/jo/home/full/e1a2af0</id> <published>2005-01-18T21:00:00Z</published> <updated>2006-01-01T00:00:00Z</updated> <title>Discuss BazMat API</title> <content>We will discuss integrating GData with BazMat.</content> <author> <name>Jo March</name> </author> <gd:when startTime='2005-01-18T21:00:00Z' endTime='2005-01-18T22:00:00Z'> <gd:reminder minutes='15'/> </gd:when> <gd:where valueString='Building 41, Room X'/> <gd:eventStatus value=quot;http://schemas.google.com/g/2005#event.confirmedquot;/> <gd:visibility value=quot;http://schemas.google.com/g/2005#event.publicquot;/> </entry> 14 QCon 2008
  • 18. Data Model: Google Kinds and Extensions <entry xmlns:gd=quot;http://schemas.google.com/g/2005quot;> <category scheme=quot;http://schemas.google.com/g/2005#kindquot; term=quot;http://schemas.google.com/g/2005#eventquot;/> <id>http://mycal.example.com/feeds/jo/home/full/e1a2af0</id> <published>2005-01-18T21:00:00Z</published> <updated>2006-01-01T00:00:00Z</updated> <title>Discuss BazMat API</title> <content>We will discuss integrating GData with BazMat.</content> <author> <name>Jo March</name> </author> <gd:when startTime='2005-01-18T21:00:00Z' endTime='2005-01-18T22:00:00Z'> <gd:reminder minutes='15'/> </gd:when> <gd:where valueString='Building 41, Room X'/> <gd:eventStatus value=quot;http://schemas.google.com/g/2005#event.confirmedquot;/> <gd:visibility value=quot;http://schemas.google.com/g/2005#event.publicquot;/> </entry> 15 QCon 2008
  • 19. Querying a Feed • Full Text Search – http://www.example.com/feeds/friends?q=John • Categories (Tags) – http://www.example.com/feeds/friends/-/work|play • Update Time – http://www.example.com/feeds/friends? updated-min=2005-08-09T10:57:00-08:00 • Custom ... – eg. spreadsheets supports min-row, max-row, ... • Output Format – http://www.example.com/feeds/friends?alt=json QCon 2008
  • 20. Optimistic Concurrency GET /feeds/entry1 200 OK <link rel=quot;editquot; href=quot;http://www.example.com/feeds/entry1/version1/quot;/> PUT /feeds/entry1/version1/ 200 OK <link rel=quot;editquot; href=quot;http://www.example.com/feeds/entry1/version2/quot;/> DELETE /feeds/entry1/version1/ 409 CONFLICT 17 QCon 2008
  • 21. Security and Authentication • Authentication for Desktop Apps – Users authenticates to Google Authentication Service – Google returns Auth Token to Application • Authentication for Web Apps – Web Application redirects to Google Auth Service (1) – Login to Google, redirect back to app with Auth Token (2) – Web Application uses Token to proxy GData (3) – Password remains secure (1b) Accounts (2a) Authentication Client Browser (1a) Web App (3) Calendar (2b) data API 18 QCon 2008
  • 22. Atom Publishing Everywhere? • Google Apps data API • Google Base data API • Blogger data API • Google Calendar data API • Google Code Search data API • Google Notebook data API • Picasa Web Albums data API • Google Spreadsheets data API • Google Doclist data API • YouTube data API • ... and the list is growing ... 19 QCon 2008
  • 23. Developer Support • Open Source Client Libraries – Java – .NET – PHP – Python – Objective C – JSON (JavaScript) • Contributed Client Libraries – Ruby – Perl – Lisp • Documentation – Developer Guides – Knowledge Base • Active Developer Community (Google Groups) – Google Data API Group, ... – Google Groups Wiki ... QCon 2008
  • 24. Google Apps data API • Functionality – Programmatically enable access to these Google Apps applications – Create, retrieve, update and delete user accounts, nicknames and email lists. • Supported Client Libraries – Basic HTTP – Java – .NET 21 QCon 2008
  • 25. Google Base data API • Functionality – Query Google Base data to create applications and mashups. – Input and manage Google Base items programmatically. • Supported Client Libraries – Basic HTTP – Java – .NET – PHP – Python 22 QCon 2008
  • 26. Blogger • Functionality – Create new blog posts, edit or delete existing posts, and query for posts that match particular criteria. • Supported Client Libraries – Basic HTTP – Java – .NET – PHP – Python – Objective C 23 QCon 2008
  • 27. Google Calendar • Functionality – Create new events, edit or delete existing events, and query for events that match particular criteria. • Supported Client Libraries – Basic HTTP – Java – .NET – PHP – Python – Objective C 24 QCon 2008
  • 28. Google Code Search • Functionality – Read Only - Query for public code snippets that match particular criteria. • Supported Client Libraries – Basic HTTP – Java – .NET – PHP – Python – Objective C 25 QCon 2008
  • 29. Picasa Web Albums • Functionality – Request a list of a user's albums, photos, comments, or tags, edit or delete content in an existing entry, and query the content in an existing entry • Supported Client Libraries – Basic HTTP – Java – .NET support soon 26 QCon 2008
  • 30. Google Spreadsheets • Functionality – Request a list of a user's spreadsheets, edit or delete content in an existing Spreadsheets worksheet, and query the content in an existing Spreadsheets worksheet • Supported Client Libraries – Basic HTTP – Java – .NET – Python 27 QCon 2008
  • 31. What Some Developers are Doing Ambient Clock (Calendar) Phixr Online Photo Editor (PicasaWeb) Timesheets with Google Office Tools (Spreadsheets, Calendar) QCon 2008
  • 32. Spanning Sync (www.spanningsync.com) • two way synchronization between iCal and Google Calendar • Client/Server architecture, all GData operations happen on the server • Straight HTTP calls using PHP • around 6M GData API calls per day 29 QCon 2008
  • 33. Gumiyo (www.gumiyo.com) • Buyer/Seller platform using Google Base data api • Allows creation of ads completely on your mobile device (take picture, send MMS to your account) • Searching/buying on the phone • Rule based alert system that sends real time notifications to your phone 30 QCon 2008
  • 34. Bloghud (www.bloghud.com) • This is a Second Life “Heads Up” device (900 Linden for the Pro Version) • It allows you to post to your blog from inside the virtual world, using Google Authentication for Web Apps • /9 “your message” posts or drag text based notecards on the Hud 31 QCon 2008
  • 35. Choosing REST over SOAP • Technologies of REST are well understood • HTTP, URIs, XML, Atom • Four actions are sufficient • most of the time (90% solution) • Developers like it • Every API behaves the same • REST was a good choice QCon 2008
  • 36. Is REST as flexible as SOAP? • Some Operations are not obvious – eg. transactions – eg. send notification with reply • Be creative • notifications as side effects of update • drop box feeds (insert only) • virtually infinite feeds (get & update only) • REST is sufficient, but you may have to be creative QCon 2008
  • 37. Using the Atom Publishing Protocol ... 34 QCon 2008
  • 38. Using the Atom Publishing Protocol ... • Good REST based design 34 QCon 2008
  • 39. Using the Atom Publishing Protocol ... • Good REST based design • Missing Query: – Solution: query parameters – Not always sufficient ... an open issue 34 QCon 2008
  • 40. Using the Atom Publishing Protocol ... • Good REST based design • Missing Query: – Solution: query parameters – Not always sufficient ... an open issue • Missing Authentication: – Solution: Google Auth – More secure than Basic Auth, slowed integration 34 QCon 2008
  • 41. Using the Atom Publishing Protocol ... • Good REST based design • Missing Query: – Solution: query parameters – Not always sufficient ... an open issue • Missing Authentication: – Solution: Google Auth – More secure than Basic Auth, slowed integration • Concurrent Operations – Solution: Optimistic Concurrency via Edit URIs – We should have used strong eTags 34 QCon 2008
  • 42. Extending the Atom Publishing Protocol ... • Engineers care about efficiency • Forced Read-Modify-Write – Solution: URIs based on the data (ACL) • Batch Processing – Solution: GData batch extension • Incremental Changes / Updates – an open issue ... 35 QCon 2008
  • 43. Using Atom Data Format ... 36 QCon 2008
  • 44. Using Atom Data Format ... • Originally designed for blogs not data 36 QCon 2008
  • 45. Using Atom Data Format ... • Originally designed for blogs not data • Drawbacks – syntax constraints (atom:content, atom:updated) 36 QCon 2008
  • 46. Using Atom Data Format ... • Originally designed for blogs not data • Drawbacks – syntax constraints (atom:content, atom:updated) • Benefits – standardized (IETF) – extensible – useful fields (atom:id, atom:updated) – can use a feed reader (cool!) 36 QCon 2008
  • 47. Using Atom Data Format ... • Originally designed for blogs not data • Drawbacks – syntax constraints (atom:content, atom:updated) • Benefits – standardized (IETF) – extensible – useful fields (atom:id, atom:updated) – can use a feed reader (cool!) • Overall, a very good choice 36 QCon 2008
  • 48. Modeling Data in Atom ... 37 QCon 2008
  • 49. Modeling Data in Atom ... • How to indicate extensions / semantics? – Solution: atom:category URI to indicate “kind” – Should have been human readable string 37 QCon 2008
  • 50. Modeling Data in Atom ... • How to indicate extensions / semantics? – Solution: atom:category URI to indicate “kind” – Should have been human readable string • How to indicate related feeds and entries? – Solutions: ... • link@rel, gd:feedLink, gd:entryLink, content@href – No clear standard, try to be consistent 37 QCon 2008
  • 51. Designing New Data Formats ... 38 QCon 2008
  • 52. Designing New Data Formats ... • The Idea: GD-namespace – Create reusable extensions and kinds – Manage extensions in one namespace 38 QCon 2008
  • 53. Designing New Data Formats ... • The Idea: GD-namespace – Create reusable extensions and kinds – Manage extensions in one namespace 38 QCon 2008
  • 54. Designing New Data Formats ... • The Idea: GD-namespace – Create reusable extensions and kinds – Manage extensions in one namespace • Our Experience: – Almost every Google API has extended it – Used only by Google APIs (so far) 38 QCon 2008
  • 55. Designing New Data Formats ... • The Idea: GD-namespace – Create reusable extensions and kinds – Manage extensions in one namespace • Our Experience: – Almost every Google API has extended it – Used only by Google APIs (so far) • Alternatives: – Reuse existing XML schemas (GeoRSS, MediaRSS) – Create an ecology of ‘kinds’ (GData ACL) 38 QCon 2008
  • 56. Care for your Developers • Protocol Centric & Language Agnostic • Open your Code • Give Fair Warnings of Changes • Meet your Developers QCon 2008
  • 57. Do you feel lucky? • Questions, comments? 40 QCon 2008