Debugging Kubernetes Network Traffic

Before the dawn of containerization, it was relatively easy to debug the network traffic of an application running on a regular server. One can easily run an instance of Wireshark to capture network packets or execute tcpdump utility (a command-line packet analyzer) on a server. The PCAP file generated by tcpdump can later be analyzed with Wireshark.

(more...)

Docker and Invalid Characters

I keep on running into interesting problems while migrating applications into our Kubernetes(k8s) environment. Recently, a Spring Boot based application started returning invalid characters once it was ported to k8s. Instead of returning a , it returned with a set of garbage characters.

(more...)

Making Sense of Blockchain

I got a call from my friend, a few Sundays back, and he started asking me about bitcoin and mining. Though I had a vague notion of bitcoins and the technology behind it, I wasn’t familiar with all the terms. As you’ve probably guessed, I wasn’t able to carry out any meaningful discussion on the bitcoin topic. This post is my first attempt at making sense of blockchain, the technology at the heart of digital currency.

(more...)

A Class of Its Own

Anyone using Java is familiar with the concept of Java class file. It’s the artifact generated from a Java source file after a successful compilation. A class file contains bytecode (instructions) that is interpreted by a Java Virtual Machine (JVM) during execution. As shown in Figure 1, the bytecodes in a class file follows a strict format described in the JVM specification.

(more...)

Memories of a Java Runtime

It’s been a while since I wrote anything about Java Virtual Machine (JVM). I have been using Java for quite some time, yet my understanding of the inner workings of JVM seems to fade if I don’t refresh it once in a while. This posting is an attempt to renew my memories while trying to add something new. I plan to post a series of articles exploring different aspects of JVM.

(more...)