SlideShare a Scribd company logo
Hello, Jo!
The Lightweight HTML5 Mobile App
            Framework
           Dave Balmer
       JSConf 2011 Portland
Introduction
The “hello” part of my talk.
Who the Hell am I?

• Programmer for 34 years
• Occasional designer wanna-be
• JavaScript freak (since 2004)
• Open Source Community noob
• Living proof that getting a little kid
  addicted to programming might not
  be a “good thing”
What the Hell is Jo?

• JavaScript lovin’ mobile app
  framework

• Touchable, tappable UI widgets
• Simple data layer
• Smallish footprint, ~12K gzipped
• Plays with PhoneGap for iOS,
  Android, webOS, BlackBerry &
Jo with Browsers, Desktop
         Widgets,

               Your JS App
                   Jo
                 webkit

• Works alongside other libs
• Doesn’t force you to use it for
  everything
Jo with iOS/Android
        PhoneGap
             PhoneGap
            Your JS App
                Jo
              webkit

• PhoneGap acts as a WebView
  wrapper

• Your code is about the same
Jo & PhoneGap on webOS
          and

             Your JS App
          PhoneGap      Jo
               webkit

• PhoneGap acts as a compatibility
  layer

• And your code is still about the
...And it’s Open Source
         (of course, of course)




• FreeBSD license
• Hosted on GitHub
• Looking for more code contributors
Philosophy
Jo is made from a few of my favorite things.
Jo’s Syntactic Sugar

• Constructor nesting
• Method chaining
• Custom extend() method
• Observer pattern
• Supports either bind() or passing
  context
Jo’s Principles


• Don’t try to “fix” JavaScript
• Let CSS3 do its job
• Keep the code light
If Jo Were a Person...
If Jo Were a Person...

Indiana Jones!

                 • Smart
                 • Flexible
                 • Travels light
                 • Can dress up (if he has
                   to)
...OK, More Like Young
        Indy Today


• Capable
• Reeking with potential
• A little rough around the edges
 (Did I mention I’m looking for
   more code contributors?)
Comparison
How to spot Jo in a crowd of mobile
          frameworks.
Jo vs. The Volcanos
                    Obligatory Size Comparison


           Jo          2


         XUI               3


       Zepto                   5


  SproutCore                               10


 Dojo Mobile                                    11


Sencha Touch                                         12


jQuery Mobile                                             13


                0          3       6   9         12            15
Jo vs. The Volcanos
                    Obligatory Size Comparison
           (using my favorite metric: bytes per framework name)


           Jo          2


         XUI               3


       Zepto                   5


  SproutCore                                    10


 Dojo Mobile                                         11


Sencha Touch                                              12


jQuery Mobile                                                  13


                0          3       6       9          12            15
Jo’s Sweet Spot
               Minimal
       Zepto
         XUI

                   Jo
HTML                             JS
   jQuery
   Mobile                  Sencha
                           Touch
                         Sprout
                          Core
               Massive          Dojo
                               Mobile
Code Examples
Yadda yadda yadda... show me the code!
Hello, Jo! Sample
<!DOCTYPE html>
<html lang="en">
<head>
    <link rel="stylesheet"
    href="jo.css" type="text/css">
</head>
<body>
<script src="jo.js"></script>
<script>
    var app = new joScreen();
    app.alert(“Hello, Jo!”);
</script>
</body>
</html>
More Samples...
/*
     code > slides
*/
Q&A Session
Because every talk needs one.
Thank You!*
                Dave Balmer
               Twitter @Balmer

              http://joApp.com
      http://github.com/davebalmer/jo

*see me after, I have Jo on flash drives as well

More Related Content

Similar to Hello, Jo! Introduction to this lightweight HTML5 mobile app framework

PhoneGap - What It Actually Is
PhoneGap - What It Actually IsPhoneGap - What It Actually Is
PhoneGap - What It Actually Is
Markiyan Matsekh
 
From React to React Native
From React to React NativeFrom React to React Native
From React to React Native
Axel Delafosse
 
JavaScript Library Overview
JavaScript Library OverviewJavaScript Library Overview
JavaScript Library Overview
jeresig
 
Jquery react angular
Jquery react angularJquery react angular
Jquery react angular
Rafa D. Latorre López Villalta
 
Do you need jQuery in 2019?
Do you need jQuery in 2019?Do you need jQuery in 2019?
Do you need jQuery in 2019?
LindaHsu19
 
