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-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