TurnKey Linux Virtual Appliance Library

systemd sysv init compatibility mode: how it works and troubleshooting when it breaks

systemd sysv init compatibility mode is magical. That is in the sense that it tries to handle compatibility with sysv init scripts while you are distracted looking somewhere else.

When it works it works well, but when things break it makes troubleshooting more difficult. Especially if you don't understand what's going on behind the curtain.

The first thing you need to understand is that this probably doesn't do what you expect:

Python's timeless principles of good software

$ python -c 'import this'
The Zen of Python, by Tim Peters

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Alt

Bug hunting with the scientific method

I've never come across a problem I couldn't solve using the following technique / problem solving methodology, and I've come across some tough ones.

http://en.wikipedia.org/wiki/Scientific_method

v14.0 stable release - Massive Community Effort!

Drum roll please... May I proudly introduce: The TurnKey Linux v14.0 release!

turnkey 14.0 banner

A long time coming...

Wow is it mid September already!? What has happened to the year?!

Marching towards v14.0 RC2

Update: v14.0 stable is available in all build types: OVA & VMDK, Proxmox, OpenNode & Docker (Proxmox build is somewhat generic LXC/OpenVZ container) and Xen & OpenStack.

As anyone who has been paying attention would realise; v14.0RC1 has been out for over a month now.

How to build a TurnKey appliance ISO from source

For the upcoming v14.0 stable release, we are doing things a little differently than we have before. Historically new releases have been done totally in house with help from the community. This time around we have some QA testers (kindly donated by a TurnKey user; more about him in another blog post...) who are going to help out and make sure that our appliances are as good as they can be for the v14.0 release.

TurnKey v14.0 RC1 is LIVE! (aka we need YOU!)

Update: v14.0 stable is available in all build types: OVA & VMDK, Proxmox, OpenNode & Docker (Proxmox build is somewhat generic LXC/OpenVZ container) and Xen & OpenStack.

It is with great pleasure that I announce the release of Core v14.0RC1 and TKLDev v14.0RC1! But first a little history and context...

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 a super-fast RAM cache rather than a vastly slower physical disk drive.

This will free up everything in the disk cache:

echo 3 > /proc/sys/vm/drop_caches

Or if you want more control over exactly what is being freed...

  1. This frees up the pagecache (e.g., cache of contents of files):

pyproject-pub: A simple Python project template

I hate repeating myself. It's boring. Life is too short. Like any self respecting hacker I will go out of my way to avoid it, even when I suspect it would cost me more to automate something away than to just do it by hand.

On the other hand, doing stuff I've done before by hand is no fun, while writing scripts is fun. Even when it does take longer, time is relative, or so Einstein said.

Getting started with Python and Lisp

A few weeks ago I talked with a friend studying computer science who I discovered had never experienced the joy of programming with a high level language. Not only that but he didn't have the first clue what he was missing. I feared without my immediate intervention another perfectly good mind would be wasted in programming hell. At his university they were using Java for nearly everything so he had somehow gotten the terribly mistaken idea that it didn't really matter what programming language one used. I carefully explained that: