SDK MAN – Software Development Kit Manager

I use sdk man to maintain multiple versions of Groovy, Java, Scala. It makes switching very easy.

SDKMAN! is a tool for managing parallel versions of multiple Software Development Kits on most Unix based systems. It provides a convenient Command Line Interface (CLI) and API for installing, switching, removing and listing Candidates. Formerly known as GVM the Groovy enVironment Manager, it was inspired by the very useful RVM and rbenv tools, used at large by the Ruby community.

Installing SDKMAN! on UNIX-like platforms is as easy as ever. SDKMAN! installs smoothly on Mac OSX, Linux, Cygwin, Solaris and FreeBSD. We also support Bash and ZSH shells.
Simply open a new terminal and enter:

$ curl -s "https://get.sdkman.io" | bash

Follow the instructions on-screen to complete installation.
Next, open a new terminal or enter:

$ source "$HOME/.sdkman/bin/sdkman-init.sh"

Lastly, run the following code snippet to ensure that installation succeeded:

$ sdk version

If all went well, the version should be displayed. Something like:

  sdkman 5.0.0+51
Advertisements

Architecture: Bridge Design Pattern

Hi Friends,
I have made a project of “Remote Control Application” by implementing Bridge design pattern.

Project: Solves the problem of dependency / coupling between parallel development / evolution of 2 different components by creating a bridge between their interfaces 😉

What is Bridge Design Pattern: decouples an abstraction so two classes can vary independently

Github project code: https://github.com/premaseem/DesignPatternsJava9/tree/bridge-pattern

I have written the working code based on the Architectural diagram, which can be downloaded from Github.

4_4_Bridge_pattern_sequence

Bridge Design Pattern class diagram.png

MongoDB : History tracking micro service

Mongo DB local -> oplog.$main collection keeps records of all changes which happen in the primary database, which are eventually read by secondaries to catch up data or syncup data in the mongo replica set.

A micro service can be written, which can pull up data / delta form oplog.$main based on the name space ( defined db and collection) and can save that data in destination Db or audit DB.

Later on audit DB can the queried to fetch the history or log data pertaining to entity.

audit log sequence diagram

Architecture: How mongodb replication works and secondary node get data from primary node

Here is the simple diagram which explains how the middle man oplog watches/monitors primary and pull any new operation or changes happened on primary and records them in oplog, which eventually get read by all secondaries to update them selves.

  1. insert operation happened in primary
  2. Operation got logged in oplog ( which is part of local db – oplog.$main )
  3. Secondary reads data from oplog and update them selves.

Mongo oplog diagram

Architecture: Facade design pattern

Hi Friends,
I have made a project of  “All in one remote controller”  by implementing Facade design pattern.

Project: Solves the problem of too many TV / entertainment unit remotes by using a simplified master remote control ( which acts as Facade here )

What is Facade Design Pattern: provides a simple interface to a more complex underlying object.

Github project code: https://github.com/premaseem/DesignPatternsJava9/tree/facade-pattern

I have written the working code based on the Architectural diagram, which can be downloaded from Github.

 

4_3 facade sequence

 

4_3 Facade class diagram

 

Movie review : Coco 3D animated movie

Overall Rating : 5/5

Movie: http://movies.disney.com/coco

Coco is a 2017 American 3D computer-animated fantasy adventure film produced by Pixar Animation Studios and released by Walt Disney Pictures.

After several years I want to theater to watch any 3D movie  with daughter and wife. I was so happy to watch this movie. The message was simple – “Love your family and value them” .

There is no extreme sex or violence. For kids and even for adults its a very nice movie to watch.

http://movies.disney.com/coco

 

Architecture: Adapter design pattern

Adapter Design Pattern allows for two incompatible classes to work together by wrapping an interface around one of the existing classes

I have written the working code based on the Architectural diagram, which can be downloaded from Github.

Working code github link: https://github.com/premaseem/DesignPatternsJava9/tree/adapter-pattern

 

4_1 Adapter design pattern - sequence diagram

 

4_1 Adapter Design Pattern