Practical Scala/Java interoperability by small examples

September 14, 2010

If you try to combine Java code with Scala in your application, everything seems to go fine until you bump into big differences between Java collections and Scala collections. A Scala Traversable is not Java Iterable and vice versa; maps are different, etc. So, in practice, you have to do conversion. Fortunately, there are pretty… Read more

When Garbage Collection is Failure

For systems that absolutely require a constant responsiveness Java is generally not an option because of the pauses associated with the garbage collector. Even the alternative collectors, such as parallel and concurrent-mark-sweep, have a pause associated with them for major and minor collections. This problem can be avoided, though, by making sure the garbage collector… Read more

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