Welcome to my encyclopedia of shitty code!
-
Akka: Spring Integration
PROBLEM To create Spring-managed prototype-scoped actors. SOLUTION The key to this solution is to create a custom implementation of IndirectActorProducer. From the documentation:- “…This interface defines a class of actor creation strategies deviating from the usual default of just reflectively instantiating the Actor subclass. It can be used to allow a dependency injection framework to… Read More…
-
Neo4j: WHERE Clause vs Curly Braces in MATCH Clause
PROBLEM With Cypher Query Language, you can write similar queries that yield the same result. For example:- … AND … … returns the same result. So, which one is better in terms of performance? SOLUTION Neo4j provides a very helpful command called EXPLAIN that allows us to do some investigation ourselves. The EXPLAIN command displays… Read More…
-
Neo4j: Playing with Cypher Query Language
PROBLEM Every week, my shitty coworkers struggle to reach consensus on where to go for lunches and what beverages to order in the morning. SOLUTION To further understand the phenomenon of this first world problem, here’s a shitty graph database powered by Neo4j to visualize the love/hate relationship between my shitty coworkers and the shitty… Read More…
-
Spring Data Neo4J: Requested a entity of type ‘X’, but the entity is of type ‘Y’
PROBLEM Let’s assume we have a node entity like this:- When saving this entity, we get this exception:- SOLUTION This problem occurs because relationship likes is being used by both Restaurant entity and Beverage entity. To fix it, we need to enforce the target type. Read More…
-
Maven Archetype Plugin: Velocity Variable Substitutions Not Resolving
PROBLEM Let’s assume we have the following package.json in our archetype:- When creating a project from this archetype, the Velocity variable substitution for ${rootArtifactId} doesn’t resolve at all. SOLUTION After reading Maven Archetype Plugin’s source code here and here, the Velocity variable substitutions are only performed on the following file extensions:- In another word, if… Read More…
-
Maven Archetype Plugin: Failed to execute goal org.apache.maven.plugins:maven-archetype-plugin:2.3:create-from-project
PROBLEM When running mvn archetype:create-from-project with Maven Ear Plugin defined under <pluginManagement>…. … the following exception occurs… SOLUTION It appears this problem happens when using Maven Archetype Plugin 2.3, but works fine when using 2.2. To fix this, define an empty <modules> under <configuration> to prevent NullPointerException. Read More…
-
Maven: Skinning Generated Site
PROBLEM The default Maven generated site looks like web pages created in the 80s:- SOLUTION The good news is Maven allows us to change the skin. To use one of these pre-defined skins, create site.xml at this location:- In site.xml, enter the following:- In the above example, we use Maven Fluido Skin. In Maven 3,… Read More…
-
JaCoCo Web Report Not Rendering Properly in GitHub Pages
PROBLEM When pushing JaCoCo web report to GitHub’s gh-pages branch, it does not render properly on the web. For example:- The GitHub pages are powered by Jekyll. By default, Jekyll does not allow directories or files that begin with a dot, pound sign, tilde or underscore. Since JaCoCo places all the image and CSS files… 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.