SlideShare a Scribd company logo
DR. GLEARNING FOR
    FIREFOX OS
DR. GLEARNING FOR
    FIREFOX OS
 Juan Luis Suárez, Javier de la Rosa
        @suarez_juanluis, @versae
             The CulturePlex Lab
        Western University, London, ON

   FirefoxOS App Day – Toronto 2012
    Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013   2
WHO WE ARE
●
    Juan Luis Suárez
●
     @suarez_juanluis
●
    Director of the CulturePlex Lab




               Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013   3
WHO WE ARE
●
    Javier de la Rosa
●
     versae
●
     versae
●
    Computer Scientist and
    Humanist
●
    CulturePlex Lab Member
●
     CulturePlex


               Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013   4
A BIT OF HISTORY
●
    October 2011: ai-class.com


●
    March 2012: Coursera


●
    April 2012: MOOC's explosion




              Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013   5
A BIT OF HISTORY
●
    Old and new MOOC's:
    –   Don't have mobile interfaces


    –   Don't have different kind of activities


    –   Don't talk the students' language




                  Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013   6
A BIT OF HISTORY
●
    But also:
    –   Force students to be on the screen


    –   Force students to follow a specific rythm




                  Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013   7
A BIT OF HISTORY
●
    September 2011: First commit of Dr. Glearning


●
    February 2012: First beta version


●
    December 2012: Release for Android and iOS




               Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013   8
WHAT IS DR. GLEARNING?
●
    An educational app to do your homework and test
    yourself by playing for the next level


●
    Teachers prepare their question according to six
    types of activities (so far)


●
    Activities are automatically graded



               Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013   9
HOW DOES DR. GLEARNING WORK?
                             DEMO
     http://drglearning.com/client/


                          WEBSITE
     http://www.drglearning.com/




     Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013   10
UNDER THE HOOD
●
    Server-side (web):
    –   Nginx + uwsgi + Python
    –   Django: course creation
    –   TASTYPIE: REST interface




                  Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013   11
UNDER THE HOOD
●
    Client-side (phones):
    –   HTML5
    –   Sencha Touch 2 (MVC)
    –   Apache Cordova / Adobe PhoneGap




                 Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013   12
AND EVERYTHING WENT GOOD




   Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013   13
UNTIL THAT...




Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013   14
UNTIL THAT...




Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013   15
UNTIL THAT...




Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013   16
UNTIL THAT...




Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013   17
UNTIL FIREFOX OS




Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013   18
WHY?
●
    Sencha Touch relies heavily on WebKit


●
    Sencha Touch is designed for mobile phones


●
    Until a week ago, there was only WebKit compliant
    native browser components for mobile phones




               Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013   19
WHAT COULD WE DO?
●
    Hack Sencha Touch
    –   SenchaFox: https://github.com/Martin1982/SenchaFox


●
    Translate specific Webkit CSS rules to Gecko
    –   Nightmare


●
    Port the whole application to a different technology
    –   Gecko compliant, of course

                 Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013   20
OUR STACK
●
    jQuery Mobile for interface and interaction
    –   WebKit and Gecko compatible
    –   http://jquerymobile.com/


●
    lawnchair for storage
    –   Tiny and framework agnostic
    –   http://brian.io/lawnchair/




                  Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013   21
OUR STACK
●
    handlebars for templating
    –   Powerful and simple semantic templates
    –   http://handlebarsjs.com/


●
    Jed for i18n
    –   Gettext style
    –   http://slexaxton.github.com/Jed/




                  Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013   22
FIREFOX OS DR. GLEARNING
●
    All Firefox OS apps are HTML5 apps
●
    Not all HTML5 apps are Firefox OS apps


●
    Two types FirefoxOS apps:
    –   Hosted
    –   Packaged




                   Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013   23
FIREFOX OS DR. GLEARNING
●
    Packaged
    –   Ideal for self-contained apps


    –   Ideal for off-line apps




                   Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013   24
FIREFOX OS DR. GLEARNING
●
    Problems of Packaged Apps
    –   POST, PUT and DELETE HTTP verbs (REST)
        ●
            Workaround 1: Enable Cross Origin Resource Sharing (CORS)
            server-side for any origin




                    Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013   25
FIREFOX OS DR. GLEARNING
●
    Problems of Packaged Apps
    –   POST, PUT and DELETE HTTP verbs (REST)
        ●
            Workaround 1: Enable Cross Origin Resource Sharing (CORS)
            server-side for any origin ← Not a good idea!




                    Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013   26
