23. September 2016

JavaBasel 2016

Mir ist aufgefallen, das man die Website der ersten Java Konferenz in Basel – JavaBasel – leider nicht gut via Suchmaschine finden kann.

Das geht soweit, dass man mich darauf angesprochen hat, wann es denn Details zum Programm gibt und man sich anmelden kann, obwohl ein Großteil der Tickets bereits verkauft ist.
Also, vielleicht hilft es ja, hier nochmal zu verlinken :) Die Konferenz Website ist:

Einen Trailer gibt es auch:

Es gibt ein spannendes Programm, nicht nur entsprechend dem Namen der Konferenz rund um Java, sondern rund um einen interessanten Satz aktueller Technologien.
Und die Möglichkeit in entspannter Atmosphäre eine Mene netter und interessanter Leute (ich hab gehört, da sollen einige da sein und freue mich schon drauf;-) ) zu treffen.

Also: CU @JavaBasel 2016. 19. Oktober.

26. August 2016

Facebook verwertet WhatsApp Daten: Zeit umzusatteln!

Einen weiteren Punkt, warum man wirklich versuchen sollte auf Whatapp zu verzichten und seine Whatapp Kontakte von alternativen Diensten, die die Privatsphäre respektieren wie Threema, Wire oder Signal liefert die News, dass WhatsApp zwei Jahre nach der Übernahme durch Facebook stärker mit der Plattform verzahnt werden soll, denn:

  • „…soll Facebook die Telefon-Nummer des WhatsApp-Nutzers bekommen sowie Informationen dazu, wann er bei dem Dienst aktiv war.“
  • „Mit dem Abgleich der Telefonnummer solle unter anderem relevantere Werbung bei Facebook angezeigt werden…“
  • „… können Facebook verbieten, die Profilinformationen zur Personalisierung der Werbung und Freunde-Vorschläge einzusetzen, heißt es. Die Telefonnummer und Daten zur Nutzung würden aber in jedem Fall mit Facebook geteilt„.

Braucht es wirklich noch mehr Argumente?
Na gut, eins hab ich noch: Wenn Werbenetzwerke und Verkaufsplattformen genügend Daten über euch gesammelt haben, führt das in der mordernen Welt dazu, dass Ihr beim Onlineshoppen mehr bezahlt. Das Zauberwort heisst „elastic pricing“.
Dazu ein Artikel bei BR:Dynamic Pricing: Warum Online jeder einen anderen Preis zahlt

Schützt eure Privatsphäre! ;-)

10. Juni 2016

OpenJDK on RaspberryPi / Raspian: Fallback to Oracle JDK

Lately I wanted to use Java on the RaspberryPi a little more intensive. With that involved, there is of course a Gradle build. But it went not as easy a I expected.

I attempted to use the openjdk-8 package, the system in question was based on a Hypriot OS 0.7.0 Berry (beta), which is based upon Rasbian Jessie.

While running the build, I ran into some SSL related issues on downloading the dependencies:

Exception in thread "main" PKIX path validation failed: signature check failed

First of all, I tried to fix it with the commands

sudo update-ca-certificates -f

sudo apt-get install --reinstall ca-certificates-java

but those didn’t seem to have any effect.

From past experience I knew that it’s – unfortunately – often worth to give the official Oracle builds a try in case the OpenJDK does not behave as expected. Even though I have the feeling that shouldn’t be the case anymore as the usage of OpenJDK has been spread a lot. For example, Amazon, being a very big name and serving a large installation base within AWS and it’s other services is using OpenJDK.

Trying to find the most convenient way to get the Oracle JDK installed (using their packages and having to run update-alternatives and such by hand is the least desired option in that case), I learned that the Oracle JDK packages are provided within the RaspberryPi Foundation repositories located at

So I added a file foundation.list to /etc/apt/sources.list.d with the content

 deb jessie main

and run apt-get update after which apt-cache search oracle listed

oracle-java8-jdk - Java™ Platform, Standard Edition 8 Development Kit

Which I decided to install instead of OpenJDK. And voila – it works. Seems like OpenJDK, or at least the package provided within Raspian has still some things to catch up with :(
I’m looking for the proper place to report or track this – does anyone have a hint for that? :)

Oh, and as a side note: Always take case of the CPU architecture you are working with – it’s so easy to fall into that ARM / X86 trap ;-) But that’s a topic for another blog post…

8. April 2016

SyncThing Android – still no SD card support

TL;DR: GoLang doesn’t support Android Stroage API properly so syncthing cannot access an external SD card properly at the moment.

