Javascript components and Ember

Often when using Ember, it's tempting to integrate external javascript components. Sometimes this is trivial and easy, but often it can be both difficult and counterproductive. Here I will try to explain the pros, cons and reasoning behind them. When it makes sense: self-contained components. When using external components, you…

Server Side Validations with Ember Data and DS.Errors

Validation errors are an unfortunate fact of life that you will have to deal with in almost every non trivial application. Often you will want to do client-side validations, and for that I recommend having a look at Ember Validations. However, client side validations can be complex to implement, and…

Awesome Ember.js Form Components

A common ember pattern is a form that edits properties of an object. In this post I will show how to use nested components and dynamic bindings to produce concise forms in your templates with automatic <label> tags, bootstrap compatibility, and a very clean api. Shameless plug: This…

Debounced and Throttled Observers in Ember.js

Often in complex ember apps you want to use debouncing and throttling, to avoid doing expensive processing or too many server requests. I had hacked together a solution for this with underscore, but then I found out that Ember.js includes built in throttle and debounce functions. A few minutes…

Intelligent String Matching for all Universities in DBpedia

When Quicksilver came out, it changed the way I used my computer. Although it's not as essential to me these days as it used to be, it's the first implementation of fuzzy string matching that I encountered and fell in love with, a feature that I now take completely for…

Source maps for coffeescript in Rails

I've been following the progress on the new coffeescript compiler, mainly because the one minor issue I have with coffeescript is debugging in the browser. When I discovered that the latest version of the CoffeeScriptRedux compiler is now spitting them out, I figured I'd hack something together to see how…