Menu

Keeping the trunk stable

September 10, 2010

Since the very beginning, kaChing has been trunk stable. In other words, everybody develops on the trunk and the software is stable at every point in time. Our trunk is being continuously built and tested and we cannot deploy a revision to production unless the revision has been successfully built and all the tests are… Read more

DevOps Cafe on Continuous Deployment and Operations Dashboards at kaChing

September 09, 2010

Open Mic is a new video series where John and Damon visit high performing IT operations and record an insider’s tour of the tools and processes these companies are using to solve their DevOps problems. In this episode, we visited disruptive financial services upstart, kaChing, in Palo Alto, California. David Fortunato, Pascal Perez, and Eishay… Read more

Models, they make everything look good

August 31, 2010

One of the most common best practices in Rails is to keep the controller light weight. This helps maintain the code’s readability maintainability, and refactorability (just like coding, I make stuff up). This is often done by pushing as much of the business logic as you can (where it still makes sense) down into a… Read more

Type inference puzzler

Does this compile? public class Puzzle { static Object one() { return 1; } static <T> T safeOne() { return (T) one(); } public static void main(String[] args) { int one = safeOne(); System.out.println(one); } } Take a look at it carefully and think before answering. Why or why not? Once you’ve thought it through,… Read more

Creating TypeLiterals in Scala

August 30, 2010

In case anyone wondered, here is how one can easily create instances of Google Guice’s TypeLiteral in Scala. Type literals are used for reifying types. def typeLiteralOf[T](implicit m: scala.reflect.Manifest[T]): TypeLiteral[T] = (m match { case m: ClassManifest[T] if m.typeArguments.isEmpty => TypeLiteral.get(m.erasure) case m: ClassManifest[T] => TypeLiteral.get(new ParameterizedTypeImpl(m.erasure, m.typeArguments.map { case n: ClassManifest[_] => typeLiteralOf(n).getType }.toArray))… Read more

Had a great Lean Startup TGIF at kaChing

August 15, 2010

Last Friday we had some great time at the kaChing “Lean Startup TGIF”. Engineers and entrepreneurs came over from all over the Bay area as far as San Francisco and Berkeley. We chatted about Lean Startups, Continuous Deployment, Test Driven Development/Deployment, Monitoring, seeking talent and geeking around about the next big thing. There was lots… Read more