Firefox offers a Reader Mode and the library that powers it, is called Readability. In this article, we will learn how to put this library behind a serverless function and use it as an API. You can read more about readability here: https://github.com/mozilla/readability. It is defined as “A standalone version of the readability library used […]
When do we need the template design pattern? The template design pattern is useful when different components share some functionality and adding a change to one would need duplicate changes in the other component. How do we implement the template design pattern? The template design pattern is a behavioural design patter. In this, we have […]
What is wrong with the good old SQL searches? There is no support for common languages. Regular expressions do not suffice because they cannot easily handle words that essentially mean the same, i.e., blocked and blocking is one such example. You might miss documents that contain blocked, although you probably would like to find them […]
Introduction: Binary search is one of the most important algorithms for competitive programming. You may find other uses of binary search too, these are just a few topics mentioned that use binary search heavily: 1. Array problems 2. Geometry problems Let me give you a real-life example, imagine you walked into a room with some […]
The decorator design pattern is a structural design pattern that is used for extending the functionality of existing classes without much of a change in the codebase. You can also look at this design pattern as a wrapper around the existing functionality. Let’s dive into the example which will make things much clearer. We have […]
Load balancing is defined as the methodical and efficient distribution of requests across multiple servers. The load balancer sits between client devices and backend servers, receiving and then distributing incoming requests to a server that is healthy and capable of fulfilling them. A load balancer is a critical component of any distributed system as it helps improve the services offered by increasing availability and responsiveness. As it distributes the traffic across multiple servers, it also helps us avoid a single point of failure.