Your SlideShare is downloading. ×
0
At the
16th International Conference on Human-Computer Interaction
2014 Crete, Greece
Implementers’ hackathon
A Implemente...
Maavis
• Simple access to media and communications
• Research tech for people living with dementia
• People with cognitive...
Demo
• Standalone
• With GPII
3
What we did
• Understand architecture
• Figure how to integrate
• Install and test GPII
• Create a few declarative docs
• ...
Effort
A User Profile
{
"display": {
"screenEnhancement": {
"applications": {
"net.opendirective.maavis": {
"name": "maavis",
"pr...
Solution life cycle (dev version)
• User Logs in (simulates listener)
• Retrieve user settings
– Set Maavis settings
– Lau...
Solution
{
"name": "maavis",
"id": "net.opendirective.maavis",
"contexts": {
"OS": [
{
"id": "win32",
"version": ">=5.0"
}...
Maavis Settings
{"userType":"touch",
"theme":“colour",
"speakTitles":"yes",
"speakLabels":"no",
"showLabels":"yes",
"showI...
Settings Handler
gpii.settingsHandlers.JSONSettingsHandler.set = function(profile) {
var app = fluid.copy(profile);
for (v...
Lifecycle manager
"lifecycleManager": {
"start": [
"setSettings",
{
"type": "gpii.launch.exec",
"command": "${{environment...
Common Terms mapping
In solution registry entry
• HighContrast -> "theme"
• Speech -> "speakTitles“ + "speakLabels"
13
In summary
Easily done and low impact
• Modified Maavis installer so GPII can find it
• Entry in the Solution Registry
• N...
Challenges
• Early adopter – high churn
– A: Engage with the architecture team!
• Lack of documentation
– A: Get architect...
Contribution
• Reduce your maintenance costs
• Best way to learn
• Open Source skills
• Fun
16
Further Developments
• Dynamic reading of settings
– eg for context awareness
• Prosperity4All + low digital literacy
– Fr...
Thank You
This research was funded by the European Union's Seventh Framework Programme (FP7/2007-
2013) grant agreement 28...
Upcoming SlideShare
Loading in...5
×

A Implementer's Story - Integrating Maavis with the GPII

278

Published on

Steve Lee, from Open Directive, tells his experience on integrating Maavis with the GPII architecture.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
278
On Slideshare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Standard handlers support simple config documents
  • Wizard

  • Maavis - Ultra simple UI
    HTML Wookie Templates allow maximum deployment flexibility
  • Maavis - Ultra simple UI
    HTML Wookie Templates allow maximum deployment flexibility
  • Transcript of "A Implementer's Story - Integrating Maavis with the GPII"

    1. 1. At the 16th International Conference on Human-Computer Interaction 2014 Crete, Greece Implementers’ hackathon A Implementer's Story Steve Lee OpenDirective Ltd.
    2. 2. Maavis • Simple access to media and communications • Research tech for people living with dementia • People with cognitive disabilities • People with low digital literacy 2
    3. 3. Demo • Standalone • With GPII 3
    4. 4. What we did • Understand architecture • Figure how to integrate • Install and test GPII • Create a few declarative docs • Create a new settings handler 4
    5. 5. Effort
    6. 6. A User Profile { "display": { "screenEnhancement": { "applications": { "net.opendirective.maavis": { "name": "maavis", "priority": 100, "parameters": { "theme": "bw" } } } } } }
    7. 7. Solution life cycle (dev version) • User Logs in (simulates listener) • Retrieve user settings – Set Maavis settings – Launch Maavis • User logs out (simulates listener) – Restore Maavis settings – Exit Maavis
    8. 8. Solution { "name": "maavis", "id": "net.opendirective.maavis", "contexts": { "OS": [ { "id": "win32", "version": ">=5.0" } ] }, "settingsHandlers": [ { "type": "gpii.settingsHandlers.noSettings", "capabilities": [ "display.screenEnhancement.applications.net.opendirective.maavis.name" ] } ] } } + Common Terms
    9. 9. Maavis Settings {"userType":"touch", "theme":“colour", "speakTitles":"yes", "speakLabels":"no", "showLabels":"yes", "showImages":"yes", "useSkype":"no", "scanMode":"AUTO1SWITCHAUTOSTART", "scanRate":"2500", "selectionsSetSize":"2x3", "language": "en"} 10
    10. 10. Settings Handler gpii.settingsHandlers.JSONSettingsHandler.set = function(profile) { var app = fluid.copy(profile); for (var appId in app) { for (var j = 0; j < app[appId].length; j++) { // load the default settings used by MAAVIS var path = app[appId][j].options.path; var defaultSettings = require(path); // record differences between required and default settings // so that they default settings can be restored var requiredSettings = app[appId][j].settings; var changedSettings = fluid.copy(requiredSettings); for (var settingKey in requiredSettings) { var oldValue = defaultSettings[settingKey]; var newValue = requiredSettings[settingKey]; changedSettings[settingKey] = { "oldValue": oldValue, "newValue": newValue }; } app[appId][j].settings = changedSettings; // merge the required settings and default settings // this means required settings overwrite default settings fluid.merge(null, defaultSettings, requiredSettings); // Write the new settings to a file for MAAVIS to read fs.writeFileSync(path, JSON.stringify(defaultSettings)); }
    11. 11. Lifecycle manager "lifecycleManager": { "start": [ "setSettings", { "type": "gpii.launch.exec", "command": "${{environment}.ComSpec} /c "cd ${{environment}.MAAVIS_HOME} && MaavisPortable.cmd"" } ], "stop": [ { "type": "gpii.launch.exec", "command": "${{environment}.SystemRoot}System32taskkill.exe /f /im firefox.exe" }, "restoreSettings" ] }
    12. 12. Common Terms mapping In solution registry entry • HighContrast -> "theme" • Speech -> "speakTitles“ + "speakLabels" 13
    13. 13. In summary Easily done and low impact • Modified Maavis installer so GPII can find it • Entry in the Solution Registry • New JSON Settings handler • Configure Lifecycle Manager • Test Profiles
    14. 14. Challenges • Early adopter – high churn – A: Engage with the architecture team! • Lack of documentation – A: Get architecture team to do the work for you! 15
    15. 15. Contribution • Reduce your maintenance costs • Best way to learn • Open Source skills • Fun 16
    16. 16. Further Developments • Dynamic reading of settings – eg for context awareness • Prosperity4All + low digital literacy – Framework and Components • Porting to HTML components – Move to browser context
    17. 17. Thank You This research was funded by the European Union's Seventh Framework Programme (FP7/2007- 2013) grant agreement 289016 (Cloud4all) 18
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×