News Archive

Configuring a headless VNC server in Debian Linux 21 February 2021

This page sketches out a setup of a headless VNC service using TigerVNC and a systemd service file. The VNC server starts as system service as soon as the host VM or container starts.  Read more…

Unprivileged LXC container with libvirt 17 February 2021

Unprivileged containers with LXC and libvirt are a powerful combination, but the documentation on that subject is a bit difficult to find. I had to do quite a bit of reading and testing in order to get a working setup, so I wrote up the setup I came up with, for future reference. Related to this, see also the USB pass-through configuration.  Read more…

Using systemd-boot on Debian Bullseye 21 November 2020

The systemd-boot boot loader is a small UEFI boot loader. Read on if you don't need the features and complexity of a much more powerful boot loader such as grub. This article describes my setup for a Debian Bullseye system.  Read more…

Installing Debian over a serial console 23 April 2020

This article describes how to modify a Debian installation disk to to enable the serial console as the input/output device for an installation. This may be useful for platforms where it is impossible or impractical to attach a monitor to the system e.g. for remote installations or for installing a VM. Related is the post about the installation of a VM over a serial console.  Read more…

Pictures from Portugal 22 September 2019

Some pictures from Portugal.

Resizing an LVM disk 30 May 2019

This is a short article on how to resize an LVM disc. It took me some time to find the right incantations to resize a whole volume, so I wrote it down in case others and to my future self might find it useful.  Read more…

Pictures from Montenegro and Dubrovnik 17 September 2018

Some pictures from Montenegro and Dubrovnik.

Pictures from Wales 25 March 2018

Some pictures from Wales from summer last year.

More SMTP tweaks on my mail server 06 November 2017

Recently I did some tweaking on my mail server and wrote down a couple of blog posts, mainly for future reference. One is about DMARC with Postfix on Debian stretch and should be read as an addition to the DKIM guide. The second one describes how to set up a SMTP via ssh tunnel using systemd that allows me to use my SMTP server as a smarthost from behind a firewall that blocks outgoing traffic on port 25.

pycrc v0.9.1 released 09 September 2017

Version 0.9 of pycrc is a bugfix release. The most notable changes are a new license for the documentation (CC BY-SA 4.0), a warning for possibly unsuitable polynomials and a re-write of the code generation back-end.

Post-installation tweaks for Debian stretch 29 July 2017

This post gives a few tweaks I like to apply to a freshly installed Debian system.  Read more…

A Linux driver for the Realtek RTL8814AU WiFi chip 26 July 2017

Recently I bought a TP-Link Archer T9UH USB WiFi dongle but could not find an up-to-date Linux driver for it (it is using the Realtek RTL8814AU chip). So I ended up porting an older driver to the latest Linux version (v4.12.3 at the time of writing) and added the TP-Link dongle to the list of supported devices. This article describes the changes and how to build this driver under Linux.  Read more…

Pictures from Crete 29 May 2016

Some pictures from Crete, Greece. Another year, another holiday in Crete.

pycrc v0.9 released 06 January 2016

Version 0.9 of pycrc is a feature release. This version adds the experimental --slice-by option which can improve the calculation speed of the table-driven algorithm significantly.

Using Let's Encrypt in manual mode 07 November 2015

This short guide is for people who want to have their web site certified by Let's Encrypt but can't or don't want to use the fully automated method of the letsencrypt tool. This text describes how to generate a private key and a certificate signing request for multiple domains, and finally how to use the letsencrypt command to submit the CSR. None of the described steps (apart from installing the private key and the certificate) require superuser privileges and they can be carried out on a separate machine. Note: See also the newer article about auto-renewal of Let's Encrypt certificates with acme_tiny.  Read more…

pycrc v0.8.3 released 31 August 2015

Version 0.8.3 of pycrc is a minor bugfix release. This version adds some performance optimisations in the table-driven code and improves the compatibility with C++ in the function signature of the crc_update() function. The experimental --bitwise-expression option was removed to improve future restructuring of the code. The pycrc project now has its own home:

