SlideShare a Scribd company logo
1 of 68
A better way 
to build apps. 
Laurențiu Macovei 
DotNetWise 
[25th of October 2014]
A better way 
to build apps. 
Laurențiu Macovei 
DotNetWise 
[25th of October 2014]
Agenda 
Where we are today 
Principles of Meteor 
Demo
NOVEMBER 6, 2014 
Worldwide 
Meteor Day 
A welcome party in your own city, hosted by Meteor developers 
all around the world. 
http://meteorday.com/
So what is Meteor anyways?
Meteor = Code + Community 
Meteor is an open source 
full stack framework that makes 
reactive real time applications really 
easy to build
Meteor = Code + Community 
Community is organizing people to 
accomplish great things 
Monthly Meteor Devshop is held in San 
Francisco and London (http://goo.gl/mWhWZC)
Today? 
Where are we?
6 nov 2011 
the first 
commit of 
Meteor 
11340 
commits 
ever 
since
Knockout JS 
Durandal JS 
Derby 
http://code.tutsplus.com/tutorials/important-considerations-when-building-single-page-web-apps--net-29356
Knockout JS 
Durandal JS 
Derby 
XML / REST / SOAP / POX / JSON / JSV / ...
XML / REST / SOAP / POX / JSON / JSV / ... Reactive 
Knockout JS 
Durandal JS 
Derby
Rective programming 
A programming paradigm oriented 
around data flows and the propagation of 
change.
Meteor Roadmap: 0.9.4 today 
1.0 will be released on 6th Nov 
Under consideration for 1.1+ 
Native Windows support 
Until then you can use vagrant 
https://github.com/shoebappa/vagrant-meteor-windows 
Other databases support than MongoDB 
roadmap.meteor.com
Stargazers (as of 14 oct 2014) 
Reactive 
D:WorkCodecamp2014CoffeesScript.png 
Reactive
000 Funding 
...not only has a team of dedicated and capable 
engineers with a vision for changing the world 
(nearly every team has that), 
but it also has a lovely bank account: $11.2 
million in funding (hardly any team has that) 
http://goo.gl/Gnfcww
Nine principles of Meteor 
1. One language 
2. Simplicity === Productivity 
3. Data on the Wire 
4. Database Everywhere 
5. Latency Compensation 
6. Hot Code Pushes 
7. Embrace the Ecosystem 
8. Interoperability 
9. Smart packages 
10. Full Stack Reactivity
Nine principles of Meteor 
1. One language 
2. Simplicity === Productivity 
3. Data on the Wire 
4. Database Everywhere 
5. Latency Compensation 
6. Hot Code Pushes 
7. Embrace the Ecosystem 
8. Interoperability 
9. Smart packages 
10. Full Stack Reactivity
001 Pure Javascript 
Write your entire app in pure JavaScript.
001 Pure Javascript 
All the same APIs are available on the 
client and the server — including database 
APIs!
001 Pure Javascript 
All the same APIs are available on the 
client and the server — including database 
APIs!
001 Pure Javascript 
All the same APIs are available on the 
client and the server — including database 
APIs!
001 Traditional Stack vs Pure Javascript 
Client 
HTML, CSS, Javascript 
Server 
Programming Language, Database Access, Marshalling 
Language
001 Traditional Stack vs Pure Javascript 
Client 
HTML, CSS, Javascript 
Server 
Programming Language, Database Access, Marshalling 
Language
001 Meteor Stack embraces Pure Javascript 
Client 
HTML, CSS, Javascript, MiniMongo 
Server 
Javascript, Mongo
001 Pure Javascript 
https://meteorhacks.com/introduction-to-ddp.html
001 Pure Javascript 
Even MongoDB stores JSON documents 
and uses Javascript syntax to query, insert, 
update and delete data
002 Simplicity === Productivity 
One command to create an app 
meteor create awesome
002 Simplicity === Productivity 
One command to locally run your app 
meteor
002 Simplicity === Productivity 
One command to compile your entire 
application into a fully self-contained 
bundle 
meteor build
002 Simplicity === Productivity 
One command to deploy your app into 
the cloud 
meteor deploy awesome 
-> http://awesome.meteor.com
002 Simplicity === Productivity 
One command to run on premises: 
Unpack it anywhere there's node.js 
forever start bundle/main.js
003 Data on the Wire. 
Live page updates. 
„Apps need Templates, Templates need DATA”
003 Live page updates 
„Apps need Templates, Templates need DATA” 
Just write your templates.
003 Data on the wire. 
They automatically update when data in 
the database changes
003 Data on the wire. 
Supports any templating language. 
(But as of 0.9.4 only ships with Blaze)
003 Data on the wire. 
Supports any templating language. 
(But as of 0.9.4 only ships with Blaze) 
Jade, Knockout and Famo.us are 
community supported.
003 Data on the wire. 
Live page updates – KO example
004 Database Everywhere. 
Clean, powerful data synchronization. 
Write your client code as if it were 
running on the server and had direct 
access to the database.
004 Database Everywhere. 
Write your client code as if it were running on the server 
and had direct access to the database.
004 Database Everywhere. 
Publish / Subscribe mechanism
004 Database Everywhere. 
Publish / Subscribe mechanism
004 Database Everywhere. 
Publish / Subscribe mechanism
004 Database Everywhere. 
Publish / Subscribe mechanism
004 Database Everywhere. 
The code itself is your API. 
No more loading your data from REST 
endpoints.
005 Latency compensation. 
When a user makes a change, their 
screen updates immediately — no 
waiting for the server.
005 Latency compensation. 
In a traditional app, the client does an 
action and waits for the server to respond. 
Wait time increases gradually with the 
server load. 
Traditional
005 Latency compensation. 
When a user makes a change, their screen updates 
immediately — no waiting for the server. 
With latency Traditional compensation
005 Latency compensation. 
If the server rejects their request 
–or– executes it differently 
The client is patched up with what actually 
happened.
006 Hot Code Pushes. 
Update your app while users are 
connected without disturbing them.
006 Hot Code Pushes. 
When you push a new version, the new 
code is seamlessly injected into each 
browser frame in which the app is open.
006 Hot Code Pushes. 
Supports mobile platforms too with 
Cordova / Phonegap: 
meteor add platform android 
meteor add platform ios
006 Hot Code Pushes. 
Yes! Apple allows hot code pushes in IOS 
& AppStore. 
Although, LocalStorage is limited to 5MB!
007 Embrace the Ecosystem. 
Meteor is open source and integrates, 
rather than replaces, existing open 
source tools and frameworks.
007 Embrace the Ecosystem. 
Meteor integrates with: 
 open source popular examples: 
Angular https://medium.com/@zfxuan/the-wonderful-duo-using-meteor-and-angularjs-together-4d603a4651bf 
Famo.us https://www.youtube.com/watch?v=bmd-cXSGQAA 
Polymer https://github.com/ecwyne/meteor-polymer 
 officially: 
Velocity – Unit Testing for Meteor using 
jasmine 
mocha 
selenium
008 Interoperability. 
You can connect anything to Meteor, from native 
mobile apps to legacy databases to Arduinos. 
Just implement the simple DDP (Distributed Data 
Protocol). 
http://www.meteorpedia.com/read/DDP_Clients
009 Smart Packages. 
Meteor's Smart Packages are actually little programs that 
can inject code into the client or the server, or even hook 
into the bundler to preprocess your source. 
https://atmospherejs.com 
meteor add iron:router 
Some examples: 
iron:router 
accounts-ui 
less 
spiderable – enable SEO to your site
Resources 
Beginners 
discovermeteor.com 
Best meteor resources 
I’ve found 
Meteor Tips 
30 Days with Meteor 
Discover Meteor 
Meteor Hacks 
Gentlenode 
meteor.hackpad.com 
yauh.de 
javascriptissexy.com 
andrewscala.com/meteor 
meteortuts.com 
differential.io 
Meteor cookbook 
Meteor Academy
Is it a better way to build apps? 
1. Your applications are real-time by 
default. 
2. You can develop with just one language. 
3. The community is extremely supportive.
Is it a better way to build apps? 
4. You can save a lot of time with smart 
packages. 
5. It’s optimized for developer happiness. 
6. It’s friendly to beginner developers. 
7. It’s ahead of the tech curve.
Q & A 
The End of Dinosaurs happened 
because of [a] Meteor 
See you @Meteor Devshop on 6th Nov 
meetup.com/Meteor-Iasi
kadira.io
Telescope 
https://meteorhacks.com/profiling-a-meteor-app-telescope.html

More Related Content

What's hot

Java Microservices with Spring Boot and Spring Cloud - Denver JUG 2019
Java Microservices with Spring Boot and Spring Cloud - Denver JUG 2019Java Microservices with Spring Boot and Spring Cloud - Denver JUG 2019
Java Microservices with Spring Boot and Spring Cloud - Denver JUG 2019Matt Raible
 
Front End Development for Backend Developers - GIDS 2019
Front End Development for Backend Developers - GIDS 2019Front End Development for Backend Developers - GIDS 2019
Front End Development for Backend Developers - GIDS 2019Matt Raible
 
The Happy Path: Migration Strategies for Node.js
The Happy Path: Migration Strategies for Node.jsThe Happy Path: Migration Strategies for Node.js
The Happy Path: Migration Strategies for Node.jsNicholas Jansma
 
Spring Boot APIs and Angular Apps: Get Hip with JHipster! KCDC 2019
Spring Boot APIs and Angular Apps: Get Hip with JHipster! KCDC 2019Spring Boot APIs and Angular Apps: Get Hip with JHipster! KCDC 2019
Spring Boot APIs and Angular Apps: Get Hip with JHipster! KCDC 2019Matt Raible
 
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13Fred Sauer
 
Spring Boot and Microservices
Spring Boot and MicroservicesSpring Boot and Microservices
Spring Boot and Microservicesseges
 
Advanced Spring Boot with Consul
Advanced Spring Boot with ConsulAdvanced Spring Boot with Consul
Advanced Spring Boot with ConsulVMware Tanzu
 
Hybrid Apps (Native + Web) via QtWebKit
Hybrid Apps (Native + Web) via QtWebKitHybrid Apps (Native + Web) via QtWebKit
Hybrid Apps (Native + Web) via QtWebKitAriya Hidayat
 
Microservices for the Masses with Spring Boot, JHipster, and OAuth - Utah JUG...
Microservices for the Masses with Spring Boot, JHipster, and OAuth - Utah JUG...Microservices for the Masses with Spring Boot, JHipster, and OAuth - Utah JUG...
Microservices for the Masses with Spring Boot, JHipster, and OAuth - Utah JUG...Matt Raible
 
Front End Development for Back End Java Developers - Jfokus 2020
Front End Development for Back End Java Developers - Jfokus 2020Front End Development for Back End Java Developers - Jfokus 2020
Front End Development for Back End Java Developers - Jfokus 2020Matt Raible
 
Scaling mobile testing on AWS: Emulators all the way down
Scaling mobile testing on AWS: Emulators all the way downScaling mobile testing on AWS: Emulators all the way down
Scaling mobile testing on AWS: Emulators all the way downKim Moir
 
Stéphane Nicoll and Madhura Bhave at SpringOne Platform 2017
Stéphane Nicoll and Madhura Bhave at SpringOne Platform 2017Stéphane Nicoll and Madhura Bhave at SpringOne Platform 2017
Stéphane Nicoll and Madhura Bhave at SpringOne Platform 2017VMware Tanzu
 
Distributed Systems at Scale: Reducing the Fail
Distributed Systems at Scale:  Reducing the FailDistributed Systems at Scale:  Reducing the Fail
Distributed Systems at Scale: Reducing the FailKim Moir
 
Spring Booted, But... @JCConf 16', Taiwan
Spring Booted, But... @JCConf 16', TaiwanSpring Booted, But... @JCConf 16', Taiwan
Spring Booted, But... @JCConf 16', TaiwanPei-Tang Huang
 
Bootiful Development with Spring Boot and React - Richmond JUG 2018
Bootiful Development with Spring Boot and React - Richmond JUG 2018Bootiful Development with Spring Boot and React - Richmond JUG 2018
Bootiful Development with Spring Boot and React - Richmond JUG 2018Matt Raible
 
Spark IT 2011 - Java EE 6 Workshop
Spark IT 2011 - Java EE 6 WorkshopSpark IT 2011 - Java EE 6 Workshop
Spark IT 2011 - Java EE 6 WorkshopArun Gupta
 
JAX-RS JavaOne Hyderabad, India 2011
JAX-RS JavaOne Hyderabad, India 2011JAX-RS JavaOne Hyderabad, India 2011
JAX-RS JavaOne Hyderabad, India 2011Shreedhar Ganapathy
 
Choosing a Java Web Framework
Choosing a Java Web FrameworkChoosing a Java Web Framework
Choosing a Java Web FrameworkWill Iverson
 

What's hot (20)

Java Microservices with Spring Boot and Spring Cloud - Denver JUG 2019
Java Microservices with Spring Boot and Spring Cloud - Denver JUG 2019Java Microservices with Spring Boot and Spring Cloud - Denver JUG 2019
Java Microservices with Spring Boot and Spring Cloud - Denver JUG 2019
 
Front End Development for Backend Developers - GIDS 2019
Front End Development for Backend Developers - GIDS 2019Front End Development for Backend Developers - GIDS 2019
Front End Development for Backend Developers - GIDS 2019
 
The Happy Path: Migration Strategies for Node.js
The Happy Path: Migration Strategies for Node.jsThe Happy Path: Migration Strategies for Node.js
The Happy Path: Migration Strategies for Node.js
 
Spring Boot APIs and Angular Apps: Get Hip with JHipster! KCDC 2019
Spring Boot APIs and Angular Apps: Get Hip with JHipster! KCDC 2019Spring Boot APIs and Angular Apps: Get Hip with JHipster! KCDC 2019
Spring Boot APIs and Angular Apps: Get Hip with JHipster! KCDC 2019
 
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
 
Spring Boot and Microservices
Spring Boot and MicroservicesSpring Boot and Microservices
Spring Boot and Microservices
 
Advanced Spring Boot with Consul
Advanced Spring Boot with ConsulAdvanced Spring Boot with Consul
Advanced Spring Boot with Consul
 
Hybrid Apps (Native + Web) via QtWebKit
Hybrid Apps (Native + Web) via QtWebKitHybrid Apps (Native + Web) via QtWebKit
Hybrid Apps (Native + Web) via QtWebKit
 
Microservices for the Masses with Spring Boot, JHipster, and OAuth - Utah JUG...
Microservices for the Masses with Spring Boot, JHipster, and OAuth - Utah JUG...Microservices for the Masses with Spring Boot, JHipster, and OAuth - Utah JUG...
Microservices for the Masses with Spring Boot, JHipster, and OAuth - Utah JUG...
 
Front End Development for Back End Java Developers - Jfokus 2020
Front End Development for Back End Java Developers - Jfokus 2020Front End Development for Back End Java Developers - Jfokus 2020
Front End Development for Back End Java Developers - Jfokus 2020
 
Scaling mobile testing on AWS: Emulators all the way down
Scaling mobile testing on AWS: Emulators all the way downScaling mobile testing on AWS: Emulators all the way down
Scaling mobile testing on AWS: Emulators all the way down
 
Spring boot
Spring bootSpring boot
Spring boot
 
Stéphane Nicoll and Madhura Bhave at SpringOne Platform 2017
Stéphane Nicoll and Madhura Bhave at SpringOne Platform 2017Stéphane Nicoll and Madhura Bhave at SpringOne Platform 2017
Stéphane Nicoll and Madhura Bhave at SpringOne Platform 2017
 
Distributed Systems at Scale: Reducing the Fail
Distributed Systems at Scale:  Reducing the FailDistributed Systems at Scale:  Reducing the Fail
Distributed Systems at Scale: Reducing the Fail
 
Spring Booted, But... @JCConf 16', Taiwan
Spring Booted, But... @JCConf 16', TaiwanSpring Booted, But... @JCConf 16', Taiwan
Spring Booted, But... @JCConf 16', Taiwan
 
Bootiful Development with Spring Boot and React - Richmond JUG 2018
Bootiful Development with Spring Boot and React - Richmond JUG 2018Bootiful Development with Spring Boot and React - Richmond JUG 2018
Bootiful Development with Spring Boot and React - Richmond JUG 2018
 
Spring Boot
Spring BootSpring Boot
Spring Boot
 
Spark IT 2011 - Java EE 6 Workshop
Spark IT 2011 - Java EE 6 WorkshopSpark IT 2011 - Java EE 6 Workshop
Spark IT 2011 - Java EE 6 Workshop
 
JAX-RS JavaOne Hyderabad, India 2011
JAX-RS JavaOne Hyderabad, India 2011JAX-RS JavaOne Hyderabad, India 2011
JAX-RS JavaOne Hyderabad, India 2011
 
Choosing a Java Web Framework
Choosing a Java Web FrameworkChoosing a Java Web Framework
Choosing a Java Web Framework
 

Viewers also liked

Cristian leon as a ba i want to write clear stories
Cristian leon   as a ba i want to write clear storiesCristian leon   as a ba i want to write clear stories
Cristian leon as a ba i want to write clear storiesCodecamp Romania
 
Iasi code camp 20 april 2013 playing buggy-bogdan-alecu
Iasi code camp 20 april 2013 playing buggy-bogdan-alecuIasi code camp 20 april 2013 playing buggy-bogdan-alecu
Iasi code camp 20 april 2013 playing buggy-bogdan-alecuCodecamp Romania
 
Vlad zelinschi optimizing the critical rendering path
Vlad zelinschi   optimizing the critical rendering pathVlad zelinschi   optimizing the critical rendering path
Vlad zelinschi optimizing the critical rendering pathCodecamp Romania
 
Operating Standards
Operating StandardsOperating Standards
Operating StandardsLauren
 
Iasi code camp 20 april 2013 iulian dogariu - scala
Iasi code camp 20 april 2013   iulian dogariu - scalaIasi code camp 20 april 2013   iulian dogariu - scala
Iasi code camp 20 april 2013 iulian dogariu - scalaCodecamp Romania
 
Photoshop training
Photoshop trainingPhotoshop training
Photoshop trainingLauren
 

Viewers also liked (6)

Cristian leon as a ba i want to write clear stories
Cristian leon   as a ba i want to write clear storiesCristian leon   as a ba i want to write clear stories
Cristian leon as a ba i want to write clear stories
 
Iasi code camp 20 april 2013 playing buggy-bogdan-alecu
Iasi code camp 20 april 2013 playing buggy-bogdan-alecuIasi code camp 20 april 2013 playing buggy-bogdan-alecu
Iasi code camp 20 april 2013 playing buggy-bogdan-alecu
 
Vlad zelinschi optimizing the critical rendering path
Vlad zelinschi   optimizing the critical rendering pathVlad zelinschi   optimizing the critical rendering path
Vlad zelinschi optimizing the critical rendering path
 
Operating Standards
Operating StandardsOperating Standards
Operating Standards
 
Iasi code camp 20 april 2013 iulian dogariu - scala
Iasi code camp 20 april 2013   iulian dogariu - scalaIasi code camp 20 april 2013   iulian dogariu - scala
Iasi code camp 20 april 2013 iulian dogariu - scala
 
Photoshop training
Photoshop trainingPhotoshop training
Photoshop training
 

Similar to Laurentiu macovei meteor. a better way of building apps

Meteor Mobile App Development
Meteor Mobile App DevelopmentMeteor Mobile App Development
Meteor Mobile App DevelopmentSanjay Kumar
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsAmazon Web Services
 
Meteor intro-2015
Meteor intro-2015Meteor intro-2015
Meteor intro-2015MeteorJS
 
Meteor presentation
Meteor presentationMeteor presentation
Meteor presentationNicu Gudumac
 
Meteoro de pegasuus! Desenvolvendo aplicações realtime com MeteorJS
Meteoro de pegasuus! Desenvolvendo aplicações realtime com MeteorJSMeteoro de pegasuus! Desenvolvendo aplicações realtime com MeteorJS
Meteoro de pegasuus! Desenvolvendo aplicações realtime com MeteorJSJulio Antonio Mendonça de Marins
 
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 allMarc Dutoo
 
OCCIware Project at EclipseCon France 2016, by Marc Dutoo, Open Wide
OCCIware Project at EclipseCon France 2016, by Marc Dutoo, Open WideOCCIware Project at EclipseCon France 2016, by Marc Dutoo, Open Wide
OCCIware Project at EclipseCon France 2016, by Marc Dutoo, Open WideOCCIware
 
JCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptxJCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptxGrace Jansen
 
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud EnvironmentsTools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud EnvironmentsVMware Tanzu
 
Cannibalising The Google App Engine
Cannibalising The  Google  App  EngineCannibalising The  Google  App  Engine
Cannibalising The Google App Enginecatherinewall
 
Plone FSR
Plone FSRPlone FSR
Plone FSRfulv
 
Building a full-stack app with Golang and Google Cloud Platform in one week
Building a full-stack app with Golang and Google Cloud Platform in one weekBuilding a full-stack app with Golang and Google Cloud Platform in one week
Building a full-stack app with Golang and Google Cloud Platform in one weekDr. Felix Raab
 
Native Android Development with Spring
Native Android Development with SpringNative Android Development with Spring
Native Android Development with SpringRoy Clarkson
 
How to build streaming data pipelines with Akka Streams, Flink, and Spark usi...
How to build streaming data pipelines with Akka Streams, Flink, and Spark usi...How to build streaming data pipelines with Akka Streams, Flink, and Spark usi...
How to build streaming data pipelines with Akka Streams, Flink, and Spark usi...Lightbend
 
Webinar by ZNetLive & Plesk- Winning the Game for WebOps and DevOps
Webinar by ZNetLive & Plesk- Winning the Game for WebOps and DevOps Webinar by ZNetLive & Plesk- Winning the Game for WebOps and DevOps
Webinar by ZNetLive & Plesk- Winning the Game for WebOps and DevOps ZNetLive
 

Similar to Laurentiu macovei meteor. a better way of building apps (20)

Meteor Mobile App Development
Meteor Mobile App DevelopmentMeteor Mobile App Development
Meteor Mobile App Development
 
Meteor Introduction - Ashish
Meteor Introduction - AshishMeteor Introduction - Ashish
Meteor Introduction - Ashish
 
Understanding meteor
Understanding meteorUnderstanding meteor
Understanding meteor
 
Why meteor
Why meteorWhy meteor
Why meteor
 
Codename one
Codename oneCodename one
Codename one
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
 
Node.js Tools Ecosystem
Node.js Tools EcosystemNode.js Tools Ecosystem
Node.js Tools Ecosystem
 
Meteor intro-2015
Meteor intro-2015Meteor intro-2015
Meteor intro-2015
 
Meteor presentation
Meteor presentationMeteor presentation
Meteor presentation
 
Meteoro de pegasuus! Desenvolvendo aplicações realtime com MeteorJS
Meteoro de pegasuus! Desenvolvendo aplicações realtime com MeteorJSMeteoro de pegasuus! Desenvolvendo aplicações realtime com MeteorJS
Meteoro de pegasuus! Desenvolvendo aplicações realtime com MeteorJS
 
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
 
OCCIware Project at EclipseCon France 2016, by Marc Dutoo, Open Wide
OCCIware Project at EclipseCon France 2016, by Marc Dutoo, Open WideOCCIware Project at EclipseCon France 2016, by Marc Dutoo, Open Wide
OCCIware Project at EclipseCon France 2016, by Marc Dutoo, Open Wide
 
JCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptxJCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptx
 
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud EnvironmentsTools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
 
Cannibalising The Google App Engine
Cannibalising The  Google  App  EngineCannibalising The  Google  App  Engine
Cannibalising The Google App Engine
 
Plone FSR
Plone FSRPlone FSR
Plone FSR
 
Building a full-stack app with Golang and Google Cloud Platform in one week
Building a full-stack app with Golang and Google Cloud Platform in one weekBuilding a full-stack app with Golang and Google Cloud Platform in one week
Building a full-stack app with Golang and Google Cloud Platform in one week
 
Native Android Development with Spring
Native Android Development with SpringNative Android Development with Spring
Native Android Development with Spring
 
How to build streaming data pipelines with Akka Streams, Flink, and Spark usi...
How to build streaming data pipelines with Akka Streams, Flink, and Spark usi...How to build streaming data pipelines with Akka Streams, Flink, and Spark usi...
How to build streaming data pipelines with Akka Streams, Flink, and Spark usi...
 
Webinar by ZNetLive & Plesk- Winning the Game for WebOps and DevOps
Webinar by ZNetLive & Plesk- Winning the Game for WebOps and DevOps Webinar by ZNetLive & Plesk- Winning the Game for WebOps and DevOps
Webinar by ZNetLive & Plesk- Winning the Game for WebOps and DevOps
 

More from Codecamp Romania

Cezar chitac the edge of experience
Cezar chitac   the edge of experienceCezar chitac   the edge of experience
Cezar chitac the edge of experienceCodecamp Romania
 
Business analysis techniques exercise your 6-pack
Business analysis techniques   exercise your 6-packBusiness analysis techniques   exercise your 6-pack
Business analysis techniques exercise your 6-packCodecamp Romania
 
Bpm company code camp - configuration or coding with pega
Bpm company   code camp - configuration or coding with pegaBpm company   code camp - configuration or coding with pega
Bpm company code camp - configuration or coding with pegaCodecamp Romania
 
Andrei prisacaru takingtheunitteststothedatabase
Andrei prisacaru takingtheunitteststothedatabaseAndrei prisacaru takingtheunitteststothedatabase
Andrei prisacaru takingtheunitteststothedatabaseCodecamp Romania
 
2015 dan ardelean develop for windows 10
2015 dan ardelean   develop for windows 10 2015 dan ardelean   develop for windows 10
2015 dan ardelean develop for windows 10 Codecamp Romania
 
The case for continuous delivery
The case for continuous deliveryThe case for continuous delivery
The case for continuous deliveryCodecamp Romania
 
Stefan stolniceanu spritekit, 2 d or not 2d
Stefan stolniceanu   spritekit, 2 d or not 2dStefan stolniceanu   spritekit, 2 d or not 2d
Stefan stolniceanu spritekit, 2 d or not 2dCodecamp Romania
 
Sizing epics tales from an agile kingdom
Sizing epics   tales from an agile kingdomSizing epics   tales from an agile kingdom
Sizing epics tales from an agile kingdomCodecamp Romania
 
Raluca butnaru corina cilibiu the unknown universe of a product and the cer...
Raluca butnaru corina cilibiu   the unknown universe of a product and the cer...Raluca butnaru corina cilibiu   the unknown universe of a product and the cer...
Raluca butnaru corina cilibiu the unknown universe of a product and the cer...Codecamp Romania
 
Parallel & async processing using tpl dataflow
Parallel & async processing using tpl dataflowParallel & async processing using tpl dataflow
Parallel & async processing using tpl dataflowCodecamp Romania
 
Material design screen transitions in android
Material design screen transitions in androidMaterial design screen transitions in android
Material design screen transitions in androidCodecamp Romania
 
Kickstart your own freelancing career
Kickstart your own freelancing careerKickstart your own freelancing career
Kickstart your own freelancing careerCodecamp Romania
 
Ionut grecu the soft stuff is the hard stuff. the agile soft skills toolkit
Ionut grecu   the soft stuff is the hard stuff. the agile soft skills toolkitIonut grecu   the soft stuff is the hard stuff. the agile soft skills toolkit
Ionut grecu the soft stuff is the hard stuff. the agile soft skills toolkitCodecamp Romania
 
Diana antohi me against myself or how to fail and move forward
Diana antohi   me against myself  or how to fail  and move forwardDiana antohi   me against myself  or how to fail  and move forward
Diana antohi me against myself or how to fail and move forwardCodecamp Romania
 

More from Codecamp Romania (20)

Cezar chitac the edge of experience
Cezar chitac   the edge of experienceCezar chitac   the edge of experience
Cezar chitac the edge of experience
 
Cloud powered search
Cloud powered searchCloud powered search
Cloud powered search
 
Ccp
CcpCcp
Ccp
 
Business analysis techniques exercise your 6-pack
Business analysis techniques   exercise your 6-packBusiness analysis techniques   exercise your 6-pack
Business analysis techniques exercise your 6-pack
 
Bpm company code camp - configuration or coding with pega
Bpm company   code camp - configuration or coding with pegaBpm company   code camp - configuration or coding with pega
Bpm company code camp - configuration or coding with pega
 
Andrei prisacaru takingtheunitteststothedatabase
Andrei prisacaru takingtheunitteststothedatabaseAndrei prisacaru takingtheunitteststothedatabase
Andrei prisacaru takingtheunitteststothedatabase
 
Agility and life
Agility and lifeAgility and life
Agility and life
 
2015 dan ardelean develop for windows 10
2015 dan ardelean   develop for windows 10 2015 dan ardelean   develop for windows 10
2015 dan ardelean develop for windows 10
 
The bigrewrite
The bigrewriteThe bigrewrite
The bigrewrite
 
The case for continuous delivery
The case for continuous deliveryThe case for continuous delivery
The case for continuous delivery
 
Stefan stolniceanu spritekit, 2 d or not 2d
Stefan stolniceanu   spritekit, 2 d or not 2dStefan stolniceanu   spritekit, 2 d or not 2d
Stefan stolniceanu spritekit, 2 d or not 2d
 
Sizing epics tales from an agile kingdom
Sizing epics   tales from an agile kingdomSizing epics   tales from an agile kingdom
Sizing epics tales from an agile kingdom
 
Scale net apps in aws
Scale net apps in awsScale net apps in aws
Scale net apps in aws
 
Raluca butnaru corina cilibiu the unknown universe of a product and the cer...
Raluca butnaru corina cilibiu   the unknown universe of a product and the cer...Raluca butnaru corina cilibiu   the unknown universe of a product and the cer...
Raluca butnaru corina cilibiu the unknown universe of a product and the cer...
 
Parallel & async processing using tpl dataflow
Parallel & async processing using tpl dataflowParallel & async processing using tpl dataflow
Parallel & async processing using tpl dataflow
 
Material design screen transitions in android
Material design screen transitions in androidMaterial design screen transitions in android
Material design screen transitions in android
 
Kickstart your own freelancing career
Kickstart your own freelancing careerKickstart your own freelancing career
Kickstart your own freelancing career
 
Ionut grecu the soft stuff is the hard stuff. the agile soft skills toolkit
Ionut grecu   the soft stuff is the hard stuff. the agile soft skills toolkitIonut grecu   the soft stuff is the hard stuff. the agile soft skills toolkit
Ionut grecu the soft stuff is the hard stuff. the agile soft skills toolkit
 
Ecma6 in the wild
Ecma6 in the wildEcma6 in the wild
Ecma6 in the wild
 
Diana antohi me against myself or how to fail and move forward
Diana antohi   me against myself  or how to fail  and move forwardDiana antohi   me against myself  or how to fail  and move forward
Diana antohi me against myself or how to fail and move forward
 

Recently uploaded

Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 

Recently uploaded (20)

Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 

Laurentiu macovei meteor. a better way of building apps

  • 1. A better way to build apps. Laurențiu Macovei DotNetWise [25th of October 2014]
  • 2. A better way to build apps. Laurențiu Macovei DotNetWise [25th of October 2014]
  • 3.
  • 4. Agenda Where we are today Principles of Meteor Demo
  • 5. NOVEMBER 6, 2014 Worldwide Meteor Day A welcome party in your own city, hosted by Meteor developers all around the world. http://meteorday.com/
  • 6. So what is Meteor anyways?
  • 7. Meteor = Code + Community Meteor is an open source full stack framework that makes reactive real time applications really easy to build
  • 8. Meteor = Code + Community Community is organizing people to accomplish great things Monthly Meteor Devshop is held in San Francisco and London (http://goo.gl/mWhWZC)
  • 10. 6 nov 2011 the first commit of Meteor 11340 commits ever since
  • 11. Knockout JS Durandal JS Derby http://code.tutsplus.com/tutorials/important-considerations-when-building-single-page-web-apps--net-29356
  • 12. Knockout JS Durandal JS Derby XML / REST / SOAP / POX / JSON / JSV / ...
  • 13. XML / REST / SOAP / POX / JSON / JSV / ... Reactive Knockout JS Durandal JS Derby
  • 14. Rective programming A programming paradigm oriented around data flows and the propagation of change.
  • 15.
  • 16. Meteor Roadmap: 0.9.4 today 1.0 will be released on 6th Nov Under consideration for 1.1+ Native Windows support Until then you can use vagrant https://github.com/shoebappa/vagrant-meteor-windows Other databases support than MongoDB roadmap.meteor.com
  • 17. Stargazers (as of 14 oct 2014) Reactive D:WorkCodecamp2014CoffeesScript.png Reactive
  • 18. 000 Funding ...not only has a team of dedicated and capable engineers with a vision for changing the world (nearly every team has that), but it also has a lovely bank account: $11.2 million in funding (hardly any team has that) http://goo.gl/Gnfcww
  • 19. Nine principles of Meteor 1. One language 2. Simplicity === Productivity 3. Data on the Wire 4. Database Everywhere 5. Latency Compensation 6. Hot Code Pushes 7. Embrace the Ecosystem 8. Interoperability 9. Smart packages 10. Full Stack Reactivity
  • 20. Nine principles of Meteor 1. One language 2. Simplicity === Productivity 3. Data on the Wire 4. Database Everywhere 5. Latency Compensation 6. Hot Code Pushes 7. Embrace the Ecosystem 8. Interoperability 9. Smart packages 10. Full Stack Reactivity
  • 21. 001 Pure Javascript Write your entire app in pure JavaScript.
  • 22.
  • 23. 001 Pure Javascript All the same APIs are available on the client and the server — including database APIs!
  • 24. 001 Pure Javascript All the same APIs are available on the client and the server — including database APIs!
  • 25. 001 Pure Javascript All the same APIs are available on the client and the server — including database APIs!
  • 26. 001 Traditional Stack vs Pure Javascript Client HTML, CSS, Javascript Server Programming Language, Database Access, Marshalling Language
  • 27. 001 Traditional Stack vs Pure Javascript Client HTML, CSS, Javascript Server Programming Language, Database Access, Marshalling Language
  • 28. 001 Meteor Stack embraces Pure Javascript Client HTML, CSS, Javascript, MiniMongo Server Javascript, Mongo
  • 29. 001 Pure Javascript https://meteorhacks.com/introduction-to-ddp.html
  • 30. 001 Pure Javascript Even MongoDB stores JSON documents and uses Javascript syntax to query, insert, update and delete data
  • 31. 002 Simplicity === Productivity One command to create an app meteor create awesome
  • 32. 002 Simplicity === Productivity One command to locally run your app meteor
  • 33. 002 Simplicity === Productivity One command to compile your entire application into a fully self-contained bundle meteor build
  • 34. 002 Simplicity === Productivity One command to deploy your app into the cloud meteor deploy awesome -> http://awesome.meteor.com
  • 35. 002 Simplicity === Productivity One command to run on premises: Unpack it anywhere there's node.js forever start bundle/main.js
  • 36. 003 Data on the Wire. Live page updates. „Apps need Templates, Templates need DATA”
  • 37. 003 Live page updates „Apps need Templates, Templates need DATA” Just write your templates.
  • 38. 003 Data on the wire. They automatically update when data in the database changes
  • 39. 003 Data on the wire. Supports any templating language. (But as of 0.9.4 only ships with Blaze)
  • 40. 003 Data on the wire. Supports any templating language. (But as of 0.9.4 only ships with Blaze) Jade, Knockout and Famo.us are community supported.
  • 41. 003 Data on the wire. Live page updates – KO example
  • 42. 004 Database Everywhere. Clean, powerful data synchronization. Write your client code as if it were running on the server and had direct access to the database.
  • 43. 004 Database Everywhere. Write your client code as if it were running on the server and had direct access to the database.
  • 44. 004 Database Everywhere. Publish / Subscribe mechanism
  • 45. 004 Database Everywhere. Publish / Subscribe mechanism
  • 46. 004 Database Everywhere. Publish / Subscribe mechanism
  • 47. 004 Database Everywhere. Publish / Subscribe mechanism
  • 48. 004 Database Everywhere. The code itself is your API. No more loading your data from REST endpoints.
  • 49. 005 Latency compensation. When a user makes a change, their screen updates immediately — no waiting for the server.
  • 50. 005 Latency compensation. In a traditional app, the client does an action and waits for the server to respond. Wait time increases gradually with the server load. Traditional
  • 51. 005 Latency compensation. When a user makes a change, their screen updates immediately — no waiting for the server. With latency Traditional compensation
  • 52. 005 Latency compensation. If the server rejects their request –or– executes it differently The client is patched up with what actually happened.
  • 53. 006 Hot Code Pushes. Update your app while users are connected without disturbing them.
  • 54. 006 Hot Code Pushes. When you push a new version, the new code is seamlessly injected into each browser frame in which the app is open.
  • 55. 006 Hot Code Pushes. Supports mobile platforms too with Cordova / Phonegap: meteor add platform android meteor add platform ios
  • 56. 006 Hot Code Pushes. Yes! Apple allows hot code pushes in IOS & AppStore. Although, LocalStorage is limited to 5MB!
  • 57. 007 Embrace the Ecosystem. Meteor is open source and integrates, rather than replaces, existing open source tools and frameworks.
  • 58. 007 Embrace the Ecosystem. Meteor integrates with:  open source popular examples: Angular https://medium.com/@zfxuan/the-wonderful-duo-using-meteor-and-angularjs-together-4d603a4651bf Famo.us https://www.youtube.com/watch?v=bmd-cXSGQAA Polymer https://github.com/ecwyne/meteor-polymer  officially: Velocity – Unit Testing for Meteor using jasmine mocha selenium
  • 59. 008 Interoperability. You can connect anything to Meteor, from native mobile apps to legacy databases to Arduinos. Just implement the simple DDP (Distributed Data Protocol). http://www.meteorpedia.com/read/DDP_Clients
  • 60. 009 Smart Packages. Meteor's Smart Packages are actually little programs that can inject code into the client or the server, or even hook into the bundler to preprocess your source. https://atmospherejs.com meteor add iron:router Some examples: iron:router accounts-ui less spiderable – enable SEO to your site
  • 61.
  • 62. Resources Beginners discovermeteor.com Best meteor resources I’ve found Meteor Tips 30 Days with Meteor Discover Meteor Meteor Hacks Gentlenode meteor.hackpad.com yauh.de javascriptissexy.com andrewscala.com/meteor meteortuts.com differential.io Meteor cookbook Meteor Academy
  • 63. Is it a better way to build apps? 1. Your applications are real-time by default. 2. You can develop with just one language. 3. The community is extremely supportive.
  • 64. Is it a better way to build apps? 4. You can save a lot of time with smart packages. 5. It’s optimized for developer happiness. 6. It’s friendly to beginner developers. 7. It’s ahead of the tech curve.
  • 65. Q & A The End of Dinosaurs happened because of [a] Meteor See you @Meteor Devshop on 6th Nov meetup.com/Meteor-Iasi
  • 66.

Editor's Notes

  1. Salut, Sunt Laurenţiu şi vreau să vă vorbesc despre un nou mod de a creea aplicaţii. Aş vrea să descoperim împreună dacă este un mod mai bun de a construii aplicaţii. Acest slide este puţin incorect deoarece Meteor nu este un mod „static”, ci unul „dinamic”
  2. Acum că am fixat bug-ul să trecem la treabă.
  3. Astăzi vom arunca o privire de ansablu asupra - Unde suntem Câteva principii din Meteor
  4. Pe 6 noiembrie sărbătorim ziua internaţională METEOR. Programatori din toată lumea se întâlnesc în oraşele lor şi îşi împărtăşesc cunoştinţe şi experienţe legate de METEOR. Vă aştept atunci începând cu ora 18:30 la sediul MAXCODE.
  5. Bun, dar totuşi ce este Meteor până la urmă?
  6. Pe scurt Meteor egal Cod + Comunitate Meteor este o platformă completă, open source, cu ajutorul căreia putem să facem aplicaţii care se actualizează în timp real şi care sunt uşor de construit
  7. Comunitatea este foarte importantă pentru orice proiect. Fără comunitate, sunt şanse minime ca acesta să fie adoptat. Cei de la Meteor au înţeles asta şi din 2013, în fiecare lună se organizează întâlniri cu oamenii din comunitate, unde fiecare vine să-şi împărtăsească experienţele. DevShop-ul oficial are loc în San Francisco, însă această mişcare a fost preluată de comunităţile din mai multe oraşe. Pe viitor, dacă există interes în comunitatea Ieşeană dorim şa avem şi noi un astfel de eveniment.
  8. Aşdar, unde suntem astăz?
  9. În mare, cam pe aici  Pe 6 noiembrie 2011 a fost publicat prima bucăţică de cod Meteor. Cam tot prin acea perioadă au apărut şi multe framework-uri în partea de client/javascript.
  10. Acuma din punct de vedere al ceea ce oferă aceste framework-uri, am ales câteva şi am încercat să le organizez. În stânga avem cele care nu oferă DataBinding, Apoi unele care oferă Two-Way data binding Apoi mai adăguă funcţionalităţi necesare aplicaţiilor: rute pe client, form handling etc. Aceste framewokr-uri există doar în partea de client. Meteor este un „full stack framework” adică coexistă atât pe client cât şi pe server. El ne oferă –end-to-end persistence– adică atât în colectarea datelor pe client cât şi trimiterea şi salvarea lor în baza de date.
  11. Aceste framework-uri de pe client ştiu să consume XML, REST, SOAP, JSON etc. Însă le lipseşte ceva. Un premiu pentru cine poate să ne spună ce anume?
  12. Desigur partea de Reactivity. În speţă, dacă datele se modifică pe server în baza de date, clienţii habar nu au până când se duc manual şi mai dau un click sau un refresh în browser. În afară de Meteor mai există şi alte framework-uri reactive, aici am puea menţiona Derby.
  13. Motivul pentru care Derby era puţin mai în spate, este vizibil în această comparaţie. În stânga avem cele mai elocvente framework-uri dintre cele de mai înainte. Pentru a înţelege amploarea acestor numere, în dreapta avem spre comparaţie câteva proiecte open source care nu sunt framework-uri. Spre exemplu, Angular este cel mai popular framework pentru partea de client. Este aproape la fel de popular ca jQuery sau Node. Însă nici Meteor nu este departe. În contrast, Twitter Bootstrap, Node şi jQuery sunt librăriile cu cele mai multe aprecieri pe Github.
  14. Majoritatea proiectelor open source au parte de o echipă solidă de ingineri însă tot majoritatea lor nu au parte de o finanţare serioasă. Meteor anunţa în 2012 că au reuşit să obţină finanţare de 11.2 milioane de doari!
  15. Acum că tot au pus dolarii la treabă, să discutăm despre principiile Meteor
  16. Acum că tot au pus dolarii la treabă, să discutăm despre principiile Meteor
  17. Scriem codul în Javascript, atât pe client cât şi pe server.
  18. Cum am spune noi Moldovenii: Javascript Javascript pisti tăt
  19. Aceleaşi bucăţi de cod pot fi disponibile atât pe client cât şi pe server
  20. .. Incluzând apelurile către baza de date. Spre exemplu: folosim exact acelaşi cod pentru a expune/accesa colecţia de „post-uri”
  21. şi exact acelaşi cod pentru a insera un post, fie de pe server fie de pe client.
  22. Un exemplu clasic poate fi, dintr-o bază de date relaţională, extragem rânduri şi coloane, le convertim în entităţi logice şi apoi le serializăm în JSON, XML etc.
  23. Un exemplu clasic poate fi, dintr-o bază de date relaţională, extragem rânduri şi coloane, le convertim în entităţi logice şi apoi le serializăm în JSON, XML etc.
  24. Acum să vedem cum ne ajută Meteor folosind acelaşi limbaj peste tot: Pe client scriem tot HTML, CSS şi Javascript însă acum avem access direct şi la baza de date folosind MiniMongo. Pe partea de server, codul este scris în Javascript şi datele sunt salvate în baza de date Mongo. În acest fel putem corela şi reutiliza codul de pe client la de pe server – un exemplu ar putea fi adăugarea validatorilor - acest cod este identic atât pe client cât şi pe server. MiniMongo este un API care este iarăşi un exemplu de cod care poate fi folosit atât pe client cât şi pe server. El se mulează exact peste sintaxa MongoDB.
  25. Dacă am diseca codul aplicaţiei noastre ar arăta cam aşa. Pe server codul rulează în Node Pe client avem HTML şi CSS Iar ambele împreună folosesc javascript şi au access la API-ul Meteor, MiniMongo şi protocolul DDP (Distributed Data Protocol) Eu nu am să intru în detalii despre DDP dar puteţi afla mai multe la acest link
  26. Vorbeam de MiniMongo că este cod javascript care ne ajută să aducem, inserăm, edităm sau ştergem date dintr-o bază de date MongoDB. Dar însăşi MongoDB este o bază de date care stochează documente JSON şi sintaxa acestuia este javascript (Mongo shell).
  27. Gata cu Javascript-ul, să trecem la principiul nr 2 Aplicaţiile au nevoie de (şabloane) template-uri. Template-urile au nevoie de date.
  28. În Meteor template-urile sunt declarative. Un exemplu: Aici, în body apelăm (sau randăm) template-ul myCoolTemplate, care va afişa un paragraf cu textul Hello world.
  29. În acest exemplu folosim o proprietate numită firstName. Dacă aceasta a fost populată dintr-un cursor miniMongo, template-ul aferent va fi automat actualizat când în altă parte a aplicaţiei cineva o actualizează folosind spre exemplu codul de mai sus.
  30. Într-o aplicaţie tradiţională, când utilizatorul face o acţiune, el trebuie să aştepte ca cererea să fie procesată de server înainte ca schimbările să se reflecte în interfaţă.
  31. Când utilizatorul adaugă spre exemplu un nou post, un request este iniţiat către server. Serverul va procesa cererea va insera o înregistrare în baza de date şi va răspunde utilizatorului care este noua pagină. Abia atunci utilizatorul va fi redirecţionat la noua pagină.
  32. Într-o aplicaţie meteor, utilizatorul nu trebuie să mai aştepte. Rezultatul acţiunii se reflectă în browser imediat. Cănd utilizatorul adaugă un post, acesta va vedea instant noua pagină postată. Meteor va detecta schimbările în partea de client şi le va trimite serverului. Server-ul va procesa adăugarea postului şi va răspunde cu „soluţionarea rezultatului”. De cele mai multe ori ce a trimis clientul este la fel cu ce va răspunde serverul, însă uneori serverul poate completa câmpuri adiţionale la adăugarea postului.