Skip to main content

Posts

2022

Postman Premier - The Minimal Postman you need to Learn

·7 mins
Introduction # Welcome to my Fullstack with Santosh. Today we are going to learn about how to use Postman as a backend engineer to make our daily life easier. Postman is an API testing tool where you can test your REST APIs. It has now developed into handling many different kinds of interfaces, but today we are going to focus on the REST APIs.

Database Normalization: Scratching the Database Surface

·7 mins
Introduction # Database normalization is the process of structuring a database, in accordance with a series of normal forms in order to reduce data redundancy and improve integrity. In other words, database normalization is basically breaking a table into two to prevent repetitive columns aka data redundancy. It entails organizing the columns (attributes) and tables (relations) of a database to ensure that their dependencies are properly enforced by database integrity constraints. It is accomplished by applying some formal rules either by a process of synthesis (creating a new database design) or decomposition (improving an existing database design).

Best Logging Library for Golang

·3 mins
Introduction # I recently conducted a poll in the Go community regarding which logging library they use in their personal or professional project. The results were interesting. In this post I have jotted down the most favorite logging libraries and here is my opinion about them. Poll Results # Here are the poll results which I conducted on r/golang, The Go Programming Language community on Twitter and my LinkedIn following.

Release Dangling Elastic IPs using Lambda and Go SDK

·12 mins
Introduction # Today we are going to do a hands-on on how to kill a dangling EIP or in other words, deallocate an unassigned Elastic IP. But before that, let us know… What is an Elastic IP and why do we need it? # Elastic IPs are simply IP addresses provided by Amazon AWS. These are usually attached to internet gateways such as load balancers, or even EC2 instances. I have been using it with EC2 instances directly for my testing use case.

Implementing Linked List in Java: Part 1

·8 mins
Introduction # In the last post, we have already seen that we can classify entire data structure into linear and non-linear data structure. Today we will see how we can implement one of the linear data structures in Java. Initial plan was to implement Linked List in Python. But Python is so higher level that we’d be actually writing higher order data structure on top of high order data structure. What I try to say with that is Python already has those data structure implemented. Java is more close to C/C++, and gives a balance of features and flexibility. I’d have chosen C++ for this post, but I don’t want to deal with memory management and pointers for sake of this post.

This is how you add Ad Blocker to OpenVPN enabled VPN

·8 mins
Introduction # We have previously seen how you can Spin up your own VPN on Ubuntu 20.04. Among many benefits, one of the benefits of the VPN is geographical anonymity. Today we are going to discuss and set up yet another benefit. We are going to tweak our VPN server set up a little bit to enable ad-blocker out of the box. Meaning that you won’t have to install an ad-blocker on your browser. It will be enabled connection-wide. You won’t be seeing any ads on devices that you can’t control ads on, like smart TV, etc.

How to Integrate Swagger UI in Go Backend - Gin Edition

·11 mins
Introduction # Unlike FastAPI, Gin does not have OpenAPI integration built in. With FastAPI when you add a route, documentation is already generated. With Gin, this is not the case. But recently I integrated Swagger UI in one of my Go backends and I wanted to document that process. Prerequisites # An already existing Gin server You might consider Building a Book Store API in Golang With Gin if you are starting from scratch. I’ll be using the same book store and extending over it to integrate Swagger UI.

Manage Docker Environment on VPS with your Local Portainer

·2 mins
Introduction # In last post we learned to install and configure Portainer to maintain your local Docker environment. Although I’m not against command line, Portainer is a great companion if you don’t prefer to remember long commands to manager your docker. In this post I’m going to extend on last post and show how can you manage your VPS docker environment from your local Portainer installation.

Install and Configure Portainer on your Local Machine

·3 mins
Introduction # This is a quick post where I demonstrate how to install Portainer on Ubuntu. Regardless this tutorial is demonstrated on Ubuntu, you can run Portainer on whatever Docker host you are using including Windows. Most awaited Docker Desktop is available for Linux now. Still, it is a desktop application. There is also an alternative that you already might have heard of if you have worked with Kubernetes. It is called Portainer.

gRPC for Absolute Beginners, in Go

·13 mins
Introduction # The Internet has evolved in the last 2 decades a lot. HTTP/1.1 was not enough so we have HTTP2 now. The specification we used to transfer data between the client and the server has also evolved. From XML to JSON, now we have Protocol Buffer, which is a binary spec. Let’s dive deeper. The picture below from Wikipedia shows how exponential data is growing.

TDD Approach to Create an Authentication System With FastAPI Part 5

·9 mins
Introduction # We have been using FastAPI along with the Test-Driven Development process to come up with an authentication system. Till now we can register to own tiny application using a username and password. We are also able to generate a JWT token to be classified as a logged-in user. But there is no point in logging in until the logged-in user can do something privileged. In this iteration of the series, we’d see how to access a protected endpoint using FastAPI and JWT. Given that we already have a JWT token.

TDD Approach to Create an Authentication System With FastAPI Part 4

·11 mins
Introduction # In the last couple of posts in TDD Auth with FastAPI we’ve been sustainably moved towards a web service that can let users register with the service. Now what? We have already done the easy part. The next part is to look at the authorization. This involves letting the user log in. And only give access to what they are authorized for. Let us look at the login part first.

Building a Book Store API in Golang With Gin

·9 mins
Introduction # Go community believes that we need no framework to develop web services. And I agree with that. When you work without using any framework, you learn the ins and outs of development. But once you learn how things work, you must reside in a community and don’t reinvent the wheel. I have created POCs in Go before and I had to deal with HTTP headers, serializing/deserializing, error handling, database connections, and whatnot. But now I’ve decided to join the Gin community as it is one of the widely accepted in the software development community.