SlideShare une entreprise Scribd logo
1  sur  35
Developer Network INTRODUCTION
Developer Network Elsevier and SciVerse Elsevier publishes 25% of the world’s Scientific, Technical and Medical (STM) content:  ,[object Object]
more than 40 million abstracts and author, affiliation information in Scopus.
all content from Elsevier and scientific world wide web in Hub. SciVerse embeds applications within scientific content, giving developers and apps access via framework and content APIs.  SciVerse is an extension of Apache Shindig, an implementation of OpenSocial. Sciverse apps can access content via open APIs.
Developer Network 2011 The WAR of the INTERNETS
Developer Network Social Apps Web Both Facebook and Google are the same type of social network with applications. Facebook owns the social network, Google owns search.   Elsevier’s SciVerse is social apps for scientific search.  OpenSocial SciVerse uses OpenSocial standards. OpenSocial is a specification for creating an app-based social network. This spec is originally based on iGoogle by Google. SciVerse extends Apache Shindig, making apps contextual. The OpenSocial standard is worldwide used by sites with around 900 million users (Facebook has 500 million users): ,[object Object]
MySpace
Orkut
Friendster
ZDNet
RenRen
LinkedIn
Ning
SalesForce
Hyves
Imeem
Yahoo
Net
SciVerse,[object Object]
Developer Network 2011 – Social Apps based Business
Developer Network
Developer Network STM Publishing Elsevier publishes 25% of the world’s Science, Technology and Medical (STM) Publications ScienceDirect: 10 million full text articles in 2,500 journals  Scopus: 42 million abstracts, citations, authors and affiliations  Hub: plus web content covering 18,000 titles from over 5,000 publishers And META-DATA
Developer Network A list of search results with facets in SciVerse Hub
Developer Network Elsevier | Developer Network With SciVerse APPS (search result analysis app)
Developer Network an abstract for a scientific article with tables and references
Developer Network Elsevier | Developer Network With SciVerse APPS (genome viewer and protein network viewer)
Developer Network Full text article in ScienceDirect with popup APP (related content by nextbio)
Developer Network PART 1 – TECHNOLOGY PLATFORM
Developer Network OpenSocial Architecture IFRAME http request HTTP SERVER Shindig Server Gadget Renderer Servlet Data Service Servlet Apache Shindig is an implementation of the OpenSocial specification. Gadget  Server Data Handler Container People Activities Gadget  App Data DB1 DB2 Javascript Libraries Gadget.xml
Developer Network SciVerse Architecture SciVerse extends Apache Shindig. SciVerse gadgets can access the context of the page in which they appear via so called Framework APIs.
Developer Network SciVerse – Integration Points Apps appear as iframes in so-called views or integration points in the webpage. 17
Developer Network What is a Gadget? The IFRAME Revolution OpenSocial Gadgets A gadget is a client-side application in the form of an HTML iFrame that appears in the context of a webpage and uses client-side scripting languages like JavaScript. IFRAME <iframesrc="iframe1.html" width=“400" height=“200"> Hello World! </iframe> GADGET.XML (example 1) <?xml version="1.0" encoding="UTF-8"?> <Module>   <ModulePrefs title=“HellowWorld1" author_email=“me@mine.com">     <Require feature="opensocial-0.9" />   </ModulePrefs>   <Content type="html" view="profile"><![CDATA[      <script type=‘text/javascript’>  function fnWrite() { getElementById(‘content-div’).innerHTML = “Hello World”; }     </script>     <div id=‘content-div’></div>   ]]></Content> </Module>
Developer Network Example 1  – OpenSocial Definition File or gadget.xml <?xml version="1.0" encoding="UTF-8"?> <Module>   <ModulePrefs title="SciVerseExamples-ContentAPICall1" author_email="CaprioR@your.domain">     <Require feature="opensocial-0.9" />     <Require feature="sciverse" />     <Require feature="hub" />     <Require feature="org.jquery.core-1.4.2" />   </ModulePrefs>   <Content type="html" view="canvas"><![CDATA[ <!-- The code for Canvas view is here. --> ]]></Content>  <Content type="html" view="profile"><![CDATA[ Profile View ]]></Content>   <Content type="html" view="sciverseResultsView"><![CDATA[ <!-- The code for SciverseResultsViewview is here. --> <div>Sciverse Results View view for SciVerseExamples-ContentAPICall1.</div>   ]]></Content> </Module>
Developer Network Object Oriented JavaScript JavaScript originally mainly added dynamic features to an otherwise static HTML page, creating DHTML. But with the advent of DOM, AJAX and gadget programming, JavaScript is now more than a simple client side scripting language, and has become a sophisticated application programming language.  Therefore, follow Object Oriented design principles and create ‘un-obtrusive’ code: ,[object Object]
 Where possible create Object Oriented code that you can re-use

