Hey! I’m Daniel Kossmann ꩜,
welcome to my Public Learning (b)Log.
I really like lists, so I made one to describe myself:
- Lifelong Learner: I believe in continuous learning and the power of sharing knowledge, which is why I advocate for open source, Creative Commons, and open web initiatives.
- Professional Journey: I work as a Product Manager at Extendify and have a background as an Engineering Manager and Full-Stack Web Developer.
- WordPress Expertise: Over 15 years in the WordPress ecosystem, I have been featured in People of WordPress and have organized monthly community meetups for 7 years.
- Interests: Product Management, Artificial Intelligence, Productivity, and WordPress.
- Content Creator: In addition to this blog, I’ve been writing PainelWP, a weekly newsletter about WordPress in Portuguese, since June 2019.
- Hobbies: I love watching movies and wrote reviews as a hobby for a few years. I also enjoy drawing, especially with watercolors.

What I’ve Learned Recently
-
Here’s how I installed Arize Phoenix, an open-source AI observability and evaluation tool, using the uv package manager: To open it in the future, just run the following commands:
-
WP-CLI uses the same locale as the WordPress installation, so if you deal with multiple locales, it might be tricky to follow the output. Luckily, the official documentation shows how to set a specific locale. Here’s a quick summary, plus an important caveat I found: 1. Create a file called force-locale.php and set your desired…
-
I made a simple plugin with AI’s help that I use locally, so I don’t have to log in as administrator every time I reset a WordPress site to run tests. The initial plugin code had the credentials hard-coded, but before sharing it, I changed it to fetch the first admin user from the database.…
-
I use LocalWP to run WordPress locally, and I made a command to reset a site while keeping the themes and some plugins so I can quickly run various tests. For the script above, I used the steps from my previous guides about removing files (except certain subfolders) and using the trash command. I’ve added…
-
Today I Learned you can discard changes in all files in a Git repo with this command: I use this a lot when testing different PRs and need to discard file changes after running the build command for each one. 🤖 Clarification on the use of Artificial Intelligence in this content
-
Today I Learned that you can use Vertical tabs in Firefox since version 136. To enable it, go to Menu > Settings > General > Browser Layout > Select: Vertical tabs. In the sidebar, you can click on ‘Customize Sidebar’ for more options. I found the ‘Move Sidebar to the Right’ feature helpful for avoiding…
-
Today I Learned that the easiest way to get an em dash (—) is with a Composer Key. To set it up, go to Settings > Keyboard > Special Character Entry > Compose Key, enable it, and pick a key. Be aware that this key will lose its original function. I use Caps Lock, but…
-
A few years ago, I saw a post in OMG Ubuntu about how to use an iPad as an external monitor using the RDP protocol, but I wasn’t able to get it to work. Now I tried it again and it finally worked! Here is how I did it. Ubuntu 25.04 (Wayland) Enable extendable virtual…
-
A common answer to remove a PDF password is to run: qpdf –password=supersecret –decrypt input.pdf output.pdf This approach isn’t secure because it stores your password in terminal history (like .bash_history). Here’s how to fix that: In case you don’t have qpdf, just run sudo apt install qpdf.
-
I’m using a Logitech MX Master 3 and by default, the Mouse Thumb (Gesture) Button triggers the app switcher UI (like Alt+Tab) and I wanted to change it to the Activities Overview (shows all open windows in a zoom out view), that opens when you press Super. To achieve this, we need to install Input…
-
I’ve shared how to remove all files in a directory except specific subfolders in Bash, but unfortunately, this command doesn’t work for Zsh. After some tweaking, I was able to reproduce the same behavior, which is to remove everything inside wp-content/plugins/, except folders starting with dk- or exactly named auto-login, and index.php: Dry run Here’s…
-
I learned that macOS has a useful command called trash to move files to the trash instead of deleting them permanently like rm. On Linux (Ubuntu), there’s no native command for that, but you can use the trash-cli tool. Now, just create an alias to emulate the same command: 🤖 Clarification on the use of…