SlideShare a Scribd company logo
Meteor
Rock your world

Bob Davies
IndieSpring / Imba Software
What is Meteor?
Principles
What it actually does
How it works (101)
http://docs.meteor.com/
Key Principles
Data on the Wire. Don't send HTML over the network.
Send data and let the client decide how to render it.
Full Stack Reactivity. Make realtime the default.
All layers event-driven.
Simple and Open

http://docs.meteor.com/#sevenprinciples
Single Page
Focus is on intuitive UX
Clean, single page
Simple interactions

Highly interconnected
Socially networked
Mashup paradise
Simple collaboration platform
Reactive
• Templated views
• Application reacts to
– User actions
– Data actions
– Remote actions

• „Synchronisation‟ is automatic
– No transport code needed
David Glasser in Chicago - Meteor: Past, Present, & Future:
http://youtu.be/r996yhHNs5k?t=11m27s
Realtime
• Fetches from MongoDB after every
operation
– Pushes relevant updates to any subscribed
client
• Uses fairly sophisticated algorithm to determine
what to fetch and for whom.

– Also polls every 10 seconds

• Mongo oplog when >= Meteor 0.7.0
Session
• Session is per-tab
– sticky session

• Session is retained on hot-code reload,
but not on manual refresh (can cause
testing issues)
• Session stays open for ~15 minutes
(memory on server) after socket closes
Comparison

Several Thousand lines of code (php + jQuery)
Hard to build AND to use
TENs of lines of code
Very EASY to build AND use
Application Structure
• Simple structure
• Client/server separate files
– but share most functional code

• Publish on server and Subscribe on client
• Templated views
• MongoDB backend
– Can access others via packages
– Flexible nosql data source

• Backend is very efficient with Fibers
Quickstart
// install
$ curl https://install.meteor.com/ | sh
// create project
$ meteor create TestApp
// run
$ cd TestApp
$ meteor
=> Meteor server running on:
localhost:3000

//deploy
$ meteor deploy TestApp.meteor.com
Highly Recommended
// create project
$ meteor create TestApp
$ cd TestApp
// secure the project
meteor remove insecure
meteor remove autopublish
// run
$ meteor
=> Meteor server running………
Suggested
$ mkdir server //Only loads on
$ mkdir client //Only loads on
$ mkdir public //Static assets
$ mkdir shared //Loads on both
anything else not in server or
folder)