SpamAssassin with MySQL 06 December 2014

The mail server for this domain has been using SpamAssassin for quite some time using a file-based back-end for dynamic data. However I ended up with a corrupted Bayes database on a regular basis. So I decided to configure SpamAssassin to store the user configuration and all volatile data like the auto-whitelist and Bayes database in MySQL. This post briefly describes my setup.  Read more…

pycrc v0.8.2 released 04 December 2014

Version 0.8.2 of pycrc is a bugfix release. It contains some fixes accumulated over the past year. Especially users which are using polynomials with a width less than 8 or greater than 32 might want to have a look at this release as it fixes some problems with the generated code.

DKIM with Postfix on Debian wheezy 01 December 2014

Recently I have configured my mail server to use DomainKeys Identified Mail for all outgoing mail. This short article contains my notes how to set up DKIM with Postfix on Debian wheezy.  Read more…

Corrupted MAC on input during ssh file transfer in Debian Linux 25 October 2014

Recently a lot of backups with obnam to my Qnap NAS terminated with the error message Corrupted MAC on input. Some web search revealed that this is caused by a bug with hardware TCP offloading in the network interface controller driver in the Linux kernel. It's relatively easy to find how to suppress this error by disabling TCP offloading with the ethtool tool, but this setting is active only until the next reboot. The text describes how to permanently disable TCP offloading in Debian Linux.  Read more…

A method for using project-specific settings in Vim 18 September 2014

It is sometimes necessary to keep different settings for the editor of choice (Vim in my case) depending on the project. The article describes a way to achieve this by creating a command that enables the necessary options in Vim.  Read more…

Pictures from Gotland 18 July 2014

Some pictures from Gotland, Sweden. It was a very short trip, hence only few pictures.

A cmake configuration for Doxygen 07 July 2014

This simple cmake configuration for Doxygen tries to automate as much as possible. It provides an optional make doc target and uses the configure_file() function from cmake to copy the project version number from CMakeLists.txt to the Doxygen configuration file and provides a way to use other variables from cmake.  Read more…

Pictures from Crete 09 June 2014

Some pictures from Crete, Greece. I really can recommend Crete to anyone who wants to combine sea and walks in the mountains in one holiday (plus fantastic food, welcoming people).

Pictures from Korea 24 November 2013

Some pictures from Suwon and Seoul.

A small but flexible backup script 13 October 2013

After trying out a few command line scripts I have decided to write my own small script to generate full and incremental backups. This script is based on tar and can handle a number of separate configurations.  Read more…

Better layout on mobile devices 23 June 2013

After some procrastination I have updated the CSS configuration of this website to give better results on mobile devices. When I had to browse my website with a mobile device during my holidays, I had realised that the old CSS settings make this page not usable on smaller screens. Update 2013-07-21: added navigation buttons to the picture galleries.

Pictures from Crete and Santorini 09 June 2013

Some pictures from Crete and Santorini, Greece.

pycrc v0.8.1 released 17 May 2013

Version 0.8.1 of pycrc is a bugfix release. It improves the compatible with Python3 compatibility and adds a function to the python library: the input to the PRC routines can now be bytes or strings. Removed the obsolete and unused direct parameter and fixed a bug in the generated main() function. Thanks to Matthias Urlichs. Fixed a bug in the handling of hex strings in Python3. Thanks to Matthias Kuehlewein.

A git svn cheatsheet 06 May 2013

A git svn cheatsheet mostly as an aide-mémoire for my own use.  Read more…

Command Line Network Sniffing with Tshark 07 April 2013

The page Network Traffic Sniffing with Tshark describes how to sniff a network interface with the command line took Tshark. This is very useful if you want to use the output of the sniffer in scripts.  Read more…

sed-tutorium v1.9 and v1.10, EPUB output 21 March 2013

