Skip to main content

Architecture

MQTT basics and how to get started on Ubuntu

·8 mins
What is MQTT # MQTT (Message Queue Telemetry Transport) is a lightweight, publish-subscribe messaging protocol designed for low-bandwidth, high-latency, or unreliable networks. It is particularly well-suited for IoT (Internet of Things) devices and applications that require the transmission of small amounts of data over long periods of time. I always see MQTT as a sibling of AMQP. They are both messaging protocol. We’ll do a comparision later in the post.

How to Write Classes in Golang

·3 mins
Introduction # I have seen many people coming from Python background struggling with Go. What I have obeserved it they write code that is limited to writing functions and calling them. They never leverage design constructs such as abstraction, encapsulation, inheritance, composition etc. I can understand their pain because I’ve been in the same boat. In today’s post I’ll compare how we write classes in Python vs how we do the same thing in a Go way.

This is how OOPs and Mocking are related to Dependency Injection

·12 mins
Introduction # There are a few words, like unit testing, integration testing, mocking, dependency injection, object oriented proramming. These are all friends, and areall related to each other. In this post I’m going to talk how, and then it will start to make sense to you. This post is divided into these subsections: Preamble The Testing part The OOPs part The dependency injection part A real life problem I’ll start with how I started with unit testing.

Microservices and AWS

·6 mins
This is my rundown of AWS’s whitepaper about Implementing Microservices on AWS. Without further ado, let’s get started. In this article I talk more about micrsoservices and less about AWS. I also talk about paths already engraved around microservices. While you read this post, take a moment to connect with me on LinkedIn. What are microservices? # Microservices are an architectural and organizational approach to software development where software is composed of small independent services that communicate over well-defined APIs. These services are owned by small, self-contained teams.

Git Submodules Basics and How to Replace One Submodule With Another

·7 mins
Introduction # Git Submodules are the concept related to modularity. One git repository can be added to another as a submodule and maintained separately. Instead of being tightly coupled, it is loosely coupled and is easy to maintain. Suppose you are working with softwareA which depends on libraryA, instead of copy-pasting the libraryA over and over again when a new version of the library is released what we can do is use submodule to make this process DRY and elegant.

Beginner's Introduction to Promises in JavaScript

·2 mins
Introduction # Promise is a language feature for asynchronous programming in JavaScript. As JavaScript is single threaded, if you are doing something which waits for I/O, you create a Promise for that task. This task could be waiting for an API call from Twitter for example, or reading a file from a filesystem), and you let it run without getting in the way of normal execution flow.

What Does a True RESTful API Means?

·4 mins
Introduction # The way we used to deliver resources to the client in a server-client setup is now drifting away from REST to a more modern delivery mechanism. Two of them are gRPC and GraphQL. While both these solve a different kind of problem, REST is going to stay for a while. It is the simplest to learn at least.

Switching to Hugo This New Year

·8 mins
Finally I have decided to buy me a domain. But before that I must keep my content ready. Earlier on, I was decided on to giving my website a go backend, but I later thought it was an overkill to use golang as a backend for a personal website and I should keep that enthusiasm for a real app. Instead of manually creating a frontend for my site, I will be using already available Hugo theme. I will be migrating my blog which I’m maintaining at codicious.wordpress.com and fxcious.wordpress.com.