Sometimes it's useful to check whether a local JAR file is available from Maven Central, for example when converting an old build system to Maven. In many old systems, JARs aren't named consistently and versioning info isn't available. Fortunately, Maven Central has a search interface that supports lookup by a …
read moreLet'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 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