Archive for the 'english' Category

my mailserver grows up

Yay, I received my 200th spam mail after I set up my own mailserver in January. – Now my SpamAssassin can use its Bayes classifier.  %-)

NotToDo List

I decided to shorten my ever expanding “eternal ToDo list”, because I realized I simply will not have enough free time for all my ideas. I put this list of abandoned projects online because maybe you want to work on them, or someone else might find them useful and pay me to work on them.  ;-)

  • syslog-sign library: take the syslog-sign code from syslogd and turn it into a general library to sign arbitrary streams of text or packets.
  • timestamping: extend syslogd or the syslog-sign library to include qualified timestamps.
  • PEAR::Payment_SEPA: write a free library to read and generate SEPA credit transfer messages, basically the next generation of Payment_DTA. Problem is it’s a big XML base specification and customer-to-bank messages may still use different formats; leading to the secondary problem that validation services to test such an implementation are expensive.
  • Puppet package plugin for FreeBSD to use portmaster instead of portupgrade.

Sizing a Swap Partition

It is still one of the first questions when installing a unixoid OS: do you still need a swap partition and how big should you make it. In the old days™ this was an important question because disk space was expensive and the OS memory management had several constraints.

Today both memory and disks are cheap enough to make this question insignificant in many cases. One can usually buy enough memory to prevent swapping, and with terrabyte disks it makes no real difference whether the swap partition is 1 Gb or 4 Gb in size.

I still use the old rule of thumb and allocate twice the size of RAM for a swap partition. But the intention is not so much to swap memory pages but rather to always have enough space for kernel core dumps. My basic reasoning is:

  1. In case of kernel errors I want to get a core dump.
  2. A later RAM upgrade is relatively cheap and easy, thus probable over a system’s lifetime.
  3. A later disk re-partitioning is more difficult, thus to avoid.
  4. Disk space is cheap, allocating ≤ 5% for a mostly unused swap partition has no significant cost.

 

Dying ‘try’ processes

Note: This syslog entry is puzzling if the system has no program named try, but no cause for concern:

2011-11-19T01:31:21 frodo kernel: pid 47812 (try), uid 0: exited on signal 10 (core dumped)

Source of the program is Perl’s Configure script, which compiles its C library test cases into programs named try. And apparently amd64 systems need to use the function va_copy() because the test case without this function leads to a segfault.

Design and Implementation of an IPv6 Plugin for the Snort Intrusion Detection System

Nach einem Schreib-Endspurt im August und folgender Schreib-Faulheit im September soll es auch hier mal wieder weitergehen. Und bevor sich wirklich neue Themen finden, gibt’s noch ein paar übriggebliebene Notizen zu meiner Diplomarbeit: Design and Implementation of an IPv6 Plugin for the Snort Intrusion Detection System.

[Short english explanation:] I finished my diploma thesis: Design and Implementation of an IPv6 Plugin for the Snort Intrusion Detection System.

OSX Lion Impression

Finally got around to read the OSX Lion review on ars technica… The most interesting feature is the new process model with automatic and sudden termination (at least in regard to OS design; without having a Mac I no longer care about the UI).
Read the rest of this entry »

Perl and Python under Windows

Perl and Python are not only useful for Unix programming. Both languages work on Windows, have modules for Win32 APIs and their programs can be packaged into .exe files.

Read the rest of this entry »

Measuring PHP code complexity

What makes good code and why is some code better than others? One quantitative approach to answer this is the use of software metrics. These metrics try to capture the size and complexity of code in numbers (e.g. ‘lines of code‘, ‘cyclomatic complexity‘) and can be useful indicators for maintainability and simplicity (or more often the lack thereof).

I found three ways to get complexity measures for PHP code.
Read the rest of this entry »