Version v1.9 of the German introduction to sed (released on the 3rd March) changed the DocBook style to version 5. The source file is now finally encoded in UTF-8. Welcome to the 21st Century! The text itself was only marginally changed. Version v1.10 (released in the 21st March) adds a new section describing the 'l' command. The DocBook source code is now published on GitHub. From now on I'm also generating EPUB output file.

pycrc v0.8 released 04 January 2013

Version 0.8 of pycrc is a feature release. Among smaller enhancements such as an improved documentation a new Code generation mode was implemented. The experimental Option bitwise-expression implements the look-up table of the table-driven mode as a boolean expression.

Added link to my new project 26 November 2012

I have published the small project of a Quine McCluskey implementation in Python.  Read more…

pycrc v0.7.11 released 20 October 2012

Version 0.7.11 of pycrc is a minor bugfix release. Improved Python 3 compatibility. pycrc now requires Python 2.6 or later. Fixed a wrong "check" value of the crc-64-jones model. Use sprintf() for C89 code instead of snprintf(). Rewrote the regression test script in Python.

Pictures from Ryazan 01 October 2012

Some pictures from Ryazan in Russia.

Notes from a coursera Finance Course 25 July 2012

Some notes about the coursera course Introduction to Finance.  Read more…

Generate and remember unique passwords for each web site 14 July 2012

News about stolen user names and passwords on big websites abound these days in the media. It is therefore wise to use a different password on every website you log in. This blog entry describes a method how to generate and remember a unique password for each website or domain.  Read more…

Pictures from Mysore and Bangalore 30 May 2012

Some pictures from Mysore and Bangalore and from a short trip to India.

pycrc v0.7.10 released 13 February 2012

Version 0.7.10 of pycrc is a minor feature and bugfix release. The new CRC models crc-12-3gpp, crc-16-genibus, crc-32-bzip2 and crc-64-xz are added. Some bad-looking generated C code is fixed and some minor documentation blunders are removed.

pycrc v0.7.9 released 08 December 2011

Version 0.7.9 of pycrc fixes a few smaller issues in the code generator. It does no more include stdint.h for C89/ANSI code missed in the last version.

pycrc repository on GitHub 01 November 2011

pycrc has now a repository on GitHub. Feel free to fork and to contribute back!

Pictures from the Scottish Highlands 07 August 2011

Some pictures from the Scottish Highlands and from some walks in the Cairngorms.

An introduction to the mail-filter-language Sieve 16 July 2011

I have written a Sieve filter tutorial. I have recently installed Dovecot IMAP server and on that occasion I started using Sieve. While learning that (simple) language I have put down some notes.  Read more…

pycrc v0.7.8 released 10 July 2011

Version 0.7.8 of pycrc fixes a few smaller issues in the code generator. It does no more include stdint.h for C89/ANSI code and fixes a few compiler warnings.

IPv6 support on this site 28 May 2011

This web site site can now be reached over native IPv6.  Read more…

pycrc v0.7.7 released 11 February 2011

Version 0.7.7 of pycrc fixes a few issues, most of them programming style issues. This version should run better on Python 3.x.

pycrc v0.7.6 released 21 October 2010

Version 0.7.6 of pycrc fixes a couple of minor bugs. It also contains a complete rewrite of the code generator.

ifconfig vs ip 21 April 2010

For a long time I have tried to avoid learning the ip command. It turned out a smaller beast than I thought and it is actually very useful. This page compares basic operations done once with ifconfig, once with ip. I hope this will help people to get used to the new syntax.  Read more…

Pictures from Cornwall 03 April 2010

Some pictures from Cornwall from a short trip at the end of March 2010.

pycrc v0.7.5 released 28 March 2010

Version 0.7.5 of pycrc adds a long-awaited feature: the table-driven algorithm can handle widths that are not byte-aligned as well as widths less than 8. This version also removes the half-baked and confusing --direct option and contains some code tidy-up. The generated C code should no more generate warnings about unused variables.

userial firmware v1.9 25 March 2010

