Embracing the Messiness in Search of Epic Solutions

Home

Welcome to my encyclopedia of shitty code!

  • If You Write Anything “Clever”…

    If you write anything “clever”, delete it. – Dr Venkat Subramaniam Read More…

  • Mac OS X: Setting Default Java Version

    Let’s assume we have installed JDK 7 or JDK 8, and we want to set the default Java version. There are several ways to set default Java version. This is by far the easiest way without the need to look for the installed path or mess around with symlinks. First, let’s make sure we are… Read More…

  • TurboTax… FAIL

    As I was filing my taxes today, I stumbled upon this bug in TurboTax. Although this may not be a fatal bug, as a consumer of the product, I can only wonder how many more bugs that are left uncovered and whether or not my taxes are done correctly this year. The moral of the… Read More…

  • Spring MVC: Centralizing Common Configurations using @ControllerAdvice

    Handling Exceptions using HandlerExceptionResolver Once upon a time, Spring 2.0 introduced HandlerExceptionResolver to handle thrown exceptions. While this approach works, it is like throwing a big net to catch all types of fish. If we are only interested in catching piranhas and clownfish, this approach becomes a little tedious because we need to weed out… Read More…

  • Mockito: Effective Partial Mocking

    Sometimes, we may only want to partially mock an object to unit test our code. There are several ways to skin this cat, but I’ll show two straightforward approaches that allow you to obtain the cat fur. PROBLEM Let’s assume we want to test this service class:- Basically, getComputedValue() sums up getFirstValue() and getSecondValue() and… Read More…

  • Linux: Locating Java Home Directory

    If you have multiple versions of Java installed, you can run which command to determine the full path of the command. To quickly navigate to Java’s home directory, you can do something like this:- Read More…

  • Architecture Committee…

    Architecture committee is where good ideas go to die. – Dr Venkat Subramaniam Read More…

  • Puppet: Installing Multiple Java Versions On Single Node

    PROBLEM I couldn’t find an existing Puppet module that allows me to install multiple Java versions on a single node. The reason for multiple Java versions is to allow Jenkins’s jobs to choose what Java version to compile with. So, I will show you how to create a Puppet module that will do just that.… Read More…

  • Installing Puppet v3.2+ in Ubuntu

    PROBLEM By default, when using apt-get, Puppet v2.7 will be installed. This version doesn’t support useful features, such as Lambdas and iteration. To use these experimental features, Puppet v3.2+ is required. SOLUTION First, visit http://apt.puppetlabs.com/ and determine the matching Ubuntu version. Let’s assume we are using Ubuntu 13.04 (Raring Ringtail). So, we will choose http://apt.puppetlabs.com/puppetlabs-release-raring.deb… Read More…

About Author

This author has 20+ years of experience in software engineering and cloud engineering. In an industry where knowledge becomes obsolete in the next three months, he learns anything that crosses his path indiscriminately. He floats from one technology to another like a moth and stings the problem sets like a mosquito. This author codes Java while drinking Espresso and writes Spock specifications while listening to Groovy beats. He masters Google Cloud Platform just like how he masters the art of predicting the movement of dark clouds over his backyard, where 60% of the time, he is right every time.

This author suffers from the Dunning-Kruger effect, where he overestimates his competence and underestimates his ignorance. Technology buzzwords never faze him, for he does not know enough to be afraid of in the first place. GCP, GCS, GCR, GKE, GWT… everything sounds the same to him. He never fears acronyms, synonyms, or antonyms, for he has ChatGPT in his back pocket. This author is a jack of all trades but a master of none. He writes like he knows all the answers, yet he googles for better solutions from elsewhere. He fakes it until he makes it; if he doesn’t, that’s okay because he has the attention span of a squirrel. The blog posts are his buried walnuts, in case he needs them one day.

In conclusion, this author is full of something. He apologizes in advance if you are trying to solve your company’s real problems with his shitty solutions. There, he has successfully written paragraphs of nonsense because every professional blogging website needs a section about the author, with a too-cool-to-smile portrait staring sideways into the abyss.