Embracing the Messiness in Search of Epic Solutions

Home

Welcome to my encyclopedia of shitty code!

  • SonarQube: Building Specific Module in Multi-Module Project

    Let’s assume we have a multi-module project that looks something like this:- To build certain module(s) within the project, we can use the sonar.skippedModules option to skip the modules we don’t need. For example, the following configuration in Jenkins will only build app-jar module in SonarQube:- Read More…

  • Maven: Building Specific Module in Multi-Module Project

    Let’s assume we have a multi-module project that looks something like this:- To build certain module(s) within the project, we can use the -pl option. For example, the following mvn command will only build app-jar module:- Read More…

  • IntelliJ: Auto-generating POJO Builder

    I have been searching for an elegant way to auto-generate a POJO fluent builder with minimal typing and configuration. A builder is a great way to promote object immutability, however it is also a pain to create and mantain yet another class that looks almost like the POJO class we create. There are a few… Read More…

  • Intellij v13.1 Bug: NoClassDefFoundError when Running Unit Test With JaCoCo Configured

    If you are using IntelliJ and your Maven project relies on JaCoCo Maven Plugin, please consider voting up issue IDEA-122895 to get it fixed by JetBrain as soon as possible. Even if you are not using IntelliJ or JaCoCo, but you find this shitty blog to be helpful, please consider voting up this issue to… Read More…

  • FindBug: Solving DM_DEFAULT_ENCODING Warning When Using FileWriter

    PROBLEM Let’s assume we have the following code to write some data into a file:- When running this code against a static code analysis tool, such as Findbugs, we get this high priority warning:- The Javadoc for FileWriter says:- Obviously, this class is too convenient and FindBugs is not happy about it. Further, there is… Read More…

  • Knowns and Unknowns

    There are known knowns. These are things we know that we know. There are known unknowns. That is to say, there are things that we know we don’t know. But there are also unknown unknowns. There are things we don’t know we don’t know. – Donald Rumsfeld Read More…

  • Maven: Excluding All Transitive Dependencies

    I have been using Maven 3.0.3 on my work machine since 2011 because that particular version was released in March that year. How time flies by… Maven 3.2.1 was released exactly a month ago. One feature that immediately jumps out is the ability to exclude a dependency’s transitive dependencies in a very simple manner, which… Read More…

  • Comparing Disassembled Java Class From JVM Languages

    All JVM languages come with some degrees of syntactic sugar to make the code easier to read and write. To satisfy my curiosity, I decided to run javap command to disassemble the bytecode inside the class file generated from several JVM languages. The chosen languages are Java, Groovy, Scala, JRuby and Rhino. I left out… Read More…

  • Spring: Choosing the Right Dependency Injection Approach

    There are many different ways to perform dependency injection (DI) in Spring. As Spring evolves over time, the DI configuration also changes over time, which may contribute to some confusion to those who are just learning Spring. Scenario Let’s assume we have this scenario: We have Team Awesome that consists of one awesome member, called… 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.