userial firmware v1.9 is a minor bugfix release. This release is the first firmware version that supports David Fletcher's Bumble-B board. This version also uses the newest LUFA library 100219 and fixes a few bugs: the SPI clock divider was never written to the right register (thanks to Erik Schönewerk) and the GPIO read command returned the value of PORTx but not PINx (thanks to David Fletcher).  Read more…

Pictures from Sharm el-Sheikh 25 March 2010

Some pictures from Sharm el-Sheikh, Egypt.

pycrc v0.7.4 released 24 January 2010

Version 0.7.4 of pycrc is a feature enhancement and bug fix release. As a result from the comparison with Greg Cook's Catalogue of parametrised CRC algorithms some parameters have changed. This version also contains a few minor bug fixes.

Pictures from Ryazan 16 January 2010

Some pictures from Ryazan, Russia, at -20℃.

userial firmware v1.8 31 October 2009

userial firmware v1.8 is a minor bugfix release. This version fixes a bug in the calculation of the SPI frequency. Many thanks to Zoran Stojkovic.  Read more…

pycrc v0.7.3 released 25 October 2009

Version 0.7.3 of pycrc is only a small feature enhancement release: a new CRC model, crc-64-jones was added. Thanks to Waterspirit.

How to print a booklet under Linux without a duplex printer 11 October 2009

A short text on how to generate and print booklets under Linux. It is the result of a lengthy trial-and-error processes. That's why I went to sketch the necessary steps down, mainly for my own use.  Read more…

10,000 downloads of pycrc 10 October 2009

Today pycrc has passed the threshold of 10,000 downloads. We hope as many people have enjoyed working with pycrc. Thanks to everyone who has contributed!

Setting up a HP LaserJet 2100tn for printing with Linux 04 October 2009

Recently, I got a HP LaserJet 2100tn. This page describes the configuration steps I took to set it up to fit my needs printing from Linux.  Read more…

pycrc v0.7.2 released 30 September 2009

Version 0.7.2 of pycrc is a small bugfix release: the result of the Python table-driven code was not being evaluated at all. Thanks to Ildar Muslukhov.

userial firmware v1.7 26 September 2009

Firmware v1.7 of userial is out! This version adds support for ADC ports and updates to LUFA version 090924.  Read more…

Digital Filters with GNU Octave 12 September 2009

Just a short note on how to design a Digital Filter with GNU Octave  Read more…

Generating audio with GNU Octave 04 September 2009

Once again I (=someone who uses Octave very rarely) found myself spending too much time figuring out how to do something in GNU Octave: this time I had to generate a simple sine wave and to save it in an audio file (with fade-in and out). The following article outlines how to do it.  Read more…

Pictures from the Carnaval del Pueblo 02 August 2009

Last week I have been down to London to the Carnaval del Pueblo. It turned out a very fun and colourful fair. Watch some pictures on this site.

Pictures from Italy 05 July 2009

On images/italy2009.htmli I have uploaded a few pictures from a journey to Italy: Rome, Florence, Verona, Venice and Cinque Terre.

Pictures from Barcelona 05 May 2009

I have put some pictures from Barcelona online.

sed-tutorium v1.6 13 April 2009

Version v1.6 of the German introduction to sed changed the DocBook style from "article" to "book". Many more examples have been added and the index has been extended. Many thanks to "Max" (Rem Remedy).

pycrc v0.7.1 released 05 April 2009

Version 0.7.1 of pycrc is only a small feature enhancement release: a new CRC model, crc-32mpeg (now crc-32-mpeg) was added. Thanks to Thomas Edwards.

Optimisations of AVR programs using avr-gcc 12 March 2009

The article Optimisations of AVR programs using avr-gcc contains some tips on how to write small programs for ATMEL AVRs, using avr-gcc.  Read more…

userial firmware v1.6 28 February 2009

Firmware v1.6 of userial is out! This version adds a new command for I²C bus clear and fixes a bug that has plagued me for some time now: when userial was transmitting 16 bytes on the USB bus, the data was kept in the transmit buffer until the next command.  Read more…

pycrc version 0.7 released 27 February 2009

