Sonntag, 17. März 2013

Java auf dem Desktop 9 - Domination

Domination, den Brettspielklassiker Risiko, gibt es neben einer Android- und  Blackberry-App auch als Java-Desktop-Anwendung. Das ganze macht einen riesigen Spaß, funktioniert im Einzel-, wie auch im Mehrspielermodus, spricht deutsch und ist Open Source. Wer das Spielprinzip, so wie ich noch aus grauer Vorzeit in grober Erinnerung hat wird sich schnell zurechtfinden. Es gibt verschiedene Karten und einen Online-Modus mit dem gegen andere Spieler im Netz angetreten werden kann. Wie für das Brettspiel-Original gilt: Vorsicht Zeitvernichter. Bei mir war jedenfalls mal eben eine Stunde weg bevor mir der rote Spieler Europa abgejagt und mich nach Australien verdrängt hat.

Sehr nett finde ich die Spendenoptionen mit denen auch gleich gezielt neue Features unterstützen werden können. 

Auch wenn der Java-Webstart auf der Projektseite gute Dienste verrichtet habe ich Domination mal für Debian/Ubuntu paketiert.

via 1337core

Freitag, 15. März 2013

Ist Java unsicher?

Sicherheitslücken ohne Ende. Leider kostet das Java ein gutes Stück seines Rufes obwohl dafür im Grunde kaum Anlass besteht. Die Presse berichtet unreflektiert vom "Unsicheren Java" und Elster wird umgestellt, obwohl für die Elster-Anwendung gar keine Sicherheitslücke besteht. Das die im Browser laufenden Java-Applets nur noch auf ausdrücklichen Klick hin gestartet werden ist in dem ganzen Thema eine der wenigen konstruktiven Geschehnisse.

Vor allem der Tote-Holz-Presse ist mal wieder anzulasten, dass durch undifferenzierte Berichterstattung mehr Unsicherheit als Aufklärung gesäht wurde. Dem entgegen wirkend hat Olaf Willhuhn, Entwickler der Homebanking-Software Hibiscus, ein kurzes, treffendes FAQ zu dem Thema aufgesetzt, dem ich mich inhaltlich voll anschließen kann.

Resümee: Viel Wind um kaum etwas. Programme aus dem Netz laden und starten ist viel problematischer als das Applet im Browser, das (selbst bei den gefälschten Zertifikaten) vorher noch nach Rechten für die Sandbox fragt.

Dienstag, 12. März 2013

Parallelverarbeitung mit Java

Anwendungsprozesse in Threads aufspalten ist mit der Verbreitung von Multiprozessorarchitektur zunehmend sinnvoll. Mit Java 1.5 sind da grundlegende und praktische Sachen hinzugekommen. Die Zeit, wo man noch Threads mit Runnables erzeugt sind damit im Grunde längst vorbei. Wie es richtig und gut geht erklärt Tomasz Nurkiewicz in seine Reihe in der DZone sehr anschaulich.

java.util.concurrent.Future Basics
ExecutorCompletionService in Practice
Advanced ListenableFuture Capabilities

Donnerstag, 7. März 2013

Bashskript mit Java 7 Präferenz

Unter Linux kann der Benutzer mit dem Command update-alternatives einstellen, welche Java-Version mit dem Aufruf von /usr/bin/java angesprochen wird. Eine Anwendung, die sich aber auf einer bestimmtem Java-Version besonders zu Hause fühlt, muss sich nicht unbedingt an die Voreinstellung halten, die ohnehin zumeist nur zufällig zustande kommt. Das folgende Anwendungs-Bashscript präferiert Java 7 vor der sonst vielleicht eingestellten Java 6 (oder noch älteren) Version.

#!/bin/sh

javaBin="/usr/bin/java";
for entry in `update-alternatives --list java`; do 

 case "$entry" in
  *"java-7"* )
      javaBin="$entry"
   break;
      ;;
  *)
 esac
 case "$entry" in
  *"jdk1.7"* )
      javaBin="$entry"
   break;
      ;;
  *)
 esac

done

$javaBin -cp application.jar org.test.Aplication $@