Frontend 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 advent of AJAX changed things.

Continue reading

Advertisements
Posted in misc | Tagged , , | 1 Comment

Normalizing 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 implement. At least if your input uses the Latin alphabet – otherwise you’re out of luck.

Continue reading

Posted in java | Tagged , | 2 Comments

Web 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 the mix. Time for a little tour with links to the most important resources.

Continue reading

Posted in misc | Tagged , | Leave a comment

Preventing 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 a timely manner. This helps to prevent cascading failures – if your system is under high load, you open the circuit in the client to not launch a self-inflicted denial of service attack against your server.

Continue reading

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

Two-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 so many I can remember and I don’t trust cloud-based password managers.

Continue reading

Posted in misc | Tagged , | Leave a comment

Vim 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, you can import different vim configuration files depending on the type of the file you’re editing.

Continue reading

Posted in productivity | Tagged , | 1 Comment

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. In a professional environment, you would test new packages first because seemingly innocent changes may break complex applications.

Continue reading

Posted in linux | Tagged , , , | 9 Comments