Evolutionary Algorithms employ evolution as found in nature to converge on a preset target state. Candidates are bred and mutated, after which their fitness is determined. This fitness determines their chances of reproducing in the next generation. This article examines Evolutionary Algorithms without any prior knowledge of the subject.
Published in Hacker Monthly, Issue 18 November 2011.
A (Finite-) State Machine is a method of determining output by reading input and switching the state of the machine (computer program). Depending on the type of State Machine (more on this later), the state of the machine is changed by looking at the current state, sometimes in combination with looking at the input. This article explores practical implementations of State Machines using the Python programming language.
There is a lot of information on the Internet about how encodings (especially Unicode) work, but there is little practical information available on when and how to deal with them from a developer's view-point. This article covers a small amount of theory, then proceeds to describe when we need to deal with encodings in our program and finally gives pratical pointers on how to properly deal with encodings in Python.
Creating a PEAR package can be a bit of a daunting job. Fortunately there are tools to make your job much easier. This article is a guide to creating and distributing your own PEAR package in an easy way.
Suppose we have five objects which all depend on some of the other objects. The objects could be anything, but in this case let's say they're very simple software packages (no minimal versions, etc) that depend on other packages which must be installed first. How does one find the right order of installing the packages? This article describes an easy dependency resolving algorithm in Python.
An article that explores various different methods of approaching Weighted Random Distribution: Making random selections from a set where some items should be picked more often than others.
GDB, the GNU Debugger is a very powerful commandline debugging client. It does, however, have quite a steep learning curve. This tutorial will hopefully get you aquainted with GDB.
Python has an interactive shell, which you can start by simply starting python. This is a nice and very powerful way of using Python, but it's a bit limited. So you might want to check out IPython.
IPython is also an interactive Python shell, but with lot's of stuff added, such as tab completion, colors, dynamic object introspection, sessions, command history, etc. This article gives you a quick introduction into the world of IPython bliss.
This article shows how to serve a CherryPy application through both Apache mod_python and through the built-in web server.
DocBook is a standard for creating, mostly technical, documents. DocBook's great advantage lies in the fact that it allows you to convert one source format into multiple target formats. I.e. one SGML document can be converted into HTML, Postscript, PDF, RTF, etc. This document will briefly touch upon a number of subjects having to do with DocBook. It is intended for people whom wish to get started with DocBook but aren't willing to read whole books on the subject.
SSH is capable of more than you'd think! This article describes some of the lesser known features and configuration options. It covers authentication, authorization, tunnels and proxies, file transfer and more.
This document describes FastCGI, how to set up Apache's FastCGI module, and how to hook it up to a simple Python script.
BoxBackup is an online remote backup tool for Unix systems (BSDs, Linux, MacOSX). It is robust, secure, low on resources and can perform both in continues backup mode and snapshotting. This article will describe how to set up a BoxBackup server and client on Debian and Ubuntu machines.
When you add a user to your Unix system, it automatically gets access to every service: FTP, SSH, Pop, Email, etc. That may not be what you want. This article describes a way, using PAM, in which you can limit services on a per-user basis.
Updated version of the Virtual Host wildcard delivery document for Exim4.
Notice: This document is outdated. Check above for a version for Exim4.
I spent a lot of time figuring out how I could have all mail which didn't have a proper/existing recipient get sent to a particular user using Exim. I also wanted to be able to specify a different recipient for each virtual domain. In this document I will explain how I made it work.
This article is about trickle, a user space bandwidth shaper.
Published on Debian Package A Day on May 30th, 2007.
This article is about mmv, a tool for mass renaming, moving and copying of files.
Published on Debian Package A Day on June 13th, 2007.
RCS has been around since at least 1982, and has since been deprecated by CVS, Subversion and the various other centralized and decentralized versioning systems. It is however perfectly suited for keeping revision histories of single or a small collection of files. This is a simple guide to RCS.
EdgeWorld is an online multiplayer Semi-Real Time Strategy game that can be played through Google+ and Facebook. This is a strategy and reference guide for new players as well as more advanced players. It contains tips and tricks on Zoot's Loot, attacking and defending, base layout, vulnerabilities in Faction bases and a lot more.
Dissatisfied with the current documentation covering BitchX, I decided to start my own one. It was meant as a newbie guide to BitchX and as a reference for more experienced users. I never finished it, because I found a better irc client.
A little article I wrote to educate people on how to stop spam from reaching their inboxes. It's working wonders for me, Mike!
MySQL SQL Syntax Quick Reference containing ALTER TABLE, CREATE TABLE, RENAME TABLE, DELETE, INSERT, SELECT and UPDATE syntax.
Readline is a library which provides a common input method. Many Unix programs use or emulate the library and its keystrokes. Amongst these are Emacs, Bash (by default) and Gnome. In these programs common keystrokes all give the same behaviour. For instance, pressing Control-A will move the cursor to the beginning of the line. This cheatsheet provides an overview of the keystrokes that work in most of the programs using or emulating Readline.