Contenu connexe

Tendances

Spring Boot APIs and Angular Apps: Get Hip with JHipster! KCDC 2019
Spring Boot APIs and Angular Apps: Get Hip with JHipster! KCDC 2019Spring Boot APIs and Angular Apps: Get Hip with JHipster! KCDC 2019
Spring Boot APIs and Angular Apps: Get Hip with JHipster! KCDC 2019Matt Raible
 
Front End Development for Back End Java Developers - Jfokus 2020
Front End Development for Back End Java Developers - Jfokus 2020Front End Development for Back End Java Developers - Jfokus 2020
Front End Development for Back End Java Developers - Jfokus 2020Matt Raible
 
The Best Way to Become an Android Developer Expert with Android Jetpack
The Best Way to Become an Android Developer Expert  with Android JetpackThe Best Way to Become an Android Developer Expert  with Android Jetpack
The Best Way to Become an Android Developer Expert with Android JetpackAhmad Arif Faizin
 
Bootiful Development with Spring Boot and React - SpringOne 2017
Bootiful Development with Spring Boot and React - SpringOne 2017Bootiful Development with Spring Boot and React - SpringOne 2017
Bootiful Development with Spring Boot and React - SpringOne 2017Matt Raible
 
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13Fred Sauer
 
Case Study: Migrating Hyperic from EJB to Spring from JBoss to Apache Tomcat
Case Study: Migrating Hyperic from EJB to Spring from JBoss to Apache TomcatCase Study: Migrating Hyperic from EJB to Spring from JBoss to Apache Tomcat
Case Study: Migrating Hyperic from EJB to Spring from JBoss to Apache TomcatVMware Hyperic
 
Front End Development for Backend Developers - GIDS 2019
Front End Development for Backend Developers - GIDS 2019Front End Development for Backend Developers - GIDS 2019
Front End Development for Backend Developers - GIDS 2019Matt Raible
 
Choose Your Own Adventure with JHipster & Kubernetes - Utah JUG 2020
Choose Your Own Adventure with JHipster & Kubernetes - Utah JUG 2020Choose Your Own Adventure with JHipster & Kubernetes - Utah JUG 2020
Choose Your Own Adventure with JHipster & Kubernetes - Utah JUG 2020Matt Raible
 
A realtime infrastructure for Android apps: Firebase may be what you need..an...
A realtime infrastructure for Android apps: Firebase may be what you need..an...A realtime infrastructure for Android apps: Firebase may be what you need..an...
A realtime infrastructure for Android apps: Firebase may be what you need..an...Alessandro Martellucci
 
Twitter APIs for #MediaHackday
Twitter APIs for #MediaHackdayTwitter APIs for #MediaHackday
Twitter APIs for #MediaHackdayAndy Piper
 
Seven Simple Reasons to Use AppFuse
Seven Simple Reasons to Use AppFuseSeven Simple Reasons to Use AppFuse
Seven Simple Reasons to Use AppFuseMatt Raible
 
Bootiful Development with Spring Boot and React - Richmond JUG 2018
Bootiful Development with Spring Boot and React - Richmond JUG 2018Bootiful Development with Spring Boot and React - Richmond JUG 2018
Bootiful Development with Spring Boot and React - Richmond JUG 2018Matt Raible
 
Reactive Java Microservices with Spring Boot and JHipster - Denver JUG 2021
Reactive Java Microservices with Spring Boot and JHipster - Denver JUG 2021Reactive Java Microservices with Spring Boot and JHipster - Denver JUG 2021
Reactive Java Microservices with Spring Boot and JHipster - Denver JUG 2021Matt Raible
 
