SlideShare a Scribd company logo
1 of 32
Download to read offline
Getting Started with
Meteor
Capital District Java Developers Network
May 23, 2013

Michael P. Redlich
@mpredli
about.me/mpredli/
1
Wednesday, June 12, 13
Who’s Mike?
• BS in CS from Rutgers University
• “Petrochemical Research Organization”
• Ai-Logix, Inc.
• Amateur Computer Group of New Jersey
• Publications
• Presentations
2
Wednesday, June 12, 13
Objectives
• What is Meteor?
• Why Meteor?
• The Seven Principles
• Getting Started with Meteor
• Live Demos (yea!)
• Meteor Resources
3
Wednesday, June 12, 13
What is Meteor? (1)
• “...an open-source platform for building topquality web apps in a fraction of the time,
whether you’re an expert developer or just
getting started.”

Meteor Web Site, http://www.meteor.com/

• A full-stack framework using JavaScript
• Compiles, combines, and distributes your
HTML, CSS, and JavaScript
4
Wednesday, June 12, 13
What is Meteor? (2)
• Built on top of Node.js
• Shares code between the client-side and
server-side of your application

5
Wednesday, June 12, 13
What is Node.js?
• “...a platform built on Chrome’s JavaScript

runtime for easily building fast, scalable
network applications. Node.js uses an eventdriven, non-blocking I/O model that makes it
lightweight and efficient, perfect for dataintensive real-time applications that run across
distributed devices.”

Node.js Web Site, http://www.nodejs.org/

6
Wednesday, June 12, 13
Why Meteor?
• “Meteor is radically faster, radically easier
platform for Internet-scale thick client
applications.”

Avital Oliver, “Meteor Smart Packages”, ETE Conference, 4/2/2013

• Easy to learn
• Pure JavaScript
• Rapid application development
7
Wednesday, June 12, 13
Supported Operating
Systems
• Mac
OS X 10.6

• Linux
x86 and x86_64 systems

• Windows
third party
8
Wednesday, June 12, 13
The Seven Principles
•
•
•
•
•
•

•

Data on the Wire
One Langauge
Database Everywhere
Latency Compensation
Full-Stack Reactivity
Embrace the Ecosystem

9
Wednesday, June 12, 13