I’m taking a lot of pictures – not only with my camera but also with my mobile – as it happens to be the camera that always available ;-)
But sorting pictures on the phone is a little bit painful for me, I’d prefer to sort them on a larger screen while the result of that sorting should be effective to the mobile, of course.
I’ve had a solution to that for a short time in the past with BitTorrent Sync – bu then, they changed their licensing and dropped some features and my use case could not be fulfilled anymore.
On top of that, a „feature“ was introduced to Android that makes it harder to deal with files on the SD card.

Then, I stumbled upon SyncThing and hoped to get back to a working setup for my photos-from-mobile workflow.
Unfortunately, SyncThing was also suffering from the sd-card-read-write-permissions problem and thus not an option for me.

Last night, I decided to check again and found that it’s still not usable for me :(
The situation has improved a little bit as in Android land exists an API not to handle files on the SD card as flexible as required. Bad thing is, that those API is currently not available to syncthing as it has not been implemented to the software stack used there (GoLang), see issue #10588 of Go.

I’ll check back on this regularly as long I can’t find a better solution ;-)
Would also love to have sync back to have a very easy way to maintain the set of music I’ve on my phone (and add/remove stuff from there).

see also: syncthing-android issue #29: repos on extSdCard

5. April 2016

Das darf niemals in Netz! (NeoMag Royale)

Es ist länger her, das ich ein Video gebloggt habe, aber die letzte Folge des Neo Magazin Royale ist es wert – da es nicht mehr in de Mediathek ist, ein Link zu Vimeo:

Nicht nur wegen dem Erdogan Gedicht, auch der (im Video ab 17:45min) Song „Germans on the Rise“ (Artikel dazu im Zeit Blog) ist gelungen.

Viel Spaß!

Nachtrag: Hui, das ganze schlägt ja richtig Wellen: Anzeigen im Bündel, Ermittlungsverfahren gegen J. Böhmermann und Rüge von der Kanzlerin

1. April 2016

Lazybones Template for Dolphin Platform Jumpstart

As Hendrik stated rightfully in his post about the Dolphin Platform Jumstart maven archetype, Starting with a new technology is often hard.
To make getting started with the Dolphin Platform in combination with Gradle easier for a broader audience, Maxim and me created a lazybones template for the jump start project of the Dolphin Platform during the last Hackergarten in Basel.

It is based on the maven archetype (and adopting the actual example project from there) but is completely build with gradle and provides some other improvements like an integrated build for the polymer client.

You can find it’s source project at

To actually use the template you need to have lazybones installed. The easiest way to get it is via SDKMAN.
So first, let’s install that:

$ curl -s | bash 

(Windows users: look for the Powershell version)

Then, we can use it to install gradle and lazybones:

$ sdk install lazybones
$ sdk install gradle

Next register the dolphin-platform-lazybones-templates repository with Lazybones‘ config file. Edit $USER_HOME/.lazybones/config.groovy

bintrayRepositories = [

If everything is fine, issuing the command

$ lazybones list

should list the Dolphin Platform template:

Available templates in canoo/dolphin-platform-lazybones-templates


Now, we can use it to create a new Dolphin Platform project:

$ lazybones create dolphin-platform-spring-boot MyProject

The generated project contains a complete Gradle build, so you can use that to import it into your IDE that supports Gradle (like Eclipse or IntelliJ).

To get an idea on how to proceed from here, have a look at the README of the generated project.

If you have any questions about Dolphin Platform you can now use the “dolphin-platform” tag at stack overflow. If you are new to Dolphin Platform, find more about it on

Happy coding :)

4. November 2015

Browser UI testing with Geb: Debugging Geb tests

Geb provides a very good way for end-to-end tests of browser applications.

One drawback while writing is that it might get rick to get the selectors for the UI elements right. Being able to debug, stop in the middle of a test and adjusting the selectors would come in very handy.

But, as things are not always as smooth as we want them to be, the error message you are confronted with when you just hit the „run debug“ button for the Geb Spec class you are woking on might look like:

Process finished with exit code 1
Class not found: "de.mynethome.GebSampleSpec“ Empty test suite.

This will happen especially when you’re working on a Java based project and have pulled in the dependencies on Groovy only for „test“ to be able to profit from the combined power of Spock/Geb. The reason for that error is, that your IDE did not pick up that compile time dependency and thus you groovy files have not been converted into byte code that can be run and debugged.
(hint: this applies most likely only to maven based projects. From my experience, this error has not popped up with projects that use gradle as their build system)

Solution to this is simple: Tell your IDE to run the necessary steps to compile your test suite.
That is, for example in IntelliJ Idea, done by adding a „before launch“ task to the run configuration as schon in the picture :-)

Happy debugging&testing!

15. Oktober 2015

Android Security @ Xperia Z3 Compact : Sonys Antwort

