Twitter icon LinkedIn Icon Github Icon Stackoverflow Icon

Welcome!

However you found this site, I am happy you are here. Most of what you will find here is things that I have learned or observed. In the Leadership section you will also find some of my thoughts on leading others OR leading yourself. My tech writing is here to share solutions to problems I have had to solve. I post here to help others avoid some of the mistakes I have made (and to have notes for myself so I can avoid repeating mistakes).

This site is built on an open source framework called ChassisPHP, a project that I lead. Check out the project on Github - ChassisPHP  For my non-tech visitors, a web framework is a foundation for a site. It manages things like directing page requests to the correct files, the database connections, security, etc.

To find out more about me, check out the links in the footer. There are links to most of my public internet presence.

Thanks for visiting, and I hope you learn something and will come back.

Recent Posts

Normalized vs. Denormalized Database Design: Weighing the Pros and Cons

In the world of relational database design, developers often face a crucial decision: should they opt for a highly normalized structure with multiple tables, or choose a denormalized approach with fewer, wider tables? This choice can significantly impact the…

Read More

Accept the Friction

Doing deep, important work is often difficult. Things get in the way. Things go wrong. Your ideas don't work out the way you expected.…

Read More

Linux Low Disk Space On Root? One way to clean up space if you use Flatpak.

The dreaded 'Low Disk space on /'. You may think to yourself, "But, I have plenty of space on my hard drive. How can space on root be low?" An online search will give numerous things to try - cleaning your package manager cache, removing all…

Read More

SSH - Too Many Authentication Failures

There are a handful of possible reasons for this error. Perhaps the problem is exactly what is says; you have tried and failed to log in too many times. Maybe your ssh configuration on the server side doesn't allow you to log in at all. Or, you could be bl…

Read More

Rename a Local Git Branch

Naming thigs is hard. On a few occasions I have named a Git branch, then decided a different name would be better / more descriptive. Recently, I was working on a branch for a project, and we decided to go a different direction. My branch had the perfect name…

Read More

Cloning a KVM Virtual Machine Image

I often need to test on servers set up in a very precise way. I may need to test an application running on an Ubuntu server with Apache and a specific version of php. Or, I may need to test an application or site on a LEMP stack running on CentOS.…

Read More

Links for Conference Talks I Have Given

This page has a list of talks that I have given. With each there is a short overview, a link to resources mentioned in the talk, and a link to the slides. Each of these talks has been given at several events. Watch my Twitter account for announcements of where…

Read More

Using Multiple Values in a Single .env Entry

In a recent project I needed to have multiple email addresses in one .env entry. In case you are not familiar with .env, here I am talking about using Vance Lucas' project phpdotenv, which uses a .env file for making values available to a php application.…

Read More

Understanding SSH Key Types

There are several encryption key formats available for ssh. Here I am covering DSA, RSA, ECDSA, and Ed25519. These are the most common. DSA and RSA use factoring of 2 large prime numbers in their encryption algorithm. ECDSA and Ed25519 use elliptical curves.…

Read More

View compressed log files with Zcat

Have you ever need to view log files after they have been rotated and compressed? Many people uncompress the file with gunzip or gzip -d then view the file. Linux gives us a shortcut, namely zcat. Zcat opens a compressed file immediately for viewing. However,…

Read More

Update Your Server Host Keys

If you maintain a VPS, hopefully you are aware of the continuous attack attempts. As one measure to keep your server secure you should periodically change your server's host keys. If your server has been compromised, you definitely want to change your key…

Read More

Auto-generating slugs with PHP

The term slug comes from the newspaper industry, where I spent 15 years of my career. Editors and reporters use a "slug" as a short name for an article, mostly while it is in development. The slug can contain information about the article like the se…

Read More

PHP Codesniffer - Using Custom Standards on a Per Project Basis

What is PHP Codesniffer?…

Read More

Putting Applications in your Desktop Menu

Menus…

Read More

Note-Taking with Vim

I am experimenting with note-taking/journaling using Vim. I use Vim for almost all other text-based activities, so, why not? I have used Evernote for many years, and have a ton of content there. But, I am looking for more security and control.…

Read More

Command Line Weather

If you live in the command line, like I do, anything that keeps you from having to leave it is a good thing. I am not a weather junkie. But, I often want to know if it is going to rain during my commute, or if I am going to be able to enjoy the outdoors when I…

Read More

Reparent a Branch

I recently had several bug fixes to work on one after another. These bugs were in our development branch, and were found in testing. I branched from our development branch, fixed bugs, and made commits. Each bug was on its own branch.…

Read More

How to Add a Samba User From the Command Line

Adding Samba users is likely a task that you have to do irregularly. Here is a simple set of instructions that I hope can be a resource. Entries inside <> should be replaced, without the <>, with your entries. Entries inside [] are optional. …

Read More

Using Git to push to your production server

I have used Git for version management for several years. Recently I began using it to push code to both a web-accessible repository, as well as the server from which the code is served. Using this workflow, all I have to do to make code live is ru…

Read More

How do I create a new Google Drive file?

It is super easy.…

Read More

Enter to Win!

No, I am not running a contest. Many people have dreams, big dreams, small dreams, and everything in-between. They think about their dream, mostly about the results of obtaining their dream. But, to get there requires planning and action. In order to reach you…

Read More

FoMO - the Fear of Missing Out. Don't let it drive your decisions.

Do you start the day with the best of intentions? You have your plan for the day. Then, something grabs your attention.   Good leaders do often want to "do it all". There are always many things vying for your attention. The best leaders can say…

Read More

Motion, Confusion, Direction, and Action

"How are you?", a colleague asks. You answer with the answer you always give, "I am busy, so very busy." But, are you truly busy? Or, are you addicted to the feeling of "busy". If you want to do some self-inspection, read on.…

Read More

Deadlines - Don't change them!

What are the effects of extending a deadline? All leaders have been put in the position of "needing" to extend a deadline. Perhaps you are not reaching a goal of the project, or outside forces are introducing new challenges to the project. Human natu…

Read More

What Will Your Legacy Be?

How will you be remembered? What about you will live in memories? I just attended a memorial for a friend. Person after person talked about how my friend had touched their lives. They spoke of how he had made them feel. They remembered interactions with him. W…

Read More