Reactive programming for Java, revisited

Abstract Rewritten on 15 January 2015 In this post I'll talk about the problems callbacks introduce into the readability of asynchronous Java programs. I'll also discuss an implementation of method pointers for Java which aids the transformation of a callback-style program into a linear program flow, greatly increasing readability while still being a 100% asynchronous … Continue reading Reactive programming for Java, revisited

Running varnish as unprivileged user

Since I haven't found any documentation on the topic of running varnish as non-root, I proudly present: how to run varnish as non-root. A warning ahead: this will require fiddling with init scripts, so make sure to keep backups. Also, scripts will be overwritten with each package update. Changes to /etc/init.d/varnish Ulimit calls are not … Continue reading Running varnish as unprivileged user

Tomcat/Scala: invalid byte tag in constant pool: 110

When deploying a Scala application on Tomcat 7 I got this weird error: invalid byte tag in constant pool: 110 from Tomcat's annotation scanning in the scala utils jar. There is this bug report that claims it's fixed, but it seems to still happen wit 7.0.53. Since the application doesn't rely on Tomcat's annotation scanning, … Continue reading Tomcat/Scala: invalid byte tag in constant pool: 110

When scala unitests won’t run in the Scala IDE with Maven

Stupid problem: scala unit tests / scalatest tests suddenly won't run after a failed maven build claiming with a ClassNotFoundException that the test class doesn't exist. I believe this to be a weird class loading issue where Eclipse doesn't include unit tests into the classpath. The very, very sad workaround is: run a successful maven … Continue reading When scala unitests won’t run in the Scala IDE with Maven

Programmatically selecting a tab with angularjs and bootstrapui

Let's say you want to programmatically select a tab with angularjs and bootstrap ui: [CODE MISSING] According to the documentation for 3.1.1 it should be enough to modify the model; here controller.tabUsers or controller.tabGroups. Only: it doesn't work. We'll never know why. The way out is simulating the click with jquery: $("#tab_users a").trigger("click");