Chandra Sekar's Blog

Go Does Delegates Beautifully!

06 Apr, 2012 golang / ruby / delegates / java

When working with object-oriented languages, there are many instances when one would want to implement an interface re-using code from another implementation of the interface. While inheritance will work, it couples the new implementation to the specific other implementation. Composition with delegation will be a better way of doing this.

 Read more

How Git outshines Subversion at Merging

22 Jan, 2010 git / svn

I’ve recently started getting my head around Git having been a Subversion (sadly even CVS) user all along. While I liked the fact that it was distributed and way faster than Subversion at most operations, I couldn’t understand why many claimed it was better at merging than Subversion (1.5 and above). Even the “Branch Handling” section in Git’s wiki talks only about better history tracking but not about how Git is better at merging the content themselves.

 Read more

Simple Layouts with JSP in Spring MVC

13 Dec, 2009 java / spring

Every web application has elements common to all its pages which are good candidates for re-use. While Spring MVC provides integration with Tiles, it can be an overkill for simple applications and needs using Spring’s client side JS library for AJAX (correct me if I’m wrong).

 Read more

Mocking Math.random() using PowerMock

01 Nov, 2009 java / testing

Let’s consider the below Game class in a guessing game where a random target is chosen by the system and the user guesses the target. The system returns an appropriate message based on whether the guess was higher, lower or equal to the random target.

 Read more

ScriptEngineBuilder for Java

28 Aug, 2009 java / javascript

Java 6 allows you to execute and communicate with scripts written in any scripting language, using the Scripting API. However, the code needed to create a ScriptEngine and evaluate a set of script files within it, is quite verbose and throws several checked exceptions.

 Read more

← Newer Posts   Older Posts →