Vor kurzem habe ich über die Sicherheitslücken bei Android geschrieben und meine Anfrage an Sony über die Zukunft des Xperia Z3 Compact erwähnt.

Mittlerweile habe ich Antwort erhalten, die ich euch natürlich nicht vorenthalten möchte.
Nachdem man man mir in der ersten Antwort sehr unscharf versichert wurde, dass an „Software-Updates […] immer mit Hochdruck gearbeitet (wird)“, und es sich leider jedoch „selten vorhersagen“ lässt, wann diese fertiggestellt werden, habe ich nochmal genauer nachgefragt, ob die von mir genannten Sicherheitslücken denn für das Z3 Compact noch geschlossen werden.

Die knappe, aber klare Antwort lautet:

Dies wird der Fall sein.

Immerhin, es wird Fixes geben. Dann sind wir mal gespannt.

heise berichtete zwischenzeitlich, dass von Seite Google und via CyanogenMod Stagefright 2.0 gepatcht ist – und wie der Stagefright Detector auf dem Z3 Compact zeigt, ist zumindest dieser Patch (CVE-2015-3876) auch schon angekommen.

Heise berichtet übrigens weiter, dass laut einer Studie 87 % aller Android Geräte angreifbar sind.

Also immer schön umsichtig bleiben und darauf vertrauen, das die Hersteller mit dem Patchen bald nachkommen ;-)

8. Oktober 2015

Convert DZSlides presentation to PDF

Given you have created and given a presentation based on DZSlides (maybe powered by AsciiDoctor & Gradle ;-) ), you might have the need to publish it at one point.
One of the most compatible way is to put the slides into a PDF, but that might not be as much obvious as you might expect. Here is one approach:

* Convert the slides to png files using the slides2png script:

groovy ./dzslides/scripts/slides2png file:///Users/markus/Documents/20151001_Presentation/slides/src/slides.html

As the script it uses GEB to utilize the browser and take screnshots from your slides, it requires a fully qualified URL to find your presentation. In this case, it resides on the filesystem, so it starts with file:// – you could also fire up a minimal HTTP server (python -m SimpleHTTPServer , anyone? ;-) ) to shorten the URL.

* The results are safed in /tmp/geb-reports by default, including a presentation.pdf file that is the desired PDF. Voilà :-)

Have fun!

30. September 2015

Samsung Galaxy S3 Mini oder Motorola Moto E

Nachdem es im letzten Artikel um die Sicherheit von Android ging, ist es auch naheliegend, wenn man darüber nachdenkt, ein evtl. hoffnunglos veraltetes Smartphone durch eines mit aktueller Androidversion zu ersetzen. Und da ich die nachfolgenden Punkte eh‘ schonmal zusammengetragen habe, kann ich sie auch gleich bloggen ;-)

Ab Donnerstag ist das Smasung Galaxy S3 mini bei Aldi Süd für 100 € im Angebot, was ein gutes Preis/Leistungsverhältnis für ein Smartphone ist. Ist es denn auch ein Schnäppchen?
Ich würde sagen, nicht unbedingt, denn auf dem Gerät läuft die schon veraltete Android Version 4.2, die nur noch auf etwa 15 % der Android Geräte läuft.

Meiner Meinung nach ist das Motorola Moto E (, für wenig mehr Geld (ca. 25 €) eine gute Alternative.

kleine Nachteile:

  • kein rückseitiger Blitz
  • kein FM Radio

dafür die Vorteile:

  • Android 5 (Lollipop)
  • 3G & 4G (LTE)
  • 4.5″ statt 4″ Displaygröße
  • höhere Auflösung (960×540 statt 800×480)
  • 4 statt 2 CPU Kerne
  • Schutz vor Kratzern und Spritzwasser
  • Größerer Akku

Die Nachteile sind m.M.n. bei den Vorteilen zu verkraften – die Fotos werden, gerde bei Fotos von Handys dieser Preisklasse mit dem Blitz sowieso nicht zwangsläufig besser. Und FM Radio habe ich bis jetzt nur sehr wenige Leute mit dem Smartphone nutzen sehen – wofür gibts Podcasts? ;-)

Und selbst wenn es doch das S3 mini sein soll: bei gibt es die CyanogenMod Portierung für das S3 Mini mit denen man dem Gerät eine aktuelle Android Version und damit zumindest z.T. Sicherheit ggÜ den kürzlich aufgetauchten Sicherheitslücken verschaffen kann.

Viel Spaß beim Handy Upgrade :) wird erstellt mit WordPress
Beiträge (RSS) und Kommentare (RSS)

(c) 2005 - 2015 Markus Schlichting