Application Models

A typical business application is composed of several flows or use-cases. Also, these flows consist of logical ones like a transaction that spans several flows. Take for instance an e-commerce application which consists of user registration/login, product lookup, and one of the most important interactions in an e-commerce application – the shopping cart, and much more. Although these application flows might appear to be discrete and independent of one another, it is after producing a working solution that we realize that these flows are inherently interrelated for one reason or another. The idea of designing stateless application flows is many times confused with the relation between the flows.

Continue reading Application Models

Text Editors

I am not a *nix commands expert .. but a professional? So why not relish educating my brother a couple of nifty commands, especially – find and grep, which he was looking into at the time. You can find a few more here if you are interested.

So much for the command line, watch out for the _overdose_1. I find it funny when people, especially developers, copy files on the command line on a Mac (or Ubuntu for that matter); I mean files on the local machine. Specifically, they either copy the file (Cmd-C) via the Finder and paste it, or worse drag and drop, on the Terminal 2. Our next laugh was about editing local files in vim 😆3.

The question isn’t why shouldn’t you edit local files in vim 💪, the question is why would you (want to)? 🤔

Continue reading Text Editors

Selective Combinations

Consider this scenario:

You have a list of strings with which you have generate ordered selective combinations of strings starting with the first string in the list. Let us say the list of strings is abc, def and ghi. I have to generate ordered combinations of the above list restricted to the ones starting with abc.

So that would be as follows:

abc def ghi

abc def

abc ghi


If the problem sounds abstract, here is the real situation. Continue reading Selective Combinations


In his talk at the CppCon 2014, Bjarne Stroustrup explained, politely and brilliantly, how to write succint expressive yet intent-ful code. The task is especially hard when there are parties interested in trolling1 rather than contributing. Like Stroustrup explains back, it is difficult to find the real meaning out of a large block of (legacy) code.

It doesn’t matter if you are modifying the code or just educating yourself. But having blocks of code that do not account for their size, clarity, or lack thereof, and intent 2 is just unwanted fat in the system. With business applications, especially pillared and sustained with legacy code, it has become a defining characteristic of large sized applications – large bulky and ugly code. Just like Jon Bentley once said.

Continue reading JINQ

Partial Classes – Java ???

I am really sorry if I tricked you into believing that Java is offering partial class feature. Unfortunately, Java doesn’t. Maybe never will. But I am going to talk about a workaround also presenting the thought process. Hence the length of the post.

The partial1 keyword is wonderful tidbit feature in C#; split a class source code across multiple files.

Continue reading Partial Classes – Java ???