Leah Silber and Kait Olson and the volunteers did an incredible job again this year of putting together this conference. Learn how Leah creates memorable conferences in her book: Event Driven.
The themes of the Ember community are productivity and friendliness. As mentioned by Chris Eppstein in the closing talk, those two goals may often be at odds, especially considering how the drive to compete is most often tightly bound with adversarial behavior. So far though, Ember developers demonstrate strong commitment to both advancing frontend web development as well as curating healthy community.
- There were 625 attendees of the conference and it sold out quickly.
- Only 13 no-shows on the first day!
- Ember Community Survey results
- Design and user experience.
- Performance.
- Good representation from large to small organizations.
- Ember 2.0
- Ember Inspector 1.0
- Ember CLI 1.0
- Liquid Fire 1.0
- Ember Data 1.0
- Ember-CLI is now the default tool for Ember apps.
- Broccoli powers the fast builds of Ember CLI.
- HTMLBars landed progressively starting in Ember 1.8.
- Ember Data 1.0 has an official beta release date!
- EmberConf 2015 Summary from Lauren Tan (@sugarpirate_)
All the videos (Confreaks playlist)
- Opening Keynote
- Ember.js Performance by Stefan Penner
- Designing for Ember Apps by Steve Trevathan
- Hijacking Hacker News with Ember.js by Godfrey Chan
- The Art of Ember Deployment by Luke Melia
- Ambitious UX for Ambitious Apps by Lauren Tan
- Bring Sanity to Frontend Infrastructure with Ember by Sam Selikoff
- Dynamic Graphic Composition in Ember by Chris Henn
- Test-Driven Development by Example by Toran Billups
- Fault Tolerant UX by Dan Gebhardt
- Aligning Ember with Web Standards by Matthew Beale
- Growing Ember One Tomster at a Time by Jamie White
- Interaction Design with Ember 2.0 and Polymer by Bryan Langslet
- Building Custom Apps with Ember CLI by Brittany Storoz
- Building Real-Time Applications with Ember by Steve Kinney
- Minitalks by Leah Silber
- Physical Design by Edward Faulkner
- Closing Keynote: Coming Soon! by Chris Eppstein
Tuesday 2015-03-03
Code of conduct: Don't exclude and make an effort to include.
Yehuda Katz and Tom Dale | @wycats and @tomdale | Tilde | Slides | Video
- 625 attendees, more ember-cli users, more addons
- Built With Ember: square cash, heroku dashboard, ghost, beatport, intercom.io, consul, customer.io, nest store
- lots of meetups
- 3 new core team members
- @mixonic
- @ef4
- @mmun
- what's new? / report card
- Rapid release worked great. Easier upgrade path for developers as a consequence.
- getrwjblueabeer.com
- New RFC process
- Features landed:
- HTMLBars landed in 1.10+
- Ember Inspector (@teddyzeenny)
- Ember CLI
- Testing is way better
- Query Params
- JavaScript modules
- Ember Data (@terzicigor)
- ES6 Early Adopter
- what's next?
- Versioned guides
- Ember CLI is the starting point for beginners
- Engines
- List View
<angle-bracket>
Components- Liquid Fire animation library
- Async & Routable Components
- Ember 2.0 just removes support for deprecations
- Ember Data
- jsonapi.org
- Pagination & Filtering
- shipping it: June 12
- Ember FastBoot
- curl your ember app
- Works with disabled JS
- Performance
- @ryanflorence video demonstrating poor performance for Ember
- React insights
- DOM is the bottleneck: JS is fast, DOM is slow
- “Just Refresh It”
- Glimmer
- Glimmer versus dbmonster
- Pull request on GitHub
- Is Ember Fast Yet?
- Landing in 1.13
“Your antidote to the hype fatigue”
Stefan Penner | @stefanpenner | Yahoo! | Slides | Video
- Promises performance improvements
- Look inside the black box of browser performance
- Bluebird library
- Align with language primitives
- Idempotent rerender branch
- JS performance cargo-cult problem
- Better question: When is X slow? When is X reasonable?
- Shapes
- “Mechanical sympathy” from F1 driver
- Look inside browser runtime implementations such as V8.
- Code that is understandable and predictable (from both human and computer POV) is fast.
- Misalignments in Ember
- Do less work
- Explicit data-flow: Actions up, bindings down
- Explicit life-cycle: RIP Singleton Controllers
- init/super
- Problems
- Hard to learn
- Misaligned with ES2015
- Solution
- Implicit defaults in init
- Pass args
- Problems
- Ember.Object.reopen
- Problems
- Buggy
- Complex
- Meta is live inheriting
- actionsFor from Meta.listeners
- Solution
- Working on a spike for this to reform Ember.Object.reopen
- Problems
- Do less work
Steve Trevathan | @strevat | Dockyard | Slides | Video
- Designing single page apps.
- Users are difficult.
- Mental models.
- Familiarity
- Assumptions
- Can be updated.
- What is “home”?
- Valuing of thing is based on previous experience.
- Macro: What is it for?
- Micro: How does it work?
- Use patterns explicitly if they directly apply.
- Methods and patterns:
- Gradual engagement - Get started and recognize value with minimal effort
- Skeleton UI - Thinning out the spinners and replace with placeholder images, controls, and animation
- …don't leave me hanging - Handoffs. Contextually aware UI such as Rdio and Spotify knowing which device music is playing from.
- Core Interactions - Become a symbol of your app (product).
- Offline Mode - “Goliath Mode”. Respond optimistically, but be careful.
- Tools of the Trade
Godfrey Chan | @chancancode | brewhouse | Slides | Video
Blog post: Adapter Patterns in Ember.js
- Canada!
- Adapter pattern
- HN Reader
- Scraping from html document to JSON
- DS.Adapter to fetch data
- DS.Serializer to transform
- Preferences stored in local storage
- Cocoa Bars!!! (kidding)
Luke Melia | @lukemelia | Yapp | Slides | Video
“The future is already here, it's just not very evenly distributed.” -William Gibson
- Current server app deployment model is not appropriate for Ember apps.
- How to keep static assets working during the switchover?
- Push all static assets to a CDN and keep them around.
- Long lived sessions?
- We have multiple versions of our Ember apps in use at once.
- Learn from native mobile apps.
- Key differences:
- HTML pages bootstrap Ember apps
- Points to fingerprinted assets, but is not itself fingerprinted.
- Contains JS and CSS links to boot JS app and load CSS in the right order.
- Good place for environment-specific configuration to JavaScript.
- HTML pages bootstrap Ember apps
- Use Redis (low latency store) to deploy index.html to app server.
- Allows
- Preview before activating.
- Dynamic HTML rewriting between Redis and app server.
- Feature flags
- CSRF tokens
- A/B testing
- Notify clients of new version availability
- Allows
- Which approach from the projects that currently do this?
- ember-deploy, front-end-builds, ember-cli-deploy
- Merge all 3! -> ember-cli-deploy
- Great example of community desire to coalesce
- Timeline
- 0.4.0 This week
- 0.5.0 Soon
- :addon ember-cli-deploy
Lauren Tan | @sugarpirate_ | Homely | Slides | Video
Self-taught designer, then self-taught developer.
- “Design is how it works.” -Steve Jobs
- Salt and pepper shakers. How many holes is the salt shaker?
- Good Design is Reactive
- Reactive?
- Flow of data
- Maintaining relationships
- FRP (Function Reactive Programming)
- Immutability
- Some side effects
- Streams are an array of events (Unsure whether I noted this correctly)
- Look at Bacon.js
- Computed Property Macros
- Observers
- Reactive?
- Good Design is Playful
- Loading messages
- Shower thoughts reddit
- Good Design is Informative
- System status visibility
- :addon ember-cli-flash
- Good Design is Intuitive
- Drag and drop
Sam Selikoff | @samselikoff | TED | Slides | Video
- Issues scaling frontend from monolith at the start to multiple APIs and Interfaces.
- Ember and Ember CLI
- Process of discovery from manual to script to addon to service
- Identify redundancies and abstractions
- Hard to do
- Need a process
- This is the philosophy of Ember.
Chris Henn | @cwhnn | chrishenn.net | Slides | Video
- github.com/chnn/composing-graphics
- How should we split a statistical graphic into parts?
- Separate features to change
- Suggest they are possible to change
- Encourage composability
- Scatterplot example
- Leland Wilkinson's The Grammar of Graphics (1999)
- Hadley Wickham's A Grammar of Graphics: Past, Present, and Future (2007)
- Hadley Wickham, Stat405: Grammar of Graphics (2012)
- What does this look like in Ember?
Toran Billups | @toranb | toranbillups.com | Video
- Live coding like no one is watching.
- Building an app and writing tests.
- tmux + vim + testem all in one view is very nice.
- fauxjax for mocking JSON API
- Go back and watch this in slow motion.
Mic drop: Apple Menu > Shut Down…
Wednesday 2015-03-04
Dan Gebhardt | @dgeb | Cerebris | Slides | Video
- Fault tolerance in naval ship design.
- To prevent operator defaults, controls must be laid out as clearly as possible.
- Transactional UX (ACID)
- Atomic: All or nothing.
- Consistent:
- Isolated: Allow concurrent changes.
- Durable: Changes persist.
- Forgiving UX
- Transitional Persistence: Preserve data that user has entered but not saved.
- Undo and redo.
- Offline support (Non-blocking): Even when network connection is down.
- Asynchronous (Non-blocking) Interface: Don't need to wait for server response.
- Event subscriber pattern
- Orbit.js
- Request
- Transform
- Sources
- Memory
- Local storage
- JSON API
- …more
- Schema
- Models
- Relationships
- Keys
- …more
- ember-orbit
- github.com/orbitjs
- orbitjs.com: Future home of the Orbit.js project.
Matthew Beale | @mixonic | 201 Created | Slides | Video
Blog post: Aligning Ember.js with Web Standards
- JS standardization process is changing -> “Living Standard” like HTML -> ES2015 Standards
- Portable
- Best practices
- Enduring
- Participants win
- Transpilers are here to stay
- Remy Sharp coined “Polyfill”
- For stuff that can't be polyfilled, must transpile.
- Babel (Previously 6to5)
- Aligning Ember's object model
- ES Classes
class
extend
super
- ES Decorators proposal
- Ember Community Survey 2015
Jamie White | @jgwhite | With Associates | Slides | Video
- Community is vibrant. How did that come about?
- Reflections on EmberConf 2014
- Community does not automatically follow design engineering.
- Tomster represents productivity and friendliness.
- Compare Ember release cycle pages to Chrome release cycle pages.
- “Ambitious” and “Friendly” are hard to combine.
- Lindsey Wilson: Tomster is adaptable. Wasn't overly done.
- Use language to coalesce concepts and philosophy.
- For docs: “If something is difficult to explain it probably means we're exposing the wrong primitives.” -Trek
Bryan Langslet | @blangslet | Envoy | Slides | Video
- Ember + Polymer + Material Design
- Ember-Flow
- Web Components
- Extend the browser itself
- Encapsulation
- Declarative
- True reusability/portability
- Web Animations API
- Core Animated Pages
- Demonstration:
- Dream Stack
Brittany Storoz | @brittanystoroz | Mozilla | Slides | Video
- Firefox OS build tool
- Rec Room -> Ember CLI
- Use addons for Firefox OS development requirements.
- Blueprints to generate the manifest.
- Addon to install “Gaia” UI components. Lots of steps but all covered in Ember CLI docs.
- Adding commands for validation and publishing.
availableOptions
to set flags
- github.com/mozilla/ember-cli-fxos
Steve Kinney | @stevekinney | Turing School | Slides | Video
- Real-time applications
- A story about WebSockets…
- Fallback libraries: socket.io and Faye
- Approaches
- In a controller
- In a service
- Socket.io
Leah Silber | @wifelette | Tilde | Video
Bill Heaton | @pixelhandler | Video
- Measure Performance with the User Timing API
- Start measuring now and analyzing as you gain a better understanding of the appropriate statistical approach.
Mitch Lloyd | @too_mitch | Video
- Bring Ember to Your Server Rendered Application
- :addon ember-islands
Liz Baillie | @infinite_math | Video
- Flatiron School
- Ember Testing with Chemistry Dog
- Jumped in with the goal of becoming the Ember testing expert
Michael Nutt | @michaeln3 | Video
- Crossfilter project by, Mike Bostock, the creator of D3.js
- C++ -> Emscripten -> asm.js -> Require in ES6 module
- :addon ember-cli-emscripten
Katie Gengler | @katiegengler | Video
- Ember Observer for rating and reviewing addons
- github.com/emberobserver
- CSS is hard.
- Automatically namespace it.
- :addon ember-component-css
Edward Faulkner | @eaf4 | braveleaf | Slides (Coming soon… | Video
- :addon liquid-fire
- Demonstration
- Grab the EmberConf website with wget
- Turn it into an Ember app
- Define the start and end states
- Start adding animations
- As long as the elements remain, the page can be refactored
- Switch from Velocity to Web Animations API!
- miguelcobain.github.io/ember-paper (Opportunity to contribute!)
Chris Eppstein | @chriseppstein | LinkedIn | Slides | Video
- Announcing: Sass Eyeglass
- Eyeglass is the JS equivalent of Compass
- Libsass is a C++ implementation of the sass compiler
- “Autoprefixer is awesome. Use that.”
- “Come for the technology. Stay for the <3 <3 <3.”
- Pulp Fiction, Marsellus Wallace: Fuck pride.
- Fight Club, Tyler Durden: You are not your OSS contributions.
- How to compete without negativity?
- What does it mean to “win”? Why does it matter?
- Find a job you love and you'll never work a day in your life.
- Do what you do because you love it.
Special thanks to Emanuele Tozzato for showing a few of us around Portland while we discussed Ember.