Unit testing responsive apps with Cucumber Tags

“Unit Testing”, “Responsive Apps” and “Cucumber”…. do these dots connect ?

Recently we developed a customer facing Java web-app for one of our clients. It was targeted for multiple platforms & devices and therefore, had to have a responsive UI.

After some study on device types and browser support (for JS / HTML 5/ CSS 3) we decided to serve 3 variations of our UI based on device screen size and JavaScript / CSS support. Continue reading

Object Oriented Design…. think before you leap !!!

As I learn and discover more about functional programming each day, I personally feel that have I wasted these many years (over 15+) in working with objects and object orientation… It does leave me frustrated to an extent, but hey, its never too late to pick up things.

I just feel bad that with typical web apps what we really do is take the data, convert it to object hierarchy and graphs and eventually persist them in some Relational DB using an OR mapper; only to be read back as some view or to be iterated over a collection of objects for projections or aggregated views. Just makes me feel stupid….all these years, did I do that type of work and get paid? Continue reading

Why I’d like to write software like I was playing music

I love classical music (mostly Indian). As a kid, I learnt to play the Mridangam (a percussion instrument that comes from South India), but did not get beyond an intermediate level of mastery. Some day, I yearn to learn again…

Music is an art and a craft. While writing software is a craft, I’d like to think it has some qualities of art (some might say, ‘black art’). Perhaps this is due to the relative infancy of the science of writing software. Certainly, there is no way for a layman to appreciate the intricacies of well-written software, other than to marvel at the finished (?!) product. But that is a different debate. Continue reading

Code Jugalbandi

In Indian classical music, we have Jugalbandi, where two musicians or vocalists engage in playful competition.

A typical jugalbandi between a Flutist and a Percussionist plays out like this:

The percussionist listens to the intricate compositions played by the flutist and recreates them symmetrically. Needless to say, this often results in an exhilarating musical experience for the audience.

On a similar metaphor, I am proposing the idea of Code Jugalbandi across multiple programming languages (not just two) and see how the same code is rendered using different languages. Continue reading