Chris Webb

Front-end Engineer

Read this first

The Pursuit of Simplicity in Programming

Currently, I am writing some documentation and a coding styleguide with a colleague of mine. Whether it’s in our writing or in our coding, we’ve based as many of our decisions as possible on a single concept: minimizing incidental complexity.

In 2011 at Strangeloop, Rich Hickey, the author of Clojure, gave a delightful presentation called Simple Made Easy. In the presentation he discusses the differences between the notion of easy and simple.

This has deeply influenced the vocabulary our team uses in our daily decisions, code critiques and the underlying philosophy that shapes our arguments.

The single value that shapes our programming philosophy is the intentional reduction of incidental complexity because the problems we solve for our companies and customers are already complex enough. We call this the pursuit of radical simplicity.

Fools ignore complexity; pragmatists suffer it...

Continue reading →

I haven’t given up on blogging

It’s been 9 months since I completed and published my last blog post. Far longer than I ever intended and for numerous reasons.

I’ve had numerous ideas and a handful of unfinished book reviews but I haven’t managed to free up enough time to actually finish the posts. Just about all my blogging momentum went out the window in the process of moving, working to transition well out of one job and the learning curve of a new job. Prior to those changes, my pace of writing had already slowed down. I had agreed to write a few reviews that took me far too long to get to and as a result I kept putting other posts off.

The flagging pace of blogging coincided with a general drop in time spent focused on the ‘digital world’. I’ve spent dramatically less time trying to keep up with the latest articles and posting things on social media.

Blogging and time are inextricably linked to each other...

Continue reading →

OmniFocus 2 iPad Review

My biggest question as a long-time OmniFocus user when I realized that OmniFocus 2 for iPad had been released for $29.99 + a $19.99 in-app purchase, was: is OmniFocus worth the price of entry (to me)?

This post started with the intention of being a simple review. And it is, but it’s more of short review in the context of my story. While it’s not a long post, I think it’s fair to start with a brief synapses of the post:

OmniFocus fanboy hears of the pricey new release. But even fanboys can have a hard time shelling out the money for an update to their beloved app. Said fanboy tries the app and decides it’s worth it assuming you want to use OmniFocus on your iPad.

My history and use of OmniFocus

I should begin by saying that I’ve been using OmniFocus for years — first on OSX, later on the iPhone and then finally on the iPad. When I first used the iPad version, I was pleasantly...

Continue reading →

Book of the Day: Functional JavaScript


Functional JavaScript by Michael Fogus (O'Reilly Media) is a wonderfully insightful book. It introduces functional programming concepts and shows how they work within the context of JavaScript.

The book

JavaScript as a language supports functional programming but it’s quite possible to never use it in an intentionally functional way. In fact, many people practice an object-oriented programming approach instead. Functional JavaScript briefly explains the difference between an object-oriented approach and a functional approach to programming. Late in the book, there is also an exploration of how object-oriented programming and functional programming approaches can work together.

Rather than preach that there is only one right way to write JavaScript, Functional JavaScript broadens the toolkit that you have for solving problems with JavaScript. In fact, it teaches a way...

Continue reading →

Book of the Day: Discover Meteor

Book of the Day: Discover Meteor

by Tom Coleman & Sacha Greif

The Long Introduction

Back in June, I wrote a quick blurb about using Express.js and Node.js as a prototyping medium for web apps and data architecture. I quickly received a handful of tweets saying: “Yes, but why don’t you use Meteor?”.

My curiosity was piqued and as I had no experience with Meteor, I decided to do a little exploring.

Meteor is an ultra-simple environment for building modern websites. What once took weeks, even with the best tools, now takes hours with Meteor.

— Meteor Docs

The documentation is a great place to start. However learning a new framework through it’s docs is not always the quickest path for getting started. Not to mention that the challenge often increases proportionally to the youth of the framework because of the lack of readily available resources and answers online.

Unless it’s for...

Continue reading →

Book of the Day: Building Backbone Plugins

I haven’t seen much writing on the topic of extending Backbone which makes Building Backbone Plugins by Derick Bailey the only book of it’s kind that I’m aware of. As the title suggests, Building Backbone Plugins is most likely going to appeal to you if you’re part of a relatively specific audience: You already work with Backbone, JavaScript isn’t new to you, and you are ready to take the next steps with Backbone. Scalable application architecture, reduced boilerplate code and more efficient use of development efforts are likely to be things you’re thinking about.

The bottom line is that there’s a lot of great material in Building Backbone Plugins which makes it, along with the source code of projects like Backbone.Marionette and Chaplin, a treasure trove of knowledge for the Backbone developer concerned with application architecture and extending Backbone.

None-the-less, there are a...

Continue reading →

Book Review: Advanced Express Web Application Development

Advanced Express Web Application Development written by Andrew Keig and published by PacktPub takes the reader on a journey through full-stack JavaScript development. The book walks through building a single page web application feature by feature with Express.js, a web application framework for node.

The Good

Advanced Express Web Application Development covers an impressive amount of ground. It offers a great look at the process of building a non-trivial single-page web application with Express. After covering basic setup, the book progresses quickly through testing, automation, building a web API, MongoDB, logging, building the client-side Backbone application, real-time communication with offline support using Socket.IO and Redis, authentication and security, acceptance testing, performance, scalability and best-practices.

The Bad

I would have really liked to see more context...

Continue reading →

iPad App Review: Kodiak JavaScript IDE

Kodiak JavaScript: The Perfect IDE for web developers for iPad was released this week. As someone who spends a disproportionate amount of my time in JavaScript, I’ve been very curious to see what the developers vision of an iPad JavaScript IDE would be. I’ve had a chance to play with it a bit and thought a review would be in order.

The great

First, the things I love about Kodiak:

  1. It comes bundled with nearly 60 JavaScript libraries and frameworks making it dead simple to link to one and start coding.
  2. It has a very capable, lightening fast preview browser integrated in. Want to see that lovely data visualization you just made with d3? Just tap the preview icon.
  3. It has a navigation key — a bit like a virtual trackball — which is very useful. I’d like if this extended to highlighting test the way that Textacular’s navigation system does.
  4. It has tabbed file editing.
  5. It comes loaded...

Continue reading →

Moving the web forward together

The process of how ideas become working features on the web is a mystery to most people and I suspect that most developers have the sense that they can actually influence that process. Over the past couple weeks a number of articles have appeared discussing the way forward in the open web. They share a core underlying ideal: web developers need the ability to extend the web with new features or in other words:

In order for the open web to compete with its walled competitors, there must be a clear path for good ideas by web developers to become part of the infrastructure of the web.
— The Extensible Web Manifesto

In The Extensible Web Manifesto, a number of important figures in the JavaScript community have committed to changing “how web standards committees create and prioritize new features”.

Yehuda Katz fleshes out the ideas of the manifesto in his post Extend the web forward and...

Continue reading →

Express.js and Node.js as a prototyping medium

Perhaps you already know this: Express.js and Node.js can be a powerful medium for rapid-prototyping. However, if you’ve never used either one, it may seem daunting to get started. Over the past week, I’ve stumbled across a number of useful articles related to using Express.js — ‘a minimal and flexible Node.js application framework’ that help take any edge off the learning curve. In the hopes that it’s useful, I thought I’d share the list in one place.

Evan Hahn has written an in-depth article — Understanding Express.js — exploring how Express.js actually works. In his words:

It helps you build web apps. If you’ve used Sinatra in the Ruby world, a lot of this will be familiar. It’s good magic… But all magic comes at a price: you might not understand the inner workings of Express.

After you read Understanding Express.js you will have a better idea of what’s happening beneath the...

Continue reading →