On Language Cross-Pollination (Or My Journey Down The Complexity Ladder)
Staying inside one's own comfort-zone for too long leads to creative stagnation. This talk aims to highlight the benefits of diving into new languages and paradigms. I will present examples from my own experience and the process I use for trying out new things to widen my skills and horizon as well as how to bring these improvements back to my daily work.
Safely Shoot Yourself in the Foot with Java 9
So what work do you do?" "Um, computers." "Oh nice, what exactly?" "Well, I code Java". And then: "Actually, I have a question about that. My PC says I must update Java ..."
Two decades ago, the world gasped as an applet moved pixels on a web page. Dynamic content on the World Wide Wait! We were hooked. "And it's 100% secure!"
Java 9 finally keeps the promise of "... it's 100% secure!" by removing Unsafe, deep reflection on system classes, etc. All those lovely toys to peek and poke into native memory ... they're gone.
Well, not entirely. We can still do almost anything from Java 8. We can change Strings using deep reflection, Unsafe or even VarHandles. We can throw checked exceptions as unchecked. We can mark fields as @Contended. But this needs special privileges to work. It won't work in Java 10. Promise. (We'll see)
This talk will show you how to use some of the new Java 9 features, such as VarHandles, jshell and Stream improvements. We explain why you need to move over to G1 soon. We show how you can do all the old Java nasties, such as deep reflection into java.lang and throwing asynchronous exceptions.
Mario Landgraf bespricht gegenwärtige und bald erscheinende Test-Technologien, und die Techniken die Entwickler benötigen, um sie optimal zu nutzen.
Dieser Talk wurde bei der Java User Group Graz am 25. April 2017 gehalten.
I present a simpler environment for deploying JVM-based webapps than the increasingly convoluted Linux stack (from systemd to docker to various cloud APIs). Topics covered include a critique of the current ops fashions; the nature of simplicity; a discussion of the differences between simplicity and ease with reference to Rich Hickey’s work; and a practical intro to running FreeBSD with OpenJDK and other services, with instances managed through runit.