Articles

Tech tutorials, documentation, and other longform articles



A Mental Model of the Many Pythons You May Deal with

Published on April 3, 2025.

System python, pipx executables, virtual environment python, pyenv managed python, manually aliased/symlinked python. If you must debug in linux, try whereis command first.


Continue reading...

Why Electron Apps Suck: A Haphazard Comment

Published on January 30, 2025.


Continue reading...

Your Linux Window Manager might be causing Screen Tearing and Checkboard Flickering

Published on January 12, 2025.

The XFCE window manager in Linux Mint in my case. Before you go buying and changing memory and kernels, consider switching your compositors. Compton in my case, because reasons.


Continue reading...

If you are using a tool like pyenv or nvm, DO NOT alias the interpreter from your resource file

Published on November 27, 2024.

The Python3 or Node alias from your resource file (.bashrc, .zshrc) will almost always prevail, and it will be a source of behavior inconsistencies for your interpreter


Continue reading...

Retrieve Your Paypal Activation Code for Your GCash Amex Card

Published on October 14, 2024.

Raise a GCash support ticket for refund online transaction, mention the transaction details of PayPal confirmation, and wait for the response. No, the code will not appear on your GCash Bank Statement or transaction history. This is the only way.


Continue reading...

How to Implement Widgets and Site Blocks in GravCMS

Published on August 28, 2024.

It involves a nonroutable _widgets folder in your user/pages/ directory, widgets with header data in the _widgets folder , and the page.find() function.


Continue reading...

Solve a mysterious excess width causing horizontal scroll in Bootstrap's container class with this trick

Published on August 26, 2024.

It is caused by display: inline. Add a d-block beside the container class to resolve it.


Continue reading...

How to cover an image in a container with css or bootstrap: a technique

Published on August 23, 2024.

It involves a fixed-dimension parent, an image wrapper that inherits the dimensions of the parent, and the image where object-fit is defined.


Continue reading...

The Not So Elegant Way to Debug Multiple Python Versions on Your Terminal

Published on August 9, 2024.

Adding a preexec function on your shell resource file to show what and where the command is is not so elegant; but it might just help you catch yourself before you start chaining commands and wonder why the Python dependency you installed is not being recognized.


Continue reading...

A Quick and Dirty Way to Keep your MiniPC Cool and Reasonably Silent

Published on August 5, 2024.

Install CoolerControl for your Linux MiniPC and create a Fixed Profile to 40%. Keep the app running on the background. I don't know why this works, but this worked for me. Also, consider buying a router cooling fan. It's the same form factor as most minipc's.


Continue reading...

Maybe Grav Skeletons are the Way to Go

Published on July 21, 2024.

When you need to do client work for complicated websites, skeletons are a better alternative.


Continue reading...

Properly Updating the Theme Font in Sublime Text 4 So Far

Published on May 19, 2024.

It's been almost a year since I published how to override your ST4 Theme Font. But I encounter an issue where even my old settings are insufficient to fully override font settings.


Continue reading...

Only the sh1.13 package will work properly with python3.10

Published on September 20, 2023.

This post is to document an issue working with python-for-android on python3.10 on a modern tooling environment.


Continue reading...

Use pyenv shell instead of pyenv local when running poetry with it

Published on July 11, 2023.

If you are a pyenv and poetry user and need to spawn a virtualenv through poetry, run pyenv shell python-version before running your poetry commands. This post explains why.


Continue reading...

How to properly change the sidebar font face of Sublime Text 4

Published on July 11, 2023.

Navigate to Menu >> Preferences >> Customize Theme, and change all the "font_face" and "font.face" values you need to the font you want. Read this post to check the json you can copy-paste to show you how to properly override the theme font.


Continue reading...

Realme 8 Pro does not allow formatting sd card as internal storage

Published on May 22, 2023.


Continue reading...

A personal workflow for django, poetry, and pyenv

Published on May 13, 2023.

This is a personal workflow for making django, poetry, and pyenv work together. Requires poetry, pyenv, git-flow and wget.


Continue reading...

Run mariadb and Joomla together in docker

Published on May 11, 2023.

So after wrangling with the official docs for the Mariadb and Joomla docker images and pestering ChatGPT for debugging my errors, I've managed to come up with an improved tutorial for making mariadb work with joomla. The tutorial is ran on Linux Mint 21 Vanessa, and it should work with Ubuntu Jammy LTS-based distributions.


Continue reading...

Whenever possible, hardcode your page headers on grav

Published on May 9, 2023.

The preferred Grav behavior is usually not you want. Here is a case involving grav's page.date.


Continue reading...

Tips on making svg shapes more predictable on inkscape

Published on April 4, 2023.

Toggling bounding box and scaling settings can make Inkscape shapes more predictable on resize.


Continue reading...

A workflow for using pyenv and poetry together in your project

Published on March 8, 2023.

If you really want to use poetry and pyenv for your python project instead of your tutorial's method, try using this workflow.


Continue reading...

Adventures in Grav Theme Development: Building a Loosely-Coupled Theme

Published on January 5, 2023.

Grav CMS claims that its themes are tightly-coupled. It does not have to be.


Continue reading...