MIT vs. Apache 2.0: At a Glance

MIT and Apache 2.0 are two of the most popular open-source licenses. Both are friendly to developers and businesses — but they are not identical. Here is a simple side-by-side look. Why this matters When you use open-source software — or when you publish your own — you are agreeing to a license. A license answers practical questions: Can I use this at work? Can I change it? Can I ship it inside a paid product? What text do I need to keep when I redistribute it? MIT and Apache License 2.0 are both permissive licenses. That means you can use the code in almost any project, including commercial and closed-source products, as long as you follow a few simple rules. ...

June 30, 2026

Building a Simple CLI Tool with Picocli

Picocli is a small Java library that makes it easy to build command-line tools. You write plain Java classes, add a few annotations, and Picocli handles parsing, help text, and error messages for you. Why build a CLI tool? Many useful tools run in the terminal: Build scripts Data migration utilities Dev helpers (rename files, check configs, seed databases) Internal admin tools You can parse args manually with String[] args, but that gets messy quickly when you need flags, subcommands, defaults, and --help. ...

June 20, 2026

Fundamentals That Still Matter in the AI Era

AI is changing how software gets built. But the durable value in engineering is shifting toward judgment, architecture, communication, domain depth, and ownership. Introduction AI can generate code, explain APIs, draft tests, and help teams move faster. That is useful. But it does not remove the need for strong engineering fundamentals. In many cases, it makes those fundamentals more important. When code becomes cheaper to produce, the expensive questions become: ...

May 25, 2026

Introduction to Graph QL

Query what you need! not everything, a better REST!!! Query what you need! not everything, a better REST GraphQL is a query language for APIs and a run time for fulfilling those queries with your existing data. GraphQL is the better REST. No-more Over fetching and Under fetching… A scenario In your app, you need to display logged in user name and full name on the right top corner. But you want only user name and full name. ...

August 1, 2019

Understanding DevOps

What is DevOps? what is so special about the term dev-ops? what are the problems it solves? Development + operations? Developers will work together with operations or infra guys? If yes, then that’s what we have been doing for long time in the software world? isn’t it? DevOps is all about people, process and tools work together seamlessly to increase productivity and make the business more profitable. Let us look into some explanations. ...

April 8, 2019

Manage Spring boot applications using Spring boot admin

Manage and monitor your spring boot applications using nice UI with spring boot admin. There are lots of options out there for APM (Application process monitoring) spring boot applications such as Micrometer, Prometheus and Grafana. I was looking for something from spring ecosystem itself, although we have lots of others options with respect to APM (Application process monitoring). I wanted to monitor our spring applications; In this search, I have come across ‘Spring boot admin’. ...

March 4, 2019

Dealing with Java and JSON conversion

When you are trying to convert any java object to json, you may run in to this problem. com.fasterxml.jackson.core.JsonGenerationException: Null key for a Map not allowed in JSON (use a converting NullKeySerializer?) This is due to null key in the map of objects (or collection of objects). JsonGenerator cannot serialize the null key into json. Ignore ’null’ values in the map So we can ignore ’null’ key and values from the ObjectMapper by using: ...

September 23, 2016

Angular JS ObjectId to String

Angular JS Binding fields in HTML form with Java script was a big and tedious logic we will normally write in jquery and Java script days. Angular js comes to rescue from writing lot of glueing and boiler plate coding in front end development. Angular js is MVC client side framework which developed to ease life of front end developers. I have developed a few applications using angular js. In this blog post, I will share some issues I had faced and how I fixed. ...

July 1, 2016

Securing Java web applications - Part 1

In my previous blog (Securing web applications - Introduction), I have introduced security in general and some important terminologies on security. There are different kind security concepts exists. Application security, Network security and to name a few. I am referring to ‘Application security’ here. In this article, we will see: Custom security vs container security implementations What is J2EE security model? Types of different custom security implementation methods How to implement using J2EE security? Some samples Application security: ...

September 29, 2015

First Computer related learning @ College

I was sitting in my first year computer engineering class with my friend. My computer science learning started with what is Internet explorer in computers. My friend explained in fantastic way, its something to explore things on internet by browsing through. Learned the words Internet explorer , browser and browsing. :) Next. My friend told me to type website address in address bar. What’s website address & What’s that address bar? :) ...

August 21, 2014