FIREFOX OS DR. GLEARNING
●
    Problems of Packaged Apps
    –   POST, PUT and DELETE REST verbs
        ●
            Workaround 1: Enable Cross Origin Resource Sharing (CORS)
            server-side for any origin ← Not a good idea!

        ●
            Workaround 2: Add parameters to XHR objects (MozAnon,
            MozSystem, etc)




                    Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013   27
FIREFOX OS DR. GLEARNING
●
    Problems of Packaged Apps
    –   POST, PUT and DELETE REST verbs
        ●
            Workaround 1: Enable Cross Origin Resource Sharing (CORS)
            server-side for any origin ← Not a good idea!

        ●
            Workaround 2: Add parameters to XHR objects (MozAnon,
            MozSystem, etc) ← Hard to test, bad support in simulator




                    Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013   28
FIREFOX OS DR. GLEARNING
●
    Problems of Packaged Apps
    –   POST, PUT and DELETE REST verbs
        ●
            Workaround 1: Enable Cross Origin Resource Sharing (CORS)
            server-side for any origin ← Not a good idea!

        ●
            Workaround 2: Add parameters to XHR objects (MozAnon,
            MozSystem, etc) ← Hard to test, bad support in simulator

        ●
            Workaround 3: Use JSONP and emulate everything through a
            GET request ← Not very RESTful, but works



                    Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013   29
FIREFOX OS DR. GLEARNING
●
    Problems of Packaged Apps
    –   Third party APIs (e.g., Google APIs)
        ●
            Workaround: Content Security Policy




                    Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013   30
FIREFOX OS DR. GLEARNING
●
    Problems of Packaged Apps
    –   Third party APIs (e.g., Google APIs)
        ●
            Workaround: Content Security Policy ← Couldn't make it work




                    Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013   31
FIREFOX OS DR. GLEARNING
●
    Hosted
    –   Ideal for third-party API dependant apps
    –   Ideal for on-line apps




                  Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013   32
FIREFOX OS DR. GLEARNING
●
    App served at app.drglearning.com by Nginx
●
    webapp.manifest file served with
    Content-Type: application/x-web-app-manifest+json

    {
        "name": "Dr Glearning",
        "description": "The Mobile Game Learning Platform.",
        "launch_path": "/index.html",
        "icons": {
          "128": "/resources/images/ic_launcher.png"
        },
        "developer": {
          "name": "CulturePlex Lab.",
          "url": "http://www.cultureplex.ca"
        }
    }

                     Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013   33
FIREFOX OS DR. GLEARNING




  Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013   34
FIREFOX OS DR. GLEARNING




  Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013   35
FIREFOX OS DR. GLEARNING




  Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013   36
FIREFOX OS DR. GLEARNING




  Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013   37
THANKS!
        Questions?
Juan Luis Suárez, Javier de la Rosa
       @suarez_juanluis, @versae
            The CulturePlex Lab
       Western University, London, ON

  FirefoxOS App Day – Toronto 2012
   Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013   38

More Related Content

Similar to Dr. Glearning for FirefoxOS

Open intents Aggregating Apps
Open intents Aggregating AppsOpen intents Aggregating Apps
Open intents Aggregating Apps
Friedger Müffke
 
L10n mozmycampus-uum
L10n mozmycampus-uumL10n mozmycampus-uum
L10n mozmycampus-uum
Muhammad Syafiq Mazli
 
Use open source software to develop ideas at work
Use open source software to develop ideas at workUse open source software to develop ideas at work
Use open source software to develop ideas at work
Sammy Fung
 
FLOSS development
FLOSS developmentFLOSS development
FLOSS development
Frederik Questier
 
Will Postgres Live Forever?
Will Postgres Live Forever?Will Postgres Live Forever?
Will Postgres Live Forever?
EDB
 
Applying the Unix Philosophy to Django projects: a report from the real world
Applying the Unix Philosophy to Django projects: a report from the real worldApplying the Unix Philosophy to Django projects: a report from the real world
Applying the Unix Philosophy to Django projects: a report from the real world
Federico Capoano
 
Mozilla: Bukan Sekadar Peramban
Mozilla: Bukan Sekadar PerambanMozilla: Bukan Sekadar Peramban
Mozilla: Bukan Sekadar Peramban
Benny Chandra
 
Flutter festival ppt
Flutter festival ppt Flutter festival ppt
Flutter festival ppt
TusharSharma218876
 
Meet Firefox OS and WebFWD @ ITPreneur Universitas Padjadjaran
Meet Firefox OS and WebFWD @ ITPreneur Universitas PadjadjaranMeet Firefox OS and WebFWD @ ITPreneur Universitas Padjadjaran
Meet Firefox OS and WebFWD @ ITPreneur Universitas Padjadjaran
Fauzan Alfi Agirachman
 
