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

abc

Continue reading Selective Combinations

JINQ

In his talk at the CppCon 2014, Bjarne Stroustrup explained, politely and brilliantly, how to write succinct 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.

Continue reading JINQ