One of the ways to make Java apps easier to manage and monitor is via JMX. As a first step I set up a simple MBean with a single runtime updateable attribute, to control whether or not my app should do a resource intensive scheduled task.

This gives us a "kill switch" for the scheduled job, to stop any hard work happening without needing to edit a properties file and bounce the app.

Continue Reading...

I had a need to process a bunch of PDFs containing some sensitive info, before they could be forwarded to an external team. This is how I did that data obfuscation from a Unix command line.

Continue Reading...

A while ago I started using HEAD requests via Ajax in some apps and thought I'd write a few notes about why. Basically it's to improve user interfaces/experience when things start getting complicated.

Continue Reading...

This is likely old news for many people, but I hadn't come across the HTTP Content-Disposition response header until recently, so here's my notes about it. The idea is to get the browser to ask the user to save a dynamically generated document they've downloaded, with a useful default filename for the downloaded file.

Continue Reading...

A note about an HTML escaping gotcha in JSTL which can lead to XSS security problems.

Continue Reading...

© Me. Best viewed with a sense of humour and a beer in hand.