Simplicity = Productivity
(#1) Data on the Wire
• Don’t send HTML over the network
• Let client decide how to render data
• Browser renders the templates as data
changes

10
Wednesday, June 12, 13
(#2) One Language
• Everything is JavaScript
• Built-in JavaScript packages include:
CoffeeScript
jQuery
Bootstrap
Backbone
11
Wednesday, June 12, 13
(#3) Database
Everywhere
• MongoDB works on both the client and the
server

• The client-side database API looks just like
MongoDB server-side API

• Database operations are cached in memory
on the client-side to yield...

12
Wednesday, June 12, 13
(#4) Latency
Compensation
• Designed to create a zero-latency
connection to the database

• Database on client-side is updated first
• Database on server-side is updated later
13
Wednesday, June 12, 13
(#5) Full-Stack
Reactivity
• Embraces the concept of reactive
programming

• Everything is real-time
• Templates automatically re-render
themselves as data changes

14
Wednesday, June 12, 13
(#6) Embrace the
Ecosystem
• Meteor is open-source
• Integrates existing open-source tools and
frameworks

15
Wednesday, June 12, 13
(#7) Simplicity =
Productivity
• For something to seem simple, it must
actually be simple

• API are plain and simple

16
Wednesday, June 12, 13
Getting Started
• Download Meteor
• Create your first Meteor app
• Explore the built-in examples
17
Wednesday, June 12, 13
Download Meteor
• Unix/Linux
$

curl https://install.meteor.com | sh

• Windows
win.meteor.com

18
Wednesday, June 12, 13
Create Your First
Meteor App
$ meteor create myapp
$ cd myapp
myapp $ meteor

19
Wednesday, June 12, 13
Live Demo!

20
Wednesday, June 12, 13
Explore the Built-in
Examples
• Four (4) built-in examples
• Leaderboard (simplest)
$

meteor create --example leaderboard

21
Wednesday, June 12, 13
Live Demo!

22
Wednesday, June 12, 13
Structuring Your
Meteor Application
• Special folders
/server
/client
/public
/lib
/collections

23
Wednesday, June 12, 13
Smart Packages (1)
• JavaScript programs
• Extend your Meteor environment
• Injects code into client-side or server-side
of your application

24
Wednesday, June 12, 13
Smart Packages (2)
• Core smart packages:
spark
reload
livedata
mongo-livedata
minimongo

25
Wednesday, June 12, 13
Smart Packages (3)
• List all available packages
$

meteor list

• Adding a package
$

meteor add <package-name>

• Removing a package
$

meteor remove <package-name>

26
Wednesday, June 12, 13
Deploying Your Meteor
Application
• Full application server
• Deploy on Meteor’s infrastructure
$

meteor deploy myapp.meteor.com

27
Wednesday, June 12, 13
Meteorite
• A wrapper utility for Meteor
Developed by Tom Coleman

• Supports third-party applications
• Does everything Meteor does plus...
28
Wednesday, June 12, 13
Meteor Resources (1)

29
Wednesday, June 12, 13
Meteor Resources (2)
• meteor.com
• github.com/meteor/meteor
• themeteorbook.com
• eventedmind.com
• atmosphere.meteor.com
30
Wednesday, June 12, 13
Steve
1:40:29

Tom
Frank
1:35:37 1:35:20

31
Wednesday, June 12, 13

Mike
2:01:33
Thanks!
mike@redlich.net
@mpredli
javasig.org

32
Wednesday, June 12, 13

More Related Content

Similar to Getting Started with Meteor

Cloud stack design camp on jun 15
Cloud stack design camp on jun 15Cloud stack design camp on jun 15
Cloud stack design camp on jun 15
Isaac Chiang
 
Proud to be polyglot!
Proud to be polyglot!Proud to be polyglot!
Proud to be polyglot!
NLJUG
 
Intro to PHP Testing
Intro to PHP TestingIntro to PHP Testing
Intro to PHP Testing
Ran Mizrahi
 

Similar to Getting Started with Meteor (20)

Apereo OAE - Architectural overview
Apereo OAE - Architectural overviewApereo OAE - Architectural overview
Apereo OAE - Architectural overview
 
NATO IST Symposium 2013
NATO IST Symposium 2013NATO IST Symposium 2013
NATO IST Symposium 2013
 
SignalR
SignalRSignalR
SignalR
 
Cloud stack design camp on jun 15
Cloud stack design camp on jun 15Cloud stack design camp on jun 15
Cloud stack design camp on jun 15
 
NCA GTUG 2012 - Cloud is such stuff as dreams are made on
NCA GTUG 2012 - Cloud is such stuff as dreams are made onNCA GTUG 2012 - Cloud is such stuff as dreams are made on
NCA GTUG 2012 - Cloud is such stuff as dreams are made on
 
David Glasser in Chicago - Meteor: Past, Present, & Future
David Glasser in Chicago - Meteor: Past, Present, & Future David Glasser in Chicago - Meteor: Past, Present, & Future
David Glasser in Chicago - Meteor: Past, Present, & Future
 
TallyJS #1 - Intro to AngularJS
TallyJS #1 - Intro to AngularJSTallyJS #1 - Intro to AngularJS
TallyJS #1 - Intro to AngularJS
 
Workshop About Software Engineering Skills 2019
Workshop About Software Engineering Skills 2019Workshop About Software Engineering Skills 2019
Workshop About Software Engineering Skills 2019
 
CloudLab Overview
CloudLab OverviewCloudLab Overview
CloudLab Overview
 
Red Hat Java Update and Quarkus Introduction
Red Hat Java Update and Quarkus IntroductionRed Hat Java Update and Quarkus Introduction
Red Hat Java Update and Quarkus Introduction
 
AstroLabs_Academy_Learning_to_Code-Coding_Bootcamp_Day1.pdf
AstroLabs_Academy_Learning_to_Code-Coding_Bootcamp_Day1.pdfAstroLabs_Academy_Learning_to_Code-Coding_Bootcamp_Day1.pdf
AstroLabs_Academy_Learning_to_Code-Coding_Bootcamp_Day1.pdf
 
Proud to be polyglot!
Proud to be polyglot!Proud to be polyglot!
Proud to be polyglot!
 
Matteo Gazzurelli - Andorid introduction - Google Dev Fest 2013
Matteo Gazzurelli - Andorid introduction - Google Dev Fest 2013Matteo Gazzurelli - Andorid introduction - Google Dev Fest 2013
Matteo Gazzurelli - Andorid introduction - Google Dev Fest 2013
 
Reaktive Programmierung mit den Reactive Extensions (Rx)
Reaktive Programmierung mit den Reactive Extensions (Rx)Reaktive Programmierung mit den Reactive Extensions (Rx)
Reaktive Programmierung mit den Reactive Extensions (Rx)
 
Desarrollo movil multiplataforma
Desarrollo movil multiplataformaDesarrollo movil multiplataforma
Desarrollo movil multiplataforma
 
NoSQL on the move
NoSQL on the moveNoSQL on the move
NoSQL on the move
 
Intro to PHP Testing
Intro to PHP TestingIntro to PHP Testing
Intro to PHP Testing
 
Stacker's the way you connect the world .pptx
Stacker's the way you connect the world .pptxStacker's the way you connect the world .pptx
Stacker's the way you connect the world .pptx
 
Selecting the Best Javascript Web Framework
Selecting the Best Javascript Web FrameworkSelecting the Best Javascript Web Framework
Selecting the Best Javascript Web Framework
 
Plone FSR
Plone FSRPlone FSR
Plone FSR
 

More from Michael Redlich

More from Michael Redlich (20)

Getting Started with GitHub
Getting Started with GitHubGetting Started with GitHub
Getting Started with GitHub
 
Building Microservices with Micronaut: A Full-Stack JVM-Based Framework
Building Microservices with Micronaut:  A Full-Stack JVM-Based FrameworkBuilding Microservices with Micronaut:  A Full-Stack JVM-Based Framework
Building Microservices with Micronaut: A Full-Stack JVM-Based Framework
 
Building Microservices with Helidon: Oracle's New Java Microservices Framework
Building Microservices with Helidon:  Oracle's New Java Microservices FrameworkBuilding Microservices with Helidon:  Oracle's New Java Microservices Framework
Building Microservices with Helidon: Oracle's New Java Microservices Framework
 
Introduction to Object Oriented Programming & Design Principles
Introduction to Object Oriented Programming & Design PrinciplesIntroduction to Object Oriented Programming & Design Principles
Introduction to Object Oriented Programming & Design Principles
 
Getting Started with C++
Getting Started with C++Getting Started with C++
Getting Started with C++
 
C++ Advanced Features
C++ Advanced FeaturesC++ Advanced Features
C++ Advanced Features
 
Java Advanced Features
Java Advanced FeaturesJava Advanced Features
Java Advanced Features
 
Introduction to Object Oriented Programming &amp; Design Principles
Introduction to Object Oriented Programming &amp; Design PrinciplesIntroduction to Object Oriented Programming &amp; Design Principles
Introduction to Object Oriented Programming &amp; Design Principles
 
Getting Started with Java
Getting Started with JavaGetting Started with Java
Getting Started with Java
 
Getting started with C++
Getting started with C++Getting started with C++
Getting started with C++
 
C++ Advanced Features
C++ Advanced FeaturesC++ Advanced Features
C++ Advanced Features
 
Building Realtime Access to Data Apps with jOOQ
Building Realtime Access to Data Apps with jOOQBuilding Realtime Access to Data Apps with jOOQ
Building Realtime Access to Data Apps with jOOQ
 
Building Realtime Access Data Apps with Speedment (TCF ITPC 2017)
Building Realtime Access Data Apps with Speedment (TCF ITPC 2017)Building Realtime Access Data Apps with Speedment (TCF ITPC 2017)
Building Realtime Access Data Apps with Speedment (TCF ITPC 2017)
 
Building Realtime Web Apps with Angular and Meteor
Building Realtime Web Apps with Angular and MeteorBuilding Realtime Web Apps with Angular and Meteor
Building Realtime Web Apps with Angular and Meteor
 
Java Advanced Features (TCF 2014)
Java Advanced Features (TCF 2014)Java Advanced Features (TCF 2014)
Java Advanced Features (TCF 2014)
 
Introduction to Object-Oriented Programming & Design Principles (TCF 2014)
Introduction to Object-Oriented Programming & Design Principles (TCF 2014)Introduction to Object-Oriented Programming & Design Principles (TCF 2014)
Introduction to Object-Oriented Programming & Design Principles (TCF 2014)
 
Getting Started with Java (TCF 2014)
Getting Started with Java (TCF 2014)Getting Started with Java (TCF 2014)
Getting Started with Java (TCF 2014)
 
Getting Started with C++ (TCF 2014)
Getting Started with C++ (TCF 2014)Getting Started with C++ (TCF 2014)
Getting Started with C++ (TCF 2014)
 
C++ Advanced Features (TCF 2014)
C++ Advanced Features (TCF 2014)C++ Advanced Features (TCF 2014)
C++ Advanced Features (TCF 2014)
 
Getting Started with MongoDB (TCF ITPC 2014)
Getting Started with MongoDB (TCF ITPC 2014)Getting Started with MongoDB (TCF ITPC 2014)
Getting Started with MongoDB (TCF ITPC 2014)
 

Recently uploaded

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 

Recently uploaded (20)

TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
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
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
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
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
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
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 

Getting Started with Meteor

  • 1. Getting Started with Meteor Capital District Java Developers Network May 23, 2013 Michael P. Redlich @mpredli about.me/mpredli/ 1 Wednesday, June 12, 13
  • 2. Who’s Mike? • BS in CS from Rutgers University • “Petrochemical Research Organization” • Ai-Logix, Inc. • Amateur Computer Group of New Jersey • Publications • Presentations 2 Wednesday, June 12, 13
  • 3. Objectives • What is Meteor? • Why Meteor? • The Seven Principles • Getting Started with Meteor • Live Demos (yea!) • Meteor Resources 3 Wednesday, June 12, 13
  • 4. What is Meteor? (1) • “...an open-source platform for building topquality web apps in a fraction of the time, whether you’re an expert developer or just getting started.” Meteor Web Site, http://www.meteor.com/ • A full-stack framework using JavaScript • Compiles, combines, and distributes your HTML, CSS, and JavaScript 4 Wednesday, June 12, 13
  • 5. What is Meteor? (2) • Built on top of Node.js • Shares code between the client-side and server-side of your application 5 Wednesday, June 12, 13
  • 6. What is Node.js? • “...a platform built on Chrome’s JavaScript runtime for easily building fast, scalable network applications. Node.js uses an eventdriven, non-blocking I/O model that makes it lightweight and efficient, perfect for dataintensive real-time applications that run across distributed devices.” Node.js Web Site, http://www.nodejs.org/ 6 Wednesday, June 12, 13
  • 7. Why Meteor? • “Meteor is radically faster, radically easier platform for Internet-scale thick client applications.” Avital Oliver, “Meteor Smart Packages”, ETE Conference, 4/2/2013 • Easy to learn • Pure JavaScript • Rapid application development 7 Wednesday, June 12, 13
  • 8. Supported Operating Systems • Mac OS X 10.6 • Linux x86 and x86_64 systems • Windows third party 8 Wednesday, June 12, 13
  • 9. The Seven Principles • • • • • • • Data on the Wire One Langauge Database Everywhere Latency Compensation Full-Stack Reactivity Embrace the Ecosystem 9 Wednesday, June 12, 13 Simplicity = Productivity
  • 10. (#1) Data on the Wire • Don’t send HTML over the network • Let client decide how to render data • Browser renders the templates as data changes 10 Wednesday, June 12, 13
  • 11. (#2) One Language • Everything is JavaScript • Built-in JavaScript packages include: CoffeeScript jQuery Bootstrap Backbone 11 Wednesday, June 12, 13
  • 12. (#3) Database Everywhere • MongoDB works on both the client and the server • The client-side database API looks just like MongoDB server-side API • Database operations are cached in memory on the client-side to yield... 12 Wednesday, June 12, 13
  • 13. (#4) Latency Compensation • Designed to create a zero-latency connection to the database • Database on client-side is updated first • Database on server-side is updated later 13 Wednesday, June 12, 13
  • 14. (#5) Full-Stack Reactivity • Embraces the concept of reactive programming • Everything is real-time • Templates automatically re-render themselves as data changes 14 Wednesday, June 12, 13
  • 15. (#6) Embrace the Ecosystem • Meteor is open-source • Integrates existing open-source tools and frameworks 15 Wednesday, June 12, 13
  • 16. (#7) Simplicity = Productivity • For something to seem simple, it must actually be simple • API are plain and simple 16 Wednesday, June 12, 13
  • 17. Getting Started • Download Meteor • Create your first Meteor app • Explore the built-in examples 17 Wednesday, June 12, 13
  • 18. Download Meteor • Unix/Linux $ curl https://install.meteor.com | sh • Windows win.meteor.com 18 Wednesday, June 12, 13
  • 19. Create Your First Meteor App $ meteor create myapp $ cd myapp myapp $ meteor 19 Wednesday, June 12, 13
  • 21. Explore the Built-in Examples • Four (4) built-in examples • Leaderboard (simplest) $ meteor create --example leaderboard 21 Wednesday, June 12, 13
  • 23. Structuring Your Meteor Application • Special folders /server /client /public /lib /collections 23 Wednesday, June 12, 13
  • 24. Smart Packages (1) • JavaScript programs • Extend your Meteor environment • Injects code into client-side or server-side of your application 24 Wednesday, June 12, 13
  • 25. Smart Packages (2) • Core smart packages: spark reload livedata mongo-livedata minimongo 25 Wednesday, June 12, 13
  • 26. Smart Packages (3) • List all available packages $ meteor list • Adding a package $ meteor add <package-name> • Removing a package $ meteor remove <package-name> 26 Wednesday, June 12, 13
  • 27. Deploying Your Meteor Application • Full application server • Deploy on Meteor’s infrastructure $ meteor deploy myapp.meteor.com 27 Wednesday, June 12, 13
  • 28. Meteorite • A wrapper utility for Meteor Developed by Tom Coleman • Supports third-party applications • Does everything Meteor does plus... 28 Wednesday, June 12, 13
  • 30. Meteor Resources (2) • meteor.com • github.com/meteor/meteor • themeteorbook.com • eventedmind.com • atmosphere.meteor.com 30 Wednesday, June 12, 13