<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Tech Blog on Siva Kalidasan</title>
    <link>https://mksiva.com/tech/</link>
    <description>Recent content in Tech Blog on Siva Kalidasan</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Tue, 30 Jun 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://mksiva.com/tech/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>MIT vs. Apache 2.0: At a Glance</title>
      <link>https://mksiva.com/tech/mit-vs-apache-2-0-at-a-glance/</link>
      <pubDate>Tue, 30 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://mksiva.com/tech/mit-vs-apache-2-0-at-a-glance/</guid>
      <description>&lt;p&gt;&lt;em&gt;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.&lt;/em&gt;&lt;/p&gt;
&lt;h2 id=&#34;why-this-matters&#34;&gt;Why this matters&lt;/h2&gt;
&lt;p&gt;When you use open-source software — or when you publish your own — you are agreeing to a &lt;strong&gt;license&lt;/strong&gt;. A license answers practical questions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Can I use this at work?&lt;/li&gt;
&lt;li&gt;Can I change it?&lt;/li&gt;
&lt;li&gt;Can I ship it inside a paid product?&lt;/li&gt;
&lt;li&gt;What text do I need to keep when I redistribute it?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;MIT&lt;/strong&gt; and &lt;strong&gt;Apache License 2.0&lt;/strong&gt; are both &lt;strong&gt;permissive&lt;/strong&gt; 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.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Building a Simple CLI Tool with Picocli</title>
      <link>https://mksiva.com/tech/building-a-simple-cli-with-picocli/</link>
      <pubDate>Sat, 20 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://mksiva.com/tech/building-a-simple-cli-with-picocli/</guid>
      <description>&lt;p&gt;&lt;em&gt;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.&lt;/em&gt;&lt;/p&gt;
&lt;h2 id=&#34;why-build-a-cli-tool&#34;&gt;Why build a CLI tool?&lt;/h2&gt;
&lt;p&gt;Many useful tools run in the terminal:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Build scripts&lt;/li&gt;
&lt;li&gt;Data migration utilities&lt;/li&gt;
&lt;li&gt;Dev helpers (rename files, check configs, seed databases)&lt;/li&gt;
&lt;li&gt;Internal admin tools&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You &lt;em&gt;can&lt;/em&gt; parse &lt;code&gt;args&lt;/code&gt; manually with &lt;code&gt;String[] args&lt;/code&gt;, but that gets messy quickly when you need flags, subcommands, defaults, and &lt;code&gt;--help&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fundamentals That Still Matter in the AI Era</title>
      <link>https://mksiva.com/tech/fundamentals-that-still-matter-in-ai-era/</link>
      <pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate>
      <guid>https://mksiva.com/tech/fundamentals-that-still-matter-in-ai-era/</guid>
      <description>&lt;p&gt;&lt;em&gt;AI is changing how software gets built. But the durable value in engineering is shifting toward judgment, architecture, communication, domain depth, and ownership.&lt;/em&gt;&lt;/p&gt;
&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;When code becomes cheaper to produce, the expensive questions become:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Introduction to Graph QL</title>
      <link>https://mksiva.com/tech/introduction-to-graph-ql/</link>
      <pubDate>Thu, 01 Aug 2019 00:00:00 +0000</pubDate>
      <guid>https://mksiva.com/tech/introduction-to-graph-ql/</guid>
      <description>&lt;h4 id=&#34;query-what-you-need-not-everything-a-better-rest&#34;&gt;Query what you need! &lt;strong&gt;not everything&lt;/strong&gt;, a better REST!!!&lt;/h4&gt;
