2013-11-27

Brückenbau

Viele plattformneutrale Bibliotheken für mobile Apps schaffen Portabilität, indem sie die Benutzeroberfläche mit Webtechnik umsetzen. Die vereinfachte Bereitstellung erkauft man sich mit Einschränkungen bei Bedienbarkeit und Integration in das Wirtssystem. Das open source-Framework Calatrava bietet eine Alternative. Mein Artikel Brückenbau in der aktuellen iX 12/2013 stellt es vor.

2013-11-26

Erster Blick auf den Launcher des FairPhone

Die Macher des FairPhone haben auf facebook bekannt gegeben, dass sie Teile der Systemsoftware auf GitHub veröffentlicht haben. Ich war natürlich neugierig… Hier ein paar Screenshots des Launchers zur Einstimmung…
Screenshot des FairPhone-Launchers (1/4)
Screenshot des FairPhone-Launchers (2/4)
Screenshot des FairPhone-Launchers (3/4)
Screenshot des FairPhone-Launchers (4/4)
Das Peace of Mind-Widget werde ich mir demnächst ansehen…

2013-11-17

Eigene open source-Projekte

Ist Ihnen aufgefallen, dass ich am rechten Rand dieses Weblogs eine Liste mit meinen open source-Projekten eingefügt habe? Diese Projekte laufen so nebenbei mit. Deshalb gibt es nur gelegentlich Aktualisierungen. Heute ist es für Clip4Moni mal wieder soweit. Das arg pixelige Logo wurde durch eine “ordentliche” Vektorgrafik ersetzt, die sich vernünftig skalieren lässt. Hier die Version in 128x128 Pixel:
Das neue Logo von Clip4Moni
Das neue Logo von Clip4Moni
Clip4Moni steht unter GNU general public licence version 2. Das Programm verwaltet Textschnipsel und stellt diese über ein Icon im Infobereich der Taskleiste (Windows) bzw. der Menüleiste (Mac OS X) zur Verfügung. Es benötigt Java SE 6 Update 10 oder neuer. Wenn Sie das Projekt aus seinem Subversion-Repository auschecken, landen die Sourcen, ein Mac OS X App Bundle sowie ein doppelklickbares Jar (im Verzeichnis dist) auf Ihrer Platte. Clip4Moni bietet ganz bewusst nur wenige Einstellmöglichkeiten. Immerhin können Sie konfigurieren, wo Textschnipsel gespeichert werden (Stichwort: Dropbox). Auch das Look and Feel ist einstellbar.

2013-11-07

Gruß aus der Vergangenheit – jasconn ist wieder da!

Vor vielen Jahren habe ich auf java.net das Projekt jasconn gepflegt. Der seltsam klingende Name steht für Java-AppleScript-Connector. Damit war es möglich, JSR-223-konform auf AppleScript zuzugreifen. Im Zuge der java.net-Migration auf Project Kenai (auch dies ist viele Jahre her) ist jasconn dann verloren gegangen – ich hatte eine Migrationsfrist verstreichen lassen. Neulich habe ich mein altes Projekt selbst gebraucht und gedacht, dass es schade ist, wenn niemand mehr etwas davon hat und weiß. Deshalb habe ich es mit freundlicher Unterstützung der java.net-Admins neu angelegt: https://java.net/projects/jasconn
Wozu ist jassconn nun gut? Wie bereits angedeutet, kann man damit aus Java heraus AppleScript-Code ausführen und das Ergebnis in Java weiter verarbeiten. Das kann so aussehen:
 public class ScriptDemo2 {  
   public static void main(String[] args) {  
     ScriptEngineManager manager = new ScriptEngineManager();  
     List<ScriptEngineFactory> factories = manager.getEngineFactories();  
     for (ScriptEngineFactory factory : factories) {  
       if (factory.getEngineName().indexOf("Java-AppleScript-Connector") != -1) {  
         ScriptEngine engine = factory.getScriptEngine();  
         String script = "tell application \"System Events\"\nitem 1 of (get name of processes whose frontmost is true)\nend tell";  
         try {  
           Object result = engine.eval(script);  
           if (result != null) {  
             System.out.println(result.toString());  
           }  
         } catch (ScriptException ex) {  
           Logger.getLogger(ScriptDemo2.class.getName()).log(Level.SEVERE, "engine.eval", ex);  
         }  
         break;  
       }  
     }  
   }  
 }  
Dieses Quelltextfragment nutzt praktisch nur Klassen, die in JSR-223 spezifiziert sind. Der Bezug zu jasconn ergibt sich ausschließlich aus der Suche nach einer bestimmten Factory. Die auszuführenden AppleScript-Befehle sehen so aus:

tell application "System Events"
item 1 of (get name of processes whose frontmost is true)
end tell
Auf diese Weise kann der Name der aktiven Anwendung ermittelt werden.
Es liegt auf der Hand, dass jasconn nur unter Mac OS X läuft. Denn jasconn ist kein AppleScript-Interpreter, sondern nur eine Brücke. Das Subversion-Repository sowie ein fertiges Jar sind über die Projekthomepage erreichbar. Die Nutzung ist denkbar einfach: das Jar muss nur unter /Library/Java/Extensions abgelegt werden.
Ein letzter Hinweis: Irgendwann hat Apple in seine Java-Versionen ebenfalls eine JSR-223-kompatible AppleScript-Integration eingebaut. Damit ist jasconn eigentlich nicht mehr nötig. Warum meine Version dennoch die bessere Wahl sein kann, zeige ich in einem späteren Post.

2013-11-02

TKWeek 1.6.6

Heute ist mal wieder ein Screenshot von TKWeek fällig. Ich habe nämlich eine neue Version veröffentlicht, die das Modul Informationen über ein Jahr um eine Wochentagsverteilung erweitert.

Screenshot von TKWeek: Informationen über ein Jahr mit Wochentagsverteilung
Screenshot von TKWeek: Informationen über ein Jahr mit Wochentagsverteilung

Ich weiß nicht, ob Sie sich jemals gefragt haben, wie viele Donnerstage oder Freitage ein bestimmter Monat hat. Meine App kann diesen Wissensdurst jedenfalls stillen.

Zwinkerndes Smiley