A terminal listing the TurnKey appliance build library

Blog

Which TurnKey app should I use? Seven common jobs

The app library has nearly 90 current appliances. That is useful when you know the software name. It is less useful when all you know is the job that needs doing. Here are seven …

TurnKey OpenVPN control panel with server and client configuration links

Blog

Three OpenVPN setups, and which one you need

The TurnKey OpenVPN appliance supports three modes because “I need a VPN” hides three different jobs. Pick the job first. The routing makes more sense after that. 1. Reach your …

A WordPress site running on the TurnKey WordPress appliance

Blog

LAMP or WordPress? Start with the smaller answer

People often compare LAMP and WordPress as if they were two editions of the same server. They are not. One is a foundation. The other is a finished application built on roughly …

Blog

13 simple writing tips

I love reading, I love books, and my friends say I have an overactive imagination. So it may not be terribly surprising that back in my teens one of my dreams was to one day …

Blog

CDPATH

I used bash for a decade or so before I discovered this little highly useful gem a few years back. Nowadays I can't remember what I used to do without it. From the bash manual …

Blog

Invalidating the disk cache on Linux

Here's a super easy way to invalidate the disk cache, which is useful for testing IO performance in the real world, where you can't rely on all of your reads being served up from …

Blog

Drupal Rules in a nutshell

In a nutshell, Rules is a visual programming tool. Instead of writing code as a block of text, you configure the desired behavior via a GUI that guides you through the setup of …

Blog

Three strikes - time to automate!

I caught myself today repeating a few basic operations by hand what seemed like a zillion times. Over and over again. I didn't really notice it at the time but it was really …

Blog

How to debug a broken cron job

I just fixed a broken cron job. It turned out it was a PATH issue. By default cron doesn't have /usr/local stuff in the PATH. Tips on how to debug cron: change the schedule for …

Blog

Python optimization principles and methodology

Methodology The basic methodology for optimization: Discover where you program is spending its time (hotspots vs coolspots) A good way to get an overview is to use the Python …

Blog

4 simple software optimization tips

1) Always be experimenting! Trying to squeeze out more performance out of your program? Don't be afraid to experiment! In practice what that means is you setup small, simple …

Blog

Tips for the Object Oriented Programming novice

The following is written for programmers who don't really understand object oriented programming yet. They probably understand the language semantics, but don't really understand …

Blog

Smart cache expiration with Drupal Rules

I've been exploring Drupal Rules some more since last week. We were already using it before to automate the various repetitive tasks involved in creating a new appliance (e.g., …

Blog

tmux is a superior alternative to screen

Today was the first day I stopped using screen and started using tmux, which is a superior alternative which supports a more complex range of splits and has a nicer interface. …

Blog

Configuring the timezone on TurnKey Linux

For some TurnKey appliances, it's important to set the date and time of the server before starting to use the application. Examples: We're installing a blog or forum application, …