server
client
(as will
client

• Move (or remove) the premade files
– They sort of suck
– maybe want templates/views folder too
Publish/Subscribe
Templating
Binding Events

Chris Mather: Understanding the Event Loop, Async and Fibers:
http://www.youtube.com/watch?v=AWJ8LIzQMHY
http://stackoverflow.com/a/20794175/1358220
Allow / Deny
What to build?
• Slick UI/UX
• Socially Integrated
• Collaborative
Meteor meets Phonegap with Verso:
http://youtu.be/eeY1mZhvDy4?t=6m30s

http://madewith.meteor.com/
https://www.meteor.com/blog/2014/01/03/6-must-see-meteor-talks-from-2013
Useful built in packages
Package Management
• Meteorite
– Smart packages manager
– Several router choices
– Installs from atmosphere.meteor.com

• Can use NPM packages
– But may require some custom wrappers

• Much better towards 1.0
Challenges
• Good habits in old models, sometimes fail
you under Meteor
– Centralised data model
– Flow is different

• Some developers prefer the old model
– Break out!
– Don‟t force MVC or „tack on‟ an extra DAL, let
the engine to do the work for you
Into Production
•
•
•
•
•

Setup an appropriate file structure
Check your Allow/Deny rules
Check what code is shared/private
Expect change
Optimise Performance
– Essentially Node under the hood, though
some caveats apply (sticky sessions)

Ritik Malhotra: Building a Production-Ready Meteor App:
http://www.youtube.com/watch?v=gfFGjmiKfnA
Performance
• Not great with static assets, use a CDN and/or static cache if
scaling big
• Wrap source/subscriptions for logged-in and anonymous
users differently
– Each subscription requires resources

• Use {{#constant}}...{{/constant}} in templates around static
content
• {“_id”: “abc123”} is very fast when query/update Collection

http://meteorhacks.com/does-meteor-scale.html

http://projectricochet.com/blog/
Coming Up
• 1.0 expected soon (any day)
• Newer, faster render engine
• Many more packages appearing
• Students/kids are learning with Meteor
• Lots of startups use it for simple products
So, what is Meteor?
• Highly interactive and interconnected
• Realtime, reactive
• Templated simple user
interface/experience
• Accessible and manageable code
– no callback soup

• Scalable and performant
• Getting more awesome every day :)
Thank You :)

How can you benefit
from Meteor?
Bob Davies
IndieSpring / Imba Software
Twitter/Skype @bobbigmac
Facebook /bobdavies
Blog: http://bobbigmac.com

More Related Content

What's hot

Where We're Headed and Where NSX Fits In
Where We're Headed and Where NSX Fits InWhere We're Headed and Where NSX Fits In
Where We're Headed and Where NSX Fits In
Scott Lowe
 
Elastic build environment
Elastic build environmentElastic build environment
Elastic build environment
Cachet Software Solutions Ltd
 
Slaying Sacred Cows: Deconstructing Dependency Injection
Slaying Sacred Cows: Deconstructing Dependency InjectionSlaying Sacred Cows: Deconstructing Dependency Injection
Slaying Sacred Cows: Deconstructing Dependency Injection
Tomer Gabel
 
Cloud computing
Cloud computingCloud computing
Cloud computing
Abderrahmane TEKFI
 
Event Driven Automation Meetup May 14/2015
Event Driven Automation Meetup May 14/2015Event Driven Automation Meetup May 14/2015
Event Driven Automation Meetup May 14/2015
Dmitri Zimine
 
OpenNebulaConf2019 - Building Virtual Environments for Security Analyses of C...
OpenNebulaConf2019 - Building Virtual Environments for Security Analyses of C...OpenNebulaConf2019 - Building Virtual Environments for Security Analyses of C...
OpenNebulaConf2019 - Building Virtual Environments for Security Analyses of C...
OpenNebula Project
 
Codemotion Amsterdam 2016 - Building microservices with Vert.x
Codemotion Amsterdam 2016 - Building microservices with Vert.xCodemotion Amsterdam 2016 - Building microservices with Vert.x
Codemotion Amsterdam 2016 - Building microservices with Vert.x
Bert Jan Schrijver
 
Buzzwords: Microservices, containers and serverless - real life applications ...
Buzzwords: Microservices, containers and serverless - real life applications ...Buzzwords: Microservices, containers and serverless - real life applications ...
Buzzwords: Microservices, containers and serverless - real life applications ...
drnugent
 
Meteor intro-2015
Meteor intro-2015Meteor intro-2015
Meteor intro-2015
MeteorJS
 
OSDC 2017 - Florian Heigl - Experiences with rudder, is it really for everyone
OSDC 2017 - Florian Heigl - Experiences with rudder, is it really for everyoneOSDC 2017 - Florian Heigl - Experiences with rudder, is it really for everyone
OSDC 2017 - Florian Heigl - Experiences with rudder, is it really for everyone
NETWAYS
 
About Microservices, Containers and their Underestimated Impact on Network Pe...
About Microservices, Containers and their Underestimated Impact on Network Pe...About Microservices, Containers and their Underestimated Impact on Network Pe...
About Microservices, Containers and their Underestimated Impact on Network Pe...
Nane Kratzke
 
VDB16 - DIY Java & Kubernetes
VDB16 - DIY Java & KubernetesVDB16 - DIY Java & Kubernetes
VDB16 - DIY Java & Kubernetes
Pance Cavkovski
 
ASP.NET 5 on the Raspberry PI 2
ASP.NET 5 on the Raspberry PI 2ASP.NET 5 on the Raspberry PI 2
ASP.NET 5 on the Raspberry PI 2
Jürgen Gutsch
 
Microservices and the future on Infrastructure
Microservices and the future on InfrastructureMicroservices and the future on Infrastructure
Microservices and the future on Infrastructure
Pini Reznik
 
JBCNConf 2017 - Building microservices with Vert.x
JBCNConf 2017 - Building microservices with Vert.xJBCNConf 2017 - Building microservices with Vert.x
JBCNConf 2017 - Building microservices with Vert.x
Bert Jan Schrijver
 
Cloud computing components
Cloud computing componentsCloud computing components
Cloud computing components
PSG College of Technology
 
Meteor js - TechPeaks Developers Meeting
Meteor js - TechPeaks Developers MeetingMeteor js - TechPeaks Developers Meeting
Meteor js - TechPeaks Developers Meeting
Francesco Corazza
 

What's hot (17)

Where We're Headed and Where NSX Fits In
Where We're Headed and Where NSX Fits InWhere We're Headed and Where NSX Fits In
Where We're Headed and Where NSX Fits In
 
Elastic build environment
Elastic build environmentElastic build environment
Elastic build environment
 
Slaying Sacred Cows: Deconstructing Dependency Injection
Slaying Sacred Cows: Deconstructing Dependency InjectionSlaying Sacred Cows: Deconstructing Dependency Injection
Slaying Sacred Cows: Deconstructing Dependency Injection
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
Event Driven Automation Meetup May 14/2015
Event Driven Automation Meetup May 14/2015Event Driven Automation Meetup May 14/2015
Event Driven Automation Meetup May 14/2015
 
OpenNebulaConf2019 - Building Virtual Environments for Security Analyses of C...
OpenNebulaConf2019 - Building Virtual Environments for Security Analyses of C...OpenNebulaConf2019 - Building Virtual Environments for Security Analyses of C...
OpenNebulaConf2019 - Building Virtual Environments for Security Analyses of C...
 
Codemotion Amsterdam 2016 - Building microservices with Vert.x
Codemotion Amsterdam 2016 - Building microservices with Vert.xCodemotion Amsterdam 2016 - Building microservices with Vert.x
Codemotion Amsterdam 2016 - Building microservices with Vert.x
 
Buzzwords: Microservices, containers and serverless - real life applications ...
Buzzwords: Microservices, containers and serverless - real life applications ...Buzzwords: Microservices, containers and serverless - real life applications ...
Buzzwords: Microservices, containers and serverless - real life applications ...
 
Meteor intro-2015
Meteor intro-2015Meteor intro-2015
Meteor intro-2015
 
OSDC 2017 - Florian Heigl - Experiences with rudder, is it really for everyone
OSDC 2017 - Florian Heigl - Experiences with rudder, is it really for everyoneOSDC 2017 - Florian Heigl - Experiences with rudder, is it really for everyone
OSDC 2017 - Florian Heigl - Experiences with rudder, is it really for everyone
 
About Microservices, Containers and their Underestimated Impact on Network Pe...
About Microservices, Containers and their Underestimated Impact on Network Pe...About Microservices, Containers and their Underestimated Impact on Network Pe...
About Microservices, Containers and their Underestimated Impact on Network Pe...
 
VDB16 - DIY Java & Kubernetes
VDB16 - DIY Java & KubernetesVDB16 - DIY Java & Kubernetes
VDB16 - DIY Java & Kubernetes
 
ASP.NET 5 on the Raspberry PI 2
ASP.NET 5 on the Raspberry PI 2ASP.NET 5 on the Raspberry PI 2
ASP.NET 5 on the Raspberry PI 2
 
Microservices and the future on Infrastructure
Microservices and the future on InfrastructureMicroservices and the future on Infrastructure
Microservices and the future on Infrastructure
 
JBCNConf 2017 - Building microservices with Vert.x
JBCNConf 2017 - Building microservices with Vert.xJBCNConf 2017 - Building microservices with Vert.x
JBCNConf 2017 - Building microservices with Vert.x
 
Cloud computing components
Cloud computing componentsCloud computing components
Cloud computing components
 
Meteor js - TechPeaks Developers Meeting
Meteor js - TechPeaks Developers MeetingMeteor js - TechPeaks Developers Meeting
Meteor js - TechPeaks Developers Meeting
 

Viewers also liked

Meteor Deployment Planning
Meteor Deployment PlanningMeteor Deployment Planning
Meteor Deployment Planning
Randell Hynes
 
Meteor js
Meteor jsMeteor js
Meteor js
VinayRamappa
 
Next generation web development with node.js and meteor
Next generation web development with node.js and meteorNext generation web development with node.js and meteor
Next generation web development with node.js and meteor
Martin Naumann
 
Deploy meteor in production
Deploy meteor in productionDeploy meteor in production
Deploy meteor in production
Miro Radenovic
 
Offience's Node showcase
Offience's Node showcaseOffience's Node showcase
Offience's Node showcase
cloud4le
 
Meteor presentation
Meteor presentationMeteor presentation
Meteor presentation
Andy Bute
 
Why meteor
Why meteorWhy meteor
Why meteor
Jonathan Perl
 
Intro To Meteor (Las Vegas Ruby User Group Talk)
Intro To Meteor (Las Vegas Ruby User Group Talk)Intro To Meteor (Las Vegas Ruby User Group Talk)
Intro To Meteor (Las Vegas Ruby User Group Talk)
Almog Koren
 
The End of Dinosaurs happened because of [a] Meteor
The End of Dinosaurs happened because of [a] MeteorThe End of Dinosaurs happened because of [a] Meteor
The End of Dinosaurs happened because of [a] Meteor
Abderrazak BOUADMA
 
Meteor JS News
Meteor JS NewsMeteor JS News
Meteor JS News
Designveloper
 

Viewers also liked (11)

Meteor Deployment Planning
Meteor Deployment PlanningMeteor Deployment Planning
Meteor Deployment Planning
 
Meteor js
Meteor jsMeteor js
Meteor js
 
Next generation web development with node.js and meteor
Next generation web development with node.js and meteorNext generation web development with node.js and meteor
Next generation web development with node.js and meteor
 
Deploy meteor in production
Deploy meteor in productionDeploy meteor in production
Deploy meteor in production
 
Offience's Node showcase
Offience's Node showcaseOffience's Node showcase
Offience's Node showcase
 
Meteor presentation
Meteor presentationMeteor presentation
Meteor presentation
 
Why meteor
Why meteorWhy meteor
Why meteor
 
Intro To Meteor (Las Vegas Ruby User Group Talk)
Intro To Meteor (Las Vegas Ruby User Group Talk)Intro To Meteor (Las Vegas Ruby User Group Talk)
Intro To Meteor (Las Vegas Ruby User Group Talk)
 
Meteor
MeteorMeteor
Meteor
 
The End of Dinosaurs happened because of [a] Meteor
The End of Dinosaurs happened because of [a] MeteorThe End of Dinosaurs happened because of [a] Meteor
The End of Dinosaurs happened because of [a] Meteor
 
Meteor JS News
Meteor JS NewsMeteor JS News
Meteor JS News
 

Similar to Meteor node upnorth-bobdavies

Plone FSR
Plone FSRPlone FSR
Plone FSR
fulv
 
All about that reactive ui
All about that reactive uiAll about that reactive ui
All about that reactive ui
Paul van Zyl
 
Docker
DockerDocker
Docker
Yansi Keim
 
E2E Services using Cloud Visitation Platforms
E2E Services using Cloud Visitation PlatformsE2E Services using Cloud Visitation Platforms
E2E Services using Cloud Visitation Platforms
Tokyo University of Science
 
Getting Started with Docker - Nick Stinemates
Getting Started with Docker - Nick StinematesGetting Started with Docker - Nick Stinemates
Getting Started with Docker - Nick Stinemates
Atlassian
 
Integrating Things and the smart mobile phone capabilities
Integrating Things and the smart mobile phone capabilitiesIntegrating Things and the smart mobile phone capabilities
Integrating Things and the smart mobile phone capabilities
Marino Linaje Trigueros
 
Automatic deployment on .NET web stack (Minsk .NET meetup 12.02.14)
Automatic deployment on .NET web stack (Minsk .NET meetup 12.02.14)Automatic deployment on .NET web stack (Minsk .NET meetup 12.02.14)
Automatic deployment on .NET web stack (Minsk .NET meetup 12.02.14)
Is Antipov
 
Cloud Native Dünyada CI/CD
Cloud Native Dünyada CI/CDCloud Native Dünyada CI/CD
Cloud Native Dünyada CI/CD
Mustafa AKIN
 
Docker:- Application Delivery Platform Towards Edge Computing
Docker:- Application Delivery Platform Towards Edge ComputingDocker:- Application Delivery Platform Towards Edge Computing
Docker:- Application Delivery Platform Towards Edge Computing
Bukhary Ikhwan Ismail
 
Journey to Containerized Application / Google Container Engine
Journey to Containerized Application / Google Container EngineJourney to Containerized Application / Google Container Engine
Journey to Containerized Application / Google Container Engine
Google Cloud Platform - Japan
 
From monolith to microservice with containers.
From monolith to microservice with containers.From monolith to microservice with containers.
From monolith to microservice with containers.
Marcel Dempers
 
Demystifying Containerization Principles for Data Scientists
Demystifying Containerization Principles for Data ScientistsDemystifying Containerization Principles for Data Scientists
Demystifying Containerization Principles for Data Scientists
Dr Ganesh Iyer
 
Application Delivery Platform Towards Edge Computing - Bukhary Ikhwan
Application Delivery Platform Towards Edge Computing - Bukhary IkhwanApplication Delivery Platform Towards Edge Computing - Bukhary Ikhwan
Application Delivery Platform Towards Edge Computing - Bukhary Ikhwan
OpenNebula Project
 
Apache Mesos Overview and Integration
Apache Mesos Overview and IntegrationApache Mesos Overview and Integration
Apache Mesos Overview and Integration
Alex Baretto
 
JavaOne 2016 "Java, Microservices, Cloud and Containers"
JavaOne 2016 "Java, Microservices, Cloud and Containers"JavaOne 2016 "Java, Microservices, Cloud and Containers"
JavaOne 2016 "Java, Microservices, Cloud and Containers"
Daniel Bryant
 
Meteor meetup
Meteor meetupMeteor meetup
Meteor meetup
David Brear
 
Meteor - Codemotion Rome 2015
Meteor - Codemotion Rome 2015Meteor - Codemotion Rome 2015
Meteor - Codemotion Rome 2015
Codemotion
 
Meteor + Polymer
Meteor + PolymerMeteor + Polymer
Meteor + Polymer
wolf4ood
 
The Meteor Framework
The Meteor FrameworkThe Meteor Framework
The Meteor Framework
Damien Magoni
 
EclipseCon 2016 - OCCIware : one Cloud API to rule them all
EclipseCon 2016 - OCCIware : one Cloud API to rule them allEclipseCon 2016 - OCCIware : one Cloud API to rule them all
EclipseCon 2016 - OCCIware : one Cloud API to rule them all
Marc Dutoo
 

Similar to Meteor node upnorth-bobdavies (20)

Plone FSR
Plone FSRPlone FSR
Plone FSR
 
All about that reactive ui
All about that reactive uiAll about that reactive ui
All about that reactive ui
 
Docker
DockerDocker
Docker
 
E2E Services using Cloud Visitation Platforms
E2E Services using Cloud Visitation PlatformsE2E Services using Cloud Visitation Platforms
E2E Services using Cloud Visitation Platforms
 
Getting Started with Docker - Nick Stinemates
Getting Started with Docker - Nick StinematesGetting Started with Docker - Nick Stinemates
Getting Started with Docker - Nick Stinemates
 
Integrating Things and the smart mobile phone capabilities
Integrating Things and the smart mobile phone capabilitiesIntegrating Things and the smart mobile phone capabilities
Integrating Things and the smart mobile phone capabilities
 
Automatic deployment on .NET web stack (Minsk .NET meetup 12.02.14)
Automatic deployment on .NET web stack (Minsk .NET meetup 12.02.14)Automatic deployment on .NET web stack (Minsk .NET meetup 12.02.14)
Automatic deployment on .NET web stack (Minsk .NET meetup 12.02.14)
 
Cloud Native Dünyada CI/CD
Cloud Native Dünyada CI/CDCloud Native Dünyada CI/CD
Cloud Native Dünyada CI/CD
 
Docker:- Application Delivery Platform Towards Edge Computing
Docker:- Application Delivery Platform Towards Edge ComputingDocker:- Application Delivery Platform Towards Edge Computing
Docker:- Application Delivery Platform Towards Edge Computing
 
Journey to Containerized Application / Google Container Engine
Journey to Containerized Application / Google Container EngineJourney to Containerized Application / Google Container Engine
Journey to Containerized Application / Google Container Engine
 
From monolith to microservice with containers.
From monolith to microservice with containers.From monolith to microservice with containers.
From monolith to microservice with containers.
 
Demystifying Containerization Principles for Data Scientists
Demystifying Containerization Principles for Data ScientistsDemystifying Containerization Principles for Data Scientists
Demystifying Containerization Principles for Data Scientists
 
Application Delivery Platform Towards Edge Computing - Bukhary Ikhwan
Application Delivery Platform Towards Edge Computing - Bukhary IkhwanApplication Delivery Platform Towards Edge Computing - Bukhary Ikhwan
Application Delivery Platform Towards Edge Computing - Bukhary Ikhwan
 
Apache Mesos Overview and Integration
Apache Mesos Overview and IntegrationApache Mesos Overview and Integration
Apache Mesos Overview and Integration
 
JavaOne 2016 "Java, Microservices, Cloud and Containers"
JavaOne 2016 "Java, Microservices, Cloud and Containers"JavaOne 2016 "Java, Microservices, Cloud and Containers"
JavaOne 2016 "Java, Microservices, Cloud and Containers"
 
Meteor meetup
Meteor meetupMeteor meetup
Meteor meetup
 
Meteor - Codemotion Rome 2015
Meteor - Codemotion Rome 2015Meteor - Codemotion Rome 2015
Meteor - Codemotion Rome 2015
 
Meteor + Polymer
Meteor + PolymerMeteor + Polymer
Meteor + Polymer
 
The Meteor Framework
The Meteor FrameworkThe Meteor Framework
The Meteor Framework
 
EclipseCon 2016 - OCCIware : one Cloud API to rule them all
EclipseCon 2016 - OCCIware : one Cloud API to rule them allEclipseCon 2016 - OCCIware : one Cloud API to rule them all
EclipseCon 2016 - OCCIware : one Cloud API to rule them all
 

Recently uploaded

5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
DanBrown980551
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
akankshawande
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
kumardaparthi1024
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Tosin Akinosho
 
Recommendation System using RAG Architecture
Recommendation System using RAG ArchitectureRecommendation System using RAG Architecture
Recommendation System using RAG Architecture
fredae14
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Wask
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
Jason Packer
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
Hiroshi SHIBATA
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
Zilliz
 
Webinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data WarehouseWebinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data Warehouse
Federico Razzoli
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
Brandon Minnick, MBA
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
MichaelKnudsen27
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
Zilliz
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
ssuserfac0301
 
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
 
Project Management Semester Long Project - Acuity
Project Management Semester Long Project - AcuityProject Management Semester Long Project - Acuity
Project Management Semester Long Project - Acuity
jpupo2018
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
IndexBug
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
Pixlogix Infotech
 

Recently uploaded (20)

5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
 
Recommendation System using RAG Architecture
Recommendation System using RAG ArchitectureRecommendation System using RAG Architecture
Recommendation System using RAG Architecture
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
 
Webinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data WarehouseWebinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data Warehouse
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
 
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
 
Project Management Semester Long Project - Acuity
Project Management Semester Long Project - AcuityProject Management Semester Long Project - Acuity
Project Management Semester Long Project - Acuity
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
 

Meteor node upnorth-bobdavies

  • 1. Meteor Rock your world Bob Davies IndieSpring / Imba Software
  • 2. What is Meteor? Principles What it actually does How it works (101) http://docs.meteor.com/
  • 3. Key Principles Data on the Wire. Don't send HTML over the network. Send data and let the client decide how to render it. Full Stack Reactivity. Make realtime the default. All layers event-driven. Simple and Open http://docs.meteor.com/#sevenprinciples
  • 4. Single Page Focus is on intuitive UX Clean, single page Simple interactions Highly interconnected Socially networked Mashup paradise Simple collaboration platform
  • 5. Reactive • Templated views • Application reacts to – User actions – Data actions – Remote actions • „Synchronisation‟ is automatic – No transport code needed David Glasser in Chicago - Meteor: Past, Present, & Future: http://youtu.be/r996yhHNs5k?t=11m27s
  • 6. Realtime • Fetches from MongoDB after every operation – Pushes relevant updates to any subscribed client • Uses fairly sophisticated algorithm to determine what to fetch and for whom. – Also polls every 10 seconds • Mongo oplog when >= Meteor 0.7.0
  • 7. Session • Session is per-tab – sticky session • Session is retained on hot-code reload, but not on manual refresh (can cause testing issues) • Session stays open for ~15 minutes (memory on server) after socket closes
  • 8. Comparison Several Thousand lines of code (php + jQuery) Hard to build AND to use
  • 9. TENs of lines of code Very EASY to build AND use
  • 10. Application Structure • Simple structure • Client/server separate files – but share most functional code • Publish on server and Subscribe on client • Templated views • MongoDB backend – Can access others via packages – Flexible nosql data source • Backend is very efficient with Fibers
  • 11. Quickstart // install $ curl https://install.meteor.com/ | sh // create project $ meteor create TestApp // run $ cd TestApp $ meteor => Meteor server running on: localhost:3000 //deploy $ meteor deploy TestApp.meteor.com
  • 12. Highly Recommended // create project $ meteor create TestApp $ cd TestApp // secure the project meteor remove insecure meteor remove autopublish // run $ meteor => Meteor server running………
  • 13. Suggested $ mkdir server //Only loads on $ mkdir client //Only loads on $ mkdir public //Static assets $ mkdir shared //Loads on both anything else not in server or folder) server client (as will client • Move (or remove) the premade files – They sort of suck – maybe want templates/views folder too
  • 16. Binding Events Chris Mather: Understanding the Event Loop, Async and Fibers: http://www.youtube.com/watch?v=AWJ8LIzQMHY http://stackoverflow.com/a/20794175/1358220
  • 18. What to build? • Slick UI/UX • Socially Integrated • Collaborative Meteor meets Phonegap with Verso: http://youtu.be/eeY1mZhvDy4?t=6m30s http://madewith.meteor.com/ https://www.meteor.com/blog/2014/01/03/6-must-see-meteor-talks-from-2013
  • 19. Useful built in packages
  • 20. Package Management • Meteorite – Smart packages manager – Several router choices – Installs from atmosphere.meteor.com • Can use NPM packages – But may require some custom wrappers • Much better towards 1.0
  • 21. Challenges • Good habits in old models, sometimes fail you under Meteor – Centralised data model – Flow is different • Some developers prefer the old model – Break out! – Don‟t force MVC or „tack on‟ an extra DAL, let the engine to do the work for you
  • 22. Into Production • • • • • Setup an appropriate file structure Check your Allow/Deny rules Check what code is shared/private Expect change Optimise Performance – Essentially Node under the hood, though some caveats apply (sticky sessions) Ritik Malhotra: Building a Production-Ready Meteor App: http://www.youtube.com/watch?v=gfFGjmiKfnA
  • 23. Performance • Not great with static assets, use a CDN and/or static cache if scaling big • Wrap source/subscriptions for logged-in and anonymous users differently – Each subscription requires resources • Use {{#constant}}...{{/constant}} in templates around static content • {“_id”: “abc123”} is very fast when query/update Collection http://meteorhacks.com/does-meteor-scale.html http://projectricochet.com/blog/
  • 24. Coming Up • 1.0 expected soon (any day) • Newer, faster render engine • Many more packages appearing • Students/kids are learning with Meteor • Lots of startups use it for simple products
  • 25. So, what is Meteor? • Highly interactive and interconnected • Realtime, reactive • Templated simple user interface/experience • Accessible and manageable code – no callback soup • Scalable and performant • Getting more awesome every day :)
  • 26. Thank You :) How can you benefit from Meteor? Bob Davies IndieSpring / Imba Software Twitter/Skype @bobbigmac Facebook /bobdavies Blog: http://bobbigmac.com

Editor's Notes

  1. A surprising amount of people don’t know to do this. Mad.
  2. A surprising amount of people don’t know to do this. Mad.
  3. A surprising amount of people don’t know to do this. Mad.
  4. A surprising amount of people don’t know to do this. Mad.
  5. A surprising amount of people don’t know to do this. Mad.
  6. A surprising amount of people don’t know to do this. Mad.
  7. A surprising amount of people don’t know to do this. Mad.