Article 13 of a directive on copyright introduces automated scanning of user uploaded content to identify copyright violations. This includes text, images, audio and video. People make accusations of censorship. The directive calls on the relevant parties to define best practices and explicitly mentions "appropriate and proportionate content recognition technologies" as an example. Content recognition technologies is where automated scanning comes in. This video explains some instances of copyr...
read more

My website suffered a recent outage and having identified the likely problem I thought I would do a postmortem. On the 10th of March, a Friday evening, my website stopped responding to requests. The ngnix server remained up and timed out the requests. Service resumed after restarting the Tomcat server. There is still some uncertainty but it appears the cause of the failure was the inability to get database connections from the pool. This site uses Filters to process the request and gather the inform...
read more

I had planned to complain about TypeScript because I couldn't generate the doc the way I wanted (documentation generation matters). Then I found the flag to fix it so I decided to say something nice. Yes, TypeScript is a bit better than JavaScript. No, I'm not going to change my website to use it any time soon but that is because I'm tired of rewritting it. I had implemented a simple JavaScript library and application to poll and parse a JSON resource. Then I asked myself, why JavaScript? I...
read more

After four years I think I'm finally beginning to understand Maven. Long ago when I started releasing projects with Maven I made a hash of it. I went through guides and tutorials and was able to release to Maven central but I had little understanding of what was going on. This is the downside to convention over configuration, less explicit knowledge about how to do things. Practically the downside is infrequent code releases as it is too much of a bother to fight Maven. Years on though I've gain...
read more

I've started playing with web components. It started with a previous post . I decided that it needed some code snippets. Recently for work I had been doing this by embedding Gists. It seemed simpler than working out a different way. It was not. Gists are embedded using document.write which is not supported for XML documents. I can't embed Gists onto my XHTML website, sadface. I had been hearing about web components for a while but did not have a use case to build one for. I decided that embed...
read more

This site would like to store data on your machine. This won't be
used to track you or target you for advertising. It will be used to
personalise your experience on this site. For example if you agree
to let use store data on your machine you won't see this message
again. If you don't this message will be displayed every time you
start a session because the site will not remember that you declined.
Allow data storageRefuse data storage