Composition vs. Aggregation: Understanding the Differences and When to Use Each

In software engineering, both composition and aggregation are used to establish relationships between objects, but they represent different ways of constructing complex objects from simpler ones. Composition is a strong form of aggregation where a complex object is constructed by creating a group of related objects and treating them as…

Understanding Encoding, Encryption, and Hashing in just 2 minutes

Hey, let's talk about some important concepts in cybersecurity - encoding, encrypting, and hashing. First up, encoding is any transformation of a given input. It's like turning something into a different form, but not necessarily making it more secure. For example, you could reverse a string of characters, like "hello"…

OAuth2: An Informal Beginner's Guide

I am sure that you have given a third-party application permission to access your data on another website or application. So, you have used OAuth2, a popular authorization framework that allows third-party applications to access protected resources without gaining access to the user's credentials. But what exactly is OAuth2, and…

Securing Your Web App with CSRF and CORS in Spring Security

Hey there! Have you ever heard of CSRF and CORS in Spring Security? These are two important security concepts that help protect our applications and users from malicious attacks. Let me explain them in a more relaxed and conversational way. CSRF Imagine a user is logged in to their bank…

Understanding Spring Security: A High-Level Overview

Hey there! I am sure that everyone is familiar with using Spring Security. I want to make a quick overview on it to give some high level perspective. Spring Security is a framework that helps you protect your application and its data. It includes several components that work together to…

Understanding the Persistence Context and Entity States in Hibernate

As all you Java developers know Hibernate is a popular Java-based Object-Relational Mapping (ORM) framework that is widely used to simplify database operations in Java applications. One of the key features of Hibernate is the Persistence Context, which is an in-memory cache of persistent entities. In this blog post, we…

DNS Records: A and CNAME, the Batman and Robin of Website Navigation

A and CNAME Records: Your Guide to the Boring but Necessary Side of the Internet Let's face it, the world of DNS records is not exactly the most exciting topic out there. But, if you're a website owner or a tech-savvy person, you know that understanding these records is crucial…

Hello, world!

Hello, world! As a software engineer, I've always been told that it's important to document your work. Well, I've finally decided to take that advice... kind of. Instead of writing lengthy documentation and code comments, I've decided to start a blog! That's right, folks, I'm officially a blogger. I know,…