NOVA MEAN - Why the M in MEAN is a Significant Contributor to Its Success

A
Why the M in MEAN is a Significant
Contributor to Its Success
Presentation to NOVA Mean March 18, 2014
Jonathan M. Altman
jonathan@async.io | @async_io
https://async.io/ | https://github.com/jonathana
Tuesday, March 18, 2014
Me
•Founder, Async IO and InTheBin
•node.dc co-organizer
•Semi-regular speaker
•https://github.com/jonathana
•http://www.slideshare.net/async_io
Tuesday, March 18, 2014
I Have Never Given This
Presentation
Tuesday, March 18, 2014
4th Time Doing This Talk
•MongoDC 2011
•MongoDC 2012
•DevIgnition 2013
•NOVA Mean March, 2014
Tuesday, March 18, 2014
MongoDC 2011
•Node.js is cool
•It works well with Mongo
•Mongoose is available, but may not be buying you that much for
the overhead
•Showed with expressjs
Tuesday, March 18, 2014
MongoDC 2012
•MongoDB and nodejs are a productive combo for building apps
•With Express
•Mongoose is an easy choice
•Everyauth is a great way to do authentication
•Starter skeleton app
Tuesday, March 18, 2014
Then This Happened
•Valeri Karpov posted “The MEAN Stack: MongoDB, ExpressJS,
AngularJS and Node.js” in April 2013
•http://blog.mongodb.org/post/49262866911/the-mean-stack-
mongodb-expressjs-angularjs-and
Tuesday, March 18, 2014
DevIgnition 2013
•MEAN has “arrived”
•Covered a lot of why it is great, including the MongoDB part
•Did not get to show as much of the talk as I wanted, specifically
code
Tuesday, March 18, 2014
So Why Is Mongo Significant?
Tuesday, March 18, 2014
The “M” in MEAN
•M - MongoDB
•E - ExpressJS
•A - AngularJS
•N - Node.js
JSON(BSON)-
oriented noSQL
database engine
Tuesday, March 18, 2014
M is for MongoDB
•noSQL data storage engine
•Scalable, adaptable
•Document store of JSON (BSON)
data
•Fidelity: Angular, nodeJS, and
MongoDB all “speak” JSON
Tuesday, March 18, 2014
M is for MongoDB
•MongoDB database contains collections (tables)
•Collections contain BSON documents (“rows”),
but they are really documents
•Documents can nest other documents
•Documents in a collection can all have different
BSON keys in them
Tuesday, March 18, 2014
M is for MongoDB
[user@host ~]$ mongo
MongoDB shell version: 2.2.0
connecting to: test
> use campaign
switched to db campaign
> db.campaignusers.find({email:
"jonathan@recycli.st"})
{ "fullName" : "Jonathan", "email" :
"jonathan@recycli.st", "_id" : ObjectId
("50a40e11ea84d53c42000005"), "addMarketing" :
true, "__v" : 0 }
Tuesday, March 18, 2014
M Is Also For Mongoose
•Object Data Mapper (ODM) for MongoDB
•Costs some of the flexibility of the MongoDB
document store
•Start by using it
Tuesday, March 18, 2014
Put It Together and... MEAN it!
•Yeoman provides a great set of tools to get started
•There are also a bunch of seed repositories on
github to use. Google “MEAN github seed”
•Consider https://github.com/DaftMonk/generator-
angular-fullstack
•Wire in MongoDB
Tuesday, March 18, 2014
Tuesday, March 18, 2014
Tuesday, March 18, 2014
Example MEAN Site #1
Tuesday, March 18, 2014
Tuesday, March 18, 2014
Resources - MongoDB, Angular
• MongoDB Inc. post referencing MEAN: http://blog.mongodb.org/post/49262866911/the-mean-stack-
mongodb-expressjs-angularjs-and
• MongoDB: http://www.mongodb.org/ and the company behind MongoDB is at http://http://
www.mongodb.com/
• BSON: http://bsonspec.org/
• Mongoose: http://mongoosejs.com/
• AngularJS: http://angularjs.org/ and their tutorial at http://docs.angularjs.org/tutorial is highly recommended
• Slides from a talk at AngularDC on “Angular from Scratch”: http://www.slideshare.net/xmlilley/angular-
from-scratch
Tuesday, March 18, 2014
Resources - nodeJS, HTML5
• nodeJS: http://nodejs.org/
• npm (node package manager): https://npmjs.org/
• ExpressJS: http://expressjs.com/
• Good resource on technologies in HTML5: http://www.html5rocks.com/en/
Tuesday, March 18, 2014
Resources - Bootstrap, Yeoman
• Twitter bootstrap: http://getbootstrap.com/
• Yeoman: http://yeoman.io/
• Bower: http://bower.io/
• Grunt: http://gruntjs.com/
• Sass: http://sass-lang.com/
• Compass: http://compass-style.org/
Tuesday, March 18, 2014
Resources - DC Area Meetups
• nodeDC: http://www.meetup.com/node-dc/
• mongoDC: http://www.meetup.com/Washington-DC-MongoDB-Users-Group/
• AngularJS: http://www.meetup.com/AngularJS-DC/
• NOVA MEAN: http://www.meetup.com/NOVA-MEAN/
Tuesday, March 18, 2014
Thank you. Questions?
Tuesday, March 18, 2014
Tuesday, March 18, 2014
1 of 25