Version 0.7 of pycrc contains a few small enhancements on the command interface. It is now possible to calculate directly the checksum of a hexadecimal number without writing its binary value into a file. A new option that controls if the 'direct' version (no augmented message) of the algorithm is being executed has been added to the options.

userial firmware v1.5 25 January 2009

The firmware has been updated. Now all interfaces apart from the ADC port are now supported.  Read more…

pycrc version 0.6.7 released 11 December 2008

Version 0.6.7 of pycrc should now run on both Python v2.x and v3.0. This version also fixes a bug that raised an exception when a unknown CRC model was selected. Another bug that gave the wrong result on 64 bit platforms has also been fixed.

sed-tutorium v1.5 16 November 2008

Version v1.5 of the German introduction to sed adds an index.

Pictures from Istanbul 14 September 2008

One of the most beautiful cities I have seen: Istanbul.

userial firmware 31 August 2008

The first firmware release of the USB to I²C bridge has been released today. The software needs still a number of improvements but it is usable for basic input and output over I²C.  Read more…

Pictures from Edinburgh 26 August 2008

After a great long week-end in Edinburgh I've put some pictures of Auld Reekie online.

sed-tutorium v1.4 12 August 2008

The version v1.4 of the German introduction to sed fixes a few typos. But the real reason for bumping up the version number is the change in the tools: I'm abandoning db2pdf and have started using fop to generate the PDF file. And whilst I was screwing with the generator, I was also beefing up the layout of the DocBook output.

Script to rename a svn:author 01 July 2008

The following Script helps to rename an author in the Subversion log.  Read more…

Subversion backup script 01 June 2008

After having rewritten for the third time a script to generate SVN backups (in three different situations), I have decided to put a sample script online so I don't have to re-invent the wheel the next time.  Read more…

USB to I²C bridge 10 May 2008

This is my first hardware project and it is still in an embryonic state, but the first version of the schematic can be downloaded.  Read more…

My take on a "C" Coding Guideline 27 April 2008

It happened several times now that I'm involved in writing some Coding guidelines (basically in every company I've worked for). And every time I searched the Web for some sensible rules I did not find anything that would recommend as a whole. These guidelines are an attempt to propose modern C coding rules. Comments are welcome.  Read more…

sed-tutorium v1.3 13 April 2008

Version v1.3 of the German introduction to sed has undergone a thorough spell check. If I missed the one or the other error, please don't hesitate to report it!

Pictures from Turkey 08 April 2008

I've put some pictures from Antalya in Turkey online. Enjoy.

sed-tutorium v1.2 03 March 2008

The German introduction to sed corrects some minor bugs in v1.2. The biggest difference is the switch from the GNU FDL to a Creative Commons Attribution-Share Alike 3.0 Unported License.

pycrc version 0.6.5 released 02 March 2008

Version 0.6.5 of pycrc supports now two new CRC models (dallas-1-wire and r-crc-16). This version fixes also a problem in the generated source code for the bit-by-bit-fast algorithm and adds increases the compatibility with C++.

Tuning Subversion on slow networks 18 January 2008

Ever complained about Subversion being slow over HTTP? The page blog/2008/subversion-tuning.html show some ways to tune Subversion with Apache.  Read more…

pycrc version 0.6.4 released 05 December 2007

Version 0.6.4 of pycrc fixes a bug in the code generator for table-driven algorithms. When the crc_update() function was called more than once the result could get erroneously reflected.

How To Ask Questions The Smart Way 17 November 2007

The official German translation of the article "How To Ask Questions The Smart Way" is now hosted on I'd like to thank the LUGBZ for having hosted that page for many years in the past.

Pictures from England 15 November 2007

After one year and a half I have finally managed to work through my pictures from England and to put some of them online. More pictures are found in the page photo.

pycrc version 0.6.3 released 13 October 2007

