CSS3 transitions allow for simple animations but only allow control for the beginning and end of animations without giving you any choice on how they progress. Animations in CSS3 give us that control by allowing us to define how the animation will progress over time using a set of keyframes. We’re also allowed control over the frequency at which the animation executes, whether the animation is paused or running and the delay of the animation start time.

The next version of ECMAScript, or “Harmony”, introduces Proxies. What is a proxy, you ask? Merriam-webster defines it as “authority or power to act for another”. And that’s simply what a Proxy object allows you to do in JavaScript: act on behalf of another object. In other words, a Proxy object can be used to intercept calls, or property access, from some other object. Use cases may not be apparent at first so consider the following: Logging when we get/set a property on an object, fire events when getting/setting a property on an object, transparent data binding on an object. In this post I’ll explore the first and the last.

The only thing worse than discovering your application is crashing is having a customer tell you your application is crashing. Not too long ago I received panicked emails stating that, at some random intervals, our application was throwing 500s. Unfortunately I turned off push notifications (actually it has helped separate work/life - if it’s an emergency you’ll be getting a call) so I didn’t receive these emails until the next morning when I sat down at my desk.

My co-worker had already diagnosed the problem by the time I had arrived.

Part of CSS3’s features that have a lot of popularity behind them are its transitions, transformations and animations. We’re no longer dependent on a JavaScript library providing basic animations; we can let the browser do the heavy lifting for us. In my experience, popular JS animations have been simple transitions. In this post I’ll explore how to get started using CSS3’s transitions.