There is a Bug on this Code

There is a Bug on this Code

Software is a serious business. Fatal bugs have been around since at least the 1980s, and a decade-old report estimated the annual cost of bugs at $60 billion. Tech companies spend millions on political lobbying. Opponents argue over labor shortages and H-1B visas.
So how about we take some time out to give three cheers for a little levity?

The Fractalization of Requirements

The Fractalization of Requirements

Remember learning about fractals in math or science class? They’re repeating patterns that can be viewed at any scale. That is, keep zooming in on a fractal and you’ll keep seeing the same image — and the same complexity. When a project is first estimated, requirements are usually written at a high level with relatively little attention to detail. That’s especially true today, with the current focus on early releases, beta software, and fast iterations. Why write down a lot of details that are likely to be thrown away before implementation when the first customer release sends the app in a completely different direction?

Configuring Backbone.Model Properties With Less Code

Configuring Backbone.Model Properties With Less Code

My previous post demonstrated the use of `Object.defineProperty` to programmatically add a list of properties to an ES6 class, such as a Backbone.Model subclass, reducing the amount of boilerplate code necessary. The example in that post added simple getters and setters, but it’s possible to go further for Backbone.Model properties.
By moving common property configuration and handling logic into a base model class, the many concrete model subclasses can be quite simple and compact. In a single line of code, you can create a new property, with getters, setters, defaults, deserialization support, and many other potential features.

ES6 Subclasses and Object.defineProperty

ES6 Subclasses and Object.defineProperty

(Photo by William Warby) Object.defineProperty provides a handy way to add properties to JavaScript objects. It’s been around for a while, but with the introduction of class syntax in ES6, it’s not immediately obvious how to use it to add properties to a...
iOS to Android: Slide In Animations

iOS to Android: Slide In Animations

Porting an iOS app to Android means frequently translating between the divergent UI paradigms of the two operating systems.  Both platforms encourage developers to follow certain interface guidelines, but clients sometimes prefer replicating a familiar interface....