Recommended

Using Jython To Prototype Mahout Code by
Using Jython To Prototype Mahout CodeUsing Jython To Prototype Mahout Code
Using Jython To Prototype Mahout Codeasync_io
2.1K views8 slides
Guide to AngularJS Services - NOVA MEAN August 2014 by
Guide to AngularJS Services - NOVA MEAN August 2014Guide to AngularJS Services - NOVA MEAN August 2014
Guide to AngularJS Services - NOVA MEAN August 2014async_io
1.9K views12 slides
Building a Cauldron for Chef to Cook In by
Building a Cauldron for Chef to Cook InBuilding a Cauldron for Chef to Cook In
Building a Cauldron for Chef to Cook Inasync_io
2.2K views26 slides
Using npm to Manage Your Projects for Fun and Profit - USEFUL INFO IN NOTES! by
Using npm to Manage Your Projects for Fun and Profit - USEFUL INFO IN NOTES!Using npm to Manage Your Projects for Fun and Profit - USEFUL INFO IN NOTES!
Using npm to Manage Your Projects for Fun and Profit - USEFUL INFO IN NOTES!async_io
1.5K views27 slides
Lessons Learned from Building a REST API on Google App Engine by
Lessons Learned from Building a REST API on Google App EngineLessons Learned from Building a REST API on Google App Engine
Lessons Learned from Building a REST API on Google App Engineasync_io
3.9K views20 slides
Javascript Promises/Q Library by
Javascript Promises/Q LibraryJavascript Promises/Q Library
Javascript Promises/Q Libraryasync_io
28.8K views28 slides

More Related Content

Similar to NOVA MEAN - Why the M in MEAN is a Significant Contributor to Its Success

BrightonSEO_How to create harmony between SEOs & Developers by
BrightonSEO_How to create harmony between SEOs & DevelopersBrightonSEO_How to create harmony between SEOs & Developers
BrightonSEO_How to create harmony between SEOs & DevelopersSara Moccand-Sayegh
531 views33 slides
Pre-Aggregated Analytics And Social Feeds Using MongoDB by
Pre-Aggregated Analytics And Social Feeds Using MongoDBPre-Aggregated Analytics And Social Feeds Using MongoDB
Pre-Aggregated Analytics And Social Feeds Using MongoDBRackspace
1.1K views50 slides
Lessons in Open Source from the MongooseJS ODM by
Lessons in Open Source from the MongooseJS ODMLessons in Open Source from the MongooseJS ODM
Lessons in Open Source from the MongooseJS ODMValeri Karpov
2.7K views29 slides
Driving App Success Part II by
Driving App Success Part IIDriving App Success Part II
Driving App Success Part IINathan Mellor
545 views65 slides
Social Analytics with MongoDB by
Social Analytics with MongoDBSocial Analytics with MongoDB
Social Analytics with MongoDBPatrick Stokes
5.5K views28 slides
Evaluation 6 by
Evaluation 6Evaluation 6
Evaluation 6Snowfairy007
214 views8 slides