Firefox OS Perspective
Firefox OS Perspective Firefox OS Perspective
Firefox OS Perspective
ankitgadgil
 
The *on-going* future of Perl5
The *on-going* future of Perl5The *on-going* future of Perl5
The *on-going* future of Perl5
Vytautas Dauksa
 
OpenPaas Collaboration Platform. OW2con'15, November 17, Paris.
OpenPaas Collaboration Platform. OW2con'15, November 17, Paris. OpenPaas Collaboration Platform. OW2con'15, November 17, Paris.
OpenPaas Collaboration Platform. OW2con'15, November 17, Paris.
OW2
 
webbrowsers-160920132858.pptx
webbrowsers-160920132858.pptxwebbrowsers-160920132858.pptx
webbrowsers-160920132858.pptx
FranzLawrenzDeTorres1
 
Software Freedom and Open Source Community
Software Freedom and Open Source CommunitySoftware Freedom and Open Source Community
Software Freedom and Open Source Community
Sammy Fung
 
Introductory session flutter festival
Introductory session   flutter festivalIntroductory session   flutter festival
Introductory session flutter festival
ApoorveGoyal2
 
Web browsers
Web browsersWeb browsers
Web browsers
DHANALAKSHMI TALLURI
 
2015 FOSS4G Track: What is Free and Open Source Software for Geospatial Appli...
2015 FOSS4G Track: What is Free and Open Source Software for Geospatial Appli...2015 FOSS4G Track: What is Free and Open Source Software for Geospatial Appli...
2015 FOSS4G Track: What is Free and Open Source Software for Geospatial Appli...
GIS in the Rockies
 
Open source educational technologies for teaching and learning
Open source educational technologies for teaching and learningOpen source educational technologies for teaching and learning
Open source educational technologies for teaching and learning
Kimera Richard
 
Django Tutorial_ Let’s take a deep dive into Django’s web framework.pdf
Django Tutorial_ Let’s take a deep dive into Django’s web framework.pdfDjango Tutorial_ Let’s take a deep dive into Django’s web framework.pdf
Django Tutorial_ Let’s take a deep dive into Django’s web framework.pdf
SudhanshiBakre1
 
Mozilla l10n-presentation-saigon barcamp-2011-nguyen-vu-hung
Mozilla l10n-presentation-saigon barcamp-2011-nguyen-vu-hungMozilla l10n-presentation-saigon barcamp-2011-nguyen-vu-hung
Mozilla l10n-presentation-saigon barcamp-2011-nguyen-vu-hung
Vu Hung Nguyen
 

Similar to Dr. Glearning for FirefoxOS (20)

Open intents Aggregating Apps
Open intents Aggregating AppsOpen intents Aggregating Apps
Open intents Aggregating Apps
 
L10n mozmycampus-uum
L10n mozmycampus-uumL10n mozmycampus-uum
L10n mozmycampus-uum
 
Use open source software to develop ideas at work
Use open source software to develop ideas at workUse open source software to develop ideas at work
Use open source software to develop ideas at work
 
FLOSS development
FLOSS developmentFLOSS development
FLOSS development
 
Will Postgres Live Forever?
Will Postgres Live Forever?Will Postgres Live Forever?
Will Postgres Live Forever?
 
Applying the Unix Philosophy to Django projects: a report from the real world
Applying the Unix Philosophy to Django projects: a report from the real worldApplying the Unix Philosophy to Django projects: a report from the real world
Applying the Unix Philosophy to Django projects: a report from the real world
 
Mozilla: Bukan Sekadar Peramban
Mozilla: Bukan Sekadar PerambanMozilla: Bukan Sekadar Peramban
Mozilla: Bukan Sekadar Peramban
 
Flutter festival ppt
Flutter festival ppt Flutter festival ppt
Flutter festival ppt
 
Meet Firefox OS and WebFWD @ ITPreneur Universitas Padjadjaran
Meet Firefox OS and WebFWD @ ITPreneur Universitas PadjadjaranMeet Firefox OS and WebFWD @ ITPreneur Universitas Padjadjaran
Meet Firefox OS and WebFWD @ ITPreneur Universitas Padjadjaran
 
Firefox OS Perspective
Firefox OS Perspective Firefox OS Perspective
Firefox OS Perspective
 
The *on-going* future of Perl5
The *on-going* future of Perl5The *on-going* future of Perl5
The *on-going* future of Perl5
 
