Posts

From Syntax to Autonomy

Image
The history of computing is often measured in hardware cycles or processing speeds, but the truest measure of progress is how humans interact with machines. When we look at the evolution of interfaces, the narrative breaks down into four defining eras—moving from rigid syntax to fully autonomous orchestration. Let us take a deeper look into each era, the key industry players who defined them, and how the fundamental architecture of human-computer cooperation has completely reshaped our world. 1. The Command Era (1970s–1980s) Before interfaces were warm and inviting, they were stark, text-only, and completely unforgiving. In the Command Era, the human-to-machine bridge was built entirely on direct Command-Line Interfaces (CLI). To extract utility from a computer, users had to act like programmers—memorizing strict syntax, arguments, and pathways to force the machine to perform tasks. Key Players IBM: Dominated early mainframe layouts and business enterprise infrastru...

Developing Spring Boot Application using Docker - Part 3

Introduction  Now that we are able to run and Debug the application inside the container let us add Database connection for our service. In this part we will be adding Database service to our Docker Compose file and use that inside the application. For the purposes of simplicity we can use MYSQL as backend database. Get started to build CRUD using Spring Boot To begin with let us add the below to our gradle file to get the required support for our DB We can now define our data model to be added. It is time to create our CRUD repository Lets add our own Service that can be used by the REST Controller Lets add our own Rest Service that can be invoked to access our database With the above code, we should have something to get into our Docker friend. Get your docker stuff ready Let us now add the database for us to test the docker compose This docker compose file has inline comments help you understand what is happening here If you pay close attention to what ha...

Developing Spring Boot Application using Docker - Part 2

Image
Hopefully you have now got your Spring Boot Application run inside the container. If you are not there yet, please visit Developing Spring Boot Application using Docker - Part 1 to go start. There is one thing as an Architect on my daily job, I used to ask myself, if we run the application inside the container, how do we debug? How to view logs? How to triage issues on local? The biggest of all is debugging the Spring Boot Application that is running inside the container. Setting up Debugging environment The concept of debugging any Java Based Application that is running inside the container can be done using the most common way is using remote debugging. Typically, whenever we wanted to debug applications that are running in a machine that is outside of our own, we use Remote Debugging. Most IDEs like Eclipse and IntelliJ ship with those capabilities. The good news is, the setup required to get that started are fairly common. Lets see how to get that setup when running on docker. To ...

Developing Spring Boot Application using Docker - Part 1

Image
Recently I have been stormed by the now old buzz word Docker. I have been reading a lot about Docker for quite some time and found some abundant resources out there on internet. I am planning to add more to the series in my later posts. I will be posing my blogs as and when I am learning and discovering something new in my journey. It's never too late to start something is what I believe. Lets get started. Prerequisites Prerequisites for this project. An IDE of your choice Java 11 Docker Section 1: L ets Start from start.spring.io If you already have a working Spring Boot Application, head to Section 2. We can build the Spring Boot Project by just visiting the below link. URL to generate Simple Spring Boot App on start.spting.io This should get you started with a typical Spring Boot Application Now lets download and extract the project to workspace. Extract files using $ unzip -d ~/your/fav/location/ docker-example.zip or your GUI tool installed on you computer. Now it is time for ...

Terminalize your Prompt

Image
Introduction As a Software Developer, it is often productive to use the terminal. I am used to the terminal so much and spend most of my time on the terminal. To enhance your experience on your terminal I strongly recommend the @ohmyzsh to be part of your terminal. It has been a few years now, not sure from when, I cannot imagine a terminal without @ohmyzsh. There are a lot of details found on Oh My Zsh - a delightful & open source framework for Zsh please feel free to visit and be prepared to be awesome-struck. Here is my Terminal that I had posted on my Twitter a while ago https://twitter.com/reflexdemon/status/1216679064565702656 Let's get started with awesomeness! Here I would recommend you to make sure you have the wget tool. This is a utility from the GNU Free Software Foundation. Visit Wget to make sure it is in your ecosystem. There is another very important tool that you will need is the jq . That helps in parsing the json output. Chuck Noris Jo...

Installing Open JDK on Ubundu

Introduction Here we come with another Java cool stuff. Ever wondered how to keep yourself upto date with Java's new release structure. I am going to talk on how to keep yourself upto date with Java, JDK on your Ubundu/Deb flavored Linux that you love. I personally use Linux Mint and was struggling to have a nice way to keep up with the new versions of Java and had written multiple scripts to automate the upgrades and stay current. When I found that the feature of using Java alternatives can be the right tool I did do some investigation and found that that is the best way I have found sofar that is working. Hence, I decided to quickly make some notes for myself then thought of putting it as a blog so that I could potentially share with my friends and to the community. How To: Install Open JDK. Prerequisites Here are somethings that you will require, A system with Ubundu/Deb flavored Linux You will have to have root access Some disk space to install the software...

Java SSL/TLS Testing Tool: Cipher Suite

Image
Recently I was reading about the TLS/SSL and Ciphers. I was also interested to read about the Ciphers that are provided out of the box with JDK. This looked to me like this is something we take it for granted and do not do our due diligence when talking about the Ciphers. We often times leave those topic to our organization's network and security team. From my experience, it is a topic that all the developers leave it to the Sr. Developers and then the Sr. Developers pass it on to the Management. Guess what? It is not a sweet topic to discussion. To break this kind of symptom, I have choose to make it simple and want everyone to understand the complexity and importance of knowing this. Lets get started Before we wet our hands here is some basic information that you will require to know, Word Meaning Protocol A defined set of rules and regulations that determine how data is transmitted in telecommunications and computer networking SSL ...