Similar to NOVA MEAN - Why the M in MEAN is a Significant Contributor to Its Success(20)

BrightonSEO_How to create harmony between SEOs & Developers by Sara Moccand-Sayegh
BrightonSEO_How to create harmony between SEOs & DevelopersBrightonSEO_How to create harmony between SEOs & Developers
BrightonSEO_How to create harmony between SEOs & Developers
Pre-Aggregated Analytics And Social Feeds Using MongoDB by Rackspace
Pre-Aggregated Analytics And Social Feeds Using MongoDBPre-Aggregated Analytics And Social Feeds Using MongoDB
Pre-Aggregated Analytics And Social Feeds Using MongoDB
Rackspace1.1K views
Lessons in Open Source from the MongooseJS ODM by Valeri Karpov
Lessons in Open Source from the MongooseJS ODMLessons in Open Source from the MongooseJS ODM
Lessons in Open Source from the MongooseJS ODM
Valeri Karpov2.7K views
Driving App Success Part II by Nathan Mellor
Driving App Success Part IIDriving App Success Part II
Driving App Success Part II
Nathan Mellor545 views
Social Analytics with MongoDB by Patrick Stokes
Social Analytics with MongoDBSocial Analytics with MongoDB
Social Analytics with MongoDB
Patrick Stokes5.5K views
Agile Content: Lessons from Lean Startups by Tim Frick
Agile Content: Lessons from Lean StartupsAgile Content: Lessons from Lean Startups
Agile Content: Lessons from Lean Startups
Tim Frick2.6K views
MongoDB and Our Journey from Old, Slow and Monolithic to Fast and Agile Micro... by MongoDB
MongoDB and Our Journey from Old, Slow and Monolithic to Fast and Agile Micro...MongoDB and Our Journey from Old, Slow and Monolithic to Fast and Agile Micro...
MongoDB and Our Journey from Old, Slow and Monolithic to Fast and Agile Micro...
MongoDB479 views
How to Manage Open Source Product by Github Sr. PM by Product School
How to Manage Open Source Product by Github Sr. PMHow to Manage Open Source Product by Github Sr. PM
How to Manage Open Source Product by Github Sr. PM
Product School454 views
Find my tea [sync ipswich] a technical journey through new product development by PaulGrenyer1
Find my tea [sync ipswich] a technical journey through new product developmentFind my tea [sync ipswich] a technical journey through new product development
Find my tea [sync ipswich] a technical journey through new product development
PaulGrenyer113 views
How to edit the core by dmanners87
How to edit the coreHow to edit the core
How to edit the core
dmanners87128 views
Embedded User Assistance: Third Rail or Third Way? by Steven Jong
Embedded User Assistance: Third Rail or Third Way?Embedded User Assistance: Third Rail or Third Way?
Embedded User Assistance: Third Rail or Third Way?
Steven Jong2.8K views
Techorama 2022 - Adventures of building Promitor, an open-source product by Tom Kerkhove
Techorama 2022 - Adventures of building Promitor, an open-source productTechorama 2022 - Adventures of building Promitor, an open-source product
Techorama 2022 - Adventures of building Promitor, an open-source product
Tom Kerkhove150 views
Keynote: The Phoenix Project: Lessons Learned - PuppetConf 2014 by Puppet
Keynote: The Phoenix Project: Lessons Learned - PuppetConf 2014Keynote: The Phoenix Project: Lessons Learned - PuppetConf 2014
Keynote: The Phoenix Project: Lessons Learned - PuppetConf 2014
Puppet9K views
Designing & prototyping useful apps by Robin De Croon
Designing & prototyping useful appsDesigning & prototyping useful apps
Designing & prototyping useful apps
Robin De Croon352 views
How Appboy’s Marketing Automation for Apps Platform Grew 40x on the ObjectRoc... by MongoDB
How Appboy’s Marketing Automation for Apps Platform Grew 40x on the ObjectRoc...How Appboy’s Marketing Automation for Apps Platform Grew 40x on the ObjectRoc...
How Appboy’s Marketing Automation for Apps Platform Grew 40x on the ObjectRoc...
MongoDB4.3K views