OpenPaas Collaboration Platform. OW2con'15, November 17, Paris.
OpenPaas Collaboration Platform. OW2con'15, November 17, Paris. OpenPaas Collaboration Platform. OW2con'15, November 17, Paris.
OpenPaas Collaboration Platform. OW2con'15, November 17, Paris.
 
webbrowsers-160920132858.pptx
webbrowsers-160920132858.pptxwebbrowsers-160920132858.pptx
webbrowsers-160920132858.pptx
 
Software Freedom and Open Source Community
Software Freedom and Open Source CommunitySoftware Freedom and Open Source Community
Software Freedom and Open Source Community
 
Introductory session flutter festival
Introductory session   flutter festivalIntroductory session   flutter festival
Introductory session flutter festival
 
Web browsers
Web browsersWeb browsers
Web browsers
 
2015 FOSS4G Track: What is Free and Open Source Software for Geospatial Appli...
2015 FOSS4G Track: What is Free and Open Source Software for Geospatial Appli...2015 FOSS4G Track: What is Free and Open Source Software for Geospatial Appli...
2015 FOSS4G Track: What is Free and Open Source Software for Geospatial Appli...
 
Open source educational technologies for teaching and learning
Open source educational technologies for teaching and learningOpen source educational technologies for teaching and learning
Open source educational technologies for teaching and learning
 
Django Tutorial_ Let’s take a deep dive into Django’s web framework.pdf
Django Tutorial_ Let’s take a deep dive into Django’s web framework.pdfDjango Tutorial_ Let’s take a deep dive into Django’s web framework.pdf
Django Tutorial_ Let’s take a deep dive into Django’s web framework.pdf
 
Mozilla l10n-presentation-saigon barcamp-2011-nguyen-vu-hung
Mozilla l10n-presentation-saigon barcamp-2011-nguyen-vu-hungMozilla l10n-presentation-saigon barcamp-2011-nguyen-vu-hung
Mozilla l10n-presentation-saigon barcamp-2011-nguyen-vu-hung
 

Recently uploaded

FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 

Recently uploaded (20)

FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 

