GCode Simulator

Last year I’ve built a Mendel90 3D printer. Soon I’ve printed an adapter for the Proxxon Micromot 50, so that I could use the printer also for drilling and milling. Drilling was easy, and this weak I gave milling a try and experimented with milling PCBs created with …

mehr ...

Types of Memory Leaks

There exists more than one type of memory leaks with different effects and different way to detect them:

  • The typical memory leak: a piece of memory the gets allocated but is not freed anymore. This is the classic type of memory leak, for what C and C++ gets blamed for …
mehr ...

Restrict SSH to rsync

Today I created limited access for a buildbot user via SSH. The build machines need SSH access to upload built software to our file server. This works using rsync over SSH.

Whereas real users are using a Yubikey and not SSH key files anymore, the build machines still require SSH …

mehr ...

Download Wordpress Media Library

I’m currently in the process of migrating my old Wordpress blog to Pelican. In Wordpress it is easy to export all your posts as an XML file, but this does not export the referenced images. Also there is no export-all functionality, or FTP access or something like that. Downloading …

mehr ...

Setting KVM hostname per DHCP

The Problem

One problem with virtual machines is, when you clone one you also copy the complete configuration including hostname, static IPs, etc. To fix this you need to boot the cloned VM, edit the config and reboot it. The problem is that you will have at least temporary hostname …

mehr ...

VS2017 has got CMake support

We are using CMake already for years in my company to develop cross-platform software. CMake is really a great piece of software, but the user experience in Visual Studio was not great. It worked, but we often needed to explain how, and the typical Visual Studio user didn’t know …

mehr ...

Profiling Memory using GNU glibc tools

One of the tools I’m using already quite a while to profile memory usage is the built-in profiling functionality in glibc. For some reason this isn’t known very much, so I thought documenting it here makes sense, so I can simply point the people to this post, instead …

mehr ...



Latency Heatmaps

Latency heatmaps are a great way to visualize latencies which are hard to grasp from pure test data. Brendan Gregg (http://brendangregg.com) has written a great Perl script for generating such heatmaps as interactive SVG graphics. Also the flamegraphs are just awesome, but this is another story.

(Unfortunately SVGs …

mehr ...

Using Let’s encrypt for non-web servers

I think I don’t need to explain Let’s encrypt anymore. But what many people are struggling with is to use Let’s encrypt certificates for other services like SMTP, IMAP, IRC, etc.

Using certbot this is quiet easy (See https://certbot.eff.org for installation instructions).

When certbot …

mehr ...

Building MinGW Cross-Compilation Toolchain using CrossDev

This is mainly a note to myself. Maybe it’s useful for you too.

Actually building cross-compiler toolchains using crossdev is easy, but there are some pitfalls.

  • Remove any compiler environment variables before building, or the build will fail
  • For building MinGW toolchains the openmp useflag must not be set …
mehr ...



Vim Section Navigation

Normally #Vim uses easy to remember mnemonics like d2w (delete two words).
But when it comes to section navigation using ‘[[‘, ‘]]‘, ‘[]‘, and ‘][‘ it looks weired.
At least if you expect, that the opening and closing brackets are somehow matching opening
and closing braces.

(In C like languages function scopes {…} are sections …

mehr ...

Updated Wombat256 Colorscheme

After working a while with the Solarized colorscheme I came back to my wombat256 colorscheme, which is based on the original wombat for gvim from Lars H. Nielsen. Yesterday I improved it a little bit to fix some issues that I didn’t like:

  • Fix background color of NonText
  • Add …
mehr ...

CMake uninstall

CMake is a great tool when building cross-plattform software. It offers also install target so you can build and install software this way:

# create of-of-source build directory
mkdir bld
cd bld
# run CMake to generate a Makefile
ccmake ..
# Build in 4 cores
make -j 4
# Install into CMAKE_INSTALL_PREFIX (default is …
mehr ...

YCM FixIt Feature

YouCompleteMe (YCM) is really an awsome plugin. But today this blog post is not about completion support, it’s about YCM’s FixIt feature. If you are developer and have seen already compiler errors like this:

expected ';' at end of declaration

then I’m sure you also thought already: “If …

mehr ...

New Keystroke GUI with Vim support

I’ve created an updated version of my Keystroke-gui keylogger, which can be controlled by Vim Hooks. Keystroke is keylogger and visualizer which can be used for screencasts. This is especially useful when recording screencasts for Vim, because in Vim’s normal mode you cannot see what is typed, opposed …

mehr ...


Fixed redraw issue in vim-konsole

A while ago I’ve written the little vim-konsole plugin which makes Damian Conway’s vim-autoswap working with KDE’s Konsole application.

This caused some redraw issues in Vim when switching buffers, whichs is very annoying. I needed to press C-L to force a redraw everytime this issue occured.

I …

mehr ...

Using the system clipboard in Vim over an SSH session

One of the advantages of console Vim is, that you can use it in a console SSH session. This way you can work on a remote machine also on slow connections and don’t need laggy remote desktop software. This is even more important if the remote machine is a …

mehr ...


ESA is using CDE?

Hi,

in the last days I was constantly watching the news regarding the ESA mission Rosetta. Wasn’t this impressing? Landing on a comet so far away?

Anyway, when looking at the various images on the ESA website I’ve seen some screens which were running this CDE style software …

mehr ...


Base64 decoding inside Vim

Today I needed to decode a part of Base64 data which was embedded in an XML file. Normally I would store this fragment in an own file and use the base64 commandline tool for decoding. But today, due to my recent Vim activities, I was asking myself if I could …

mehr ...

Why Vim?

It would be reason enough that Vim is so powerful. With a few keystrokes you can achieve results where with GUI editors you need a lot of click and point and repetitive tasks which you can simply automate with Vim. With Vim I can leave my hands on the home …

mehr ...

mk script to simplify out-of-source builds

Almost all projects that I’m working on are using CMake today with out-of-source builds, which means it doesn’t pollute your source directory with generated files. Normally this means I create “bld” folder on the top-level project directory and run CMake to generate the Makefile like this:

cd /path …
mehr ...

My first Qt contribution

I’m proud to announce that my first contribution to Qt made it into Qt5.1. It is also mentioned on the “New Features in Qt 5.1” Wiki entry:

moc: New keyword in Q_PROPERTY: MEMBER let you bind a property to a class member without requiring to have a …

mehr ...