Recently uploaded

"Ukrainian Mobile Banking Scaling in Practice. From 0 to 100 and beyond", Vad... by
"Ukrainian Mobile Banking Scaling in Practice. From 0 to 100 and beyond", Vad..."Ukrainian Mobile Banking Scaling in Practice. From 0 to 100 and beyond", Vad...
"Ukrainian Mobile Banking Scaling in Practice. From 0 to 100 and beyond", Vad...Fwdays
40 views30 slides
"Role of a CTO in software outsourcing company", Yuriy Nakonechnyy by
"Role of a CTO in software outsourcing company", Yuriy Nakonechnyy"Role of a CTO in software outsourcing company", Yuriy Nakonechnyy
"Role of a CTO in software outsourcing company", Yuriy NakonechnyyFwdays
40 views21 slides
Micron CXL product and architecture update by
Micron CXL product and architecture updateMicron CXL product and architecture update
Micron CXL product and architecture updateCXL Forum
27 views7 slides
The Importance of Cybersecurity for Digital Transformation by
The Importance of Cybersecurity for Digital TransformationThe Importance of Cybersecurity for Digital Transformation
The Importance of Cybersecurity for Digital TransformationNUS-ISS
25 views26 slides
GigaIO: The March of Composability Onward to Memory with CXL by
GigaIO: The March of Composability Onward to Memory with CXLGigaIO: The March of Composability Onward to Memory with CXL
GigaIO: The March of Composability Onward to Memory with CXLCXL Forum
126 views12 slides
Business Analyst Series 2023 - Week 3 Session 5 by
Business Analyst Series 2023 -  Week 3 Session 5Business Analyst Series 2023 -  Week 3 Session 5
Business Analyst Series 2023 - Week 3 Session 5DianaGray10
165 views20 slides

Recently uploaded(20)

