Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Intro to meteor @py gotham Aug 15-16 2015

895 views

Published on

The talk is about how modern apps are being developed using technologies like Meteor JS. The talk explores tips using Meteor and opportunities for developing Meteor + Python applications.

Introduction to Meteor
Patterns in development
Meteor and Python

Published in: Technology
  • Be the first to comment

Intro to meteor @py gotham Aug 15-16 2015

  1. 1. Intro to @PyGotham Aug 15-16 by @ewenchristie
  2. 2. 3 Part Discussion 1. Introduction to 2. Patterns in development 3. Meteor + Python
  3. 3. What is ? ● 100% Pure Javascript Full Stack ● Open Source ● Web and Mobile Apps Dev Platform ● Focus on apps, Not infrastructure ● www.meteor.com
  4. 4. Who backs ? ● Meteor Development Group ○ Active development by full time employees ● $20 Million series B - May 2015 ● Revenue Product: Galaxy (official host) ● Meteor platform is opensource (MIT license) ○ You own the code; Host anywhere
  5. 5. The Basics ● Javascript (ES2015) ● MongoDB: Node.js ○ https://university.mongodb.com/ ○ Schema-less Design ● HTML, CSS ○ Bootstrap ● Git/GitHub ● Node.JS (e.g., asynchronous, callbacks)
  6. 6. Code DEMO ● curl https://install.meteor.com/ | sh ● meteor create --example todos ● cd todos ● meteor ● meteor mongo ● meteor deploy PyGotham2015.meteor.com Another example: ● meteor create --example localmarket
  7. 7. Architecture
  8. 8. Database Schema Design Just build App → Let schema evolve When to Denormalize ○ 1 : 1 → embed ○ 1 : few → embed ○ many : many → link
  9. 9. Reactive Patterns using observeChanges Meteor.startup(function() { observeChanges }) == OR == observeChanges in the top level code.
  10. 10. Example: publish / subscribe // SERVER Meteor.publish("counts-by-room", function (roomId) { var handle = Messages.find({roomId: roomId}).observeChanges({ added: function (_id) { // Do something }, changed: function (_id) { // Do something } }); }) // CLIENT Tracker.autorun(function () { Meteor.subscribe("counts-by-room", Session.get("roomId")); });
  11. 11. Observe and ObserveChanges
  12. 12. Function parameters myCollection.find({}).observeChanges({ added: function(id, fields) { //Do something } }); id = _id in the MongoDB fields → Changed fields only
  13. 13. AtmosphereJS.com
  14. 14. How to use packages ● meteor search <search-terms> ● meteor add <package-name> ● meteor list ● gitHub ○ README.md
  15. 15. Search Patterns ● Search (Google, Yahoo!, Bing) ● Find command (CTRL + f) Page level Directory ● grep command Ex: “grep -R signIn --exclude-dir=".meteor*”
  16. 16. Playgrounds ● Experiment queries on the command line ○ meteor mongo ● Create small experiment applications ○ meteor create myExperiment
  17. 17. CRUD ● Create ● Read ● Update ● Delete
  18. 18. Production Servers ● yourApp.meteor.com ● Digital Ocean ● Modulus ● Heroku ● Galaxy (coming soon)
  19. 19. Meteor + Python ● https://pypi.python.org/pypi/python-meteor ● http://meteorpedia. com/read/DDP_Clients#Python ● https://www.youtube.com/watch? v=zzphV5C_20E ● pip install python-meteor
  20. 20. Challenges ● Unlearning ○ Relational vs. NoSQL ○ Iterative vs. Reactive ● Documentation (need more official docs) ● Scaling (similar to other platforms) ● Keeping up with active changes ● Accessibility to online information
  21. 21. Why Javascript? Geoff Schmidt: Javascript State of the Union
  22. 22. Why learn a new platform? ● Learn a new programming language every year ● Opportunity to learn different points of view ○ Examples such as Pythonic approaches ○ LearnYouNode ○ Security (Why Meteor doesn’t use cookies?)
  23. 23. What’s next? ● Meteor 1.2 (Summer 2015) ● Galaxy (production meteor deploy) ● REST, microservices, ES2015 modules, + ● Reactive Database support for Redis & SQL ● Vote on Meteor’s Roadmap ○ https://trello.com/b/hjBDflxp/meteor-roadmap ● Meteor-NY Meetup
  24. 24. Resources AtmosphereJS.com GitHub ATOM.io http://js2.coffee/ https://www.meteor.com/tools/resources https://github.com/awatson1978/meteor- cookbook
  25. 25. THANKS!

×