Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Meteor 1.0, Emily Stark (Talks at Sourcegraph)

Avatar for Sourcegraph Sourcegraph
December 04, 2014
2.3k

Meteor 1.0, Emily Stark (Talks at Sourcegraph)

Avatar for Sourcegraph

Sourcegraph

December 04, 2014
Tweet

Transcript

  1. Welcome! Meteor: an open-source platform for app development done right

    • Instant response • Reactive UI • Fast load time • Multiple platforms http://meteor.com Tuesday, December 9, 14
  2. 0.3.2: first public launch 0.5.0: authentication and accounts 0.6.5: groundwork

    for package system 0.7.0: new livequery scaling strategy 0.8.0: new live templating engine 0.9.0: new package system 0.9.2: PhoneGap integration 1.0! April 2012 October 2012 August 2013 October 2013 March 2014 August 2014 September 2014 October 2014 The Meteor timeline http://meteor.com Tuesday, December 9, 14
  3. 0.3.2: first public launch 0.5.0: authentication and accounts 0.6.5: groundwork

    for package system 0.7.0: new livequery scaling strategy 0.8.0: new live templating engine 0.9.0: new package system 0.9.2: PhoneGap integration 1.0! April 2012 October 2012 August 2013 October 2013 March 2014 August 2014 September 2014 October 2014 The Meteor timeline http://meteor.com Tuesday, December 9, 14
  4. Livequery scaling Ideas.find({ score: { $gt: 3 } }).observe({ added:

    function (idea) { ... }, changed: function (newIdea, oldIdea) { ... }, removed: function (oldIdea) { ... } }); Credit to David Glasser for material in this section! http://meteor.com Tuesday, December 9, 14
  5. Oplog tailing Ideas.find({ score: { $gt: 3 } }).observe({ added:

    function (idea) { ... }, changed: function (newIdea, oldIdea) { ... }, removed: function (oldIdea) { ... } }); http://meteor.com Tuesday, December 9, 14
  6. Oplog tailing Ideas.find( { score: { $gt: 3 } },

    { sort: { score: -1 }, limit: 3 } ) http://meteor.com _id idea score xxx opentable for bathhouses 4 yyy pinterest for billionaires 5 zzz tinder for the homeless 6 Tuesday, December 9, 14
  7. Oplog tailing Ideas.find( { score: { $gt: 3 } },

    { sort: { score: -1 }, limit: 3 } ) { op: ‘insert’, id: ‘abc’, { idea: ‘netflix for political attack ads’, score: 2 } } http://meteor.com _id idea score xxx opentable for bathhouses 4 yyy pinterest for billionaires 5 zzz tinder for the homeless 6 Tuesday, December 9, 14
  8. Oplog tailing Ideas.find( { score: { $gt: 3 } },

    { sort: { score: -1 }, limit: 3 } ) { op: ‘insert’, id: ‘abc’, { idea: ‘fitbit for alcohol’, score: 3.5 } } http://meteor.com _id idea score xxx opentable for bathhouses 4 yyy pinterest for billionaires 5 zzz tinder for the homeless 6 Tuesday, December 9, 14
  9. Oplog tailing Ideas.find( { score: { $gt: 3 } },

    { sort: { score: -1 }, limit: 3 } ) { op: ‘update’, id: ‘aaa’, { $set: { score: 7 } } } http://meteor.com _id idea score xxx opentable for bathhouses 4 yyy pinterest for billionaires 5 zzz tinder for the homeless 6 Tuesday, December 9, 14
  10. Oplog tailing Ideas.find( { score: { $gt: 3 } },

    { sort: { score: -1 }, limit: 3 } ) { op: ‘update’, id: ‘aaa’, { $set: { score: 7 } } } http://meteor.com _id idea score yyy pinterest for billionaires 5 zzz tinder for the homeless 6 aaa spotify for jingles 7 Tuesday, December 9, 14
  11. Oplog tailing http://meteor.com • Major challenge: correctness • Not matching

    MongoDB’s behavior is disastrous • Can always fall back to polling • 2.5-10x performance improvement • Bottleneck: Mongo server CPU/bandwidth Tuesday, December 9, 14
  12. Meteor packages Early 2014: time to build a package system

    http://meteor.com Tuesday, December 9, 14
  13. Meteor packages • ‘meteor’ is a build tool and package

    system in one • Packages for server and client • Not just browsers: also iOS, Android • No multiple loading • Dependency management http://meteor.com Tuesday, December 9, 14
  14. Constraint solver • Approaches: • Multiple loading -> no constraint

    solver • Pick the first solution you find • Pick the best solution (optimizing pseudo-boolean SAT solver!) http://meteor.com Tuesday, December 9, 14
  15. Constraint solver meteor update foo • Do you expect a

    whole bunch of other packages to be updated? • Do you expect them to get updated to new versions that have bug fixes, or are you willing to accept breaking changes? • Do you expect top-level dependencies to be treated differently than transitive dependencies? http://meteor.com Tuesday, December 9, 14
  16. Constraint solver • Cost function • Penalize downgrades to top-level

    dependencies • Penalize changes from previous solution • Penalize breaking changes a lot (as determined by semver) • Penalize older versions of newly added packages http://meteor.com Tuesday, December 9, 14
  17. Constraint solver • The next generation: replacing JavaScript A* search

    with MiniSat • Challenge: explanation if there is no solution http://meteor.com Tuesday, December 9, 14
  18. 1.0: the non- technical side Incredibly supportive community: patient, eager

    to help test new features http://meteor.com Tuesday, December 9, 14
  19. 1.0: the non- technical side Worldwide Meteor Day 134 cities,

    4259 attendees http://meteor.com Tuesday, December 9, 14
  20. Thank you! Questions? Ask me now! Or [email protected], or @estark37

    Thanks to David Glasser, Slava Kim, Sashko Stubailo, Matt Arbesfeld, other Meteor coworkers! http://meteor.com Tuesday, December 9, 14
  21. Lessons in OSS productivity Focus focus focus! Make a schedule;

    stick to it. Strike a balance between listening to users, ignoring them when necessary, and giving them what they want but aren’t asking for. http://meteor.com Tuesday, December 9, 14