Custom Logging in Jetty

There’re times when an out-of-the-box solution for access log is not enough and one has to customize the logging output for various reasons, including security. Recently, I had to redact a part of the request URL for requests matching certain. In the request log example shown in Figure 1, the word rosemont in the URL had to be substituted with the word REDACTED.

(more...)

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...)