Detecting and Automatically Fixing JavaScript Code Style

.

At the most recent jQuerySF conference, Mike Sherov and I did a joint talk on the topic of JavaScript Syntax Tree: Demystified. The highlight of the talk was the demo from Mike as he showed how to fix coding style violations automatically. The trick is to use JSCS and its latest features. If you want… Read more »

Docker and Phoenix: How to Make Your Continuous Integration More Awesome

.

While a build system is always critical to the success of a software project, maintaining such a system is not always fun. Hence, we tend to investigate many different ways to reduce the maintenance effort. Thanks to Docker, there is a possibility to have the build agent itself very simple because it does nothing but… Read more »

Easy TeamCity Installation with Docker

.

TeamCity from JetBrains is an easy-to-use and powerful continuous integration system. It is a commercial product, but there is a special zero-cost license for small projects and FOSS applications. While installing TeamCity is relatively easy, its setup is further simplified via the use of Docker. Like many other state-of-art continuous integration systems, TeamCity adopts the… Read more »

Build Agent: Template vs Provisioning

.

For an automated build system, a typical configuration involves the separation between the build server and the build agents (some systems call it master-slave or coordinator-runner). Such a configuration allows any addition or removal of new build agents, perhaps to improve the build performance, without causing too much disruption. When it is time to spawn… Read more »

Great Teams Make History

.

The Spurs just recently won the 2014 NBA Finals with a series of convincing games. Most importantly however, they demonstrated the amazing traits of unselfishness and teamwork. It is not about getting the individual fame and glory, it is all about working together towards the common goal. Time and time again we witnessed the excellent… Read more »

The Flying Car Problem

.

Many free/open-source projects often suffer from a very specific feedback where it is assumed that a certain feature will not be implemented because of a philosophical reason. It is what I called as the "flying car" problem. As an illustration, with a lot of users and very few contributors, PhantomJS was bound to have that… Read more »