Gianluca Esposito - It's time to go Native! (with JavaScript and React Native...
Gianluca Esposito - It's time to go Native! (with JavaScript and React Native...Gianluca Esposito - It's time to go Native! (with JavaScript and React Native...
Gianluca Esposito - It's time to go Native! (with JavaScript and React Native...
Codemotion
 
Organized web app development using backbone.js
Organized web app development using backbone.jsOrganized web app development using backbone.js
Organized web app development using backbone.js
Shakti Shrestha
 
Paris Web - Javascript as a programming language
Paris Web - Javascript as a programming languageParis Web - Javascript as a programming language
Paris Web - Javascript as a programming language
Marco Cedaro
 
Intro to BackboneJS + Intermediate Javascript
Intro to BackboneJS + Intermediate JavascriptIntro to BackboneJS + Intermediate Javascript
Intro to BackboneJS + Intermediate JavascriptAndrew Lovett-Barron
 
DevChatt 2011 - PhoneGap: For Fun and Science
DevChatt 2011 - PhoneGap: For Fun and ScienceDevChatt 2011 - PhoneGap: For Fun and Science
DevChatt 2011 - PhoneGap: For Fun and Science
Cameron Kilgore
 
The State of Front-end At CrowdTwist
The State of Front-end At CrowdTwistThe State of Front-end At CrowdTwist
The State of Front-end At CrowdTwistMark Fayngersh
 
CROSS-PLATFORM DEVELOPMENT ON MOBILE DEVICES
CROSS-PLATFORM DEVELOPMENT ON MOBILE DEVICESCROSS-PLATFORM DEVELOPMENT ON MOBILE DEVICES
CROSS-PLATFORM DEVELOPMENT ON MOBILE DEVICESwe20
 
Node @ flipkart
Node @ flipkartNode @ flipkart
Node @ flipkart
Abhinav Rastogi
 
1_mockito
1_mockito1_mockito
1_mockito
tech_test
 
Key Differences Between Node JS vs JavaScript.pdf
Key Differences Between Node JS vs JavaScript.pdfKey Differences Between Node JS vs JavaScript.pdf
Key Differences Between Node JS vs JavaScript.pdf
Temok IT Services
 
Javascript Apps at Build Artifacts
Javascript Apps at Build ArtifactsJavascript Apps at Build Artifacts
Javascript Apps at Build Artifacts
Clay Smith
 
Mobile cross platform development with Dojo
Mobile cross platform development with DojoMobile cross platform development with Dojo
Mobile cross platform development with Dojo
Nikolai Onken
 
Phonegap for Engineers
Phonegap for EngineersPhonegap for Engineers
Phonegap for EngineersBrian LeRoux
 
Dojo tutorial
Dojo tutorialDojo tutorial
Dojo tutorial
Girish Srivastava
 
Workshop Intro: FrontEnd General Overview
Workshop Intro: FrontEnd General OverviewWorkshop Intro: FrontEnd General Overview
Workshop Intro: FrontEnd General Overview
Visual Engineering
 

Similar to Hello, Jo! Introduction to this lightweight HTML5 mobile app framework (20)

PhoneGap - What It Actually Is
PhoneGap - What It Actually IsPhoneGap - What It Actually Is
PhoneGap - What It Actually Is
 
From React to React Native
From React to React NativeFrom React to React Native
From React to React Native
 
JavaScript Library Overview
JavaScript Library OverviewJavaScript Library Overview
JavaScript Library Overview
 
Jquery react angular
Jquery react angularJquery react angular
Jquery react angular
 
Do you need jQuery in 2019?
Do you need jQuery in 2019?Do you need jQuery in 2019?
Do you need jQuery in 2019?
 
Gianluca Esposito - It's time to go Native! (with JavaScript and React Native...
Gianluca Esposito - It's time to go Native! (with JavaScript and React Native...Gianluca Esposito - It's time to go Native! (with JavaScript and React Native...
Gianluca Esposito - It's time to go Native! (with JavaScript and React Native...
 
Organized web app development using backbone.js
Organized web app development using backbone.jsOrganized web app development using backbone.js
Organized web app development using backbone.js
 
Paris Web - Javascript as a programming language
Paris Web - Javascript as a programming languageParis Web - Javascript as a programming language
Paris Web - Javascript as a programming language
 
Intro to BackboneJS + Intermediate Javascript
Intro to BackboneJS + Intermediate JavascriptIntro to BackboneJS + Intermediate Javascript
Intro to BackboneJS + Intermediate Javascript
 
DevChatt 2011 - PhoneGap: For Fun and Science
DevChatt 2011 - PhoneGap: For Fun and ScienceDevChatt 2011 - PhoneGap: For Fun and Science
DevChatt 2011 - PhoneGap: For Fun and Science
 
The State of Front-end At CrowdTwist
The State of Front-end At CrowdTwistThe State of Front-end At CrowdTwist
The State of Front-end At CrowdTwist
 
CROSS-PLATFORM DEVELOPMENT ON MOBILE DEVICES
CROSS-PLATFORM DEVELOPMENT ON MOBILE DEVICESCROSS-PLATFORM DEVELOPMENT ON MOBILE DEVICES
CROSS-PLATFORM DEVELOPMENT ON MOBILE DEVICES
 
Node @ flipkart
Node @ flipkartNode @ flipkart
Node @ flipkart
 
1_mockito
1_mockito1_mockito
1_mockito
 
Key Differences Between Node JS vs JavaScript.pdf
Key Differences Between Node JS vs JavaScript.pdfKey Differences Between Node JS vs JavaScript.pdf
Key Differences Between Node JS vs JavaScript.pdf
 
Javascript Apps at Build Artifacts
Javascript Apps at Build ArtifactsJavascript Apps at Build Artifacts
Javascript Apps at Build Artifacts
 
Mobile cross platform development with Dojo
Mobile cross platform development with DojoMobile cross platform development with Dojo
Mobile cross platform development with Dojo
 
Phonegap for Engineers
Phonegap for EngineersPhonegap for Engineers
Phonegap for Engineers
 
Dojo tutorial
Dojo tutorialDojo tutorial
Dojo tutorial
 
Workshop Intro: FrontEnd General Overview
Workshop Intro: FrontEnd General OverviewWorkshop Intro: FrontEnd General Overview
Workshop Intro: FrontEnd General Overview
 

Recently uploaded

When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
UiPathCommunity
 
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
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
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
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.
ViralQR
 
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
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
Assure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyesAssure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
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
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
Peter Spielvogel
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 

Recently uploaded (20)

When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
 
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
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
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
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.
 
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
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
Assure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyesAssure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyes
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
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
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 

Hello, Jo! Introduction to this lightweight HTML5 mobile app framework

  • 1. Hello, Jo! The Lightweight HTML5 Mobile App Framework Dave Balmer JSConf 2011 Portland
  • 3. Who the Hell am I? • Programmer for 34 years • Occasional designer wanna-be • JavaScript freak (since 2004) • Open Source Community noob • Living proof that getting a little kid addicted to programming might not be a “good thing”
  • 4. What the Hell is Jo? • JavaScript lovin’ mobile app framework • Touchable, tappable UI widgets • Simple data layer • Smallish footprint, ~12K gzipped • Plays with PhoneGap for iOS, Android, webOS, BlackBerry &
  • 5. Jo with Browsers, Desktop Widgets, Your JS App Jo webkit • Works alongside other libs • Doesn’t force you to use it for everything
  • 6. Jo with iOS/Android PhoneGap PhoneGap Your JS App Jo webkit • PhoneGap acts as a WebView wrapper • Your code is about the same
  • 7. Jo & PhoneGap on webOS and Your JS App PhoneGap Jo webkit • PhoneGap acts as a compatibility layer • And your code is still about the
  • 8. ...And it’s Open Source (of course, of course) • FreeBSD license • Hosted on GitHub • Looking for more code contributors
  • 9. Philosophy Jo is made from a few of my favorite things.
  • 10. Jo’s Syntactic Sugar • Constructor nesting • Method chaining • Custom extend() method • Observer pattern • Supports either bind() or passing context
  • 11. Jo’s Principles • Don’t try to “fix” JavaScript • Let CSS3 do its job • Keep the code light
  • 12. If Jo Were a Person...
  • 13. If Jo Were a Person... Indiana Jones! • Smart • Flexible • Travels light • Can dress up (if he has to)
  • 14. ...OK, More Like Young Indy Today • Capable • Reeking with potential • A little rough around the edges (Did I mention I’m looking for more code contributors?)
  • 15. Comparison How to spot Jo in a crowd of mobile frameworks.
  • 16. Jo vs. The Volcanos Obligatory Size Comparison Jo 2 XUI 3 Zepto 5 SproutCore 10 Dojo Mobile 11 Sencha Touch 12 jQuery Mobile 13 0 3 6 9 12 15
  • 17. Jo vs. The Volcanos Obligatory Size Comparison (using my favorite metric: bytes per framework name) Jo 2 XUI 3 Zepto 5 SproutCore 10 Dojo Mobile 11 Sencha Touch 12 jQuery Mobile 13 0 3 6 9 12 15
  • 18. Jo’s Sweet Spot Minimal Zepto XUI Jo HTML JS jQuery Mobile Sencha Touch Sprout Core Massive Dojo Mobile
  • 19. Code Examples Yadda yadda yadda... show me the code!
  • 20. Hello, Jo! Sample <!DOCTYPE html> <html lang="en"> <head> <link rel="stylesheet" href="jo.css" type="text/css"> </head> <body> <script src="jo.js"></script> <script> var app = new joScreen(); app.alert(“Hello, Jo!”); </script> </body> </html>
  • 21. More Samples... /* code > slides */
  • 22. Q&A Session Because every talk needs one.
  • 23. Thank You!* Dave Balmer Twitter @Balmer http://joApp.com http://github.com/davebalmer/jo *see me after, I have Jo on flash drives as well

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n