Java Web Application Security - UberConf 2011
Java Web Application Security - UberConf 2011Java Web Application Security - UberConf 2011
Java Web Application Security - UberConf 2011Matt Raible
 
Hybrid Apps (Native + Web) via QtWebKit
Hybrid Apps (Native + Web) via QtWebKitHybrid Apps (Native + Web) via QtWebKit
Hybrid Apps (Native + Web) via QtWebKitAriya Hidayat
 
A Gentle Introduction to Angular Schematics - Angular SF 2019
A Gentle Introduction to Angular Schematics - Angular SF 2019A Gentle Introduction to Angular Schematics - Angular SF 2019
A Gentle Introduction to Angular Schematics - Angular SF 2019Matt Raible
 
In graph we trust: Microservices, GraphQL and security challenges
In graph we trust: Microservices, GraphQL and security challengesIn graph we trust: Microservices, GraphQL and security challenges
In graph we trust: Microservices, GraphQL and security challengesMohammed A. Imran
 

Tendances (19)

Spring Boot APIs and Angular Apps: Get Hip with JHipster! KCDC 2019
Spring Boot APIs and Angular Apps: Get Hip with JHipster! KCDC 2019Spring Boot APIs and Angular Apps: Get Hip with JHipster! KCDC 2019
Spring Boot APIs and Angular Apps: Get Hip with JHipster! KCDC 2019
 
Front End Development for Back End Java Developers - Jfokus 2020
Front End Development for Back End Java Developers - Jfokus 2020Front End Development for Back End Java Developers - Jfokus 2020
Front End Development for Back End Java Developers - Jfokus 2020
 
The Best Way to Become an Android Developer Expert with Android Jetpack
The Best Way to Become an Android Developer Expert  with Android JetpackThe Best Way to Become an Android Developer Expert  with Android Jetpack
The Best Way to Become an Android Developer Expert with Android Jetpack
 
Bootiful Development with Spring Boot and React - SpringOne 2017
Bootiful Development with Spring Boot and React - SpringOne 2017Bootiful Development with Spring Boot and React - SpringOne 2017
Bootiful Development with Spring Boot and React - SpringOne 2017
 
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
 
Case Study: Migrating Hyperic from EJB to Spring from JBoss to Apache Tomcat
Case Study: Migrating Hyperic from EJB to Spring from JBoss to Apache TomcatCase Study: Migrating Hyperic from EJB to Spring from JBoss to Apache Tomcat
Case Study: Migrating Hyperic from EJB to Spring from JBoss to Apache Tomcat
 
Front End Development for Backend Developers - GIDS 2019
Front End Development for Backend Developers - GIDS 2019Front End Development for Backend Developers - GIDS 2019
Front End Development for Backend Developers - GIDS 2019
 
Choose Your Own Adventure with JHipster & Kubernetes - Utah JUG 2020
Choose Your Own Adventure with JHipster & Kubernetes - Utah JUG 2020Choose Your Own Adventure with JHipster & Kubernetes - Utah JUG 2020
Choose Your Own Adventure with JHipster & Kubernetes - Utah JUG 2020
 
A realtime infrastructure for Android apps: Firebase may be what you need..an...
A realtime infrastructure for Android apps: Firebase may be what you need..an...A realtime infrastructure for Android apps: Firebase may be what you need..an...
A realtime infrastructure for Android apps: Firebase may be what you need..an...
 
Twitter APIs for #MediaHackday
Twitter APIs for #MediaHackdayTwitter APIs for #MediaHackday
Twitter APIs for #MediaHackday
 
Seven Simple Reasons to Use AppFuse
Seven Simple Reasons to Use AppFuseSeven Simple Reasons to Use AppFuse
Seven Simple Reasons to Use AppFuse
 
Bootiful Development with Spring Boot and React - Richmond JUG 2018
Bootiful Development with Spring Boot and React - Richmond JUG 2018Bootiful Development with Spring Boot and React - Richmond JUG 2018
Bootiful Development with Spring Boot and React - Richmond JUG 2018
 
Reactive Java Microservices with Spring Boot and JHipster - Denver JUG 2021
Reactive Java Microservices with Spring Boot and JHipster - Denver JUG 2021Reactive Java Microservices with Spring Boot and JHipster - Denver JUG 2021
Reactive Java Microservices with Spring Boot and JHipster - Denver JUG 2021
 
