SlideShare ist ein Scribd-Unternehmen logo
1 von 21
GPII Integration
Integrating Your Application
• You can usually integrate your app without
writing any code
• Simply describe:
1. Which platforms you support
2. How you store your settings
3. How to launch and stop your
application
4. How your settings relate to a common
vocabulary
Basic Structure:
{
"name": "Windows Built-in Screen Magnifier",
"id": "com.microsoft.windows.magnifier",
"contexts": (…),
"settingsHandlers": (…),
"lifecycleManager": (…)
}
Give your application a name and a unique ID:
{
"name": "Windows Built-in Screen Magnifier",
"id": "com.microsoft.windows.magnifier",
"contexts": (…),
"settingsHandlers": (…),
"lifecycleManager": (…)
}
Describe the platforms your application runs on:
{
"name": "Windows Built-in Screen Magnifier",
"id": "com.microsoft.windows.magnifier",
"contexts": {
"OS": [
{
"id": "win32",
"version": ">=5.0"
}
]
},
"settingsHandlers": (…),
"lifecycleManager": (…)
}
Describe how your app stores its settings:
{
"name": "Windows Built-in Screen Magnifier",
"id": "com.microsoft.windows.magnifier",
"contexts": (…),
"settingsHandlers": [ {
"type": "gpii.windows.registrySettingsHandler",
"options": {
"hKey": "HKEY_CURRENT_USER",
"path": "SoftwareMicrosoftScreenMagnifier"
},
"capabilitiesTransformations": (…)
}, {...} ],
"lifecycleManager": (…)
}
Describe how to start and stop your app:
{
"name": "Windows Built-in Screen Magnifier",
"id": "com.microsoft.windows.magnifier",
"contexts": (…),
"settingsHandlers": (…),
"lifecycleManager": {
"start": [
"setSettings",
{
"type": "gpii.launch.exec",
"command": "${{environment}.SystemRoot}System32Magnify.exe"
}
],
"stop": [
{
"type": "gpii.launch.exec",
"command": "${{environment}.SystemRoot}System32taskkill.exe /im Magnify.exe"
},
"restoreSettings"
]
}
}
AccessForAll & Common Terms
• AccessForAll a.k.a. ISO 24751
• Open registry-based architecture in
progress
• Provides a common vocabulary for
describing a user’s needs and
preference
• Provides a “meeting place” for cross-
platform preferences
• Philosophy: you speak your preferred
language, but describe how to translate
{
"http://registry.gpii.org/common/magnification": [
{"value": 3.0}
],
"http://registry.gpii.org/common/tracking": [
{"value": "mouse"}
],
"http://registry.gpii.org/common/invertImages": [
{"value": true}
]
}
Eexample preferences set:
{
"http://registry.gpii.org/common/magnification": [
{"value": 3.0}
],
"http://registry.gpii.org/common/tracking": [
{"value": "mouse"}
],
"http://registry.gpii.org/common/invertImages": [
{"value": true}
]
}
… But the windows magnifier stores magnification as a
percentage
“$HKEY_CURRENT_USERSoftwareMicrosoftScreenMagnifier”: {
“Magnification”: 200, [REG_DWORD INT]
“Invert”: 1 [REG_DWORD BOOL],
"FollowMouse": 1 [REG_DWORD BOOL]
}
Defining how to translate and set settings:
{
"name": "Windows Built-in Screen Magnifier",
"id": "com.microsoft.windows.magnifier",
"contexts": (…),
"settingsHandlers”: [
{
...
"capabilitiesTransformations": {
"Magnification": {
"transform": {
"type": "gpii.transformer.linearScale",
"inputPath": "http://registry.gpii.org/common/magnification",
"outputPath": "value",
"factor": 100
}
},
...
Defining how to translate and set settings:
{
"name": "Windows Built-in Screen Magnifier",
"id": "com.microsoft.windows.magnifier",
"contexts": (…),
"settingsHandlers”: [
{
...
"capabilitiesTransformations": {
"Magnification": {
"transform": {
"type": "gpii.transformer.linearScale",
"inputPath": "http://registry.gpii.org/common/magnification",
"outputPath": "value",
"factor": 100
}
},
...
Take this preference
Defining how to translate and set settings:
{
"name": "Windows Built-in Screen Magnifier",
"id": "com.microsoft.windows.magnifier",
"contexts": (…),
"settingsHandlers”: [
{
...
"capabilitiesTransformations": {
"Magnification": {
"transform": {
"type": "gpii.transformer.linearScale",
"inputPath": "http://registry.gpii.org/common/magnification",
"outputPath": "value",
"factor": 100
}
},
...
Take this preference
Rename it to this setting
Defining how to translate and set settings:
{
"name": "Windows Built-in Screen Magnifier",
"id": "com.microsoft.windows.magnifier",
"contexts": (…),
"settingsHandlers”: [
{
...
"capabilitiesTransformations": {
"Magnification": {
"transform": {
"type": "gpii.transformer.linearScale",
"inputPath": "http://registry.gpii.org/common/magnification",
"outputPath": "value",
"factor": 100
}
},
...
Rename it to this setting
Scale it
Take this preference
Next Steps
Get Involved
If you’re a developer, designer, tester,
user, writer, organizer, maker, thinker,
tinkerer, drawer, doer, helper...
We need you!
Community
Website
Wiki
Mailing lists
Source code
Issue tracker
Chat
gpii.net
wiki.gpii.net
lists.gpii.net
github.com/gpii
issues.gpii.net
#fluid-work (freenode)

Weitere ähnliche Inhalte

Was ist angesagt?

[AzureCamp 24 Juin 2014] Cache Distribué par Thomas Conté
[AzureCamp 24 Juin 2014] Cache Distribué par Thomas Conté[AzureCamp 24 Juin 2014] Cache Distribué par Thomas Conté
[AzureCamp 24 Juin 2014] Cache Distribué par Thomas ContéMicrosoft Technet France
 
Upgrade your javascript to drupal 8
Upgrade your javascript to drupal 8Upgrade your javascript to drupal 8
Upgrade your javascript to drupal 8Théodore Biadala
 
Opencast Admin UI - Introduction to developing using AngularJS
Opencast Admin UI - Introduction to developing using AngularJSOpencast Admin UI - Introduction to developing using AngularJS
Opencast Admin UI - Introduction to developing using AngularJSbuttyx
 
Drupal.js: Best Practices for Managing Javascript in Drupal
Drupal.js: Best Practices for Managing Javascript in DrupalDrupal.js: Best Practices for Managing Javascript in Drupal
Drupal.js: Best Practices for Managing Javascript in DrupalBryan Braun
 
Short intro to JQuery and Modernizr
Short intro to JQuery and ModernizrShort intro to JQuery and Modernizr
Short intro to JQuery and ModernizrJussi Pohjolainen
 
20141002 delapsley-socalangularjs-final
20141002 delapsley-socalangularjs-final20141002 delapsley-socalangularjs-final
20141002 delapsley-socalangularjs-finalDavid Lapsley
 
Azure Web Camp : Cache Distribué
Azure Web Camp : Cache DistribuéAzure Web Camp : Cache Distribué
Azure Web Camp : Cache DistribuéThomas Conté
 
Azure Table Storage: The Good, the Bad, the Ugly (15 min. lightning talk)
Azure Table Storage: The Good, the Bad, the Ugly (15 min. lightning talk)Azure Table Storage: The Good, the Bad, the Ugly (15 min. lightning talk)
Azure Table Storage: The Good, the Bad, the Ugly (15 min. lightning talk)Sirar Salih
 
Drupal as a web framework
Drupal as a web frameworkDrupal as a web framework
Drupal as a web frameworkAdam Kalsey
 
20140821 delapsley-cloudopen-public
20140821 delapsley-cloudopen-public20140821 delapsley-cloudopen-public
20140821 delapsley-cloudopen-publicDavid Lapsley
 
[NodeConf.eu 2014] Scaling AB Testing on Netflix.com with Node.js
[NodeConf.eu 2014] Scaling AB Testing on Netflix.com with Node.js[NodeConf.eu 2014] Scaling AB Testing on Netflix.com with Node.js
[NodeConf.eu 2014] Scaling AB Testing on Netflix.com with Node.jsAlex Liu
 
AngularJS Compile Process
AngularJS Compile ProcessAngularJS Compile Process
AngularJS Compile ProcessEyal Vardi
 

Was ist angesagt? (14)

[AzureCamp 24 Juin 2014] Cache Distribué par Thomas Conté
[AzureCamp 24 Juin 2014] Cache Distribué par Thomas Conté[AzureCamp 24 Juin 2014] Cache Distribué par Thomas Conté
[AzureCamp 24 Juin 2014] Cache Distribué par Thomas Conté
 
HTML5 DRAG AND DROP
HTML5 DRAG AND DROPHTML5 DRAG AND DROP
HTML5 DRAG AND DROP
 
Upgrade your javascript to drupal 8
Upgrade your javascript to drupal 8Upgrade your javascript to drupal 8
Upgrade your javascript to drupal 8
 
Opencast Admin UI - Introduction to developing using AngularJS
Opencast Admin UI - Introduction to developing using AngularJSOpencast Admin UI - Introduction to developing using AngularJS
Opencast Admin UI - Introduction to developing using AngularJS
 
Drupal.js: Best Practices for Managing Javascript in Drupal
Drupal.js: Best Practices for Managing Javascript in DrupalDrupal.js: Best Practices for Managing Javascript in Drupal
Drupal.js: Best Practices for Managing Javascript in Drupal
 
Short intro to JQuery and Modernizr
Short intro to JQuery and ModernizrShort intro to JQuery and Modernizr
Short intro to JQuery and Modernizr
 
JQuery
JQueryJQuery
JQuery
 
20141002 delapsley-socalangularjs-final
20141002 delapsley-socalangularjs-final20141002 delapsley-socalangularjs-final
20141002 delapsley-socalangularjs-final
 
Azure Web Camp : Cache Distribué
Azure Web Camp : Cache DistribuéAzure Web Camp : Cache Distribué
Azure Web Camp : Cache Distribué
 
Azure Table Storage: The Good, the Bad, the Ugly (15 min. lightning talk)
Azure Table Storage: The Good, the Bad, the Ugly (15 min. lightning talk)Azure Table Storage: The Good, the Bad, the Ugly (15 min. lightning talk)
Azure Table Storage: The Good, the Bad, the Ugly (15 min. lightning talk)
 
Drupal as a web framework
Drupal as a web frameworkDrupal as a web framework
Drupal as a web framework
 
20140821 delapsley-cloudopen-public
20140821 delapsley-cloudopen-public20140821 delapsley-cloudopen-public
20140821 delapsley-cloudopen-public
 
[NodeConf.eu 2014] Scaling AB Testing on Netflix.com with Node.js
[NodeConf.eu 2014] Scaling AB Testing on Netflix.com with Node.js[NodeConf.eu 2014] Scaling AB Testing on Netflix.com with Node.js
[NodeConf.eu 2014] Scaling AB Testing on Netflix.com with Node.js
 
AngularJS Compile Process
AngularJS Compile ProcessAngularJS Compile Process
AngularJS Compile Process
 

Ähnlich wie How to integrate with GPII

WebAPIs & Apps - Mozilla London
WebAPIs & Apps - Mozilla LondonWebAPIs & Apps - Mozilla London
WebAPIs & Apps - Mozilla LondonRobert Nyman
 
Web APIs & Apps - Mozilla
Web APIs & Apps - MozillaWeb APIs & Apps - Mozilla
Web APIs & Apps - MozillaRobert Nyman
 
Mozilla Web Apps - Super-VanJS
Mozilla Web Apps - Super-VanJSMozilla Web Apps - Super-VanJS
Mozilla Web Apps - Super-VanJSRobert Nyman
 
Firefox OS, the Open Web & WebAPIs - Geek Meet Västerås
Firefox OS, the Open Web & WebAPIs - Geek Meet VästeråsFirefox OS, the Open Web & WebAPIs - Geek Meet Västerås
Firefox OS, the Open Web & WebAPIs - Geek Meet VästeråsRobert Nyman
 
Firefox OS workshop, Colombia
Firefox OS workshop, ColombiaFirefox OS workshop, Colombia
Firefox OS workshop, ColombiaRobert Nyman
 
Firefox OS, the Open Web & WebAPIs - HTML5DevConf, San Francisco
Firefox OS, the Open Web & WebAPIs - HTML5DevConf, San FranciscoFirefox OS, the Open Web & WebAPIs - HTML5DevConf, San Francisco
Firefox OS, the Open Web & WebAPIs - HTML5DevConf, San FranciscoRobert Nyman
 
MongoDB.local Atlanta: Introduction to Serverless MongoDB
MongoDB.local Atlanta: Introduction to Serverless MongoDBMongoDB.local Atlanta: Introduction to Serverless MongoDB
MongoDB.local Atlanta: Introduction to Serverless MongoDBMongoDB
 
Android Applications Development: A Quick Start Guide
Android Applications Development: A Quick Start GuideAndroid Applications Development: A Quick Start Guide
Android Applications Development: A Quick Start GuideSergii Zhuk
 
Running Vue Storefront in production (PWA Magento webshop)
Running Vue Storefront in production (PWA Magento webshop)Running Vue Storefront in production (PWA Magento webshop)
Running Vue Storefront in production (PWA Magento webshop)Vendic Magento, PWA & Marketing
 
Andriy Vandakurov about "Frontend. Global domination"
Andriy Vandakurov about  "Frontend. Global domination" Andriy Vandakurov about  "Frontend. Global domination"
Andriy Vandakurov about "Frontend. Global domination" Pivorak MeetUp
 
Advanced iOS Debbuging (Reloaded)
Advanced iOS Debbuging (Reloaded)Advanced iOS Debbuging (Reloaded)
Advanced iOS Debbuging (Reloaded)Massimo Oliviero
 
viWave Study Group - Introduction to Google Android Development - Chapter 23 ...
viWave Study Group - Introduction to Google Android Development - Chapter 23 ...viWave Study Group - Introduction to Google Android Development - Chapter 23 ...
viWave Study Group - Introduction to Google Android Development - Chapter 23 ...Ted Chien
 
WebRTC & Firefox OS - presentation at Google
WebRTC & Firefox OS - presentation at GoogleWebRTC & Firefox OS - presentation at Google
WebRTC & Firefox OS - presentation at GoogleRobert Nyman
 
Android Development w/ ArcGIS Server - Esri Dev Meetup - Charlotte, NC
Android Development w/ ArcGIS Server - Esri Dev Meetup - Charlotte, NCAndroid Development w/ ArcGIS Server - Esri Dev Meetup - Charlotte, NC
Android Development w/ ArcGIS Server - Esri Dev Meetup - Charlotte, NCJim Tochterman
 
JUDCon 2014: Gearing up for mobile development with AeroGear
JUDCon 2014: Gearing up for mobile development with AeroGearJUDCon 2014: Gearing up for mobile development with AeroGear
JUDCon 2014: Gearing up for mobile development with AeroGearprajods
 
Windows8 metro presentationupdated
Windows8 metro presentationupdatedWindows8 metro presentationupdated
Windows8 metro presentationupdatedDhananjay Kumar
 
Evolving your Data Access with MongoDB Stitch
Evolving your Data Access with MongoDB StitchEvolving your Data Access with MongoDB Stitch
Evolving your Data Access with MongoDB StitchMongoDB
 

Ähnlich wie How to integrate with GPII (20)

WebAPIs & Apps - Mozilla London
WebAPIs & Apps - Mozilla LondonWebAPIs & Apps - Mozilla London
WebAPIs & Apps - Mozilla London
 
Web APIs & Apps - Mozilla
Web APIs & Apps - MozillaWeb APIs & Apps - Mozilla
Web APIs & Apps - Mozilla
 
Mozilla Web Apps - Super-VanJS
Mozilla Web Apps - Super-VanJSMozilla Web Apps - Super-VanJS
Mozilla Web Apps - Super-VanJS
 
Firefox OS, the Open Web & WebAPIs - Geek Meet Västerås
Firefox OS, the Open Web & WebAPIs - Geek Meet VästeråsFirefox OS, the Open Web & WebAPIs - Geek Meet Västerås
Firefox OS, the Open Web & WebAPIs - Geek Meet Västerås
 
Firefox OS workshop, Colombia
Firefox OS workshop, ColombiaFirefox OS workshop, Colombia
Firefox OS workshop, Colombia
 
Firefox OS, the Open Web & WebAPIs - HTML5DevConf, San Francisco
Firefox OS, the Open Web & WebAPIs - HTML5DevConf, San FranciscoFirefox OS, the Open Web & WebAPIs - HTML5DevConf, San Francisco
Firefox OS, the Open Web & WebAPIs - HTML5DevConf, San Francisco
 
MongoDB.local Atlanta: Introduction to Serverless MongoDB
MongoDB.local Atlanta: Introduction to Serverless MongoDBMongoDB.local Atlanta: Introduction to Serverless MongoDB
MongoDB.local Atlanta: Introduction to Serverless MongoDB
 
Android Applications Development: A Quick Start Guide
Android Applications Development: A Quick Start GuideAndroid Applications Development: A Quick Start Guide
Android Applications Development: A Quick Start Guide
 
Running Vue Storefront in production (PWA Magento webshop)
Running Vue Storefront in production (PWA Magento webshop)Running Vue Storefront in production (PWA Magento webshop)
Running Vue Storefront in production (PWA Magento webshop)
 
Andriy Vandakurov about "Frontend. Global domination"
Andriy Vandakurov about  "Frontend. Global domination" Andriy Vandakurov about  "Frontend. Global domination"
Andriy Vandakurov about "Frontend. Global domination"
 
Pivorak.javascript.global domination
Pivorak.javascript.global dominationPivorak.javascript.global domination
Pivorak.javascript.global domination
 
Advanced iOS Debbuging (Reloaded)
Advanced iOS Debbuging (Reloaded)Advanced iOS Debbuging (Reloaded)
Advanced iOS Debbuging (Reloaded)
 
viWave Study Group - Introduction to Google Android Development - Chapter 23 ...
viWave Study Group - Introduction to Google Android Development - Chapter 23 ...viWave Study Group - Introduction to Google Android Development - Chapter 23 ...
viWave Study Group - Introduction to Google Android Development - Chapter 23 ...
 
WebRTC & Firefox OS - presentation at Google
WebRTC & Firefox OS - presentation at GoogleWebRTC & Firefox OS - presentation at Google
WebRTC & Firefox OS - presentation at Google
 
Android Froyo
Android FroyoAndroid Froyo
Android Froyo
 
Android Development w/ ArcGIS Server - Esri Dev Meetup - Charlotte, NC
Android Development w/ ArcGIS Server - Esri Dev Meetup - Charlotte, NCAndroid Development w/ ArcGIS Server - Esri Dev Meetup - Charlotte, NC
Android Development w/ ArcGIS Server - Esri Dev Meetup - Charlotte, NC
 
Develop Chrome Extension
Develop Chrome ExtensionDevelop Chrome Extension
Develop Chrome Extension
 
JUDCon 2014: Gearing up for mobile development with AeroGear
JUDCon 2014: Gearing up for mobile development with AeroGearJUDCon 2014: Gearing up for mobile development with AeroGear
JUDCon 2014: Gearing up for mobile development with AeroGear
 
Windows8 metro presentationupdated
Windows8 metro presentationupdatedWindows8 metro presentationupdated
Windows8 metro presentationupdated
 
Evolving your Data Access with MongoDB Stitch
Evolving your Data Access with MongoDB StitchEvolving your Data Access with MongoDB Stitch
Evolving your Data Access with MongoDB Stitch
 

Kürzlich hochgeladen

"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
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
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
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
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 

Kürzlich hochgeladen (20)

"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
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.
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 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
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 

How to integrate with GPII

  • 2. Integrating Your Application • You can usually integrate your app without writing any code • Simply describe: 1. Which platforms you support 2. How you store your settings 3. How to launch and stop your application 4. How your settings relate to a common vocabulary
  • 3.
  • 4. Basic Structure: { "name": "Windows Built-in Screen Magnifier", "id": "com.microsoft.windows.magnifier", "contexts": (…), "settingsHandlers": (…), "lifecycleManager": (…) }
  • 5. Give your application a name and a unique ID: { "name": "Windows Built-in Screen Magnifier", "id": "com.microsoft.windows.magnifier", "contexts": (…), "settingsHandlers": (…), "lifecycleManager": (…) }
  • 6. Describe the platforms your application runs on: { "name": "Windows Built-in Screen Magnifier", "id": "com.microsoft.windows.magnifier", "contexts": { "OS": [ { "id": "win32", "version": ">=5.0" } ] }, "settingsHandlers": (…), "lifecycleManager": (…) }
  • 7. Describe how your app stores its settings: { "name": "Windows Built-in Screen Magnifier", "id": "com.microsoft.windows.magnifier", "contexts": (…), "settingsHandlers": [ { "type": "gpii.windows.registrySettingsHandler", "options": { "hKey": "HKEY_CURRENT_USER", "path": "SoftwareMicrosoftScreenMagnifier" }, "capabilitiesTransformations": (…) }, {...} ], "lifecycleManager": (…) }
  • 8. Describe how to start and stop your app: { "name": "Windows Built-in Screen Magnifier", "id": "com.microsoft.windows.magnifier", "contexts": (…), "settingsHandlers": (…), "lifecycleManager": { "start": [ "setSettings", { "type": "gpii.launch.exec", "command": "${{environment}.SystemRoot}System32Magnify.exe" } ], "stop": [ { "type": "gpii.launch.exec", "command": "${{environment}.SystemRoot}System32taskkill.exe /im Magnify.exe" }, "restoreSettings" ] } }
  • 9.
  • 10. AccessForAll & Common Terms • AccessForAll a.k.a. ISO 24751 • Open registry-based architecture in progress • Provides a common vocabulary for describing a user’s needs and preference • Provides a “meeting place” for cross- platform preferences • Philosophy: you speak your preferred language, but describe how to translate
  • 11. { "http://registry.gpii.org/common/magnification": [ {"value": 3.0} ], "http://registry.gpii.org/common/tracking": [ {"value": "mouse"} ], "http://registry.gpii.org/common/invertImages": [ {"value": true} ] } Eexample preferences set:
  • 12. { "http://registry.gpii.org/common/magnification": [ {"value": 3.0} ], "http://registry.gpii.org/common/tracking": [ {"value": "mouse"} ], "http://registry.gpii.org/common/invertImages": [ {"value": true} ] } … But the windows magnifier stores magnification as a percentage
  • 13. “$HKEY_CURRENT_USERSoftwareMicrosoftScreenMagnifier”: { “Magnification”: 200, [REG_DWORD INT] “Invert”: 1 [REG_DWORD BOOL], "FollowMouse": 1 [REG_DWORD BOOL] }
  • 14.
  • 15. Defining how to translate and set settings: { "name": "Windows Built-in Screen Magnifier", "id": "com.microsoft.windows.magnifier", "contexts": (…), "settingsHandlers”: [ { ... "capabilitiesTransformations": { "Magnification": { "transform": { "type": "gpii.transformer.linearScale", "inputPath": "http://registry.gpii.org/common/magnification", "outputPath": "value", "factor": 100 } }, ...
  • 16. Defining how to translate and set settings: { "name": "Windows Built-in Screen Magnifier", "id": "com.microsoft.windows.magnifier", "contexts": (…), "settingsHandlers”: [ { ... "capabilitiesTransformations": { "Magnification": { "transform": { "type": "gpii.transformer.linearScale", "inputPath": "http://registry.gpii.org/common/magnification", "outputPath": "value", "factor": 100 } }, ... Take this preference
  • 17. Defining how to translate and set settings: { "name": "Windows Built-in Screen Magnifier", "id": "com.microsoft.windows.magnifier", "contexts": (…), "settingsHandlers”: [ { ... "capabilitiesTransformations": { "Magnification": { "transform": { "type": "gpii.transformer.linearScale", "inputPath": "http://registry.gpii.org/common/magnification", "outputPath": "value", "factor": 100 } }, ... Take this preference Rename it to this setting
  • 18. Defining how to translate and set settings: { "name": "Windows Built-in Screen Magnifier", "id": "com.microsoft.windows.magnifier", "contexts": (…), "settingsHandlers”: [ { ... "capabilitiesTransformations": { "Magnification": { "transform": { "type": "gpii.transformer.linearScale", "inputPath": "http://registry.gpii.org/common/magnification", "outputPath": "value", "factor": 100 } }, ... Rename it to this setting Scale it Take this preference
  • 20. Get Involved If you’re a developer, designer, tester, user, writer, organizer, maker, thinker, tinkerer, drawer, doer, helper... We need you!
  • 21. Community Website Wiki Mailing lists Source code Issue tracker Chat gpii.net wiki.gpii.net lists.gpii.net github.com/gpii issues.gpii.net #fluid-work (freenode)