Blog Archive

Click on a headline to read the teaser.

Automatic Dependency Tracking › Maintaining a Minimalistic Debian With Aptitude
After a brief appreciation letter to Debian, I lay out the problem of maintaining a minimal installation. Then I discuss how this issue can be solved using automatic dependency tracking in aptitude. Read More ›

Trouble With Generic Smart Pointer Factories › Two Strikes Against std::make_unique and std::make_shared
In this article, we examine whether the two generic factory functions mentioned in the title can be used as a full replacement for explicit allocation. Spoiler alert: there are troublesome corner cases. Read More ›

The better language tries to break free › The Eradication of the Raw Pointer in C++11
The necessity for using raw pointers in C++ has decreased continuously. In this post I list replacement constructs for raw pointers and discuss a concrete example of problematic pointers in interfaces. Read More ›

Seeking Tranquility in Busy Workplaces › Brownian Noise, An Acoustic Firewall
Some thoughts on busy versus quiet work environments and why Brownian noise is a good choice to get some mentally challenging work done in a work place. Read More ›

Under-Appreciated Tools › inotifywait: How to Get Instant Refresh for LaTeX and HTML
Here we discuss how to use inotifywait and other command line tools to get instant refresh functionality when editing latex or HTML generating markup texts. Read More ›

Let's talk science › Doctor At Last II: the Thesis and the Hat
In the second part in a series on the doctor title , I am reflecting on the thesis itself and its most valuable outcome: a paper hat Read More ›

Semantics, Implementation and Delimitation Against Pointers › Using std::optional<T> for Optional or Uninitialized Values in C++
boost::optional&lt;T&gt; has been out there for a while to solve the problem of uninitialized values. Now std::optional has been accepted into the C++17 standard. In this article, we have look at the problem to which optional is the solution and analyse semantics, usage, implementation of optional as well as the difference to pointers. Read More ›

Received My Degree Certificate › Doctor At Last: Title, Prestige and Ettiquette
What does a doctorate mean in Germany? How should it be displayed? Read More ›

Ergonomic Efficient Emacs › Use Big Data to Improve Your Emacs Experience
Determining frequently used Emacs commands with complex keybindings and assign short-cuts for improved efficiency. Read More ›

Reclaiming Privacy › Leaving Facebook
Facebook be gone. These are my parting thoughts about all things Facebook. For some reason we start it off with discussing how Facebook and Zuckerberg essentially do not pay taxes. Then of course privacy (what else?) and other aspects how Facebook is not good for your mental hygiene. Read More ›

Getting Shades of Gray is hard › How Grayify Pages in Your PDF
Sometimes you want to convert your PDF to gray-scale, other times you want everything gray except a few chosen pages. I discuss a small software package for the latter task. Read More ›

The Ultimate Top 10 Best › C++ April Fool's Pranks
Resource Acquisition is Initialization, is It Not? › Two Stage Initialization Considered Harmful
For producing any serious C++ code, you do not get around the RAII idiom. It is typically praised for many things. However, the merit of one-stage initialization of objects is not given the attention it deserves. Read More ›

Static Comments For Jekyll › Let There Be Static Comments
About aberer.io's new comment system and the struggle to attain it Read More ›

Coding Style › Indentation In Python
...it is not *that* bad Read More ›

Influence of Tripadvisor in Dubai › Is Tripadvisor Changing the Face of Tourism?
or: How I (Almost) Learned to Stop Worrying and Signed up at Tripadvisor Read More ›

Hidden Emacs Gems › Mark Rings in Emacs
Revisiting your previous edit actions. Read More ›

spam › What's Wrong in Academia(.edu)
A SCNR in response to science spam. Read More ›

finally › It's online
That's it. The first post. Read More ›