profile picture

Michael Stapelberg

All Blog Posts

Or are you here only for a certain topic? Browse posts within a tag:


  • For the guest WiFi at an event that eventually fell through, we wanted to tunnel all the traffic through my internet connection via my home router. Because the event is located in another country, many hours of travel away, there are a couple of scenarios where remote control of my home router can be a life-saver. Read more →


  • This post is the third article in a series of blog posts about rsync, see the Series Overview. With rsync up and running, it’s time to take a peek under the hood of rsync to better understand how it works. Read more →

  • This post is the second article in a series of blog posts about rsync, see the Series Overview. Now that we know what to use rsync for, how can we best integrate rsync into monitoring and alerting, and on which operating systems does it work? Read more →


  • This post is the first article in a series of blog posts about rsync, see the Series Overview. To motivate why it makes sense to look at rsync, I present three scenarios for which I have come to appreciate rsync: DokuWiki transfers, Software deployment and Backups. Read more →

  • For many years, I was only a casual user of rsync and used it mostly for one-off file transfers. Over time, I found rsync useful in more and more cases, and would recommend every computer user put this great tool into their toolbox 🛠 🧰 ! Read more →


  • Now that I recently upgraded my internet connection to 25 Gbit/s, I was curious how hard or easy it is to download files via HTTP and HTTPS over a 25 Gbit/s link. I don’t have another 25 Gbit/s connected machine other than my router, so I decided to build a little lab for tests like these 🧑‍🔬 Read more →


  • My favorite internet service provider, init7, is rolling out faster speeds with their infrastructure upgrade. Last week, the point of presence (POP) that my apartment’s fiber connection terminates in was upgraded, so now I am enjoying a 25 Gbit/s fiber internet connection! Read more →


  • I have tried a bunch of different Smart Home products over the last few years and figured I would give an overview of which ones I liked, which ones I disliked, and how I would go about selecting good Smart Home products to buy. Read more →


  • I finally managed to get my hands on some DDR5 RAM to complete my Intel i9-12900 high-end PC build! This article contains the exact component list if you’re interested in doing a similar build. Usually, I try to stay on the latest Intel CPU generation when possible. Read more →


  • The mouse I use daily for many hours is Logitech’s MX Ergo trackball and I generally consider it the best trackball one can currently buy. Unfortunately, after only a year or two of usage, the trackball’s mouse buttons no longer function correctly. Read more →


  • You most likely have heard that Apple switched from Intel CPUs to their own, ARM-based CPUs. Various early reviews touted the new MacBooks, among the first devices with the ARM-based M1 CPU, as the best computer ever. This got me curious: after years of not using any Macs, would an M1 Mac blow my mind? Read more →


  • Since March 2020, I have been using my work computer at home: an HP Z440 workstation. When I originally took the machine home, I immediately noticed that it’s quite a bit louder than my other PCs, but only now did I finally decide to investigate what I could do about it. Read more →


  • init7 recently announced that with their FTTH fiber offering Fiber7, they will now sell and connect you with 25 Gbit/s (Fiber7-X2) or 10 Gbit/s (Fiber7-X) fiber optics, if you want more than 1 Gbit/s. While this offer will only become available at my location late this year (or possibly later due to the supply chain shortage), I already wanted to get the hardware on my end sorted out. Read more →


  • For many of my school and university years, I used and liked my ThinkPad X200 ultraportable laptop. But now that these years are long gone, I realized my use-case for laptops had changed: instead of carrying my laptop with me every day, I am now only bringing it on occasion, for example when I travel to conferences, visit friends, or do volunteer work. Read more →


  • init7 recently announced that with their FTTH fiber offering Fiber7, they will now sell and connect you with 25 Gbit/s (Fiber7-X2) or 10 Gbit/s (Fiber7-X) fiber optics, if you want more than 1 Gbit/s. This is possible thanks to the upgrade of their network infrastructure as part of their “lifecycle management”, meaning the old networking gear was declared as end-of-life. Read more →

  • After adding a fiber link to my home network, I am upgrading that link from 1 Gbit/s to 10 Gbit/s. As a reminder, conceptually the fiber link is built using two media converters from/to ethernet: Schematically, this is what’s connected to both ends: Read more →

  • Over the last few years, I worked on a few projects around keyboard input latency: In 2018, I introduced the kinX keyboard controller with 0.2ms of input latency. In 2020, I introduced the kinT keyboard controller, which works with a wide range of Teensy micro controllers, and both the old KB500 and the newer KB600 Kinesis Advantage models. Read more →


  • During my work on Teensy 4.1 support in ChibiOS for the QMK keyboard firmware, I noticed that ChibiOS’s virtual serial device USB demo would sometimes print garbled output, and that I would never see the ChibiOS shell prompt. This article walks you through diagnosing and working around this issue, in the hope that it helps others who are working with micro controllers and USB virtual serial devices. Read more →

  • I recently learnt about the Emacs package project.el, which is used to figure out which files and directories belong to the same project. This is used under the covers by Eglot, for example. In practice, a project is recognized by looking for Git repositories, which is a decent first approximation that often just works. Read more →

  • NXP’s Eclipse-based MCUXpresso IDE is the easiest way to make full use of the hardware debugging features of modern NXP micro controllers such as the i.MX RT1060 found on the NXP i.MX RT1060 Evaluation Kit (MIMXRT1060-EVK), which I use for Teensy 4 development. Read more →


  • I bought the cheapest compatible BTicino intercom device (BT 344232 for 32 €) that I could find on eBay, then soldered in 4 wires and added microcontrollers to make it smart. It now connects to my Nuki Opener Smart Intercom IOT device, and to my local MQTT Pub/Sub bus (why not? Read more →

  • Debian Code Search now offers an OpenAPI-based API! Various developers have created ad-hoc client libraries based on how the web interface works. The goal of offering an OpenAPI-based API is to provide developers with automatically generated client libraries for a large number of programming languages, that target a stable interface independent of the web interface’s implementation details. Read more →


  • While I had heard the abbreviation MQTT many times, I never had a closer look at what MQTT is. Here are a few quick notes about using MQTT as Pub/Sub bus in a home IOT network. Motivation Once you have a few IOT devices, an obvious question is how to network them. Read more →




  • Motivation Despite using a FTTH internet connection since 2014, aside from the one fiber uplink, I had always used network gear with 1 Gbit/s links over regular old rj45 cat5(e) cables. I liked the simplicity and uniformity of that setup, but decided it’s time to add at least one fiber connection, to get rid of a temporary ethernet cable that connected my kitchen with the rest of my network that is largely in the living room and office. Read more →


  • Back in 2013, I published a replacement controller for the Kinesis Advantage ergonomic keyboard. In the community, it is often referred to simply as the “stapelberg”, and became quite popular. Many people like to use the feature-rich QMK firmware, which supports my replacement controller out of the box. Read more →



  • I generally enjoy reading the uses this blog, and recently people have been talking about desk setups in my bubble (and on my Twitch stream), so I figured I’d write a post about my current setup! Desk setup I’m using a desk I bought at IKEA well over 10 years ago. Read more →

  • I just released a new version of distri. The focus of this release lies on: a better developer experience, allowing users to debug any installed package without extra setup steps performance improvements in all areas (starting programs, building distri packages, generating distri images) Read more →

  • In distri, packages (e.g. emacs) are hermetic. By hermetic, I mean that the dependencies a package uses (e.g. libusb) don’t change, even when newer versions are installed. For example, if package libusb-amd64-1.0.22-7 is available at build time, the package will always use that same version, even after the newer libusb-amd64-1. Read more →


  • When spawning a child program, for example in an integration test, it is often helpful to know when the child program is ready to receive requests. Delaying A brittle strategy is to just add a delay (say, time.Sleep(2 * time.Second)) and hope the child program finishes initialization in that time. Read more →


  • In case you are not yet familiar with why an initramfs (or initrd, or initial ramdisk) is typically used when starting Linux, let me quote the wikipedia definition: “[…] initrd is a scheme for loading a temporary root file system into memory, which may be used as part of the Linux startup process […] to make preparations before the real root file system can be mounted. Read more →


  • One of my two NAS builds recently died, so I bought a new one until I find some time to debug the old one. Since a couple of people have been asking me what I would recommend nowadays based on my November 2016 article “Gigabit NAS (running CoreOS)”, I figured I would share the new hardware listing: Read more →




  • Hooks are an extension feature provided by all package managers that are used in larger Linux distributions. For example, Debian uses apt, which has various maintainer scripts. Fedora uses rpm, which has scriptlets. Different package managers use different names for the concept, but all of them offer package maintainers the ability to run arbitrary code during package installation and upgrades. Read more →


  • In the i3 projects, we have always tried hard to avoid optional dependencies. There are a number of reasons behind it, and as I have recently encountered some of the downsides of optional dependencies firsthand, I summarized my thoughts in this article. Read more →


  • This post is hard to write, both in the emotional sense but also in the “I would have written a shorter letter, but I didn’t have the time” sense. Hence, please assume the best of intentions when reading it—it is not my intention to make anyone feel bad about their contributions, but rather to provide some insight into why my frustration level ultimately exceeded the threshold. Read more →


  • Recently, a user reported that they don’t see window titles in i3 when running i3 on a Raspberry Pi with Debian. I copied the latest Raspberry Pi Debian image onto an SD card, booted it, and was able to reproduce the issue. Read more →

  • Motivation I have recently been looking into speeding up Debian Code Search. As a quick reminder, search engines answer queries by consulting an inverted index: a map from term to documents containing that term (called a “posting list”). See the Debian Code Search Bachelor Thesis (PDF) for a lot more details. Read more →


  • My use-case is seemingly very simple: I want to run a webserver in a Docker container, and it should be reachable via IPv4 and IPv6. The webserver has multiple virtual hosts, some of which just serve static files, while others proxy to, say, a Grafana instance, which is also running in a Docker container. Read more →


  • Our computer association NoName e.V. organizes a retro computing event called RGB2R every year, located in Heidelberg, Germany. This year’s version is called RGB2Rv18. This article describes the network setup I created for this year’s event. If you haven’t read it, the article about last year’s RGB2Rv17 network is also available. Read more →


  • This is taken care of: Gunnar Wolf has taken on maintenance of the Raspberry Pi image. Thank you! (Cross-posting this message I sent to pkg-raspi-maintainers for broader visibility.) I started building Raspberry Pi images because I thought there should be an easy, official way to install Debian on the Raspberry Pi. Read more →


  • Update (2021) Update (2021): After Dell didn’t update their Linux version for a while, I concluded it would be best to just install a standard Ubuntu Linux. All required drivers are upstreamed, and I never needed the Dell tools that come with their version. Read more →


  • This post is part of a series of posts about the kinX project. Latency measurement End-to-end latency consists of 3 parts: input latency (keyboard) processing latency (computer) output latency (monitor) During the development of the kinX keyboard controller, I realized that measuring processing latency was quite simple with my hardware: I could start a timer when sending a key press HID report to the computer and measure the elapsed time when I would receive a reply from the computer. Read more →

  • This post is part of a series of posts about the kinX project. Motivation The Kinesis Advantage comes with a built-in 2-port USB hub. That hub uses a proprietary connector to interface with a PS/2 keyboard controller, so it cannot be used with a USB keyboard controller. Read more →

  • This post is part of a series of posts about the kinX project. Background 10 years ago I got a Kinesis Advantage keyboard. I wrote about the experience of learning to touch-type using the ergonomic NEO layout in my (German) post “Neo-Layout auf einer Kinesis-Tastatur”. Read more →

  • The kinX project is described in a series of blog posts: While not strictly a part of this series, “Hacking your own Kinesis keyboard controller” describes the first controller I built in 2013 (maybe interesting for context). The first post introduces the kinX, a keyboard controller with merely 0. Read more →


  • I have heard a number of times that sbuild is too hard to get started with, and hence people don’t use it. To reduce hurdles from using/contributing to Debian, I wanted to make sbuild easier to set up. sbuild ≥ 0. Read more →

  • motivation To run the tests of my i3 Go package, I use the following command: go test -v To run the tests of my i3 Go package on a different architecture, the only thing I should need to change is to declare the architecture by setting GOARCH=arm64: Read more →

  • dput-ng ≥ 1.16 contains two usability changes which make uploading easier: When no arguments are specified, dput-ng auto-selects the most recent .changes file (with confirmation). Instead of erroring out when detecting an unsigned .changes file, debsign(1) is invoked to sign the . Read more →


  • If you want to follow along at home, clone this repository: % GBP_CONF_FILES=:debian/gbp.conf gbp clone Now, in the golang-github-go-macaron-inject directory, I’m aware of three ways to obtain an orig tarball (please correct me if there are more): Run gbp buildpackage, creating an orig tarball from git (upstream/0. Read more →

  • Background A short summary of my backup strategy is: I run daily backups to my NAS. In order to recover from risks like my apartment burning down or my belongings being stolen, I like to keep one copy of my data off-site, updated less frequently. Read more →

  • I previously wrote about my Debian buster preview image for the Raspberry Pi 3. Now, I’m publishing an updated version, containing the following changes: WiFi works out of the box. Use e.g. ip link set dev wlan0 up, and iwlist wlan0 scan. Read more →


  • Background Ever since I first used a MacBook Pro with Retina display back in 2013, I’ve been madly in love with hi-DPI displays. I had seen the device before, and marvelled at brilliant font quality with which scientific papers would be rendered. Read more →


  • Our computer association NoName e.V. organizes a retro computing event called RGB2R every year, located in Heidelberg, Germany. This year’s version is called RGB2Rv17. This article describes the network setup I created for this year’s event. The intention is not so much to provide a fully working setup (even though the setup did work fine for us as-is), but rather inspire to you to create your own network, based vaguely on what’s provided here. Read more →


  • In the pkg-go team, we are currently discussing which workflows we should standardize on. One of the considerations is what goes into the “upstream” Git branch of our repositories: should it track the upstream Git repository, or should it contain orig tarball imports? Read more →

  • Because I found it frustratingly hard to make GitLab and dex talk to each other, this article walks you through what I did step-by-step. Let’s establish some terminology: dex is our OpenID Connect (OIDC) “Provider (OP)” in other words: the component which verifies usernames and passwords. Read more →

  • UNIX distributions used to come with the system source code in /usr/src. This is a concept which fascinates me: if you want to change something in any part of your system, just make your change in the corresponding directory, recomile, reinstall, and you can immediately see your changes in action. Read more →

  • I previously wrote about my Debian stretch preview image for the Raspberry Pi 3. Now, I’m publishing an updated version, containing the following changes: SSH host keys are generated on first boot. Old kernel versions are now removed from /boot/firmware when purged. Read more →


  • I strive to respect everybody’s personal preferences, so I usually steer clear of debates about which is the best programming language, text editor or operating system. However, recently I was asked a couple of times why I like and use a lot of Go, so here is a coherent article to fill in the blanks of my ad-hoc in-person ramblings :-). Read more →


  • Modern desktop environments like GNOME offer UI for this, but if you’re using a more bare-bones window manager, you’re on your own. This article outlines how to get a login page opened in your browser when you’re behind a portal. Read more →


  • A while ago, I got myself a bunch of HomeMatic home automation gear (valve drives, temperature and humidity sensors, power switches). The gear itself works reasonably well, but I found the management software painfully lacking. Hence, I re-implemented my own management software. Read more →

  • On 2017-01-18, I announced that had been modernized. Let me catch you up on a few things which happened in the meantime: Debian experimental was added to I was surprised to learn that adding experimental only required 52MB of disk usage. Read more →


  • The Turris Omnia is an open source (an OpenWrt fork) open hardware internet router created and supported by, the registry for the Czech Republic. It’s the successor to their Project Turris, but with better specs. I was made aware of the Turris Omnia while it was being crowd-funded on Indiegogo and decided to support the cause. Read more →

  • I previously wrote about my Debian stretch preview image for the Raspberry Pi 3. Now, I’m publishing an updated version, containing the following changes: A new version of the upstream firmware makes the Ethernet MAC address persist across reboots. Read more →


  • NOTE that the documented assumptions about fsync skipping are incorrect in the code below. Prefer using the renameio package. Writing files is simple, but correctly writing files atomically in a performant way might not be as trivial as one might think. Read more →

  • For, I looked at loading webfonts. I considered the following scenarios: # local? cached? Network Expected Observed 1 Yes / / perfect render perfect render 2 No Yes / perfect render perfect render 3 No No Fast FOUT FOIT 4 No No Slow FOUT some FOUT, some FOIT Scenario #1 and #2 are easy: the font is available, so if we inline the CSS into the HTML page, the browser should be able to render the page perfectly on the first try. Read more →

  • has been modernized! We have just launched a major update to our manpage repository. What used to be served via a CGI script is now a statically generated website, and therefore blazingly fast. While we were at it, we have restructured the paths so that we can serve all manpages, even those whose name conflicts with other binary packages (e. Read more →


  • Personally, I find the packaging tools which are available in Debian far too complex. To better understand the options we have, I created a diagram of tools which are frequently used, only covering the build step (i.e. no post-build quality assurance checks or packaging-time helpers): When I was first introduced to Debian packaging, people recommended I use pbuilder. Read more →

  • The last couple of days, I worked on getting Debian to run on the Raspberry Pi 3. Thanks to the work of many talented people, the Linux kernel in version 4.8 is _almost_ ready to run on the Raspberry Pi 3. Read more →

  • tl;dr: I upgraded from a qnap TS-119P to a custom HTPC-like network storage solution. This article outlines what my original reasoning was for the qnap TS-119P, what I learnt, and with what solution precisely I replaced the qnap. A little over two years ago, I gave a (German) presentation about my network storage setup (see video or slides). Read more →


  • A while ago, it occurred to me that querying Debian Code Search seemed slow, which surprised me because I previously spent quite some effort on making it faster, see Debian Code Search Instant and Taming the latency tail for the most recent substantial architecture overhaul and related optimizations. Read more →


  • Recently, I was wondering why I was pushing off accepting contributions in Debian for longer than in other projects. It occurred to me that the effort to accept a contribution in Debian is way higher than in other FOSS projects. Read more →


  • Whereas most of the networks I regularly use (home, work, hackerspace, events, …) provide native IPv6 connectivity, sometimes I’m in a legacy-only network, e.g. when tethering via my phone on some mobile providers. By far the most common IPv6-only service I use these days is SSH to my computer(s) at home. Read more →


  • Context For the last 3 years I’ve used the hardware described in my 2012 article. In order to drive a hi-dpi display, I needed to install an nVidia graphics card, since only the nVidia hardware/software supported multi-tile displays requiring MST (Multiple Stream Transport) such as the Dell UP2414Q. Read more →


  • Like many other open source projects, the i3 window manager is using Travis CI for continuous integration (CI). In our specific case, we not only verify that every pull request compiles and the test suite still passes, but we also ensure the code is auto-formatted using clang-format, does not contain detectable spelling errors and does not accidentally use C functions like sprintf() without error checking. Read more →


  • Up until recently, I used to use kanla, a simple alerting program that I wrote 4 years ago. Back then, delivering alerts via XMPP (Jabber) to mobile devices like Android smartphones seemed like the best course of action. About a year ago, I’ve started using Prometheus for collecting monitoring data and alerting based on that data. Read more →


  • Note: the postings on this site are my own and do not necessarily represent the postings, strategies or opinions of my employer. Background For the last couple of years, was running on a dedicated server I rented. I partitioned that server into multiple virtual machines using KVM, and one of these VMs contained the faq. Read more →

  • While modern desktop environments that are used on Linux set up the locale with support for UTF-8, users who prefer not to run a desktop environment or users who use SSH to work on remote computers occasionally face trouble setting up their locale correctly. Read more →

  • I’m happily using Prometheus for monitoring and alerting since about a year. Regardless of the monitoring system, one problem that I was uncertain of how to solve it in a good way used to be meta-monitoring: if you have a monitoring system, how do you know that the monitoring system itself is running? Read more →


  • When uploading a new library package which changes its API/behavior in a subtle way, typically you will only hear about the downstream breakage after you’ve uploaded the new library package (via bug reports telling you that your package FTBFS, fails to build from source). Read more →


  • Recently, the pkg-go team has been quite busy, uploading dozens of Go library packages in order to be able to package gcsfuse (a user-space file system for interacting with Google Cloud Storage) and InfluxDB (an open-source distributed time series database). Read more →

  • I have been using a Dell UP2414Q monitor for a little over a year now. The Dell UP2414Q was the first commercially available display that qualified as what Apple calls a Retina Display, meaning it has such a high resolution that you cannot see the individual pixels in normal viewing distance. Read more →


  • It’s been a couple of weeks since I’ve launched Debian Code Search Instant, so people have had the chance to use it for a while and that gives me plenty of data points to look at :-). For every query, I log the search term itself as well as the duration the query took to execute. Read more →

  • For the last few months, I have been working on a new version of Debian Code Search, and today it’s going live! I call it Debian Code Search Instant, for multiple reasons, see below. A lot faster The new Debian Code Search is still hosted by Rackspace (thank you! Read more →


  • I’ve been working on a significant rearchitecture of Debian Code Search during the last few months (off and on, as time permits). This will enable us to provide a couple of features that have been often requested but were not possible with the old architecture, such as grouping search results by Debian source package (#1 feature request) and performing queries that take a longer time than the default execution limit of a minute (#2 feature request). Read more →


  • Ever since I moved to Zürich, I wanted to get a fiber internet connection. I’ve lived with a 6 Mbps DSL line at my parent’s place for about 10 years, so I was looking forward to a lot more Megabits and a lot less latency. Read more →


  • I run multiple web services, mostly related to All of them use PostgreSQL as their database, so the data that is stored in that PostgreSQL database is pretty important to me and the users of these services. Since a while now, I have been thinking about storing that data in a more reliable way. Read more →

  • I immediately ordered a fiber7 internet connection once it became available, and I’ve been connected since a few weeks. They offer a 1 Gbps symmetrical fiber connection, with native (static) IPv6 and no traffic limit — for 65 CHF per month (about 54 €). Read more →


  • In my flat, I have a printed QR code which contains the WiFi credentials. You can scan it with your Smartphone (provided you have a barcode scanner installed) and then connect to the WiFi network. For notebook computers, this doesn’t work so well. Read more →


  • I’ve been travelling a bit to foreign countries lately and noticed that all of the places I’ve stayed at (low to medium price range hotels) have one thing in common: their WiFi is absolutely horrible. Even worse, it seems like the more money you pay, the more horrible the WiFi gets. Read more →


  • Thomas Habets has blogged about using your TPM (Trusted Platform Module) for SSH authentication a few weeks ago. We worked together to get his package simple-tpm-pk11 into Debian, and it has just arrived in unstable :-). Using simple-tpm-pk11, you can let your TPM generate a key, which you then can use for SSH authentication. Read more →


  • The original firmware for the qnap TS-119P2+ supports Wake-On-LAN, meaning you can power down your Network Storage (NAS) when you don’t need it and you can easily wake it up by sending it a magic ethernet packet. This is an awesome feature when you are not at home all the time (say, you have a day job) and want to conserve some power without giving up on convenience. Read more →

  • In my last article, I wrote about my experiences with my new SuperMicro server, and a big part of that article was about the Intelligent Platform Management Interface (IPMI) which is included in the SuperMicro X9SCL-F mainboard I bought. In that previous article, I already suggested that the code quality of the IPMI firmware is questionable at best, and this article is in part proof and in part mitigation :-). Read more →

  • As explained in more detail in my my last blog post, Rackspace is providing hosting for Debian Code Search. For those of you who don’t know, Rackspace is a cloud company that provides (among other services) a public cloud based on OpenStack. Read more →

  • Recently, together with a couple friends of mine, we rented a rack in a datacenter. Not just any datacenter, but that’s a story for another time ;-). Each participant can hang up a 1U server in that rack, so I needed to build one. Read more →


  • For a number of weeks now, I have been forwarding traffic being sent to to an instance of Debian Code Search running at Rackspace’s public cloud offering. I feel like it’s overdue to announce how they have been supporting the project and what that means. Read more →

  • CoreOS is a minimal operating system based on Linux, systemd and Docker. In this post I describe how I see CoreOS/Docker and how my first steps with it went. What is Docker and why is it a good idea? Finding the right words to describe all of this to someone who has not worked with any of it is hard, but let me try. Read more →


  • Richi’s post about the pdiff-by-default agony resonates with me a lot. On EVERY Debian installation I have ever done in the last few years, without any exceptions, I have turned off pdiffs. Even on all the oddball cases (Raspberry Pi, account on a remote machine, …) where I don’t run my install-configs script, I have ended up turning off pdiffs eventually, because it is just so insanely slow on modern internet connections. Read more →

  • Thanks to Axel Beckert ([email protected]), 12 people interested in Debian met last Tuesday in Zürich and celebrated the start of our monthly Debian meetup. New faces are always very welcome. If you live in Zürich, or if you’re visiting, please feel free to attend our meetup — no registration necessary. Read more →


  • Ideally, an internet connection would be perfectly stable, but since that is not always the case, a watchdog is the next best thing. In case you ever use your home machine(s) remotely, the use case should be clear: make sure the internet connection at home still works so that you can log in when travelling. Read more →


  • A couple of times now, I’ve had problems with my server. The earliest one was when a hard disk drive died. Then memory went bad and had to be replaced. Another example was when a power supply of another machine died and took out the whole rack. Read more →


  • During DebConf, Asheesh presented the idea of using git instead of the file system for storing the contents of Debian Code Search. The hope was that it would lead to fewer disk seeks and less data due to gits delta-encoding. Read more →

  • I gave two talks at this year’s DebConf, both about systemd. A huge thanks goes to the video team for their excellent work and putting up the videos that quickly! Find the recordings and slides here: Making your package work with systemd (508 MiB ogv) (Slides (≈ 230 KiB PDF)) systemd myths debunked! Read more →

  • I will arrive at DebConf 2013 on Sunday afternoon. In case you are interested in Go (the programming language), systemd, i3 or getting your package reviewed, please talk to me! :-) Looking forward to meeting many of you in real life. Read more →


  • Good news, everyone! dh-golang is now in Debian unstable. With this debhelper addon, packaging software written in Go is very simple. Have a look at the example/ directory in dh-golang to see how it is meant to be used. Read more →

  • For some rather advanced isolation and automation work I am currently doing with Debian Code Search I needed to modify the ExecStart= line of a systemd service file programmatically. The recommended interface for programmatically querying service file properties is systemctl show -p ExecStart foo. Read more →

  • Posting this on behalf of a friend of mine in the hope that you can help: I’ve failed several times now to find a suitable WLAN USB dongle that works out of the box on Debian testing. Often manufacturers change the chipsets without changing the version numbers, the product pages are incomplete or even state wrong information. Read more →

  • As of today, systemd 204 is available in Debian experimental. If you are interested in systemd, please install it and report any issues to the BTS — merely reporting them on IRC is not sufficient, we need to have them in the BTS so we don’t forget about them. Read more →

  • Sometimes, people show up in our IRC channel #debian-systemd or on our mailing list [email protected] and ask how they can help. This blog post answers that question. First of all, whatever you end up doing, please coordinate with us first! Read more →

  • The German computer magazine c't has covered Debsources in its most recent edition (c't 16/2013). In that article, they also state: Debsources integriert auch eine Code-Suche, allerdings werden lediglich die Quellen des Unstable-Zweigs durchsucht, der zirka ein Drittel des Quellcodes von Debsources ausmacht. Read more →

  • This blog post is the third of a series of posts dealing with the results of the Debian systemd survey. I intend to give a presentation at DebConf 2013, too, so you could either read my posts, or watch the talk, or both :-). Read more →

  • This blog post is the second of a series of posts dealing with the results of the Debian systemd survey. I intend to give a presentation at DebConf 2013, too, so you could either read my posts, or watch the talk, or both :-). Read more →



  • A week ago, we started the Debian systemd survey. The goal was to figure out a few trends and answer the following two questions: Do our subjective impressions from the discussions on debian-devel reflect the general sentiment about systemd? Read more →

  • Whenever I want to work on some package, I usually clone its git repository, make my changes, then push and upload the Debian package. I don’t keep those repositories around in order to avoid cruft and also to have a 100% clean, up-to-date setup whenever I start working on something. Read more →

  • In the past, we have had multiple heated discussions involving systemd. We (the pkg-systemd-maintainers team) would like to better understand why some people dislike systemd. Therefore, we have created a survey, which you can find at Please only submit your feedback to the survey and not this thread, we are not particularly interested in yet another systemd discussion at this point. Read more →

  • My Galaxy Nexus was getting really slow over the last few weeks, meaning simple things like going to the homescreen took multiple seconds. Turns out that the problem is the SD card filesystem / controller getting really slow once the SD card gets nearly filled up. Read more →


  • Recently, I was wondering how many Debian Developers are actively working on RC bugs in some way or another in the time period of the last release (squeeze) to now (shortly? before wheezy). I therefore grabbed the mailing list archives of [email protected] from gmane, used only those messages whose X-Debian-PR-Message header matches an RC bug (list retrieved from UDD) and then attributed the message counts to the appropriate Debian Developer. Read more →

  • Update: The kinT kinesis keyboard controller from 2020 is an updated version, with several improvements over the older 2013 design! The Kinesis Advantage Contoured is an ergonomic keyboard which I have been using for four years. Read more →

  • OpenWrt is a nice FOSS Linux firmware (primarily) for wireless routers, which I use for many years. Even though I never experienced a problem with my routers, I’d like to be prepared for hardware failures, software failures and getting my router compromised. Read more →

  • About 4 years ago, I started tracking my configuration files with git. The advantages of storing configuration files in some repository are numerous: You can destroy your configuration/computer and easily revert to a known good state. You can easily distribute and update the same set of configfiles across multiple machines (especially virtual machines or other test setups). Read more →

  • I just released, a FOSS tool with which you can (automatically or manually) upload photos to your WebDAV server. Read more →

  • Previously, my workflow regarding replying to bugreports outside my own packages was very uncomfortable: I first downloaded the mbox archive from the BTS, then imported that in claws-mail, hit reply all, remove [email protected], add [email protected], then send the email. Therefore, I decided to hack up a little elisp function to automate this process for notmuch. Read more →


  • RC bugs

    Tags: debian

    I recently worked on the following RC bugs: #696532 — isdnlog: /etc/isdn/isdnlog.isdnctrl0 is easily destroyed in squeeze to wheezy upgrade Pinged the maintainer about uploading a fix to unstable, too (was only fixed in experimental). #693208 — clang: unable to link trivial test program on armhf Read more →

  • RC bugs

    Tags: debian

    I recently worked on the following RC bugs: #696187 — squid-cgi: CVE-2012-5643: cachemgr.cgi denial of service NMUed the upstream patches after nearly 2 months of no maintainer reaction on the bugreport. #684645 — sendmail-bin: Order of fcntl and dotlock in maillock Read more →


  • When writing data to a file descriptor (file, socket, …) in C, it is recommended to use a loop to write the entire buffer and keep track of how many bytes write() could actually write to the file descriptor. This is how to write data to a file in C in a naive way: #include <stdlib. Read more →

  • I just uploaded wit-2.10a to Debian experimental (it has to pass the NEW queue first, though). WIT (Wiimms ISO Tools) is a set of command-line tools to manipulate Wii and GameCube ISO images and WBFS containers. It is useful (for me) to store backups of my Wii games on a USB hard disk drive. Read more →


  • RC bugs

    Tags: debian

    I recently worked on the following RC bugs: #669513 — gnat-4.4: FTBFS: unsatisfiable build-dependency Closed, no longer reproducible with the version in testing. #694810 — plib: CVE-2012-4552 Uploaded an NMU to unstable. #684130 — digikam: crash when starts Read more →

  • RC bugs

    Tags: debian

    I recently worked on the following RC bugs: #689769 — ample: ships a /var/run/ample folder: Policy 9.3.2 Uploaded a patched version to DELAYED/5. #694810 — plib: CVE-2012-4552 Provided a patch, asked for instructions from the security team. Read more →

  • RC bugs

    Tags: debian

    I recently worked on the following RC bugs: #694976 — sigit: doesn't work on amd64 Filed a removal request. #694796 — kscd: crash with no optical drive Downgraded severity, it’s not RC. #672926 — oidentd: Missing dependency on net-tools Read more →

  • RC bugs

    Tags: debian

    I recently worked on the following RC bugs: #694892 — tvtime: package installation creates /root/.tvtime Sent a patch which fixes the issue. Needs a second pair of eyes plus possibly an NMU. #684604 — eclipse-rcp: eclipse 3. Read more →

  • Dear Lazyweb, I recently investigated #694670 - kscd does not play any CD — essentially, at least on my machine, phonon-based applications such as kscd won’t play Audio CDs when your CD drive is not called /dev/cdrom, but e. Read more →


  • I recently started using DRBD (Distributed Replicated Block Device) on Debian Linux to have a setup in which there are two servers: One server which hosts some virtual machines, and its hot-standby companion which holds exactly the same data and can take over if the hardware of the master server dies. Read more →

  • RC bugs

    Tags: debian

    I recently worked on the following RC bugs: #677861 — lftp: FTBFS[kfreebsd-i386]: error: conflicting declaration 'typedef __int32_t gl_intptr_t' I provided some analysis. By rebuilding lftp’s configure script with recent autotools, this should be fixed. #676229 — gnustep-make: should depend on a chosen version of gobjc, not just " Read more →

  • KVM stands for Kernel-based Virtual Machine and is my preferred way of virtualizing a Linux system, in combination with libvirt. This article documents a few hints on what my current best practice setup is. For the host and most VMs, I use Debian wheezy (which is not yet released as of writing this article). Read more →

  • This short article describes the most important productivity enhancement for working in a shell (zsh) in the last few months for me: A shortcut for completing the most recent files. In my daily work, it often happens that I save an email attachment (or download a file from the internet) and then do something with it in a shell, like unpacking it, applying a patch to source code, and so on. Read more →

  • NeXTstation (1024x768 px) Auf der diesjährigen RGB2R brachte Ralf eine NeXTstation mit. Die Maschine hat eine 20 MHz Motorola 68k CPU, 20 MB Arbeitsspeicher und eine leicht defekte 400 MB SCSI-Festplatte. Das installierte Betriebssystem NeXTSTEP ließ sich leider nicht richtig hochfahren, beim Starten kamen einige Fehlermeldungen bezüglich nicht-auflösbarer Services und das Loginfenster erschien nicht. Read more →

  • After launching Debian Code Search, sometimes its index-backend processes would crash when presented with some class of queries. The queries itself did not show an interesting pattern, and in fact, it wasn’t their fault. Looking at the system’s journal, I noticed that the processes were crashing with SIGILL, the signal when an illegal instruction for the CPU is encountered: Nov 07 00:11:33 codesearch index-backend[10517]: SIGILL: illegal instruction Nov 07 00:11:33 codesearch index-backend[10517]: PC=0x42558d Interestingly, on my workstation, I could not reproduce this issue. Read more →

  • I hereby announce a new Debian project: Debian Code Search. Debian Code Search is a search engine for program source code within Debian. It allows you to search all ≈ 17000 source packages, containing 130 GiB of FLOSS source code (including Debian packaging) with regular expressions. Read more →


  • At our house, we have a single, high-quality laser color printer in the basement (along with the other computer equipment) which everybody uses, as opposed to a crappy cheap printer at everyone’s workplace. This is a great setup in our situation, since nobody prints a lot individually, so the slight discomfort of having to go to the basement is a welcome trade-off for not having to maintain cheap printers. Read more →

  • RC bugs

    Tags: debian

    I recently worked on the following RC bugs: #691125 — ejabberd: package installation creates /root/.erlang.cookie I tracked down the cause of this and provided a patch. Now I also know how piuparts works in detail :-). #691180 — connman: Connman won't run due to missing libxtables. Read more →

  • mbiebl has recently uploaded systemd 44-5 to Debian unstable. If you are already using systemd, you should definitely upgrade to this version, it fixes a lot of little annoyances. This is especially important if you are using libvirt >= 0. Read more →

  • I recently worked on the following systemd-related issues: #686115 - CanReload is set to yes unconditionally for legacy SysV services I wrote a patch which uses a heuristic to figure out whether a SysV init script supports the reload option or not. Read more →

  • About two years ago, I rented a dedicated server to host a few virtual machines. It’s been running fine ever since, but at some point, faster and more energy-efficient hardware is available for the same price. I decided to rent a new server mostly for the additional RAM, which is very valuable when hosting virtual machines — other resources such as CPU, disk and network are usually not a bottleneck. Read more →

  • Hello Planet Debian. This post serves as a confirmation that my feed/blog setup is working. I am a DD since a few months and will blog occasionally about my Debian activities. Read more →


  • In July, I was looking for a new android phone. My HTC Desire Z was feeling pretty slow and after seeing how well Android 4.1 (Jelly Bean) performed on my friend’s devices, I decided to upgrade. I’ve read a few reviews back then and it seemed like the Samsung Galaxy S3 was the best phone at the time: Its hardware is stunning, it’s faster than every other phone and it looks okay. Read more →

  • There is official documentation on the Go C language interface (or cgo in golang terminology), but the things it covers are relatively simple. I have used cgo recently in a real-world project and I want to share my experiences in this short article, that is, how to use types properly (avoiding the void* equivalent unsafe. Read more →

  • On an up-to-date Debian testing system, lvremove fails sporadically when removing snapshots. The cause is not yet fully debugged, see Debian bug 549691. The symptom looks like this: $ lvremove -f plana/snap_web Unable to deactivate open plana-domu--web-real (253:3) Failed to resume domu-web. Read more →

  • One of the nice things about systemd is that you can change the Nice level and IO scheduling class/priority in a very simple way. I have recently configured bacula-fd on my server in such a way that it will not put a lot of load on the machine: To override the service unit, in this case bacula-fd. Read more →

  • Our local computer club NoName e.V. has about 20 members. Since we introduced membership fees to pay for server and domain costs a while ago, we have to deal with bank transfers. To automate confirmation and reminder mails about the payment situation of each member, it’d be helpful to have a unique identifier for each member so that we can build a script which can reliable match a bank transfer to a member (without using fuzzy matching on the name). Read more →

  • Hallo! Wie jedes Jahr findet diesen November das Retro-Spiele-Event RGB2R des NoName e.V. statt. Der Plan: Jeder holt seine alten Spiele-Konsolen und -Computer jeglicher Art aus dem Schrank und verbringt in netter Gesellschaft viele Stunden Spaß mit den Spielen, die damals unsere Kindheit prägten. Read more →


  • Because it is insanely hard to google this, here is how to disable auto-reload of PDF files within Evince (>= v3.4.0): gsettings set org.gnome.Evince auto-reload false Read more →

  • First of all, I know that there already are a gazillion of websites out there which praise nginx and other caching HTTP wonders. This one is a tad different in that it contains a few nifty tricks (tl;dr: force caching, selective GET parameter caching, iptables traffic redirection, monitoring nginx with collectd)… The situation There is this website, and it’s using apache with mod_php, running some rather badly engineered code which we cannot get rid of just now. Read more →


  • Da die Entwicklung von sup (und dessen Nachfolger heliotrope/turnsole) absolut untragbar für ein OSS-Projekt ist, bin ich vor einer Weile auf den „Konkurrent“ notmuch umgestiegen. Da notmuch nur ein Mail-Index ohne Frontend ist, hat man die Wahl zwischen verschiedenen Frontends. Read more →

  • Vor einer Weile habe ich eine alte APC Smart UPS 700 bekommen, für die ich neue Batterien gekauft und eingebaut habe. Nun bin ich dazu gekommen, zu testen, ob die UPS läuft. Wichtig zu erwähnen ist dabei, dass die APCs keine normale Belegung der Seriellen Schnittstelle benutzen. Read more →


  • the finished box (1024x720 px) It’s been roughly three years since I upgraded my last workstation and I felt it was time for a new computer. With a new CPU, a fast SSD and lots of RAM, compilation times should be much faster and annoying waiting for my computer to do stuff should be much reduced. Read more →


  • Gestern kriegte ich bescheid gesagt, dass ein Server, den ich mitbetreue, kaputt gegangen sei. Die Hardware wurde vom Hoster getauscht, allerdings wurden auch neue Platten eingebaut. Der Hoster bot an, zusätzlich die alte Platte anzuschließen, um die Daten zu kopieren. Read more →

  • Soeben habe ich i3 v4.2 released. Die Release notes enthalten alle Neuerungen. Read more →


  • Vor einiger Zeit habe ich einen Artikel veröffentlicht, wie man eine DVD zum Wiederherstellen des Systems in einen definierten Zustand erstellt. Dieser Artikel ist ein Folgeartikel, der nahezu dasselbe macht, aber auf Basis einer USB-Festplatte statt einer DVD, und mit einer neueren Version von grml Linux. Read more →


  • Soeben habe ich i3 v4.1.1 released. Die Release notes enthalten alle Neuerungen. Read more →

  • Perl-Module von CPAN installieren ist eigentlich ganz einfach, aber viele Leute wissen nicht, was sie mit der entsprechenden Fehlermeldung anfangen sollen. Daher habe ich online gestellt, eine Seite, welche erklärt, wie man ein Perl-Modul von CPAN installiert (einmal mit und einmal ohne Root-Rechte). Read more →

  • I wrote a few Perl scripts for various things during the last few years. Many of them run on machines which I don't maintain on my own (other people have root access, too) and some even run on machines which I don't have access to at all. Read more →

  • I use OpenVPN relatively often, for example to get reliable IPv6-connectivity in places which don’t have IPv6 yet (miredo works well most of the time, but an own VPN is more stable). One of the things which I previously understood only a little bit was the MTU (Maximum Transfer Unit). Read more →


  • systemd ist lange überfällig, denn die Schmerzen beim Überführen eines quick'n'dirty shell scripts in einen ordentlich wartbaren Dienst sind mit sysvinit einfach viel zu groß. Vor ziemlich langer Zeit habe ich den RaumZeitMPD geschrieben, einen IRC-Bot, welcher bei ! Read more →

  • Soeben habe ich i3 v4.1 released. Die Release notes enthalten alle Neuerungen. Read more →

  • Aufmerksame Leser meiner Website wissen, dass ich normalerweise mit bacula Daten sichere. Es gibt allerdings ein Szenario, für das meine bacula-Installation nicht sonderlich gut geeignet ist: Die Sicherung meines Servers. Ich habe seit einiger Zeit bei einen Dedicated Server und bin sehr zufrieden mit dem Angebot und dem Service. Read more →


  • Überblick und Verfügbarkeit Wasser, Strom und Heizung sind bei Apartments in Irland oftmals standardmäßig im Mietpreis enthalten, weiterhin sind Wohnungen normalerweise möbliert. Das einzige, was also offensichtlich fehlt, ist Breitband-Internet :-). Es gibt einige ISPs, die in Dublin verschiedenste Arten von Internetzugang anbieten. Read more →

  • Nachdem meine SSD nun schon mehrfach für manche Blöcke Input/Output-Errors gegeben hat (nach einem power cycle war sie aber wieder benutzbar), ist sie gestern so ausgefallen, dass ich mich nicht mehr an meinem System anmelden konnte und das Symptom auch über einen Neustart bestehen blieb. Read more →


  • Gelegentlich möchte man ein Video aufnehmen. Doch welches Programm verwendet man dafür? Wie erreicht man die beste Qualität bei kleinster Dateigröße? Diese kurze Anleitung erklärt, wie man mit GStreamer und FFmpeg eine Video-Aufnahme von einer USB-Webcam (die VF0610 Live! Cam Socialize HD in meinem Fall) aufzeichnet und enkodiert. Read more →

  • In meinem Artikel über Festplattenverschlüsselung unter Linux habe ich unter anderem erklärt, wie man eine komplette Partition verschlüsselt. Nun möchte ich ergänzen, wie man eine externe Festplatte automatisch mountet, sobald man sie einsteckt. Voraussetzung: Einzelne Partition ist verschlüsselt Ich gehe davon aus, dass auf der Festplatte eine Partition Table existiert mit genau einer Partition, welche via dmcrypt+LUKS verschlüsselt wurde. Read more →



  • Soeben habe ich i3 v4.0 released. Die Release notes enthalten alle Neuerungen. Read more →

  • Unter Linux kann man einige Treiber-Einstellungen über sysfs, ein vom Kernel bereitgestelltes Pseudo-Dateisystem, erledigen. Auf meinem ThinkPad kann ich darüber beispielsweise einstellen, wie schnell mein Trackpoint reagieren soll oder ab welchem Füllstand mein Akku geladen werden soll (damit er nicht gleich wieder einen Ladezyklus anfängt, wenn ich ihn 5 Minuten nicht am Strom habe). Read more →

  • Mein ThinkPad X200 hat das Problem, dass die Lüftersteuerung nicht gut funktioniert. Soll heißen: Er dreht gefühlt häufiger hoch als er eigentlich müsste. Insbesondere wenn sich das Notebook in der Dockingstation befindet, bemerke ich diesen Effekt – der Lüfter ist dann dauerhaft an. Read more →

  • The most useful GCC options and extensions Read more →

  • Advanced Memory Allocation Read more →

  • This post is in english / Dieser Artikel ist auf Englisch, weil er nicht nur für die deutschen Pidgin-Nutzer hilfreich sein soll. Recently, Google+ and Facebook introduced video chatting. While video chatting is not a new technology at all, I noticed that I never really tried it except for a few experiments. Read more →


  • Um via adb mit seinem Android-Gerät sprechen zu können, habe ich bisher den adb-Server immer als root starten müssen. Daran konnte auch die udev-Regel von nichts ändern. Da mir das nun aber auf die Nerven ging, habe ich das Problem debugged. Read more →


  • This post is in english / Dieser Artikel ist auf Englisch, da er sich an die internationale Entwicklergemeinschaft richtet. While the i3 window manager has a lot of testcases, I never got around to actually doing code coverage tests. Now I took the time to get it to work and want to describe the process so that others don’t do the same mistakes I did. Read more →


  • i3status ist ein Programm, welches Systeminformationen wie die aktuelle IP-Adresse, freien Speicherplatz und auch die Uhrzeit ausgibt. Merovius bemerkte vor einer Weile den Bug, dass die Uhrzeit unter bestimmten Umständen doppelt ausgegeben wird. Das lag daran, dass die Uhrzeit zuletzt ausgegeben wurde (also nachdem alle anderen Systeminformationen ermittelt wurden). Read more →


  • fetchmail unterstützt zwar prinzipiell die IDLE-Funktion von IMAP um bei neuen Nachrichten sofort benachrichtigt zu werden (im Vergleich zu periodischem Nachfragen), aber nicht wenn man mehrere Accounts konfiguriert hat. Abhilfe schafft ein kleines Script und n einzelne fetchmail-Prozesse: #! Read more →

  • Google Maps in Android: Den besten und umfangreichsten Artikel, den ich zu dem Thema bisher gelesen habe, findet man unter Read more →

  • i3-tree-pr2 released. Der tree-branch ist die Entwicklungsversion, die im nächsten major release münden wird. Naturgemäß ist sie noch nicht so rockstable wie die aktuelle stabile Version 3.ε-bf2, aber dennoch stabil genug als dass ich sie empfehlen kann :). Read more →

  • Um in 'git diff' immer einen Pager zu kriegen (also nicht einfach die Ausgabe ins Terminal geklatscht, was mir zu unübersichtlich ist), kann man folgende Einstellung setzen: $ git config --global pager.diff 'LESS=RS less -c' Getestet mit git 1. Read more →


  • Mein Tageswerk: Perl6 kann jetzt IPv6: rakudo-commit (github) parrot-commit (github) Danke an Moritz und leto für das Mergen meiner Patches! Read more →

  • bacula-restore trotz fehlender Datenbankeinträge (weil ich mir das sonst immer wieder zusammenreimen muss): # Keine weiteren Jobs laufen lassen, sonst werden die neuen Einträge gleich # wieder gelöscht $ /etc/init.d/bacula-dir stop # Volumes foo-1 bis foo-3 scannen, Einträge aktualisieren (-m) und tatsächlich # in der Datenbank speichern (-s), dabei Fortschritt anzeigen (-S) $ bscan -P bacula -S -s -m -c /etc/bacula/bacula-sd. Read more →

  • JessyInk ist ein Plugin für Inkscape, mit dem man Präsentationen im SVG-Dateiformat erstellen kann. Die fertige Präsentation öffnet man dann mit einem Browser (bei mir gabs in Firefox in einer Situation ein Rendering-Problem, mit Chromium lief bisher alles problemlos) und durch ein in der SVG-Datei enthaltenes JavaScript kann man dann Pfeiltasten/Maustasten benutzen etc. Read more →

  • In grml 2010.12 ist i3 enthalten :). Read more →


  • In letzter Zeit bin ich von Dancer, einem Web-Framework für Perl, immer mehr angetan. Man kann damit in ziemlich kurzer Zeit in klarer Syntax Webanwendungen schreiben. Es muss sich dabei nicht um eine Webanwendung im klassischen Sinne handeln, also eine über den Browser benutzbaren. Read more →

  • Erkenntnis des Tages: POSIX-Semaphor-Funktionen wie sem_init, sem_wait, … funktionieren nicht, wenn der sem_t nicht aligned ist (also sich beispielsweise in einer struct mit __attribute__((packed)) befindet). Read more →


  • Aus einer Spam-Mail: Hello Dear My Name is beauty i saw your contact at site, ( and i love your profile on it, i think we can know each other and build a relationship from there… (Auf ftp. Read more →

  • Beim Importieren von Kontakten aus einer VCF-Datei (generiert aus dem Android 2.1-Adressbuch) werden trotz en_DE Locale die Telefonnummern mit Bindestrichen formatiert. Read more →

  • Social Pizza-Bestellung war schon lange eine Funktionalität, die wir auf dem Chaostreff haben wollten. Das bedeutet, dass jeder am eigenen Rechner sich seine Wunschpizza klicken kann und wir dann genau eine Bestellung abschicken. Aufgrund mangelnder Computerfähigkeiten der Jungs bei (bzw. Read more →

  • Die Performance und der Speicherbedarf von CouchDB hängen durch die B+-Tree-Datenstruktur maßgeblich an den IDs der Dokumente: The impact of document IDs on performance of CouchDB Read more →


  • Android ist IPv6-enabled standardmäßig. Was man braucht, um das zu verifizieren und eventuell die Einstellungen zu ändern, ist Busybox: (von diesem Blogpost) Die Installation ging bei mir einfacher als im mitgelieferten Script: x200 $ unzip x200 $ adb push busybox /sdcard/busybox x200 $ adb shell $ su # mount -o remount,rw /dev/block/mtdblock6 /system # mv /sdcard/busybox /system/xbin/busybox # cd /system/xbin # chmod 755 busybox # . Read more →

  • Android hat mich ;-). Ich möchte kurz darauf eingehen, warum ich gewechselt habe. Mein altes (erstes) Smartphone, das Nokia N900, habe ich mir gekauft, weil ich damit viele Aufgaben erledigen kann, für die ich sonst verschiedene Geräte brauchte: SIP-Telefon, MP3-Player (man kann sich auch in der Bahn mal einen Film anschauen, das funktioniert ziemlich gut), Telefon, mobiler IRC- und Webclient, Navigationssystem. Read more →


  • Da CouchDBs SSL-Unterstützung bei der Replikation derzeit nutzlos ist (für das Szenario, dass ich in einem fremden Netz unterwegs bin und der Netzbetreiber Man-in-the-middle spielt um meine Daten abzugreifen), musste ich mir eine Alternative überlegen. Folgende Punkte gilt es zu beachten: Die Kommunikation darf nicht unverschlüsselt das Telefon verlassen und darf erst in einem vertrauenswürdigen Netz entschlüsselt werden. Read more →

  • Und nun die Patches von heute, Montag, dem 2010-09-06: Korrekte Validierung der Zertifikate bei Replikation via SSL sicherstellen (Erlang kommt standardmäßig mit der Einstellung, dass der Fehler unknown_ca einfach ignoriert wird) Replikation kommt bei Transfer-Encoding: Chunked (Standard bei CouchDB) und SSL ins Stocken (wir sind uns noch nicht ganz sicher, was das eigentliche Problem ist) Replikation via IPv6 ermöglichen (überarbeitet, da der alte Patch bindv6only=0 voraussetzte, was mir nicht bewusst war) Erklärung wie man Replikation hinter einem SSL-Proxy (z. Read more →

  • Wenn man DBus versteht (was am Anfang nicht einfach ist, insbesondere wenn man nur mal kurz reinschauen will) und insbesondere die DBus-API der Programmiersprache der Wahl versteht, ist das ja ganz in Ordnung. Scheint schnell zu sein und man kann damit recht stabil IPC bauen (auch wenn ich Teile der schwarzen Magie in dem ganzen Konstrukt, was heutzutage einen Desktop auszumachen scheint, noch nicht verstanden habe). Read more →


  • Nachdem Rakudo Star am Donnerstag herausgekommen ist, habe ich hier mal schnell ein paar Zeilen zusammengehackt, um ein Dokument aus CouchDB zu holen. LWP::Simple und JSON::Tiny kommen bei Rakudo direkt mit: #!/usr/bin/env perl6 use v6; use JSON::Tiny; use LWP::Simple; my $dburl = 'http://localhost:5984/foo'; my $json = LWP::Simple. Read more →

  • In C++ gibt es Closures! Zwar erst mit C++0x (wofür man g++ 4.5 braucht), aber immerhin. Damit wird das Erstellen asynchroner APIs endlich annehmbar (in diesem Fall der CouchDB-Teil einer Qt-Anwendung, wegen Qt muss ich überhaupt erst C++ nutzen). Zum Vergleich mal die API vorher: void MainWindow::clickedTask() { TodoButton *btn = (TodoButton*)sender(); /* Get the document from CouchDB */ QNetworkReply *nreply = db-get_document(btn-ID()); connect(nreply, SIGNAL(finished()), this, SLOT(recv_entry_edit())); } void MainWindow::recv_entry_edit() { QNetworkReply *reply = (QNetworkReply*)sender(); QByteArray answer = reply-readAll(); QJson::Parser p; bool ok; QVariant var = p. Read more →

  • Nachdem ich letztens ein WebDAV-plugin für Maemo gehackt habe, wollte ich das nun hochladen. Dazu registriert man sich bei und stellt dann einen Request auf Upload-Rechte für das extras-devel-Repository. Nachdem man diese Rechte bekommt lädt man seinen SSH-Public-Key hoch und kann danach Pakete in den Autobuilder laden. Read more →

  • Auf meiner Asterisk-Telefonanlage läuft natürlich auch ein Anrufbeantworter. Damit ich diesen nicht immer nur abfragen kann, wenn ich gerade einen E-Mail-Client vor mir habe (sup unterstützt leider noch keine verteilten Setups), sondern auch, wenn ich gerade nur mein Telefon greifbar habe, habe ich meine Konfiguration etwas geändert. Read more →

  • Auf dem N900 kann man Fotos/Videos via flickr und anderen Diensten direkt ins Netz stellen. Gestern fiel mir auf, dass flickr bei kostenlosen Accounts allerdings ein Limit von 2 Videos pro Monat hat, was ein bisschen stört, wenn man gerade das dritte Video hochladen möchte. Read more →

  • Wer i3lock nutzt ist herzlich dazu eingeladen, den xcb-Branch von i3lock auszuprobieren. Der Code darin wurde komplett auf xcb portiert und ist dadurch zum einen hübscher und geringfügig schneller, zum anderen wurden einige Probleme behoben. Eine kurze Übersicht: Man kann Bilddateien im PNG-Format statt im XPM-Format laden Beim Suspend-to-RAM verschwindet das Bild nicht mehr gelegentlich Popups überlagern nun nicht mehr das i3lock-Fenster (sondern i3lock bleibt permanent im Vordergrund) Für diejenigen, die nicht fließend git sprechen: $ git clone git://code. Read more →

  • Bloat, überall! -rw-r--r-- 1 michael staff 7946 _____________ steuer.07 -rw-r--r-- 1 michael staff 36718 _____________ steuer.08 -rw-r--r-- 1 michael staff 72673 _____________ steuer.elfo (Einkommenssteuererklärung generiert mit ElsterFormular von 2007, 2008 und 2009) Read more →


  • Da Xen wohl auch in Zukunft nicht in den Linux-Kernel aufgenommen wird und stattdessen KVM bereits verfügbar ist, habe ich meinen Server von Xen auf KVM migriert. Da die Migration ziemlich stressfrei lief (wenn man weiß, wo man drehen muss), möchte ich hier kurz den Verlauf schildern. Read more →

  • Soeben wurde i3 v3.ε-bf1 veröffentlicht. Dieses Release enthält nur Bugfixes und gilt als stabil. Ein Upgrade wird allen Nutzern von v3.ε empfohlen. Die Release Notes enthalten alle Änderungen. Read more →

  • Meine erste grafische Maemo-Anwendung ist fertig: (damit kann man eine moodlamp steuern). Read more →


  • Da ich mich häufig dabei erwische, im aktuellen Verzeichnis nach dem letzten Coredump zu suchen um ihn inklusive zugehörigem Programm in den Debugger zu laden, habe ich diese Aufgabe in ein Script ausgelagert. Die folgenden Zeilen Perl suchen den letzten Coredump (dazu muss das Coredump-Pattern mit sysctl -w kernel. Read more →

  • Im RaumZeitLabor tauchte letztens eine WatchGuard Firebox X500 (Modellnummer R6264S) auf, die von ihrem Besitzer auf den Müll geworfen wurde. Für uns ist die Kiste allerdings durchaus noch zu gebrauchen: In ihr steckt ein größtenteils aus Standard-x86-Hardware bestehendes System mit Serieller Konsole, 6 Ethernet-Ports, 256 MB SDRAM und einem Celeron 1,2 GHz. Read more →

  • Die Folien und der Beispielcode zu meinem Vortrag „Portieren von C-Programmen auf IPv6” (gehalten auf dem 2. IPv6-Kongress vor zwei Tagen) sind nun online. Read more →

  • Folgendes ist valider C-Code (ausprobieren mit gcc foo.c): main(){int B[ 0 : ;( 8) ;} Hat noch jemand Ideen für Smilies? Read more →

  • …und hier ist der Grund, wieso alle qt-Programme in der falschen Sprache angezeigt werden: Die Klasse QLocale macht das system-locale (welches die meisten Programme an QTranslator verfüttern) an LC_NUMERIC (!) fest. Normalerweise ist dafür LC_MESSAGES zuständig. Hier ist der passende Bugreport, der übrigens seit 2007-11-12 offen ist… Read more →

  • Ein hübscher Vergleich zwischen LaTeX und Microsoft Word (was die typografischen Details angeht): Read more →

  • Ich habe gerade auf Arbeit einen 9 Jahre alten Fehler in einem Treiber für eine unserer Karten behoben. Das Symptom war, dass manchmal das Auslesen des Buffers auf der Karte einfach hing. Als ich mir das Problem auf meiner Testmaschine anschaute, hing der Transfer nicht nur, sondern gelegentlich startete auch die Maschine neu (manchmal mit Kernel Panic). Read more →


  • Ein cooles Feature von CouchDB sind Change Notifications: Anstatt wiederholt zu pullen, ob neue Daten da sind, kann man sich von CouchDB benachrichtigen lassen („continuous polling”). Besonders in Kombination mit Replikation ist das eine nette Sache und integriert sich nahtlos in ein event-basiertes Programm (man kann natürlich auch blockierend effizient pollen). Read more →

  • Heute in „Warum ich die GNU autotools nicht mag”: Warum unter IRIX PHP5 nicht gelinkt werden kann. Die autotools sind eigentlich dazu da, Besonderheiten bestimmter Systeme zu ermitteln, damit man als Programmierer beispielsweise andere Funktionen nutzen kann, wenn auf einem System eine bestimmte Funktion fehlt. Read more →

  • Es gibt ja nicht häufig Debian-Bugs, bei denen ein Facepalm angebracht wäre, aber das hier ist einer: Im Schriftpaket ttf-linux-libertine gab es Bug #523186, bei dem es um ein mit dieser Schriftart geht. Die „Lösung” war dann, die Schriftart umzubenennen, und zwar zu „Linux Libertine O” (das ist der OpenFont-Name, nicht der TrueType-Name! Read more →

  • Wenn vmware-modconfig sich mit der Meldung „gcc and kernel headers must be installed” beschwert, obwohl beides installiert ist, könnte das daran liegen, dass unter Linux 2.6.33 die Dateien utsrelease.h und autoconf.h nicht mehr in include/linux/, sondern in autogenerated/ landen. Folgender Workaround schafft abhilfe, bis VMware eine funktionierende Variante ausliefert: cd /lib/modules/$(uname -r)/build/include/linux ln -s . Read more →


  • i3 v3.ε wurde soeben released. Ein Upgrade wird allen Nutzern empfohlen, Version 3.ε ist stabil. Es wurden einige Aufräumarbeiten durchgeführt (XRandR statt Xinerama, der neue Parser/Lexer ist nun Standard, Debugoutput ist regulierbar, man kann die Workspace-Leiste abschalten und eine externe nutzen, die IPC-Schnittstelle wurde deutlich erweitert), wodurch einige Bugs nicht mehr auftreten. Read more →

  • Wer sich über die Tastenkombination Shift+Insert zum Pasten ärgert (auf manchen Tastaturen schwer erreichbar), kann folgendermaßen eine beliebige Taste mit der mittleren Maustaste (also effektiv Pasten) belegen: xmodmap -e 'keycode 115 = Pointer_Button2' xkbset m xkbset exp =m Die xkbset-Aufrufe aktivieren den Mousekeys-Modus und sind nötig, damit das spezielle Keysym Pointer_Button2 zur Verfügung steht. Read more →

  • In X11 gibt es oftmals die Situation, dass es eine alte API gibt, die aufgrund einer neuen Extension obsolet wurde. So beispielsweise auch bei Mauszeigern: Es gibt eine spezielle Schriftart namens „cursor”, welche Masken enthält, die Vordergrund und Hintergrund der jeweiligen Cursor bestimmen (siehe http://www. Read more →

  • Auf meinem Server nutze ich Xen zur Virtualisierung, netterweise kann das Logical Volumes (LVM) für die Festplatten der Gastsysteme nutzen. Damit ich nun nicht auf jeder virtuellen Maschine bacula konfigurieren muss und beim Wiederherstellen des Backups direkt alle Gastsysteme auf einen Schlag restauriert habe, habe ich mir vor einiger Zeit ein Script geschrieben, welches einen Snapshot der LVs mountet, der dann gesichert wird: http://code. Read more →

  • Während ich herausfand, dass in Ruby File.stat(fn).mtime erst ab Version 1.9 auch Nanosekunden beinhaltet, bin ich auf folgendes großartige Python-Problem gestoßen: Read more →

  • Da ich ein neues System Board in meinem Notebook habe (damit auch eine neue MAC-Adresse) und der Änderungsantrag noch nicht durch war, hatte ich heute am Institut nur IPv6-Connectivity zum Internet (das geht über einen separaten Tunnel). Jetzt hätte man sich zwar ein VPN bauen können, aber lustiger ist es doch, mal auszuprobieren, wieviel schon funktioniert. Read more →


  • Da mir Volker freundlicherweise seine brandneue Solid State Disk ausgeliehen hat um damit ein paar Tests durchzuführen, möchte ich meine Erfahrungen hier festhalten. Solid State Disks sind „Festplatten”, die nicht magnetisch funktionieren, sondern stattdessen Flash-Speicher verwenden. Durch die starke Nachfrage nach Flash-Speicher in den letzten Jahren (beispielsweise durch USB-Sticks) wurden die Chips mit immer mehr Kapazität zu immer günstigeren Preisen verfügbar, was sie schließlich auch für Endkunden als Festplattenersatz in einigen Szenarien attraktiv macht (nichtsdestotrotz sprechen wir immernoch von ca. Read more →


  • Wenn man einen Server mit Xen virtualisiert, steht man beim Einrichten des Backups vor der Frage, wie man das Backup organisiert. Hier gibt es (mindestens) die folgenden Ansätze: Man betrachtet jede virtuelle Instanz als eigenständig und installiert dort jeweils die Backupsoftware. Read more →


  • Einer der Punkte, die eine Linux-Distribution wirklich auszeichnet, ist die Methode der Konfiguration. Insbesondere interessant ist zurzeit die Konfiguration der Netzwerk- und WLAN-Karten, besonders wenn es sich um ein Notebook handelt. Bei Debian gibt es hierfür die Datei /etc/network/interfaces, die mehr kann, als man auf den ersten Blick vermuten würde. Read more →


  • In manchen Netzen braucht man vpnc, um ins Internet zu kommen. Wenn man nun einem solchen Netz nicht vertraut, kann man auch ein OpenVPN durch den vpnc fahren. Wenn man das nun auch gleich noch mehreren Leuten zur Verfügung stellen möchte, ohne dass jeder diese Konfiguration machen muss, dann ist ein mit OpenWrt betriebener Router eigentlich ideal. Read more →

  • Da Fonic (o2) in manchen Gegenden kein Netz ausgebaut hat (so auch bei meinen Verwandten), kaufte ich mir kürzlich eine T-Mobile xtra web'n'walk DayFlat. Der Tarif ist ganz ähnlich zu dem Fonic-Tarif: Für 4,95 € pro Kalendertag (!) kann man das T-Mobile-Netz verwenden. Read more →

  • Schon vor einiger Zeit wollte ich auf das Neo-Layout, das besonders auf die deutsche Sprache und Ergonomie ausgerichtet ist, umsteigen. Bei den bisherigen Versuchen scheiterte ich jedoch meist nach kurzer Zeit. Daher möchte ich hier kurz beschreiben, was mir letztendlich geholfen hat, nun flüssig neo zu schreiben: Nicht zwischen den verschiedenen Layouts hin- und herwechseln. Read more →


  • Als Tipp gemeint: Bitte interpretiere diesen Artikel nicht zu kritisch, und bitte kritisiere die Fehler deiner Mitmenschen nur wenn es konstruktiv ankommen kann; nie als Angriff. Heute habe ich endlich die Zeit gefunden, alle Korrekturen, die ich meinen lieben Mitmenschen charmant entgegenbringe, wenn ich als „Leichtsinnsfehler”-Polizist auf Streife gehe, zusammenzufassen. Read more →

  • sprich: wie du (mit mir) effizient kommunizieren kannst. Ich denke, dass man mit vielen Dingen effizienter arbeiten kann, als es viele Leute denken und tun. Dazu gehört zum Beispiel das Arbeiten mit E-Mails. Die folgenden Grundsätze habe ich mir im Laufe der Zeit überlegt und bin der Meinung, dass sie allgemeingültig für jeden sind. Read more →


  • Ich möchte kurz erläutern, warum ich das x200 dem MacBook vorziehe, welche Hardware es beinhaltet und wie man sie unter Linux zum Laufen bringt. Warum kein MacBook mehr Wie in meinem Artikel „MacBook: erste Erfahrungen” beschrieben war ich anfangs sehr angetan von dem Gerät. Read more →

  • Da alle Tunnelanbieter, die ich bisher probierte (SixXS,, entweder langsam waren oder gelegentlich nicht erreichbar (das ist echt nervig, wenn man die Websites, die man am häufigsten besucht, via IPv6 erreicht), habe ich mir meinen eigenen IPv6-Tunnel gebaut. Read more →


  • Vor kurzem hatte ich das Problem, dass ich einer domU zu wenig Festplattenspeicher zugewiesen habe. Hinterher ist man immer schlauer, und merkt dann auch, dass man mit 256 MB swap nicht weit kommt, wenn man die domU auslastet ;-). Blöderweise hat NetBSD (noch) kein funktionierendes Programm um das Dateisystem live zu verkleinern/vergrößern, sonst wäre die Änderung relativ kurz und schmerzlos. Read more →


  • Hier eine kurze Info, dass der WBT300 GPS problemlos unter Linux funktioniert. Im Inneren steckt ein Antaris 4, der auch als u-blox 0625 bekannt ist. Erhältlich ist der WBT300 zum Beispiel bei für 69 €. USB Nach dem Anstecken via USB meldet sich der Empfänger in dmesg: usb 6-1: new full speed USB device using uhci_hcd and address 2 usb 6-1: configuration #1 chosen from 1 choice cdc_acm 6-1:1. Read more →

  • .bigImage { padding-bottom: 5% } .bigImage h3 { margin: 0; border: 2px solid black; text-align: center; background-color: #047bc2; color: #fff; } .bigImage p { margin: 0; border-top: 0; border-bottom: 0; border-left: 2px solid black; border-right: 2px solid black; padding-top: 1%; padding-bottom: 1% } Zum Enkodieren meiner aufgenommenen DVB-Streams benutze ich in der Regel den MPEG4-Codec (XviD) mit mencoder. Read more →

  • Dieser Artikel schildert lediglich meine persönliche Erfahrung und Meinung! Dieser Artikel soll nicht dazu dienen, Beratung oder Empfehlungen auszusprechen. Die hier angebotenen Informationen sind keine Grundlage für etwaige Entscheide. Update: Mittlerweile besitze ich ein ThinkPad x200 und ziehe dies dem MacBook vor. Read more →

  • Dieser Artikel schildert lediglich meine persönliche Erfahrung und Meinung! Dieser Artikel soll nicht dazu dienen, Beratung oder Empfehlungen auszusprechen. Die hier angebotenen Informationen sind keine Grundlage für etwaige Entscheide. Ich war schon direkt nach der Vorstellung des Mac Mini von seinem Konzept begeistert. Read more →

  • Da das Einrichten von Bacula mit TLS einige kleine Hürden beinhaltet, möchte ich hier eine Anleitung geben. Ich werde nur auf Zertifikate, die durch CACert ausgestellt wurden, eingehen. Wir benötigen auf dem Director, dem Storage Daemon und dem zu sichernden Client jeweils ein Zertifikat, bestehend aus Private Key und Certificate. Read more →

  • …oder: Wir basteln uns aus der Logitech B69 Wheel Mouse Optical eine Silent-Maus ohne Klickgeräusch Für ca. 12 Euro gibt’s eine simple PS/2-USB-Maus von Logitech. Dieses Modell besitze ich schon, seit es vor einigen Jahren noch 60 DM kostete, und es funktioniert wunderbar. Read more →


  • Da ein Server bei einem Anbieter mit einem neueren Kernel als 2.6.18-4 nicht bootet und ich nicht nachschauen konnte, woran das lag (der Anbieter bietet keinen Remote-Zugriff via KVM-over-IP an), der Server mit dem alten Kernel aber instabil lief, habe ich mich für ein anderes Betriebssystem entscheiden müssen. Read more →

  • Als Aufgabe (im NoName e.V.-Wiki) war gestellt, dass man ein Programm schreiben soll, welches den Wochentag (Montag, Dienstag, Mittwoch, Donnerstag, Freitag, Samstag, Sonntag) inklusive Zeilenumbruch auf stdout ausgibt. Read more →


  • Da Linux-Vserver auf zwei meiner Rechner aus irgendwelchen Gründen instabil lief (Freeze bei Last, beide Male auf AMD64, aktuelle Version mit IPv6), ließ ich mich zu einem Versuch mit NetBSD statt Linux und Xen statt Linux-Vserver als Virtualisierungslösung überreden ;-). Read more →


  • Linux/UNIX-kenntnisse erforderlich! (in den Bereichen Dateisystem, Konsole) Vorab: Ja, ich weiß, dass es schon genügend Anleitungen zu dem Thema gibt, aber ich möchte es sicherheitshalber noch mal mit allen Hürden, vor die ich gestellt wurde, aufschreiben. Read more →

  • Analog zu meinem Artikel mit den Startschwierigkeiten bei meinem letzten Rechner werde ich hier die „kleinen” Problemchen festhalten, mit denen ich bei meinem neuen Rechner zu tun hatte. Hardwarewahl Erstes Kriterium bei der Auswahl meiner Hardware war, dass sie möglichst leise sein soll. Read more →


  • In meinem Fileserver betreibe ich den 3WARE 9500S-4LP SATA-RAID-Controller mit Gentoo GNU/Linux. Auf dem neuen Mainboard, das etwas mehr Durchsatz ermöglicht und somit keinen Flaschenhals mehr darstellt, war die Auslastung während Backups allerdings deutlich zu hoch (load von 10-15, hauptsächlich IO-Wait). Read more →


  • Inhaltsverzeichnis Einleitung Update: Mehr Karten und Skalierungsprobleme Das Gehäuse (Yeong Yang W201) Installation Kernel kompilieren Grundeinstellungen Initrd erstellen Update: Neue initrd Bootloader installieren Nach dem Boot Script zum automatischen Mounten Encrypted swap Abschluss: Serveranwendungen installieren Als System habe ich mir für Gentoo Linux entschieden, da ich ohnehin vorhabe, die Serverprogramme selbst zu kompilieren um die nicht benötigten Features von vorneherein draußen zu lassen und etwas Geschwindigkeit herauszuholen. Read more →

  • CGI::Application::Dispatch (nachfolgend mit C:A:D abgekürzt) ist nicht gerade einsteigerfreundlich aufzusetzen. Leider existiert keine komplette Anleitung, sondern nur die perldoc-Dokumentation, die nicht auf alle Details eingeht, sondern lieber verschiedene Varianten durcheinanderwürfelt („There’s more than one way to do it”). Daher möchte ich hier kurz niederschreiben, wie man dieses Framework für Webanwendungen zum Laufen bekommt. Read more →

  • Wer gerne Musik hört und oftmals angerufen wird kennt sicherlich das Problem, dass man die Musik immer leiser macht oder ausschaltet und nach dem Gespräch wieder anschaltet. Einer der Gründe, wieso ich freie Telefonanlagen (wie zum Beispiel asterisk) so mag, ist, dass man dieses Problem nun lösen kann. Read more →


  • Wie alles begann Nachdem ich das Firewirekabel einer Digitalkamera aus meinem Macbook zog, zeigte dieses den sonst eher selten anzutreffenden „Greyscreen” – er war also abgestürzt. Klar, niemand ist fehlerfrei und gerade bei Hardware wird’s kritisch. Das sei dem MacBook also verziehen. Read more →

  • Mit Baculas hoher Flexibilität einher geht auch eine hohe Komplexität bei den Konfigurationsdateien. Letztendlich landet man aber, nachdem man sich mal damit befasst hat, bei einer Konfiguration, die für jeden Rechner weitestgehend gleich ist. Bei einigen Resourcen muss man sogar nur den Namen austauschen. Read more →


  • Für eines meiner Projekte wollte ich eine Restore-DVD erstellen, damit der Kunde mithilfe dieser DVD immer zu einem definierten (und funktionierenden) Ausgangszustand zurückkehren kann, falls mal etwas schiefläuft. Die Partition mit dem Betriebssystem und dem eigentlichen Programm wurde daher extra nur mit 10 GB bemessen, damit man sie möglichst einfach sichern kann. Read more →


  • Worum geht’s? Diesmal geht es um das Einrichten und Benutzen des Kommandozeilen-Mailclients mutt-ng (Weiterentwicklung von mutt). Als System kommt Linux zum Einsatz, prinzipiell sollte es jedoch auf allen unixoiden Systemen funktionieren, ich habe sogar mal von einer Portierung von mutt für Windows gehört… (das soll nicht heißen, dass Windows unixoid sei, im Gegenteil! Read more →


  • Als ich meinen neuen Rechner „A64” gekauft und zusammengebastelt habe, erwarteten mich im Laufe der Zeit so einige Probleme. Damit nicht jeder mit einer ähnlichen Zusammenstellung (könnt ihr euch bei „Meine PCs” ansehen, am wichtigsten ist wohl aber das Mainboard: ASUS A8N-SLI) die selben Schritte durchlaufen muss, habe ich mich entschlossen, die Probleme und deren Lösung niederzuschreiben. Read more →


  • Bacula ist eine Netzwerk-Backup-Software, die für mich das Mittel der Wahl ist um alle wichtigen Rechner zu sichern. Die wichtigen Funktionen für mich ist die Fähigkeit, Linux-, Mac OS X- und Windows-Rechner zu sichern, die gut konfigurierbaren FileSets, inkrementelle Backups, Benachrichtigung via Mail und gzip-Kompression. Read more →

  • Da ich an meiner Schule vier PCs mit Linux betreue, suchte ich vor kurzem nach einer Möglichkeit, einen Ordner auf allen PCs gleichermaßen freizugeben und diesen auf allen anderen PCs einzubinden. Ich entschied mich für Samba, weil eventuell auch Windows-PCs auf die Freigabe zugreifen sollen und NFS nicht auf Anhieb funktionieren wollte ;-). Read more →

  • Meine erste Spielkonsole war der Nintendo 64, der zu Kaufzeitpunkt eine tolle Grafik und viel Spielspaß bot. Bis zu Beginn dieses Jahres blieb dies meine einzige Spielkonsole. Die Playstation-Reihe war für mich immer nur ein nachgemachter N64, mit ein paar Knöpfen und Ego-Shootern mehr (letztere spielte ich lieber auf dem PC, da die Steuerung mit der Maus der eines PS- oder N64-Controller hoch überlegen war). Read more →

  • Eigentlich müsste der Titel dieses Artikels „Von VHS zu DVD” lauten, aber da die Anleitung auch auf alle anderen Eingangsmedien zutreffend ist, die man über Firewire/DV in den Rechner einlesen kann, habe ich das etwas verallgemeinert. Die Aufgabe klingt zunächst recht simpel: Ein VHS-Band auf DVD digitalisieren. Read more →

  • Da die Installation der Programme zum Verwalten einer Auerswald-Telefonanlage (COMpact 4410 USB in meinem Fall) dank eigenem Auerswald-Kerneltreiber, nicht verfügbarem Debian-Modul und Javas problematischer Lizenz nicht ganz so trivial ist, werde ich hier eine kurze Anleitung geben. Kernel-Quelltext installieren Benutzer, die einen eigenen Kernel verwenden, können diesen Schritt überspringen. Read more →

  • Worum geht's? Wir werden ein System via PXE installieren. Das ist nett, wenn man zum Beispiel ein System hat, das nicht von CD oder sonstigen Medien booten kann, wie es mir mit einem Fujitsu Siemens Laptop passiert ist... Wir brauchen: Ein Debian-system, mit dem eine Netzwerkverbindung hergestellt werden kann Die Debian-woody Installations-CD (in meinem Fall hat's mit woody 3. Read more →

  • Linux/UNIX-kenntnisse erforderlich! (in den Bereichen dpkg, apt-get und gpg) Worum geht’s? Ein eigenes Debian-Repository ist nützlich, wenn man privat Pakete verteilen möchte – zum Beispiel an den Freundeskreis oder in der Firma um die Installation zu erleichtern. Read more →

  • Worum geht’s? Oft habe ich Filme in verschiedensten Formaten (AVI, MPEG, DV, QuickTime), die ich gerne möglichst einfach vorführen möchte. Dazu ist meines Erachtens eine (Video-)DVD sehr geeignet. Eine Video-DVD unterscheidet sich von einer normalen DVD, indem sie kein Menü hat und direkt startet – wie bei einem Video, oder einer (S)VCD eben. Read more →

  • Worum geht’s? Da die meisten PDAs nur begrenzten Speicher haben (in meinem Fall eine 512 MB-SD-Karte) und außerdem ohnehin weniger Pixel darstellen können, als PCs, lohnt es sich, vorhandene Videos zu konvertieren. Wir werden dies mithilfe von mencoder durchühren, der für alle gängigen Betriebssysteme verfügbar ist. Read more →

  • Dieser Artikel schildert lediglich meine persönliche Erfahrung und Meinung! Die hier aufgeführten Kritikpunkte sollen nicht zur Rufschädigung der Kritisierten führen. Trotz der Existenz vieler ähnlicher Geschichten möchte ich meine Erfahrungen beim Suchen eines neuen DSL- und VoIP-Anbieters hier niederschreiben und hoffe, dass es den einen oder anderen vor einer Fehlentscheidung schützt oder dazu führt, einer meiner Empfehlungen nachzukommen. Read more →

  • Linux/UNIX-kenntnisse erforderlich! (in den Bereichen ssh, Dateisystem, vi) Einleitung Der Linksys WRT54(G(S)) ist ein sehr beliebter Router, was auf die Verwendung von Linux als Firmware zurückzuführen ist. Durch einen Bug im Webinterface der Originalfirmware gelang es Hackern, alternative Firmwares aufzuspielen (den Sourcecode musste Linksys herausrücken, da Linux unter der GPLv2 steht, sodass man sich selbst ein Firmware-Image erstellen kann). Read more →

  • Einleitung Ich denke, dass die meisten PC-Benutzer Microsoft Powerpoint kennen. Man könnte behaupten, dass es sich mittlerweile in Schulen als Standard für Präsentationen eingebürgert hat. Daher wird man wohl auch bei einer Powerpoint-Präsentation eher Hilfe bekommen, als wenn man andere Software nutzt. Read more →

  • Einleitung Wer kennt es nicht, das Problem mit den Formaten an Computern? Jeder Hersteller hält das eigene Format für das Beste und einige legen überhaupt keinen Wert darauf, zu anderen kompatibel zu sein. Das fängt bei Textdokumenten an (Microsoft Word) und hört bei Multimediaformaten auf: für mich ist ein solches Format zum Beispiel Quicktime oder Realvideo: Bei beiden Formaten muss man anstelle eines Codecs direkt einen ganzen Player installieren, um sie ansehen zu können (vom Bearbeiten sehen wir momentan mal komplett ab). Read more →

  • Warum? Es gibt doch! Das normale Terminal(.app) funktioniert zwar recht schnell und sieht ganz gut aus (auch die Farben werden relativ gut dargestellt), doch es hat einige Probleme, was es für den Einsatz von SSH unbrauchbar macht. Eine Alternative muss also her. Read more →

  • In iDVD (ich beziehe mich hierbei auf Version 6) kann man ohne Double-Layer-fähiges Superdrive (so nennt sich der CD/DVD-Brenner im Mac) keine Double-Layer-DVDs erstellen, das Auswahlfeld dazu ist deaktiviert. Da iDVD aber die Möglichkeit bietet, die fertige DVD als ISO-Image zu sichern, könnte man sie doch an einem anderen Rechner brennen, somit würde die Option sehr sinnvoll sein. Read more →

  • Mit dem laufenden Xubuntu auf meinem Rechner war ich eigentlich recht zufrieden. Es gab keine Probleme (wenn man mal von der Installation absieht), außer, dass ich im Laufe der Zeit immer mehr Software selbst kompilieren musste. Sei es, weil sie einfach nicht in den offiziellen Repositories verfügbar waren, oder weil sie hoffnungslos veraltet waren (gerade beim Enkodieren bringen aktuelle Versionen viele Verbesserungen). Read more →

  • Vorgeplänkel Nach 5-jährigem Einsatz Windows XP hatte ich endgültig genug von dessen Macken wenn man mehr Hardware verwendet als der Durchschnittuser (oder als vor 5 Jahren eben utopisch war): Mehr als 1 GB RAM und mehr als 1 Bildschirm und schon fangen die Probleme an (nicht genügend Resourcen trotz 1,3 GB freiem RAM sage ich nur; hab’ gar keine Lust darüber noch mehr Worte zu verlieren :-/). Read more →

  • Vorwort Asterisk ist eine freie Open-Source-Telefonanlage, die eine sehr flexible Konfiguration und somit sehr viele Möglichkeiten bietet. Congster ist eine Tochterfirma der Telekom, die Internet-Flatrates/Zugänge und nun auch eine VoIP-Flatrate ins deutsche Festnetz anbietet. VoIP mit congster und asterisk Da congster auf der Website nur die Einrichtung der Internettelefonie auf den DSL-Routern der Speedport-Serie beschreibt und ich den ganzen Abend lang – letztendlich doch noch erfolgreich – damit verbrachte, asterisk zu konfigurieren, habe ich diese Schritte zu einem Artikel zusammengefasst, damit das lange Herumprobieren dem geneigten Benutzer erspart bleibt. Read more →

  • grml ist eine Linux-Live-CD für Nutzer, die lieber textbasierte Programme als grafische benutzen. Es basiert auf Debian GNU/Linux, ist aber deutlich aktueller. Meiner Meinung nach eignet sich grml am besten, wenn es darum geht, Rechner zu retten. Die Problematik Der zu rettende Rechner war ein Windows Small Business Server 2003. Read more →