Android Lab
Android LabAndroid Lab
Android Lab
 
Java Web Application Security - UberConf 2011
Java Web Application Security - UberConf 2011Java Web Application Security - UberConf 2011
Java Web Application Security - UberConf 2011
 
Google AJAX APIs
Google  AJAX APIsGoogle  AJAX APIs
Google AJAX APIs
 
Hybrid Apps (Native + Web) via QtWebKit
Hybrid Apps (Native + Web) via QtWebKitHybrid Apps (Native + Web) via QtWebKit
Hybrid Apps (Native + Web) via QtWebKit
 
A Gentle Introduction to Angular Schematics - Angular SF 2019
A Gentle Introduction to Angular Schematics - Angular SF 2019A Gentle Introduction to Angular Schematics - Angular SF 2019
A Gentle Introduction to Angular Schematics - Angular SF 2019
 
In graph we trust: Microservices, GraphQL and security challenges
In graph we trust: Microservices, GraphQL and security challengesIn graph we trust: Microservices, GraphQL and security challenges
In graph we trust: Microservices, GraphQL and security challenges
 

Similaire à SgCodeJam24 Workshop

SgCodeJam24 Workshop Extract
SgCodeJam24 Workshop ExtractSgCodeJam24 Workshop Extract
SgCodeJam24 Workshop Extractremko caprio
 
Apps for Science - Elsevier Developer Network Workshop 201102
Apps for Science - Elsevier Developer Network Workshop 201102Apps for Science - Elsevier Developer Network Workshop 201102
Apps for Science - Elsevier Developer Network Workshop 201102remko caprio
 
Open social for science a sciverse primer - mysimplesearch
Open social for science   a sciverse primer - mysimplesearchOpen social for science   a sciverse primer - mysimplesearch
Open social for science a sciverse primer - mysimplesearchremko caprio
 
Let's build Developer Portal with Backstage
Let's build Developer Portal with BackstageLet's build Developer Portal with Backstage
Let's build Developer Portal with BackstageOpsta
 
Open stack ocata summit enabling aws lambda-like functionality with openstac...
Open stack ocata summit  enabling aws lambda-like functionality with openstac...Open stack ocata summit  enabling aws lambda-like functionality with openstac...
Open stack ocata summit enabling aws lambda-like functionality with openstac...Shaun Murakami
 
SharePoint Saturday Atlanta 2015
SharePoint Saturday Atlanta 2015SharePoint Saturday Atlanta 2015
SharePoint Saturday Atlanta 2015Pushkar Chivate
 
Xitrum Web Framework Live Coding Demos / Xitrum Web Framework ライブコーディング
Xitrum Web Framework Live Coding Demos / Xitrum Web Framework ライブコーディングXitrum Web Framework Live Coding Demos / Xitrum Web Framework ライブコーディング
Xitrum Web Framework Live Coding Demos / Xitrum Web Framework ライブコーディングscalaconfjp
 
Xitrum @ Scala Matsuri Tokyo 2014
Xitrum @ Scala Matsuri Tokyo 2014Xitrum @ Scala Matsuri Tokyo 2014
Xitrum @ Scala Matsuri Tokyo 2014Ngoc Dao
 
Cross-Platform Native Mobile Development with Eclipse
Cross-Platform Native Mobile Development with EclipseCross-Platform Native Mobile Development with Eclipse
Cross-Platform Native Mobile Development with EclipsePeter Friese
 
Android Workshop
Android WorkshopAndroid Workshop
Android WorkshopJunda Ong
 
SciVerse Application Integration Points
SciVerse Application Integration PointsSciVerse Application Integration Points
SciVerse Application Integration PointsElsevier Developers
 
OGCE Project Overview
OGCE Project OverviewOGCE Project Overview
OGCE Project Overviewmarpierc
 
Jaoo - Open Social A Standard For The Social Web
Jaoo - Open Social A Standard For The Social WebJaoo - Open Social A Standard For The Social Web
Jaoo - Open Social A Standard For The Social WebPatrick Chanezon
 
OpenSocial Intro
OpenSocial IntroOpenSocial Intro
OpenSocial IntroPamela Fox
 
