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 moreFrontend Engineering
Despite all its shortcomings as a programming language, JavaScript isn't a dirty word anymore. A decade ago, most self-respecting developers would refuse to even touch it, so it was left to web designers and junior developers who spiced up a few HTML pages with dispensable functionality. It's amazing how the …
read moreNormalizing Text in Java
Once in a while I see misguided attempts at normalizing text to make it suitable for use in URLs, file names, or other situations where a plain ASCII representation is desired. This can be tricky but with Java's excellent Unicode support and some background knowledge it is pretty easy to …
read moreWeb Service Security
As a developer, I've used lots of web services and also implemented plenty myself. I've seen services with IP-based security provided by network firewalls, services protected by standard HTTP Authentication, TLS with client and server certificates and custom mechanisms using API keys. Recently, OAuth 2.0 has been added to …
read morePreventing Cascading Failure
With the advent of reactive programming and frameworks like Netflix' Hystrix, classic stability patterns like Nygard's Circuit Breaker Pattern have entered mainstream software development. The circuit breaker is used inside your clients to cut the connection to a collaborating system (the server) once you notice the server doesn't answer in …
read moreTwo-Factor Authentication
With more and more of my personal data being hosted in the cloud, I felt that I needed to take security more seriously. Since passwords are the weakest link in most systems, I was looking for a better solution. While I'm able to generate sufficiently secure passwords, there are only …
read moreVim File Type Configuration
Vim has been my primary text editor for more than 15 years, but even though I use it on a daily basis, my configuration hasn't changed much over time. When I set up a new workstation, I stumbled upon the filetype plugin that I wasn't aware of. Using this plugin …
read moreKeeping 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 moreLiving in the Future with IPv6
Installing Oracle's JDK on Debian/Ubuntu
Due to licensing issues, Linux distributions don't ship Oracle Java packages anymore. In many cases, that doesn't matter since you can just use OpenJDK. But if you do need Oracle's JDK, Debian packages are a bit more convenient than handling tarballs because they integrate nicely with the rest of the …
read more