Welcome to my encyclopedia of shitty code!
-
GCP BigQuery: Finding Expensive Queries
Problem This post applies to you if: Solution The GCP billing report can tell us the cost breakdown of the services used over time, but it cannot tell us why it costs this much. To get the whys, we need to pull additional data to paint a fuller picture. Filtering the Logs There are several… Read More…
-
WordPress: Creating Gutenberg-Block Compatible Posts Using Rest API
This article shows how you can dynamically create new WordPress posts using REST API that is compatible with Gutenberg blocks. When done correctly, there is no need to manually convert the content from Classic Editor to Gutenberg Block Editor, or fix incorrectly converted blocks. This is a big time saver when you plan to create… Read More…
-
GitHub: Key is Already in Use
PROBLEM When trying to add a SSH key in GitHub, an error “Key is already in use” is thrown even though you signed into GitHub using a different user account. SOLUTION The error occurs when the same SSH key has been added to a different account. This typically happens when you already have an existing… Read More…
-
Terraform: Updating State Using “Moved” Block
This post illustrates how you can rename existing resources or restructure the Terraform codebase without destroying and recreating the resources using moved block introduced in Terraform 1.1. It also explains some limitations using this new construct. PROBLEM: MODIFYING EXISTING RESOURCE NAME Using a simple resource block below as an example… On apply, one resource is… Read More…
-
Enabling Python VirtualEnv in JupyterLab
This post illustrates how you can enable Python virtualenv in GCP JupyterLab so that you can organize your .ipynb files to use different virtual environments to keep track of Python package dependencies. PROBLEM You are using GCP JupyterLab. You want to adhere to the Python development best practices by not polluting the global environment with… Read More…
-
GCSFuse + Docker: “Error while creating mount source path ‘/a’: mkdir /a: file exists.”
This post illustrates how you can mount a GCS bucket using GCSFuse on your host machine and expose it as a volume to a Docker container. PROBLEM You want to volume mount a FUSE-mounted directory to a container, for example: When attempting to run the container… … an error occurred: SOLUTION Unmount the existing FUSE-mounted… Read More…
-
GCP: Accessing GUI-Based App in GCE from Mac using X11
PROBLEM You want to access a GUI-based software that is installed in a GCE instance without using NoMachine. SOLUTION GCE Instance (One Time Configuration) Ensure X11Forwarding is enabled and set to yes. If not, change it. If a change is made to this file, restart the service. Mac (One Time Configuration) Apple no longer include… 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.