Posts

My Introduction to Spring Security

Image
This week at work, I've been working on migrating our application to containers to shift to the cloud. We decided a good point to start would be with the Access Control application which takes care of the authentication and authorization of users to our application. Since we're a Java/Spring Boot shop, this was built upon Spring Security which led to down the rabbit hole of investigating/learning how Spring Security works and this blog page summarizes my learning. A lot of the information in this book has been taken from [1] and I highly recommend the resource to learn in-detail about Spring Security! Introduction Before we dive into Spring Security, we need to understand the difference between Authentication and Authorization. Authentication is proving who you say you are; the most common way this is done is with a username and a password. Authorization on the other hand is about what services/pages you have access to following the authentication process, this is usually hand...

Simple piece of information leads to great clarity!

Image
Greetings! I've been trying to wrap my head around the Spring framework for over a year now and it's one of the most interesting things I've discovered. Spring framework is an application framework for the Java platform and has many many features! Spring Framework Runtime The above image just shows a small subset of the Spring framework features used in Runtime. As is the norm now, the way I learn anything is to type into ChatGPT, 'Teach me ...' first before referring to more 'authoritative' sources so I did the same with the Spring Framework. Snippet of ChatGPT response for 'teach me spring' Most of the time, it ends up generating something as shown in the screenshot above recommending to create a controller with the '@Controller' annotation and return a view. ``` Java package com.example.demo.controller; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetM...

What I learned while studying for the GCP PDE exam

Image
  GCP PDE Badge I recently (June 22nd, 2024) appeared for and passed the GCP Professional Data Engineer certification. [1] In this blog, I'd like to share what I've learned in studying for and taking the exam. First off, here are the main GCP offerings that are tested on the exam: BigQuery: This is a data warehouse that can hold structured data. It is SQL compliant and you can perform data analysis with this tool. Despite seeming like a regular relational database, it is actually a columnar database. This database can go up-to petabyte scale! BigTable: Despite have 'Table' in the name, it's a NoSQL database. It is a non-relational database used for things like receiving large amounts of IoT/factory sensors' data, user's application data, etc. Got to learn about BigTable schema design (& especially row-key optimization) Cloud Storage: This service was covered even in the Cloud Associate Engineer exam but it's just a blob (Binary Large OBject) storge l...

3-day study bender - March 29-31, 2024

Image
Haven't been able to write down as much as I'd like on this blog lately. I've been down with the flu for the past couple of days and decided that the best way to spend this long weekend is to study and write down posts on my learnings.  Here's the plan for the weekend, it's really simple, the first thing is to learn SQL (structured query language) and master the basics through a lot of practice. Then, the second thing is to learn 'Angular' front-end framework since we use this at work along with 'Java' backend.  The last thing on my list that I'd like to accomplish is to finish my blog on the 'Helm'. Here's my reading list: [1] Sams teach yourself sql in 10 minutes - Ben Forta ( link ) [2] Angular Docs -  https://angular.io/docs Fig. 1 - SQL commands cheat sheet Fig. 2 - Angular commands overview

Java Spring Development Journey

Image
Spring Framework Having worked in my current role for about 8 months, I have realized that to be a lynchpin, I need to understand Java programming, especially using Spring Framework and Angular front-end. Towards this end, I've spent a lot of my time and energy learning and honing this skill. Spring Framework Spring MVC - Model-View-Controller: Spring MVC Spring implements a Model-View-Controller (MVC) pattern which is a software architectural pattern that separates an application into 3 interconnected components. This separation helps manage complexity & promotes organized coding. Model: Represents the data and the business logic of the application. It is responsible for retrieving data from databases, encapsulating it, and defining the business operations. View: This is the user interface of the application. It displays the data from the Model to the user and also sends user commands to the Controller. Controller: Acts as an intermediary between View and Model. It receive...

Another reading list summary

Image
Wow! It's December already. :) Wanted to pen down some of my thoughts from the books that I've gotten to read recently. 1. Moonwalking with Einstein by Joshua Foer This book delves into the world of memory and memory competitions. At first glance, competing in these kind of competitions seems to be possible only by someone with Savant syndrome like the Raymond from the Rain Man movie. Dustin Hoffman (plays Raymond) next to Tom Cruise But, this is in fact a learnable skill and anyone with dedication and effort can improve their memory which this book highlights as it follows the author's journey to improve his memory and participate in the American memory competition.  Example memory competition event One of the things that I'm taking away from this book is the concept of Memory Palaces (which I first came across from Sherlock, the hit British TV show) and how to leave vivid, memorable images in it.  Another takeaway is the 'Major system' to remember numbers.  Th...

2023 Summer Reading List Summary

Image
This blogpost is going to be quite different from my regular posts. I would like to write something down by myself instead of just being a proxy for chatGPT like I did in the past few posts. Books I've read this summer: Thinking in Systems by Donella Meadows Extreme Ownership by Jockco Wilink and Leif Basin Financial Intelligence by Karen Berman Zero to One by Peter Thiel Stillness Is The Key by Ryan Holiday Let's talk about my takeaways book by book: Thinking In Systems , after reading this book, I try to think of everything happening around me in terms of a simple flow chart, on the one side is a 'source', then the other side is the 'output', & in the middle is a box that is an effect which acts on the source to produce the output. Here's an example from the book: Most systems along with having a 'source' and an output, also have feedback loops, they can broadly be classified into 2 types. One is a corrective loop, e.g. a thermostat on a an Air...