Other articles


  1. 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. Fortunately, this turned out to be quite easy to …

    read more
  2. 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 (except for a little speed-up). One option …

    read more
  3. 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 to be rewritten. In a well-designed site that's not an …

    read more
  4. Let's Use TLS

    I have followed the HTTP/2 specification process closely and I like how the new protocol improves web performance and makes old workarounds obsolete. One drawback of deploying HTTP/2 is that most browser vendors only implement it on top of TLS. Since I've seen a lot of broken TLS …

    read more
  5. Keeping Your Server Secure With Unattended Upgrades

    When operating servers, you're responsible for keeping them up to date with the latest security fixes. Ubuntu comes with a mechanism that installs updates automatically so you don't have to worry about it. Obviously, this is meant for personal servers operated by hobbyists where convenience is more important than availability …

    read more
  6. Simple Web Services With Bottle

    Recently I rediscovered Bottle, a Python-based micro framework for web applications. Bottle gives you full control over your URLs, has a simple built-in templating engine and a lot of other commonly used stuff. It takes you five minutes to get started and perhaps one hour with its great documentation to …

    read more
  7. Cannot fork

    From time to time, the virtual server I rented acted up. When logging into the system, I would get error messages indicating the server wasn't able to create any more processes: "cannot fork". This was weird because ps(1) showed only 20 processes, while the hard limit of the virtual …

    read more
  8. JBoss: Running Multiple Instances on One Host

    Occasionally, it's useful to run multiple JBoss instances on one machine. Like with any network server, this is difficult because only one application can bind to a port at any given time. You have to assign different sets of ports to each instance. JBoss consists of quite a few network …

    read more

social