DEV-NOTES|SoapUI: Run random tests in a load test

Sometimes it is useful to set up a SoapUI test for simulating different usage scenarios randomly. The following solution provides a random selection from prepared test steps resulting in a different behavior of the tested service. „DEV-NOTES|SoapUI: Run random tests in a load test“ weiterlesen

Fixing Aftershot Pro 2 X64 update dialog on ubuntu 14.04

Aftershot Pro X64 starts with an information dialog that there is a new version available, but after hitting on the given links nothing happens. Starting Aftershot from the command line shows up that there is some problem with the Mozilla XUL library and the Aftershot provided lib. Instead of using the system default library, it relies on the delivered version. This could be easily fixed by removing any read access right on the symbolic link target:

cd /opt/AfterShotPro2\(64-bit\)/lib
chmod -r*

Afterwards the links are working and refer to the download location for the new version.

Book Review|Scala for Java Developers

Thanks to Packt Publishing I have got a free ebook copy of „Scala for Java Developers„.


All Java code samples are covered by the features of the Java language specification whereas the upcoming functional extensions of Java 8 are not part of the discourse.

Review / Summary

The book “Scala for Java Developers” by Thomas Alexandre is an introduction to the Scala language from a Java Developers perspective. It does not explain basic programming paradigms like object orientation beside a very small wrap up of the functional paradigm as it might not be well known to every Java coder. The book is organized into 10 sections which should be read in order and mostly build upon each other.
„Book Review|Scala for Java Developers“ weiterlesen

Quick tip: Running Sonarqube on a Synology Diskstation DS214play

The Synology Diskstation DS214play is an Intel based NAS device with 1GB of RAM. It provides a MariaDB and Java support nearly out of the box, both packages are installable using the systems own package manager.

Sonarqube is an ‚continuous inspection‘ formulator providing insights in your code and assuring quality metrics. It is an open platform for managing your code quality which could be enhanced by various plugins for different languages, code metrics and reports.

To install Sonarqube on the DS214play just download thelatest release (at time of writing 4.1.2) from the Sonarqube homepage and unzip it to a directory of your choice on the diskstation. Basically it is possible to run Sonarqube from that point, but it will yield some error messages due to the fact that the diskstation system supports only subset of the command options of a full flavored UNIX installation.

To get Sonarqube started with out error messages inside the gitpid function the pidtest expression must be replaced as shown in the following fragment (new version at line 19):

getpid() {
    if [ -f "$PIDFILE" ]
        if [ -r "$PIDFILE" ]
            pid=`cat "$PIDFILE"`
            if [ "X$pid" != "X" ]
                # It is possible that 'a' process with the pid exists but that it is not the
                #  correct process.  This can happen in a number of cases, but the most
                #  common is during system startup after an unclean shutdown.
                # The ps statement below looks for the specific wrapper command running as
                #  the pid.  If it is not found then the pid file is considered to be stale.
                # not supported by the diskstation environment
                #pidtest=`$PSEXE -p $pid -o args | grep "$WRAPPER_CMD" | tail -1`
                # trying instead:
                pidtest=`$PSEXE | grep $pid | awk '{print($5)}' | grep "$WRAPPER_CMD" | tail -1`
                if [ "X$pidtest" = "X" ]
                    # This is a stale pid file.
                    rm -f "$PIDFILE"
                    echo "Removed stale pid file: $PIDFILE"
            echo "Cannot read $PIDFILE."
            exit 1

Sonarqube should startup without any annoyance now, but the stop call will still complain. To fix this to it is needed to replace the second call to the ps command as well (new version at line 6):

testpid() {
	# diskstation cannot even handle the following command
    #pid=`$PSEXE -p $pid | grep $pid | grep -v grep | awk '{print $1}' | tail -1`
    #therefore replace with
    pid=`$PSEXE | grep $pid | grep -v grep | awk '{print $1}' | tail -1`
    if [ "X$pid" = "X" ]
        # Process is gone so remove the pid file.
        rm -f "$PIDFILE"

Starting and stopping Sonarqube should now work like a charm and you can focus on the insights of your code.

Krama, Jenkins and Bitbucket colluding continuous integration

Having an automatic build process, high grade unit and integration tests and a CI (continuous integration) system helps to enforce a certain level of quality. Runtraction is a Javascript HTML5 based mobile (web) application. It was scaffolded using Yeoman utilizing:

  • Yo for scaffolding the intial project structure and additional components,
  • Grunt for build automation and
  • Bowers dependency management.

The Yo utility creates Karma tests suites beside the source and various other artifacts. Karma integrates well with several CI products like Jenkins CI and Travis CI. Travis CI provides a free continuous integration service and pthe integration into an own project is just a matter of adding an appropriate .travis.yml configuration file.

The Runtraction source code lives at Bitbucket.

So everything seems to be fine – but unfortunately Travis CI is very tightened to Github so it is not possible to use it from Bitbucket directly. Furthermore there is no service trigger for Tavis CI in Bitbucket too. „Krama, Jenkins and Bitbucket colluding continuous integration“ weiterlesen

DIY: Replace Google Reader by Tiny Tiny RSS

After Google announcing the end of service date for Google Reader the question arises where to move next. Once again back to Bloglines – that is the service which was said to be dead, but ironically it survived Google Reader or choose one of the numerous other alternatives (eq. Feedly or GoodNoows) which are worth to take a look at them. But you might running in the same trap again – they could be closed for whatever reasons. So I searched for an open source and shared-hosting friendly replacement and I will give Tiny Tiny RSS a try.

The setup procedure is quite easy, download the distribution,  unpack it and follow the installation instructions. Afterwards you should be able to login to you Tiny Tiny RSS installation but there where some strange errors I got rid of by using the latest index.php file from the github repository and upgrading the php version to 5.4 .

IMHO: Lessons learned from WhatsApp

Building an open alternative to the propriety WhatsApp messenger would be a desirable option. And indeed there are lots of open (e.g. beem, yaxim,…) as well as non-free competitors but none of those could supersede it, although there were some reports about security problems and account hijacking. So what might be a key feature to bring the open alternatives to a broader audience?
„IMHO: Lessons learned from WhatsApp“ weiterlesen