Dr. Glearning for FirefoxOS

  • 1. DR. GLEARNING FOR FIREFOX OS
  • 2. DR. GLEARNING FOR FIREFOX OS Juan Luis Suárez, Javier de la Rosa @suarez_juanluis, @versae The CulturePlex Lab Western University, London, ON FirefoxOS App Day – Toronto 2012 Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013 2
  • 3. WHO WE ARE ● Juan Luis Suárez ● @suarez_juanluis ● Director of the CulturePlex Lab Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013 3
  • 4. WHO WE ARE ● Javier de la Rosa ● versae ● versae ● Computer Scientist and Humanist ● CulturePlex Lab Member ● CulturePlex Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013 4
  • 5. A BIT OF HISTORY ● October 2011: ai-class.com ● March 2012: Coursera ● April 2012: MOOC's explosion Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013 5
  • 6. A BIT OF HISTORY ● Old and new MOOC's: – Don't have mobile interfaces – Don't have different kind of activities – Don't talk the students' language Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013 6
  • 7. A BIT OF HISTORY ● But also: – Force students to be on the screen – Force students to follow a specific rythm Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013 7
  • 8. A BIT OF HISTORY ● September 2011: First commit of Dr. Glearning ● February 2012: First beta version ● December 2012: Release for Android and iOS Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013 8
  • 9. WHAT IS DR. GLEARNING? ● An educational app to do your homework and test yourself by playing for the next level ● Teachers prepare their question according to six types of activities (so far) ● Activities are automatically graded Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013 9
  • 10. HOW DOES DR. GLEARNING WORK? DEMO http://drglearning.com/client/ WEBSITE http://www.drglearning.com/ Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013 10
  • 11. UNDER THE HOOD ● Server-side (web): – Nginx + uwsgi + Python – Django: course creation – TASTYPIE: REST interface Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013 11
  • 12. UNDER THE HOOD ● Client-side (phones): – HTML5 – Sencha Touch 2 (MVC) – Apache Cordova / Adobe PhoneGap Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013 12
  • 13. AND EVERYTHING WENT GOOD Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013 13
  • 14. UNTIL THAT... Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013 14
  • 15. UNTIL THAT... Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013 15
  • 16. UNTIL THAT... Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013 16
  • 17. UNTIL THAT... Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013 17
  • 18. UNTIL FIREFOX OS Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013 18
  • 19. WHY? ● Sencha Touch relies heavily on WebKit ● Sencha Touch is designed for mobile phones ● Until a week ago, there was only WebKit compliant native browser components for mobile phones Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013 19
  • 20. WHAT COULD WE DO? ● Hack Sencha Touch – SenchaFox: https://github.com/Martin1982/SenchaFox ● Translate specific Webkit CSS rules to Gecko – Nightmare ● Port the whole application to a different technology – Gecko compliant, of course Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013 20
  • 21. OUR STACK ● jQuery Mobile for interface and interaction – WebKit and Gecko compatible – http://jquerymobile.com/ ● lawnchair for storage – Tiny and framework agnostic – http://brian.io/lawnchair/ Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013 21
  • 22. OUR STACK ● handlebars for templating – Powerful and simple semantic templates – http://handlebarsjs.com/ ● Jed for i18n – Gettext style – http://slexaxton.github.com/Jed/ Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013 22
  • 23. FIREFOX OS DR. GLEARNING ● All Firefox OS apps are HTML5 apps ● Not all HTML5 apps are Firefox OS apps ● Two types FirefoxOS apps: – Hosted – Packaged Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013 23
  • 24. FIREFOX OS DR. GLEARNING ● Packaged – Ideal for self-contained apps – Ideal for off-line apps Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013 24
  • 25. FIREFOX OS DR. GLEARNING ● Problems of Packaged Apps – POST, PUT and DELETE HTTP verbs (REST) ● Workaround 1: Enable Cross Origin Resource Sharing (CORS) server-side for any origin Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013 25
  • 26. FIREFOX OS DR. GLEARNING ● Problems of Packaged Apps – POST, PUT and DELETE HTTP verbs (REST) ● Workaround 1: Enable Cross Origin Resource Sharing (CORS) server-side for any origin ← Not a good idea! Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013 26
  • 27. FIREFOX OS DR. GLEARNING ● Problems of Packaged Apps – POST, PUT and DELETE REST verbs ● Workaround 1: Enable Cross Origin Resource Sharing (CORS) server-side for any origin ← Not a good idea! ● Workaround 2: Add parameters to XHR objects (MozAnon, MozSystem, etc) Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013 27
  • 28. FIREFOX OS DR. GLEARNING ● Problems of Packaged Apps – POST, PUT and DELETE REST verbs ● Workaround 1: Enable Cross Origin Resource Sharing (CORS) server-side for any origin ← Not a good idea! ● Workaround 2: Add parameters to XHR objects (MozAnon, MozSystem, etc) ← Hard to test, bad support in simulator Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013 28
  • 29. FIREFOX OS DR. GLEARNING ● Problems of Packaged Apps – POST, PUT and DELETE REST verbs ● Workaround 1: Enable Cross Origin Resource Sharing (CORS) server-side for any origin ← Not a good idea! ● Workaround 2: Add parameters to XHR objects (MozAnon, MozSystem, etc) ← Hard to test, bad support in simulator ● Workaround 3: Use JSONP and emulate everything through a GET request ← Not very RESTful, but works Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013 29
  • 30. FIREFOX OS DR. GLEARNING ● Problems of Packaged Apps – Third party APIs (e.g., Google APIs) ● Workaround: Content Security Policy Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013 30
  • 31. FIREFOX OS DR. GLEARNING ● Problems of Packaged Apps – Third party APIs (e.g., Google APIs) ● Workaround: Content Security Policy ← Couldn't make it work Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013 31
  • 32. FIREFOX OS DR. GLEARNING ● Hosted – Ideal for third-party API dependant apps – Ideal for on-line apps Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013 32
  • 33. FIREFOX OS DR. GLEARNING ● App served at app.drglearning.com by Nginx ● webapp.manifest file served with Content-Type: application/x-web-app-manifest+json { "name": "Dr Glearning", "description": "The Mobile Game Learning Platform.", "launch_path": "/index.html", "icons": { "128": "/resources/images/ic_launcher.png" }, "developer": { "name": "CulturePlex Lab.", "url": "http://www.cultureplex.ca" } } Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013 33
  • 34. FIREFOX OS DR. GLEARNING Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013 34
  • 35. FIREFOX OS DR. GLEARNING Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013 35
  • 36. FIREFOX OS DR. GLEARNING Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013 36
  • 37. FIREFOX OS DR. GLEARNING Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013 37
  • 38. THANKS! Questions? Juan Luis Suárez, Javier de la Rosa @suarez_juanluis, @versae The CulturePlex Lab Western University, London, ON FirefoxOS App Day – Toronto 2012 Dr. Glearning for FirefoxOS, FirefoxOS Apps Day - Toronto, 2013 38