SlideShare ist ein Scribd-Unternehmen logo
1 von 38
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Ähnlich wie Dr. Glearning for FirefoxOS

Open intents Aggregating Apps
Open intents Aggregating AppsOpen intents Aggregating Apps
Open intents Aggregating AppsFriedger Müffke
 
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 workSammy Fung
 
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 worldFederico Capoano
 
Mozilla: Bukan Sekadar Peramban
Mozilla: Bukan Sekadar PerambanMozilla: Bukan Sekadar Peramban
Mozilla: Bukan Sekadar PerambanBenny Chandra
 
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 PadjadjaranFauzan 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 Perl5Vytautas 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
 
Software Freedom and Open Source Community
Software Freedom and Open Source CommunitySoftware Freedom and Open Source Community
Software Freedom and Open Source CommunitySammy Fung
 
Introductory session flutter festival
Introductory session   flutter festivalIntroductory session   flutter festival
Introductory session flutter festivalApoorveGoyal2
 
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 learningKimera 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.pdfSudhanshiBakre1
 
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-hungVu Hung Nguyen
 

Ähnlich wie 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
 

Kürzlich hochgeladen

WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 

Kürzlich hochgeladen (20)

WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 

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