The German QWERTZ keyboard layout was not made for developers. Often needed keys like brackets and braces are unnecessarily hard to type. The layout is also not ideal for some applications or often used character combinations. Ever wondered why the creators of vi chose slash and question mark for forward/backward…

I just started my first Ionic 2 application and struggled with adding Lodash as dependency. Since TypeScript 2 adding npm dependencies should be that easy:

npm install --save @types/lodash

You don’t have to deal with other tools like typings anymore. However the next build failed with this transpile error:

[12:06:18] transpile started …
[12:06:44] typescript: node_modules/@types/lodash/index.d.ts, line: 11444
‘]’ expected.

The problem is that the current version of the declaration file expects TypeScript 2.1 whereas Ionic 2 is using TypeScript 2.0. You need to search for a matching version and install the correct one:

npm view @types/lodash # check the dist-tags
npm install --save --save-exact @types/lodash@ts2.0

Don’t forget the save-exact flag. Otherwise your coworkers will run in the same problem after fetching.

RESTEasy logs every thrown WebApplicationException with it’s full stacktrace:

This may be helpful in case of a status 500 Internal Server Error. In case of a client error like 404 Not Found it just bloats your logfile and doesn’t provide helpful information. RESTEasy provides a NoLogWebApplicationException to avoid this but then you won’t find any information about these errors in your application logfile. You can easily improve this by implementing your own ExceptionMapper:

Of course you should always provide a helpful error message when throwing a WebApplicationException:

After almost one year of silence Oracle presented an update to the Java EE 8 roadmap at JavaOne: Java EE 8 by the end of 2017 and EE 9 one year later. As far as I know they didn’t explain why they stopped their work for so long or why…

When you’re implementing a file upload you most probably want to limit the size of the upload. But how do you know the size? Reading the Content-Length header should be obvious but can you really trust it?
No, the client can send whatever he wants, correct? …

Florian Hirsch

developer at

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store