Get Hip with JHipster - GIDS 2019
Get Hip with JHipster - GIDS 2019Get Hip with JHipster - GIDS 2019
Get Hip with JHipster - GIDS 2019Matt Raible
 
Android MVVM architecture using Kotlin, Dagger2, LiveData, MediatorLiveData
Android MVVM architecture using Kotlin, Dagger2, LiveData, MediatorLiveDataAndroid MVVM architecture using Kotlin, Dagger2, LiveData, MediatorLiveData
Android MVVM architecture using Kotlin, Dagger2, LiveData, MediatorLiveDataWaheed Nazir
 
Prototyping applications with heroku and elasticsearch
 Prototyping applications with heroku and elasticsearch Prototyping applications with heroku and elasticsearch
Prototyping applications with heroku and elasticsearchprotofy
 
Front End Development for Back End Developers - UberConf 2017
Front End Development for Back End Developers - UberConf 2017Front End Development for Back End Developers - UberConf 2017
Front End Development for Back End Developers - UberConf 2017Matt Raible
 

Similaire à SgCodeJam24 Workshop (20)

SgCodeJam24 Workshop Extract
SgCodeJam24 Workshop ExtractSgCodeJam24 Workshop Extract
SgCodeJam24 Workshop Extract
 
Apps for Science - Elsevier Developer Network Workshop 201102
Apps for Science - Elsevier Developer Network Workshop 201102Apps for Science - Elsevier Developer Network Workshop 201102
Apps for Science - Elsevier Developer Network Workshop 201102
 
Open social for science a sciverse primer - mysimplesearch
Open social for science   a sciverse primer - mysimplesearchOpen social for science   a sciverse primer - mysimplesearch
Open social for science a sciverse primer - mysimplesearch
 
Let's build Developer Portal with Backstage
Let's build Developer Portal with BackstageLet's build Developer Portal with Backstage
Let's build Developer Portal with Backstage
 
Open stack ocata summit enabling aws lambda-like functionality with openstac...
Open stack ocata summit  enabling aws lambda-like functionality with openstac...Open stack ocata summit  enabling aws lambda-like functionality with openstac...
Open stack ocata summit enabling aws lambda-like functionality with openstac...
 
SharePoint Saturday Atlanta 2015
SharePoint Saturday Atlanta 2015SharePoint Saturday Atlanta 2015
SharePoint Saturday Atlanta 2015
 
Xitrum Web Framework Live Coding Demos / Xitrum Web Framework ライブコーディング
Xitrum Web Framework Live Coding Demos / Xitrum Web Framework ライブコーディングXitrum Web Framework Live Coding Demos / Xitrum Web Framework ライブコーディング
Xitrum Web Framework Live Coding Demos / Xitrum Web Framework ライブコーディング
 
Xitrum @ Scala Matsuri Tokyo 2014
Xitrum @ Scala Matsuri Tokyo 2014Xitrum @ Scala Matsuri Tokyo 2014
Xitrum @ Scala Matsuri Tokyo 2014
 
Cross-Platform Native Mobile Development with Eclipse
Cross-Platform Native Mobile Development with EclipseCross-Platform Native Mobile Development with Eclipse
Cross-Platform Native Mobile Development with Eclipse
 
Android Workshop
Android WorkshopAndroid Workshop
Android Workshop
 
SciVerse Application Integration Points
SciVerse Application Integration PointsSciVerse Application Integration Points
SciVerse Application Integration Points
 
OGCE Project Overview
OGCE Project OverviewOGCE Project Overview
OGCE Project Overview
 
Codeigniter
CodeigniterCodeigniter
Codeigniter
 
Jaoo - Open Social A Standard For The Social Web
Jaoo - Open Social A Standard For The Social WebJaoo - Open Social A Standard For The Social Web
Jaoo - Open Social A Standard For The Social Web
 
Advanced JavaScript
Advanced JavaScriptAdvanced JavaScript
Advanced JavaScript
 
OpenSocial Intro
OpenSocial IntroOpenSocial Intro
OpenSocial Intro
 
Get Hip with JHipster - GIDS 2019
Get Hip with JHipster - GIDS 2019Get Hip with JHipster - GIDS 2019
Get Hip with JHipster - GIDS 2019
 