Version 0.6.3 of pycrc adds a few new CRC models (crc-5, crc-15, crc-16-usb, crc-24, crc-64) and fixes a few bugs in the generated code. C89 code is now completely ANSI compatible and should work in systems without <stdlib.h>. A bug in the --check-file option has been fixed and an unnecessary restriction on the width of the Bit-by-Bit algorithm has been removed.

Transparent Subversion proxy with svnsync + WebDAV proxy 26 August 2007

The page blog/2007/subversion-proxy.html describes how to set up a transparent Subversion proxy server.  Read more…

pycrc version 0.6.2 released 25 August 2007

Version 0.6.2 of pycrc is a minor bugfix release. Bug fixes: the command line option --check-string was ignored and the generated source code for the table-driven algorithm has been improved. No new functions are added.

pycrc version 0.6.1 released 12 August 2007

Version 0.6.1 of pycrc is a minor bugfix release. In particular, the new C89 code introduced a couple of bugs which are now gone. Previously deprecated command line options have dropped in this version. No new functions are added.

sed-tutorium v1.1 19 July 2007

The German introduction to sed corrects some bugs in v1.1. Thanks to Alexander Kriegisch.

Fighting spam with Exim4 09 June 2007

The short article blog/2007/fighting-spam-with-exim4.html contains some (obvious) methods to fight spam with the Exim4 MTA.  Read more…

pycrc version 0.6 released 21 May 2007

pycrc version 0.6 has been released. This release contains a major rewrite of the code generation back-end and a re-organisation of the source code. There are also several other minor improvements. With version v0.6 the license has changed from (a modified) GPLv2 to MIT.

Linux support for Samsung YP-T9 06 April 2007

Yay! I have got my brand new Samsung YP-T9 MP3 player connected with Linux and I am listening to Ogg Vorbis files on it while writing these lines!  Read more…

pycrc version 0.5 released 25 March 2007

pycrc version 0.5 has been released. This version contains small bug fixes and no new functions.

sed-tutorium v1.0 20 February 2007

The German introduction to sed has bumped the version number to 1.0. This version contains some minor changes and corrects several typos (Thanks to Thomas Falkner).

An example script for an iptables firewall 06 February 2007

blog/2007/iptables-firewall.html describes an example of an iptables firewall script with some gimmicks like automatic blocking of ssh port scans.  Read more…

pycrc version 0.4 released 26 January 2007

pycrc version 0.4 has been released.

pycrc version 0.3 released 14 January 2007

pycrc version 0.3 has been released. This is the first public release.

Examples of dual-licensing of Open Source Software 10 December 2006

I have written a small comparison on dual licensing of Open Source, just out of interest.  Read more…

This pages are now generated out of XML 25 November 2006

Since I wanted to learn XML and XSLT, I have converted the source code of this pages from Web Meta Language to XML.

Slides for the shell workshops 29 September 2005

Finally, I found some time to publish some old slides for a sed and awk workshop and for a Bash workshop.  Read more…

sed-tutorium v0.8 17 March 2004

The German introduction to sed was ported from SGML to XML and by this occasion I have corrected some typos.

Workshop: Introduction to Shell Scripting 26 April 2003

The Linux User Group Bolzano is organising an introduction to Shell Scripting. We invite everyone to participate. More information can be found on the Workshops page of the LUGBZ. The slides can be seen here.

sed-tutorium v0.7 08 January 2003

The German introduction to sed has reached version 0.7. I really don't know when version 0.6 came out. Do you?

sed-tutorium v0.5 08 September 2002

The German introduction to sed has reached version 0.5. It contains some small changes and error corrections.

Hack-it 2002 21 June 2002

This year the Italian Hacker Meeting, hack-it 2002 was held in Bologna. Here are a few photos I made.

Virtual Domains with Exim + Courier-IMAP + MySQL 24 May 2002

Lately I had to set up a mail-server for virtual domains, and I wrote down some notes about this type of setup.  Read more…

This site goes online 10 March 2002

I'm in a CSS-fever and I'm using CSS in a exhaustive way. Sorry if the pages don't render well with older browsers. (This pages have been tested with lynx though.)