Author Archives: Matthias

The Curse of Convenience Methods

In the old days, many Java APIs were fairly low level and pretty generic. You often had to explicitly select a concrete implementation, provide lots of parameters, and generally needed to know how things worked. This has changed in recent years – modern … Continue reading

Posted in best practices, java | Tagged , , | Leave a comment

Empty InputStream with Spring MVC

The other day, I was trying to build a simple batch upload interface for a Java web application running Spring Boot with Spring MVC on Apache Tomcat. But when I tried reading the InputStream in my controller, it was always empty. … Continue reading

Posted in java | Tagged , , | Leave a comment

Checking Whether a Process Exists

On Linux/Unix systems, there’s occasionally the need to check whether a process is running. Some people use it for simple status checks or when building their own lifecycle scripts for startup and shutdown. I don’t think it’s a particularly good practice … Continue reading

Posted in linux | Tagged , | Leave a comment

Detecting Security Upgrades on Ubuntu

In my article on unattended upgrades I described how to set up an Ubuntu system to install security upgrades automatically. This is convenient for small setups, but in an enterprise environment you typically want to perform some QA before applying the … Continue reading

Posted in linux | Tagged , , , | Leave a comment

Detecting HTTP/2 Support

Thanks to Ubuntu 16.04 which includes a fairly recent Nginx version, I have now enabled HTTP/2 on my private server. Of course, I also wanted to verify whether my configuration change had any effect – after all, there is no visible change … Continue reading

Posted in python | Tagged , , | 1 Comment

Migrating to HTTPS

There’s more to migrating a complex site to HTTPS than just enabling TLS in your web server or reverse proxy. All links to embedded resources like style sheets, images, or scripts need to be served via HTTPS and potentially have … Continue reading

Posted in misc | Tagged , , | Leave a comment

Let’s Encrypt on WordPress.com

A couple of days ago, WordPress.com announced that they are now supporting TLS for custom domains (which is how this blog is hosted). There are many reasons for not hosting a blog yourself even if you have the necessary skills, like not … Continue reading

Posted in meta | Tagged , , | Leave a comment