Enable gzip & caching with Caddy

Enable gzip & caching with Caddy

Overview Recently I deployed my site to production (https://gotkey.io) and noticed that the site loaded quite slowly. When I checked with Google page speed insights, there were issues but the most significant are content not gzipped and no caching policy for the static resources. I know how to enable such things with Nginx, httpd, and … Read more

Quick RabbitMQ Tutorials With Examples in Java

RabbitMQ Tutorials With Examples in Java

Introduction This post is what I wish I have when starting with RabbitMQ. It contains: Let’s get started. Code Repo The code in this post is available here on Github. Important concepts Here are the important concepts in RabbitMQ: Exchange A messaging component in RabbitMQ that receives messages from producers and routes them to queues … Read more

Guide to ConcurrentModificationException

Guide to ConcurrentModificationException

Introduction If you run the following code: There are chances you will get the following exception: I said “there are chances” because you run the same code repeatedly, and sometimes there is no exception thrown. So, what is ConcurrentModificationException and when you might encounter it. The JDK’s said: This exception may be thrown by methods … Read more

Adapter Design Pattern Tutorial In Java

Adapter Design Pattern Tutorial In Java

Introduction The Adapter design pattern is a structural pattern that allows objects with incompatible interfaces to work together. It does this by converting the interface of one class into another interface that the client expects. This pattern is often used to make existing classes work with each other without modifying their source code. Real-world example … Read more