David Glasser in Chicago - Meteor: Past, Present, & Future

  • 436 views
Uploaded on

David Glasser is a core developer at Meteor Development Group (see his bio at http://www.meteor.com/about/people). …

David Glasser is a core developer at Meteor Development Group (see his bio at http://www.meteor.com/about/people).

On September 26, 2013, David was a guest at the Meteor Chicago meetup group (http://www.meetup.com/Meteor-Chicago). He spoke about how Meteor has changed in the year since he joined Meteor in September 2012 and showed us what's on the horizon for Meteor's future.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
436
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
8
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. My Year of Meteor Meteor: Past, Present, and Future David Glasser (@glasser) Wednesday, October 23, 13
  • 2. My Year of Meteor • • September 2012: I joined Meteor Development Group • September 2013: I give this talk • Wednesday, October 23, 13 April 2012: Meteor launches publicly ???: Meteor 1.0 is released
  • 3. Meteor, April 2012: the application platform for the rich client era • • One language • Database everywhere • Latency compensation • Wednesday, October 23, 13 Data on the wire Full stack reactivity
  • 4. Meteor Past • Wednesday, October 23, 13 Demo time!
  • 5. Meteor Present What we’ve done in one year Wednesday, October 23, 13
  • 6. Sending email: September 2012 • • A simple server-side Email.send API • Implemented in my first week at Meteor Development Group • Wednesday, October 23, 13 My first project! Zero configuration needed for “meteor deploy”
  • 7. Meteor Accounts: October 2012 • • Fine-grained user-based controls over database reads and writes • Federated OAuth login (built-in support for Facebook, Google, Twitter, GitHub, Weibo) • Secure password login • Email validation and password recovery • Wednesday, October 23, 13 Full-featured auth system Optional UI widgets implementing login, signup, password change, etc
  • 8. Cursor deduplication: November 2012 • • Caching live updating data streams is harder than caching static data • Node’s concurrency model does not lend itself well to this • Wednesday, October 23, 13 Problem: many users subscribe to the same database query, but the live database publisher could not cache Built new concurrency primitives in order to create a live DB query cache
  • 9. New DDP wire protocol: February 2013 • • Supporting more data types (Date, Mongo ObjectID, binary, etc) • Actually wrote a spec • The messages in the protocol better match the “observeChanges” primitive for watching a database query • Wednesday, October 23, 13 We redesigned our wire protocol based on a year of experience (Also: Improve the logic behind observeChanges to poll less often)
  • 10. appcache: March 2013 • • Wednesday, October 23, 13 Want your app to use the HTML5 AppCache API to load faster? Just type “meteor add appcache” First major feature built entirely by an open source community member
  • 11. Engine, a new distribution system: April 2013 • • Pin each app to a specific release • Put your own packages inside your app • Wednesday, October 23, 13 Install multiple releases of Meteor on your developer machine at once Use Node packages from npm
  • 12. Package linker: August 2013 • • The “linker” release rethought exactly what a package is and how they depend on each other • Packages now have real namespaces • Source maps (including for CoffeeScript) • standard-app-packages • Wednesday, October 23, 13 Meteor is a collection of packages plus a build tool Weak dependencies
  • 13. Devshop: January 2013 – tonight • • 2pm-late • Invited talks • Lightning talks • Wednesday, October 23, 13 We host a monthly devshop at our office in SF Meet other Meteor users and the core team
  • 14. Meteor Future The road to 1.0 Wednesday, October 23, 13
  • 15. Bug Week! • • We’re in “preview” mode • Most of our work goes into brand new packages or rewrites • Over 80 external contributors • We pay attention to our GitHub issues, but we don’t drop everything to fix them • Wednesday, October 23, 13 Meteor is an ambitious project Except this week
  • 16. Meteor UI: A new rendering engine • • No “when the name changes, find every reference and update it” needed • Current Meteor templates rerender the entire template and use a clever “patch” algorithm to update the screen • Doesn’t work well with jQuery • Wednesday, October 23, 13 In reactive templates, you just write {{name}} and if the name changes, it magically updates So David Greenspan rewrote it
  • 17. Galaxy: the next generation of “meteor deploy” • • “meteor deploy” has no SLA • Galaxy is an advanced version of the “meteor deploy” server that you can easily run on your own infrastructure • Auto-scaling, auto-updating • We’ve been running our own sites on it since July • Wednesday, October 23, 13 Running your app should be as smooth as developing it Enterprisey features will cost money (aka: yes, we have a business plan)
  • 18. Oplog tailing: scaling with MongoDB • • MongoDB doesn’t actually have this operation • We fake it with polling and heuristics • Instead, watch the “oplog” for changes • A community user has a prototype implementation that performs well but doesn’t implement the full API • Wednesday, October 23, 13 The core data read operation in Meteor is “publish the results of a query and tell us when it changes” I’ve done a rough draft of a core version
  • 19. Atmosphere in core: Third Party Packages • • You can write your own packages in your app • No supported way to share packages • Atmosphere/Meteorite: community package repository (582 packages!) • Needs a better versioning story • Wednesday, October 23, 13 Meteor is a build tool plus a set of packages Concept: Ubuntu-style packaging
  • 20. Next stop: 1.0 • • We’d love to get there as soon as we can • Wednesday, October 23, 13 Meteor 1.0 will be a release we can feel comfortable supporting for a while We’re hiring :)
  • 21. Thank you! • Wednesday, October 23, 13 Any questions?