david alfonso

2024

Certbot webroot auth with Ansible

How to make Certbot, Apache, and Ansible, work together to use webroot authentication.

Discourse dev setup instructions

Additional steps I had to take to setup a development environment for Discourse.

2023

Removing all my tweets from X/Twitter

How I batch deleted all my tweets using the free API tier.

E-mail privacy in GitHub

How to make your e-mail private in GitHub repositories.

Updating my Neovim config from upstream

How to pull changes from the upstream Neovim configuration repository.

Using a Lua-based Neovim config

Taking another step in my Neovim journey by using Lua-based configuration.

Signing PDF documents

How to "sign" a PDF document using an image (no cryptography involved)

2022

Debugging PHP in a Docker container

How to debug PHP code running in a Docker container using xdebug and VS Code.

2021

Default resource values in the Python CDK

Finding CDK default values using two different methods.

2020

Forking Watson: License

The process and rationale behind updating a compatible license (MIT/Expat) to the GNU GPL.

POSIX Shell Scripting

Resources for developing POSIX-compliant scripts.

Forking Watson: Motivations

About forking and the reasoning behind my decision to fork the Watson project.

Khal: Codebase review

Code review of Khal, a CLI and terminal calendar program, able to synchronize with CalDAV servers.

2019

PHP 7.2 Docker image analysis

A deep review of the Docker official image for PHP 7.2 with Apache 2.4.

FOSS zombies

My understanding of a FOSS zombie project and what to do about it.

Watson: Codebase review

Code review of Watson, a CLI time tracker built with Python.

2018

Migrating from TiddlyWiki to Markdown

Using TiddlyWiki5 (nodejs) and pandoc to transform old TiddlyWiki's tiddlers to markdown files.