"Ukrainian Mobile Banking Scaling in Practice. From 0 to 100 and beyond", Vad... by Fwdays
"Ukrainian Mobile Banking Scaling in Practice. From 0 to 100 and beyond", Vad..."Ukrainian Mobile Banking Scaling in Practice. From 0 to 100 and beyond", Vad...
"Ukrainian Mobile Banking Scaling in Practice. From 0 to 100 and beyond", Vad...
Fwdays40 views
"Role of a CTO in software outsourcing company", Yuriy Nakonechnyy by Fwdays
"Role of a CTO in software outsourcing company", Yuriy Nakonechnyy"Role of a CTO in software outsourcing company", Yuriy Nakonechnyy
"Role of a CTO in software outsourcing company", Yuriy Nakonechnyy
Fwdays40 views
Micron CXL product and architecture update by CXL Forum
Micron CXL product and architecture updateMicron CXL product and architecture update
Micron CXL product and architecture update
CXL Forum27 views
The Importance of Cybersecurity for Digital Transformation by NUS-ISS
The Importance of Cybersecurity for Digital TransformationThe Importance of Cybersecurity for Digital Transformation
The Importance of Cybersecurity for Digital Transformation
NUS-ISS25 views
GigaIO: The March of Composability Onward to Memory with CXL by CXL Forum
GigaIO: The March of Composability Onward to Memory with CXLGigaIO: The March of Composability Onward to Memory with CXL
GigaIO: The March of Composability Onward to Memory with CXL
CXL Forum126 views
Business Analyst Series 2023 - Week 3 Session 5 by DianaGray10
Business Analyst Series 2023 -  Week 3 Session 5Business Analyst Series 2023 -  Week 3 Session 5
Business Analyst Series 2023 - Week 3 Session 5
DianaGray10165 views
Webinar : Competing for tomorrow’s leaders – How MENA insurers can win the wa... by The Digital Insurer
Webinar : Competing for tomorrow’s leaders – How MENA insurers can win the wa...Webinar : Competing for tomorrow’s leaders – How MENA insurers can win the wa...
Webinar : Competing for tomorrow’s leaders – How MENA insurers can win the wa...
TE Connectivity: Card Edge Interconnects by CXL Forum
TE Connectivity: Card Edge InterconnectsTE Connectivity: Card Edge Interconnects
TE Connectivity: Card Edge Interconnects
CXL Forum96 views
Samsung: CMM-H Tiered Memory Solution with Built-in DRAM by CXL Forum
Samsung: CMM-H Tiered Memory Solution with Built-in DRAMSamsung: CMM-H Tiered Memory Solution with Built-in DRAM
Samsung: CMM-H Tiered Memory Solution with Built-in DRAM
CXL Forum105 views
.conf Go 2023 - How KPN drives Customer Satisfaction on IPTV by Splunk
.conf Go 2023 - How KPN drives Customer Satisfaction on IPTV.conf Go 2023 - How KPN drives Customer Satisfaction on IPTV
.conf Go 2023 - How KPN drives Customer Satisfaction on IPTV
Splunk86 views
JCon Live 2023 - Lice coding some integration problems by Bernd Ruecker
JCon Live 2023 - Lice coding some integration problemsJCon Live 2023 - Lice coding some integration problems
JCon Live 2023 - Lice coding some integration problems
Bernd Ruecker67 views
Five Things You SHOULD Know About Postman by Postman
Five Things You SHOULD Know About PostmanFive Things You SHOULD Know About Postman
Five Things You SHOULD Know About Postman
Postman25 views
Architecting CX Measurement Frameworks and Ensuring CX Metrics are fit for Pu... by NUS-ISS
Architecting CX Measurement Frameworks and Ensuring CX Metrics are fit for Pu...Architecting CX Measurement Frameworks and Ensuring CX Metrics are fit for Pu...
Architecting CX Measurement Frameworks and Ensuring CX Metrics are fit for Pu...
NUS-ISS32 views
Astera Labs: Intelligent Connectivity for Cloud and AI Infrastructure by CXL Forum
Astera Labs:  Intelligent Connectivity for Cloud and AI InfrastructureAstera Labs:  Intelligent Connectivity for Cloud and AI Infrastructure
Astera Labs: Intelligent Connectivity for Cloud and AI Infrastructure
CXL Forum125 views
AMD: 4th Generation EPYC CXL Demo by CXL Forum
AMD: 4th Generation EPYC CXL DemoAMD: 4th Generation EPYC CXL Demo
AMD: 4th Generation EPYC CXL Demo
CXL Forum126 views
Data-centric AI and the convergence of data and model engineering: opportunit... by Paolo Missier
Data-centric AI and the convergence of data and model engineering:opportunit...Data-centric AI and the convergence of data and model engineering:opportunit...
Data-centric AI and the convergence of data and model engineering: opportunit...
Paolo Missier29 views
PharoJS - Zürich Smalltalk Group Meetup November 2023 by Noury Bouraqadi
PharoJS - Zürich Smalltalk Group Meetup November 2023PharoJS - Zürich Smalltalk Group Meetup November 2023
PharoJS - Zürich Smalltalk Group Meetup November 2023
Noury Bouraqadi113 views
MemVerge: Memory Viewer Software by CXL Forum
MemVerge: Memory Viewer SoftwareMemVerge: Memory Viewer Software
MemVerge: Memory Viewer Software
CXL Forum118 views