&lt;p&gt;Query what you need! &lt;strong&gt;not everything&lt;/strong&gt;, a better REST&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;GraphQL&lt;/strong&gt; is a query language for APIs and a run time for fulfilling those queries with your existing data. GraphQL is the better REST.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;No-more Over fetching and Under fetching…&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a class=&#34;image-lightbox&#34; href=&#34;https://mksiva.com/images/posts/introduction-to-graph-ql/graphql-intro.png&#34; aria-label=&#34;View full size image&#34;&gt;
&lt;img alt=&#34;GraphQL&#34; loading=&#34;lazy&#34; src=&#34;https://mksiva.com/images/posts/introduction-to-graph-ql/graphql-intro.png&#34;&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;a-scenario&#34;&gt;A scenario&lt;/h2&gt;
&lt;p&gt;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.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Understanding DevOps</title>
      <link>https://mksiva.com/tech/understanding-devops/</link>
      <pubDate>Mon, 08 Apr 2019 00:00:00 +0000</pubDate>
      <guid>https://mksiva.com/tech/understanding-devops/</guid>
      <description>&lt;p&gt;What is DevOps? what is so special about the term dev-ops? what are the problems it solves?&lt;/p&gt;
&lt;p&gt;Development &lt;strong&gt;+&lt;/strong&gt; operations? &lt;strong&gt;Developers&lt;/strong&gt; will work together with &lt;strong&gt;operations or infra&lt;/strong&gt; guys? If yes, then that&amp;rsquo;s what we have been doing for long time in the software world? isn&amp;rsquo;t it?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;DevOps is all about &lt;strong&gt;people&lt;/strong&gt;, &lt;strong&gt;process&lt;/strong&gt; and &lt;strong&gt;tools&lt;/strong&gt; work together seamlessly to increase productivity and make the business more profitable.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Let us look into some explanations.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Manage Spring boot applications using Spring boot admin</title>
      <link>https://mksiva.com/tech/manage-spring-boot-applications-using-spring-boot-admin/</link>
      <pubDate>Mon, 04 Mar 2019 00:00:00 +0000</pubDate>
      <guid>https://mksiva.com/tech/manage-spring-boot-applications-using-spring-boot-admin/</guid>
      <description>&lt;p&gt;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).&lt;/p&gt;
&lt;p&gt;I wanted to monitor our spring applications; In this search, I have come across &amp;lsquo;Spring boot admin&amp;rsquo;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Dealing with Java and JSON conversion</title>
      <link>https://mksiva.com/tech/dealing-with-java-and-json-conversion/</link>
      <pubDate>Fri, 23 Sep 2016 00:00:00 +0000</pubDate>
      <guid>https://mksiva.com/tech/dealing-with-java-and-json-conversion/</guid>
      <description>&lt;p&gt;When you are trying to convert any java object to json, you may run in to this problem.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;com.fasterxml.jackson.core.JsonGenerationException: Null key for a Map not allowed in JSON (use a converting NullKeySerializer?)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This is due to null key in the map of objects (or collection of objects). JsonGenerator cannot serialize the null key into json.&lt;/p&gt;
&lt;h2 id=&#34;ignore-null-values-in-the-map&#34;&gt;Ignore &amp;rsquo;null&amp;rsquo; values in the map&lt;/h2&gt;
&lt;p&gt;So we can ignore &amp;rsquo;null&amp;rsquo; key and values from the ObjectMapper by using:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Angular JS ObjectId to String</title>
      <link>https://mksiva.com/tech/angular-js-objectid-to-string/</link>
      <pubDate>Fri, 01 Jul 2016 00:00:00 +0000</pubDate>
      <guid>https://mksiva.com/tech/angular-js-objectid-to-string/</guid>
      <description>&lt;h2 id=&#34;angular-js&#34;&gt;Angular JS&lt;/h2&gt;