Android MVVM architecture using Kotlin, Dagger2, LiveData, MediatorLiveData
Android MVVM architecture using Kotlin, Dagger2, LiveData, MediatorLiveDataAndroid MVVM architecture using Kotlin, Dagger2, LiveData, MediatorLiveData
Android MVVM architecture using Kotlin, Dagger2, LiveData, MediatorLiveData
 
Prototyping applications with heroku and elasticsearch
 Prototyping applications with heroku and elasticsearch Prototyping applications with heroku and elasticsearch
Prototyping applications with heroku and elasticsearch
 
Front End Development for Back End Developers - UberConf 2017
Front End Development for Back End Developers - UberConf 2017Front End Development for Back End Developers - UberConf 2017
Front End Development for Back End Developers - UberConf 2017
 

Dernier

Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024TopCSSGallery
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integrationmarketing932765
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesManik S Magar
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Nikki Chapple
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...itnewsafrica
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...itnewsafrica
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 

Dernier (20)

Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 

SgCodeJam24 Workshop

  • 2.
  • 3. more than 40 million abstracts and author, affiliation information in Scopus.
  • 4. all content from Elsevier and scientific world wide web in Hub. SciVerse embeds applications within scientific content, giving developers and apps access via framework and content APIs. SciVerse is an extension of Apache Shindig, an implementation of OpenSocial. Sciverse apps can access content via open APIs.
  • 5. Developer Network 2011 The WAR of the INTERNETS
  • 6.
  • 10. ZDNet
  • 13. Ning
  • 15. Hyves
  • 16. Imeem
  • 17. Yahoo
  • 18. Net
  • 19.
  • 20. Developer Network 2011 – Social Apps based Business
  • 22. Developer Network STM Publishing Elsevier publishes 25% of the world’s Science, Technology and Medical (STM) Publications ScienceDirect: 10 million full text articles in 2,500 journals Scopus: 42 million abstracts, citations, authors and affiliations Hub: plus web content covering 18,000 titles from over 5,000 publishers And META-DATA
  • 23. Developer Network A list of search results with facets in SciVerse Hub
  • 24. Developer Network Elsevier | Developer Network With SciVerse APPS (search result analysis app)
  • 25. Developer Network an abstract for a scientific article with tables and references
  • 26. Developer Network Elsevier | Developer Network With SciVerse APPS (genome viewer and protein network viewer)
  • 27. Developer Network Full text article in ScienceDirect with popup APP (related content by nextbio)
  • 28. Developer Network PART 1 – TECHNOLOGY PLATFORM
  • 29. Developer Network OpenSocial Architecture IFRAME http request HTTP SERVER Shindig Server Gadget Renderer Servlet Data Service Servlet Apache Shindig is an implementation of the OpenSocial specification. Gadget Server Data Handler Container People Activities Gadget App Data DB1 DB2 Javascript Libraries Gadget.xml
  • 30. Developer Network SciVerse Architecture SciVerse extends Apache Shindig. SciVerse gadgets can access the context of the page in which they appear via so called Framework APIs.
  • 31. Developer Network SciVerse – Integration Points Apps appear as iframes in so-called views or integration points in the webpage. 17
  • 32. Developer Network What is a Gadget? The IFRAME Revolution OpenSocial Gadgets A gadget is a client-side application in the form of an HTML iFrame that appears in the context of a webpage and uses client-side scripting languages like JavaScript. IFRAME <iframesrc="iframe1.html" width=“400" height=“200"> Hello World! </iframe> GADGET.XML (example 1) <?xml version="1.0" encoding="UTF-8"?> <Module> <ModulePrefs title=“HellowWorld1" author_email=“me@mine.com"> <Require feature="opensocial-0.9" /> </ModulePrefs> <Content type="html" view="profile"><![CDATA[ <script type=‘text/javascript’> function fnWrite() { getElementById(‘content-div’).innerHTML = “Hello World”; } </script> <div id=‘content-div’></div> ]]></Content> </Module>
  • 33. Developer Network Example 1 – OpenSocial Definition File or gadget.xml <?xml version="1.0" encoding="UTF-8"?> <Module> <ModulePrefs title="SciVerseExamples-ContentAPICall1" author_email="CaprioR@your.domain"> <Require feature="opensocial-0.9" /> <Require feature="sciverse" /> <Require feature="hub" /> <Require feature="org.jquery.core-1.4.2" /> </ModulePrefs> <Content type="html" view="canvas"><![CDATA[ <!-- The code for Canvas view is here. --> ]]></Content> <Content type="html" view="profile"><![CDATA[ Profile View ]]></Content> <Content type="html" view="sciverseResultsView"><![CDATA[ <!-- The code for SciverseResultsViewview is here. --> <div>Sciverse Results View view for SciVerseExamples-ContentAPICall1.</div> ]]></Content> </Module>
  • 34.
  • 35. Where possible create Object Oriented code that you can re-use
  • 36. Create packages to separate namespaces to avoid naming conflicts
  • 37. Create re-usable libraries for common code In addition test, debug and compress your code to improve performance and increase stability.
  • 38. Developer Network Example 2 – Object Oriented JavaScript // create a class for SciVerseSearch function SciverseSearch() { … } // create a static class variable SciverseSearch.View = { STANDARD: 'STANDARD', COMPLETE: 'COMPLETE' } // create a method instance for a query method SciverseSearch.prototype.execute = function(query) { … } // create a setter for the view variable SciverseSearch.prototype.setView = function(view) { this.view = view; } // Now instantiate the class and call its method varsciverse = new SciverseSearch(); sciverse.setView(SciverseSearch.View.COMPLETE); sciverse.execute(query);
  • 39. Developer Network Debugging JavaScript Opera DragonflyOpera Browser has Dragonfly built-in.Firefox FirebugFor FireFox you can install the Firebug add-on. Safari Web Inspector On a Mac, there is Web Inspector for Safari. Chrome Developer ToolsGoogle Chrome comes with Developer Tools. The Developer Blog has an article with a Complete overview of debuggers for the main 4 browsers at http://developer.sciverse.com/blog Blog Post: Complete Overview: Debugging JavaScript and SciVerse Apps in FireFox, Opera, Safari, Chrome, IE
  • 40. Developer Network PART 2 – GADGET PROGRAMMING
  • 41. Developer Network SciVerse APIs There are two main APIs for SciVerse: Framework API – with access to context and methods on the page Content API – for search and retrieval of articles, authors and affiliations
  • 42. Developer Network SciVerse – Framework API The Framework API allows the app to access context and methods of the page. http://developer.sciverse.com/frameworkapi
  • 44. Developer Network SciVerse – Framework API - ContextInfo Most of the information visible on the page, is accessible by the gadget via the Framework API. The ContextInfo object returns among other the following information: accountId, artNum, au1, au1First, au1Init, au1Suffix, au1Sur, auCorp, authorKeywords, date, docTitle, doi, entitlement, genre, indexTerms, individualUser, isbn, issn, issue, keywords, offset, originPage, otherKeywords, pageContentDivTagName, pages, pageType, part, partTitle, partValue, pii, platform, scDocId, scopusFlag, searchQuery, searchTerms, secureAuthtoken, sortOrder, sPage, srcTitle, ssn, timestamp, volume, year // retrieving the authtokenvia the GetContextInfo method’s callback function getContextInfoCallback(result){ // get authtoken for content API call varauthtoken = result.secureAuthtoken; varsearchterm = result.searchTerms; } // retrieving the authToken via the gadget preferences <script type="text/javascript"> varprefs = new gadgets.Prefs(); varauthtoken= prefs.getString("secureAuthtoken");                                </script>
  • 45. Developer Network Example - How to retrieve the authToken for the Content API call? function init(){ gadgets.sciverse.getContextInfo(getContextInfoCallback); // this parameter is the callback method } function getContextInfoCallback(result){ // get authtoken for content API call varauthtoken = result.secureAuthtoken; varsearchterm = result.searchTerms; } // after pageload finishes, this executes the init method, which will trigger following functions gadgets.util.registerOnLoadHandler(init); OR <UserPref name="contentApiKey" datatype="hidden" default_value="your-api-key-here" /> <UserPref name="secureAuthtoken" datatype="hidden" /> … <script type="text/javascript"> varprefs = new gadgets.Prefs(); varauthToken = prefs.getString("secureAuthtoken"); </script> Also, see the example code at https://github.com/sciversedev/examples/
  • 46. Developer Network SciVerse Content API The Content API provides access to ScienceDirect and Scopus data. This is the backbone of the Elsevier content. The Content API can be accessed via building the query URL as follows:
  • 47. Developer Network Example - Content API - search Hub Search http://api.elsevier.com/content/search/index:HUB?query=heart+attack Searches for documents in Hub that mention the term ‘heart attack’ ScienceDirect Search http://api.elsevier.com/content/search/index:SCIDIR?query=TITLE(decay)&date=2007 Searches for documents in ScienceDirect that have ‘decay’ in the title and that were published in 2007 Scopus search http://api.elsevier.com/content/search/index:SCOPUS?query=AUTHLASTNAME(mckinley)%20AND%20SUBJAREA(CHEM) Searches for documents in Scopus in the area of chemistry written by people with last name “McKinley” Author search http://api.elsevier.com/content/search/index:AUTHOR?query=af-id(60032114)%20AND%20authlast(smith) Searches for authors that are affiliated with the institute that has affiliationID ‘60032114’ and whose last name is ‘smith’ Affiliation search http://api.elsevier.com/content/search/index:AFFILIATION?query=affil(rotterdam) Searches for affiliation profiles (i.e. institutes) with Rotterdam in their name or description
  • 48. Developer Network Example - Content API - retrieval Full-text retrieval (ScienceDirect) http://api.elsevier.com/content/article/DOI:10.1016/0092-8674(93)90500-P?view=FULL Retrieves the full-text version of the ScienceDirect document with DOI ‘10.1016/0092-8674(93)90500-P’ Abstract retrieval (Scopus) http://api.elsevier.com/content/abstract/SCOPUS_ID:0027359827 Retrieves the Scopus document with Scopus ID ‘0027359827’ Author retrieval http://api.elsevier.com/content/author/AUTHOR_ID:44372231200?view=STANDARD Retrieves a ‘standard’ view of the author profile with Scopus author ID ‘44372231200’ Affiliation retrieval http://api.elsevier.com/content/affiliation/AFFILIATION_ID:60016849?view=COMPLETE Retrieves a ‘complete’ view of the profile of the institute that has Scopus affiliationID ‘60016849’ Serial title information http://api.elsevier.com/content/serial/title?ISSN=07400551 Searches for/retrieves information about the journal of which the ISSN is ‘07400551’
  • 49. Developer Network VIEWS and FIELDS A request to retrieve information can specify the fields that you want to retrieve. You can use a view with predefined fields or you can specify which particular fields you seek to return. Which views and which fields are available depends on the content-category: article (full text), abstract, author, or affiliation. http://developer.sciverse.com/sciversecontentapiretrievalviews
  • 50. Developer Network VIEWS and FIELDS The {content-category} identifies the type of content. This is divided into: article–Serial and non-serial full text documents from journals and books published by Elsevier abstract– Abstracts from Scopus author– Author profiles generated from Scopus data. affiliation – Affiliation profiles generated from Scopus data. The {identifier_label} distinguishes the type of identifier : DOI - for full-text documents, SCOPUS_ID, AUTHOD_ID - Elsevier identifier tied to an individual author, AFFIL_ID -Elsevier identifier tied to an institution (for use as an affiliation) Other available unique identifiers available for use: PII - Publisher Item Identifier , PUBMED_ID
  • 52. Developer Network SciVerse – Mashup <script type=‘text/javascript’> varmyapikey = ‘aaaass223ssss’; function fnCreateMashup(){ gadgets.sciverse.getContextInfo(fnContextInfoCallback); } funtionfnContentInfoCallback(response){ var search = response.searchQuery; varurl = ‘http://api.nytimes.com/svc/search/v1/article?query=‘+search+’&api-key=‘+myapikey+ ‘format=json’; varparams = { ‘href’ : url, ‘format’ : ‘json’, ‘authz’ : ‘none’ }; osapi.http.get(params1).execute(fnNyTimesCallback); } function fnNyTimesCallback(nytimesResponse) { var output = ‘’; // using jquery $.each(nytimesResponse.content.results, function(I, result){ output = output + result.data + ‘ – ‘ + result.title; } } gadgets.util.registerOnLoadHandler(fnCreateMashup); </script>