NOVA MEAN - Why the M in MEAN is a Significant Contributor to Its Success

  • 1. Why the M in MEAN is a Significant Contributor to Its Success Presentation to NOVA Mean March 18, 2014 Jonathan M. Altman jonathan@async.io | @async_io https://async.io/ | https://github.com/jonathana Tuesday, March 18, 2014
  • 2. Me •Founder, Async IO and InTheBin •node.dc co-organizer •Semi-regular speaker •https://github.com/jonathana •http://www.slideshare.net/async_io Tuesday, March 18, 2014
  • 3. I Have Never Given This Presentation Tuesday, March 18, 2014
  • 4. 4th Time Doing This Talk •MongoDC 2011 •MongoDC 2012 •DevIgnition 2013 •NOVA Mean March, 2014 Tuesday, March 18, 2014
  • 5. MongoDC 2011 •Node.js is cool •It works well with Mongo •Mongoose is available, but may not be buying you that much for the overhead •Showed with expressjs Tuesday, March 18, 2014
  • 6. MongoDC 2012 •MongoDB and nodejs are a productive combo for building apps •With Express •Mongoose is an easy choice •Everyauth is a great way to do authentication •Starter skeleton app Tuesday, March 18, 2014
  • 7. Then This Happened •Valeri Karpov posted “The MEAN Stack: MongoDB, ExpressJS, AngularJS and Node.js” in April 2013 •http://blog.mongodb.org/post/49262866911/the-mean-stack- mongodb-expressjs-angularjs-and Tuesday, March 18, 2014
  • 8. DevIgnition 2013 •MEAN has “arrived” •Covered a lot of why it is great, including the MongoDB part •Did not get to show as much of the talk as I wanted, specifically code Tuesday, March 18, 2014
  • 9. So Why Is Mongo Significant? Tuesday, March 18, 2014
  • 10. The “M” in MEAN •M - MongoDB •E - ExpressJS •A - AngularJS •N - Node.js JSON(BSON)- oriented noSQL database engine Tuesday, March 18, 2014
  • 11. M is for MongoDB •noSQL data storage engine •Scalable, adaptable •Document store of JSON (BSON) data •Fidelity: Angular, nodeJS, and MongoDB all “speak” JSON Tuesday, March 18, 2014
  • 12. M is for MongoDB •MongoDB database contains collections (tables) •Collections contain BSON documents (“rows”), but they are really documents •Documents can nest other documents •Documents in a collection can all have different BSON keys in them Tuesday, March 18, 2014
  • 13. M is for MongoDB [user@host ~]$ mongo MongoDB shell version: 2.2.0 connecting to: test > use campaign switched to db campaign > db.campaignusers.find({email: "jonathan@recycli.st"}) { "fullName" : "Jonathan", "email" : "jonathan@recycli.st", "_id" : ObjectId ("50a40e11ea84d53c42000005"), "addMarketing" : true, "__v" : 0 } Tuesday, March 18, 2014
  • 14. M Is Also For Mongoose •Object Data Mapper (ODM) for MongoDB •Costs some of the flexibility of the MongoDB document store •Start by using it Tuesday, March 18, 2014
  • 15. Put It Together and... MEAN it! •Yeoman provides a great set of tools to get started •There are also a bunch of seed repositories on github to use. Google “MEAN github seed” •Consider https://github.com/DaftMonk/generator- angular-fullstack •Wire in MongoDB Tuesday, March 18, 2014
  • 18. Example MEAN Site #1 Tuesday, March 18, 2014
  • 20. Resources - MongoDB, Angular • MongoDB Inc. post referencing MEAN: http://blog.mongodb.org/post/49262866911/the-mean-stack- mongodb-expressjs-angularjs-and • MongoDB: http://www.mongodb.org/ and the company behind MongoDB is at http://http:// www.mongodb.com/ • BSON: http://bsonspec.org/ • Mongoose: http://mongoosejs.com/ • AngularJS: http://angularjs.org/ and their tutorial at http://docs.angularjs.org/tutorial is highly recommended • Slides from a talk at AngularDC on “Angular from Scratch”: http://www.slideshare.net/xmlilley/angular- from-scratch Tuesday, March 18, 2014
  • 21. Resources - nodeJS, HTML5 • nodeJS: http://nodejs.org/ • npm (node package manager): https://npmjs.org/ • ExpressJS: http://expressjs.com/ • Good resource on technologies in HTML5: http://www.html5rocks.com/en/ Tuesday, March 18, 2014
  • 22. Resources - Bootstrap, Yeoman • Twitter bootstrap: http://getbootstrap.com/ • Yeoman: http://yeoman.io/ • Bower: http://bower.io/ • Grunt: http://gruntjs.com/ • Sass: http://sass-lang.com/ • Compass: http://compass-style.org/ Tuesday, March 18, 2014
  • 23. Resources - DC Area Meetups • nodeDC: http://www.meetup.com/node-dc/ • mongoDC: http://www.meetup.com/Washington-DC-MongoDB-Users-Group/ • AngularJS: http://www.meetup.com/AngularJS-DC/ • NOVA MEAN: http://www.meetup.com/NOVA-MEAN/ Tuesday, March 18, 2014