&lt;p&gt;Binding fields in HTML form with Java script was a big and tedious logic we will normally write in jquery and Java script days.&lt;/p&gt;
&lt;p&gt;Angular js comes to rescue from writing lot of glueing and boiler plate coding in front end development.&lt;/p&gt;
&lt;p&gt;Angular js is MVC client side framework which developed to ease life of front end developers.&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Securing Java web applications - Part 1</title>
      <link>https://mksiva.com/tech/securing-java-web-applications-part-1/</link>
      <pubDate>Tue, 29 Sep 2015 00:00:00 +0000</pubDate>
      <guid>https://mksiva.com/tech/securing-java-web-applications-part-1/</guid>
      <description>&lt;p&gt;In my previous blog (&lt;a href=&#34;https://mksiva.com/tech/securing-web-applications-introduction/&#34;&gt;Securing web applications - Introduction&lt;/a&gt;), I have introduced security in general and some important terminologies on security.&lt;/p&gt;
&lt;p&gt;There are different kind security concepts exists. Application security, Network security and to name a few. I am referring to &amp;lsquo;Application security&amp;rsquo; here.&lt;/p&gt;
&lt;p&gt;In this article, we will see:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Custom security vs container security implementations&lt;/li&gt;
&lt;li&gt;What is J2EE security model?&lt;/li&gt;
&lt;li&gt;Types of different custom security implementation methods&lt;/li&gt;
&lt;li&gt;How to implement using J2EE security?&lt;/li&gt;
&lt;li&gt;Some samples&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Application security:&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>First Computer related learning @ College</title>
      <link>https://mksiva.com/tech/first-computer-related-learning-college/</link>
      <pubDate>Thu, 21 Aug 2014 00:00:00 +0000</pubDate>
      <guid>https://mksiva.com/tech/first-computer-related-learning-college/</guid>
      <description>&lt;p&gt;I was sitting in my first year computer engineering class with my friend.&lt;/p&gt;
&lt;p&gt;My computer science learning started with what is Internet explorer in computers.&lt;/p&gt;
&lt;p&gt;My friend explained in fantastic way, its something to explore things on internet by browsing through. Learned the words Internet explorer , browser and browsing. :)&lt;/p&gt;
&lt;p&gt;Next. My friend told me to type website address in address bar. What&amp;rsquo;s website address &amp;amp; What&amp;rsquo;s that address bar? :)&lt;/p&gt;</description>
    </item>
    <item>
      <title>RIA USING ADOBE AIR AND FLEX - A tool</title>
      <link>https://mksiva.com/tech/ria-using-adobe-air-and-flex-a-tool/</link>
      <pubDate>Sun, 20 Mar 2011 00:00:00 +0000</pubDate>
      <guid>https://mksiva.com/tech/ria-using-adobe-air-and-flex-a-tool/</guid>
      <description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I have developed a small standalone tool using adobe air. The tool is called &amp;ldquo;Budgeting tool&amp;rdquo;. This tool can be used to store day to day spendings for groceries or milk or whatever we spend on daily basis. You can make an entry daily. you can also see the reports for your spending and all signed in user&amp;rsquo;s as well.&lt;/p&gt;
&lt;p&gt;I got the idea from our room. actually we are a few friends staying together. we use to buy milk packs curd , vegetables and groceries for our room,and we will make a note of it in a notepad. End of the month we will calculate the spendings and individual contribution on groceries and we will calculate how much each person has to pay.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Securing web applications - Introduction</title>
      <link>https://mksiva.com/tech/securing-web-applications-introduction/</link>
      <pubDate>Sat, 29 Nov 2008 00:00:00 +0000</pubDate>
      <guid>https://mksiva.com/tech/securing-web-applications-introduction/</guid>
      <description>&lt;p&gt;Securing your web application is equally important as developing quality applications.&lt;/p&gt;
&lt;p&gt;An application is comprised of lot of resources which is available for their callers/users.&lt;/p&gt;
&lt;p&gt;Security is an important aspect of applications that transport sensitive data over the internet.&lt;/p&gt;
&lt;p&gt;It is important to protect the resources from being attacked/illegally accessed.&lt;/p&gt;
&lt;p&gt;Basically illegitimate access to the resources of the application have to be stopped/rejected.&lt;/p&gt;
&lt;p&gt;&lt;a class=&#34;image-lightbox&#34; href=&#34;https://mksiva.com/images/posts/securing-web-applications-introduction/security-breach.jpg&#34; aria-label=&#34;View full size image&#34;&gt;
&lt;img alt=&#34;Security breach&#34; loading=&#34;lazy&#34; src=&#34;https://mksiva.com/images/posts/securing-web-applications-introduction/security-breach.jpg&#34;&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;There are two main concerns in securing web applications and that need to be addressed:&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
