Run Composer Binaries From Project Directories

As a PHP developer I often find myself having to run executable files installed to a project via Composer (e.g. php-cs-fixer, phpunit, psysh, etc.). These binary files typically reside in vendor/bin relative to the root of a project and in order to run these binary files from the project root I would need to cd into the vendor/bin directory first or type out the relative path (e.g. vendor/bin/php-cs-fixer fix) every time I wanted to run one of these executables.

Read More

Scheduled Tasks with Systemd Timers

Use a Linux system long enough and eventually you'll need to schedule a recurring task. Of course the defacto scheduler is cron (and there's nothing inherently wrong with it) but I've grown to like the flexibility and features of systemd timers. Some of the benefits they provide over cron include:

Read More

Setting Up an Ubuntu Web Server

Having set up several Debian and Ubuntu web servers in the past I thought it would be a good idea to share my process. The following is a relatively comprehensive guide to installing and configuring an Apache based web server with some optimizations and basic resource monitoring. I primarily work with Ubuntu servers, but most of the commands here should work exactly the same in Debian or Ubuntu. I've tried to note where differences may occur.

Read More

Increasing the Size of a Virtual Hard Drive in VirtualBox

November 16th, 2011

I work in Linux primarily but run a Windows 7 virtual machine in VirtualBox so I can use Photoshop and do some necessary testing. Today my VM ran out of space. Silly me thought 20GB would be enough, but after installing service pack 1, dozens of Windows updates and a few programs I had less than 1GB of space left. After a little searching I found an easy way to increase the size of a virtual disk.

Read More

Join multiple .avi files in Ubuntu

I was just in a bit of a pickle and needed to join two .avi files together while in Ubuntu. There are a number of solutions out there, but the most simple solution I could find was via avimerge. Here's how I did it.

Read More