Apache Pivot – Java GUIs Plattformübergreifend

Programmieren an sich ist ja nicht so schwer, sollen die Programme aber auf verschiedenen Plattformen laufen, muss man einige Dinge beachten. Auf der einen Seite muss die Programmiersprache auf allen gewünschten Plattformen unterstützt werden (sprich es muss einen Compiler/Interpreter geben) und es sollten keine Bibliotheken verwendet werden, welche auf “native code” (Code, welcher für ein spezifisches Betriebssystem/CPU programmiert/compiliert wurde) setzen.

Es gibt diverse solcher Sprachen (Python, Java, Ruby, Mono, etc) und jede hat Vor- und Nachteile. Insbesondere wenn man nicht nur Konsolenprogramme schreiben will wird es meistens kompliziert. Frameworks für GUIs arbeiten meist nur auf einem Betriebsystem, da viel betriebsystemspezifischer Code verwendet wird. Deshalb habe war ich schon seit längerer Zeit auf der Suche nach einem GUI Framework, welches dieses Problem löst. Vor ein paar Wochen entdeckte ich “Apache Pivot”.

Apache Pivot ist ein Framework um GUIs für Java zu implementieren, welche auf verschiedenen Plattformen funktionieren. Das GUI wird in einem XML-File definiert. Grundlegende Elemente können so eingefügt werden. Elemente können auch später mittels Java Code hinzugefügt werden. Das Framework funktioniert für normale Programme, Applets und es sollten sich sogar Web-Applikationen erstellen lassen (Die WebApps habe ich aber noch nicht ausprobiert).

Es gibt ausführliche Demos und einfache Beispiele zu allen Komponenten.

Die Java-Programme funktionieren auf Windows, Mac OS X und Linux (im Grunde überall wo eine grafische Oberfläche vorhanden ist und Java unterstützt wird). Die Performance ist sowohl auf Windows als auch auf Mac OS X gut (Linux habe ich nicht so ausführlich getestet). Wenn nicht so sauber programmiert wird reagieren die Programme speziell unter Windows nicht ganz so schnell. Insbesondere bei Buttons, wenn grössere Aktionen ausgeführt werden sollen, muss diese in einem neuen Thread gestartet werden. Wenn da Fehler passieren, reagiert das GUI träge.

Alles in allem gefällt mir das Framework, es ist schnell, einfach zu benutzen und man kann es in bestehende Programme Integrieren (und so langsam zum Beispiel ein SWING-Interface durch Apache Pivot ersetzen).

 

Titan Quest – Immortal Throne: Tag Not Found

Vor kurzem trat bei mir folgendes Problem auf:
Wenn Titan Quest – Immortal Throne gestartet wird, fehlen alle Texte. Im Menu steht “Tag Menu 01″, “Tag Menu 02″, etc. Und es steht überall “Tag not found”. Titan Quest wurde über Steam installiert und eine neu installation löst das Problem leider nicht. Nach langer Suche kam ich auf folgende Lösung:

  • Steam starten
  • Rechtsklick auf “Titan quest” und da auf Eigenschaften.
  • Klick auf das Tab “Lokale Dateien” und da auf “Spieldateien auf Fehler überprüfen”
  • Die Spieldateien sollten nun aktualisiert und geprüft werden. Wenn dies abgeschlossen ist, den selben Vorgang für “Titan Quest- Immortal Throne” wiederholen.
  • Wichtig: Zuerst Titan Quest (nicht die Erweiterung) starten und wieder beenden.
  • Danach: Titan Quest – Immortal Throne starten.

Irgendwann im Jahr 2011 wurde bei Steam das Format umgestellt, in welchem die Spiele gespeichert werden. Wenn man Immortal Throne startet wird es aktualisiert. Da Immortal Throne eine Erweiterung von Titan Quest ist, funktioniert es nur, wenn Titan Quest ebenfalls aktualisiert wurde. Das Prüfen der Spieldateien stellt sicher, dass das Spiel korrekt aktualisiert wird.

Viel Spass beim spielen.

Studentenrabatt bei BRACK

BRACK – ein schweizer Onlineshop für Computer- und Elektronikartikel hat wieder einmal eine Aktion mit Studentenrabatt.
Einfach anmelden, ein Foto der Legi (oder Schülerausweis) hochladen und schon profitiert man vom Rabatt. Wie viel Rabatt man jeweils erhält kann von der Uni abhängen, welche man besucht. Ausserdem muss man in der Schweiz wohnhaft sein.

JNLP – Anwendung kann nicht gestartet werden [Lösung]

Kürzlich hatte ich folgendes Problem:
Ich benutzte eine Java WebStart-Applikation (schon seit längerer Zeit) und von einem Tag auf den anderen konnte das Programm nicht mehr gestartet werden.
Ich erhielt folgende Fehlermeldung:
Anmeldung kann nicht gestartet werden
- Nicht signierte Anwendung fordert uneingeschränkten Zugriff auf das System an
- Nicht signierte Ressource: https://....../asdm.jnlp

Oder Falls man eine englische Anwendung startet:


jnlp: Unable to launch the application
- Unsigned Application requesting unrestricted access to system
- Unsigned resource: https://....../asdm.jnlp

In diesem Fall war es das Konfigurations-Tool einer Cisco Firewall (Cisco ASDM – Adaptive Security Device Manager).
Erstaunlicherweise trat dieses Problem mehr oder weniger zeitgleich auf mehreren PCs auf. Der Grund dafür war ein Problem mit dem Java-Cache (und wahrscheinlich einem Java-Update). Auf jeden Fall löst sich das ganze von alleine wenn man den Java-Cache leert. Eine Anleitung dazu wird auf der Homepage von Java/Oracle zur Verfügung gestellt.

Diese ist allerdings nur für Windows und auf Englisch, deshalb hier eine kurze Zusammenfassung:

Lösung für Windows

  1. Das “Java Control Panel” öffnen.
    • Systemsteuerung -> “Java”
  2. Es sollte sich nun ein Fenster geöffnet haben mit drei Unterteilungen. Bei “Temporäre Internet-Dateien” den Button “Einstellungen…” anklicken
  3. Im neuen Fenster den Button “Dateien löschen” anklicken.
  4. Mit “Ok” bestätigen.

Lösung für Mac

  1. Spotlight: Java-Einstellungen
    • Es öffnet sich nun ein Fenster mit 4 Tabs
  2. Das Tab “Netzwerk” anwählen
  3. Den Button “Dateien löschen” anklicken
  4. Mit “Ok” Bestätigen

 


Mac OS X: AFP Laufwerk automatisch verbinden

Eine AFP Freigabe (zum Beispiel vom Airport Extreme oder einem NAS wie dem QNAP) zu mounten ist auf einem Mac einfach. Bei mir liegt jedoch die Musik Sammlung auf dem NAS und wenn iTunes darauf zugreifen will, wird teilweise das Laufwerk nicht verbunden. Das ist mühsam, kann aber ganz einfach gelöst werden, wenn man weiss wie. Deshalb habe ich folgende kurze Anleitung wie man ein Laufwerk automatisch verbinden kann erstellt. Man benötigt keine Scripts, keinen Automator sondern nur die Einstellungen von Mac OS X:

  1. Öffne die “Systemeinstellungen”
  2. Öffne “Benutzer und Gruppen”
  3. Wähle Deinen Benutzernamen
  4. Öffne “Anmeldeobjekte” (Tab)
  5. Klicke auf das “+” (unterhalb der Liste mit den Anmeldeobjekten)
  6. Gehe zu “Netzwerk” oder “Freigaben” und wähle das Verzeichnis aus, welches du automatisch geladen haben möchtest.
  7. Klicke auf “Hinzufügen”

Das ist es. Wenn Du neu einlogst, wird das Laufwerk automatisch verbunden.


Google+ und die Suchresultate

Google+ wirkt sich bereits auf die Suchergebnisse aus. In den “Google Webmastertools” gibt es einen neuen Abschnitt mit welchem man das Suchverhalten genauer analysieren kann und den Einfluss der +1’s auf die eigene Homepage erahnen kann.

Ausserdem erscheint es im Moment so, dass Pages welche meine Google+ Freunde “gut” finden (sprich den +1 Button klicken) bei mir eher angezeigt werden. Die Suche wird also mehr und mehr personalisiert. Was Google bisher über unsere Suchanfragen herauszufinden versuchte, servieren wir nun selber auf dem silbernen +1-Tablett. Wir geben unsere Vorlieben preis und kombiniert mit unseren Freundeskreisen/Circles werden wir für Google zunehmend durchschaubarer.

Der gläserne Surfer ist wieder ein Stück durchsichtiger geworden. Wo früher Hotmail, AltaVista und später StudiVZ/LinkedIn/Facebook Ihre Dienste angeboten haben, finden wir heute Google’s Gmail, Google’s Web/Bilder/Karten/… Suche und nun auch noch Google’s soziales Netzwerk Google+. Das Internet wird monopolisiert und wir können uns kaum dagegen wehren, denn Googles Dienst sind meist recht gut und die Konkurrenz kommt kaum an die Qualität und Funktionalität heran.

Neben Google’s Diensten haben wir natürlich noch die Software (Picasa, Chrome, etc) und mittlerweilen sogar Betriebsysteme (ChromeOS für PCs und Android auf Smartphones). Es ist wirklich interessant zu sehen wie eine einzelne Firma so viele Dinge auf einmal hinbekommt. Die meisten anderen Firmen die sowas versucht haben, sind irgendwann an ihrer Grösse gescheitert.

Ich frage mich wann Google die erste Pizza ausliefern wird. Im Grunde müssten wir ja nicht einmal mehr den Belag auswählen oder die Adresse Angeben. Google sollte dies bereits wissen.

Für all diejenigen, welche einen Google Account haben und wissen möchten was den Google alles über sie gespeichert hat, kann dies Nachschauen unter: http://www.google.com/dashboard

Das Dashboard zeigt deutlich wie viele Informationen über uns gespeichert werden. Spannend und zugleich ein bisschen unheimlich.

ThinkVantage Password Manager und Firefox 4

Diesmal hat Lenovo um einige schneller gehandelt. Der Patch für den Passwortmanager für Firefox 4 steht bereit:
Für Windows 7: http://www-307.ibm.com/pc/support/site.wss/document.do?sitestyle=lenovo&lndocid=MIGR-77138&medium=rssT400#20110408
Für XP und Vista: http://www-307.ibm.com/pc/support/site.wss/document.do?sitestyle=lenovo&lndocid=MIGR-77137&medium=rssT400#20110408

Der Patch setzt allerdings die neuste Version von ClientSecurity bzw. dem Passwortmanager voraus. Die Kompatibilitätsprobleme mit Firefox 4 wurden behoben. Scheint alles gut zu funktionieren.

Mittlerweile sind die Reaktionszeiten von Lenovo akzeptabel geworden, was die Software-Patchs betrifft.

Angry Birds und die Fortsetzungen, ein Rückblick auf das Spiel und ein paar Gedanken dazu

Angry Birds ist ein Spiel für Smartphones. Es geht um kleine niedliche Vögelchen, welchen die Eier gestohlen wurden. Bei den Dieben handelt es sich um grüne Schweinchen und die Vögel sind auf Rache aus. Es geht nun darum mittels einer Steinschleuder die Vögel in Richtung der Schweine los zuschiessen. Damit das Ganze nicht zu einfach wird verschanzen sich die Schweine hinter Holz- Stein- und Eisblöcken. Die Physik in Angry Birds wird mit der “Box2D”-Engine berechnet, welche quasi als Standard für physikalische Simulation bei Smartphone-Spielen betrachtet werden kann. Zumindest wird dies im Box2D-Forum so behauptet 😉

Hier ist der offizielle Trailer:

Man wundert sich nun vielleicht wieso ein so einfaches Spiel in diversen Länder zu den meist verkauften Apps in Apples AppStore gehört. Nicht nur die Original-Version, sondern auch Fortsetzungen und Versionen der Konkurrenz sind erfolgreich. Zuerst gab es ein paar Level, dann kamen neue Themen hinzu. Schliesslich gab es eine zweite App mit ein paar Halloween-Levels. Aus der Halloween-Spezial-Edition wurde dann “Angry Birds Seasons“, welche zu jeder “Jahreszeit” Passende neue Level-Sets veröffentlicht. Bestehende Spieler werden so bei der Stange gehalten, und es kommen immer wieder neue Benutzer dazu, sowohl durch Werbung, als auch durch “Mund zu Mund Propaganda”. Die meisten die einmal Angry Birds gespielt haben, installieren es früher oder später selber.

Der neuste Streich von Rovio ist “Angry Birds Rio“, hier wird nun zum ersten mal das Spielprinzip ein wenig abgeändert. Es müssen nun nicht mehr die Schweine gejagt werden, sondern je nach Level-Set gibt es andere Ziele, so werden zum Beispiel gefangene Vögel befreit, oder Affen gejagt. Rovio lässt sich immer wieder etwas neues einfallen, so dass die Spieler bei Laune gehalten werden. Damit weiter Geld fliesst, wurden weitere Marketing Massnahmen ergriffen, so kann man über die Apps nun auch Plüschtiere kaufen, oder einen “Super Adler” (als Erweiterung des originalen Spieles, um bei kniffligen Levels weiter zu kommen).

Um den Spielern noch ein bisschen mehr Geld aus der Tasche zu ziehen, gibt es für das iPad eine Spezialversion mit überarbeiteter Grafik. Neben Rovio versuchen auch immer wieder Andere Hersteller/Programmierer an den Erfolg von Angry Birds anzuknüpfen. Ein gutes Beispiel ist “Cat Physics“, wobei das Spielprinzip ein bisschen abgeändert wurde.

Fix: AirTunes/iTunes – unbekannter Fehler -15000

Seit dem letzten Update von iTunes sowie dem AirPort Express bekam ich folgenden Fehler: “Unbekannter Fehler -15000″ und nach mehmaligem ausprobieren noch ein paar andere Fehler. Der Grund dafür liegt scheinbar darin, dass nach dem iTunes-Update die Windows-Firewall scheinbar die UDP-Ports blockiert. Dies kann aber relativ einfach wieder freigeschaltet werden.

Hier ist eine detaillierte Anleitung wie die UDP-Ports in Windows 7 wieder freigegeben werden können:

Dazu öffnet man das “Netzwerk und Freigabecenter” und wählt dort die “Windows Firewall”.Da wählt man die “Erweiterten Einstellungen”

Da sucht man dann bei den “Eingehenden Regeln” nach “iTunes”  und öffnet mit einem Rechtsklick die Eigenschaften

Hier kann man nun den “Protokolltyp” von “TCP” auf “Alle” setzen, so werden alle Pakete an iTunes weitergeleitet und AirTunes kann wieder mit iTunes kommunizieren.

Die Musik sollte nun wieder auf die AirTunes-Lautsprecher gestreamt werden können.

Viel Spass mit iTunes und AirTunes…

Vorweihnachtliche Spielfreude: Falcon-X RC Helicopter

Im Rahmen des Advent-Kalenders von Digitec.ch gab es einen Falcon-X RC Helicopter zum Aktionspreis. Ich musste natürlich sofort zuschlagen und bin nun stolzer Besitzer eines kleinen gelben RC-Model-Helikopters:

Falcon-X RC Helicopter

Der Helikopter kommt mit einer (Infrarot-)Fernsteuerung sowie 2 Ersatzrotorblätter und einem zusätzlichen Heckrotor, die Batterien müssen extra gekauft werden.

Der Helikopter wirkt recht stabil (Gestell aus Metall, grösstenteils Aluminium, das Cockpit aus Plastik). Die Verarbeitung ist in Ordnung. Für 29.- CHF kann man nicht mehr erwarten 😉
Weiter verfügt der Heli über einen Doppelrotor und fliegt daher ohne grossen technischen Aufwand stabil und ruhig. Vorallem für Anfänger (wie mich ;)) ist dies von Vorteil. Der Helikopter schwebt mehr oder weniger an Ort und Stelle, wenn er abhebt. Mit dem Heckrotor kann der Helikopter nach vorn oder hinten geneigt werden, so kann man herumfliegen. Die Rotation ist nicht optimal gelöst, es wird jeweils einer der Doppelrotoren schneller oder langsamer bewegt, so dreht sich der Helikopter um seine Achse. Dies hat dann aber auch zur Folge, dass wenn der Akku langsam zuneige geht sich die Höhe verändert, da der Auftrieb nicht mehr gleich gross ist. Damit wären wir auch schon beim nächsten Punkt. Der Akku (ein LiPo) reicht für knapp 5 Minuten Flugspass, wenn er ganz geladen ist. Um ihn zu laden kann man den Heli an der Fernsteuerung anschliessen und über die Batterien der Fernsteuerung laden (oder über ein Universalnetzteil, welches separat erwerbt werden muss). Die Ladedauer beträgt 20-30 Minuten.
Als kleine Spielerei bieter der Heli auch ein paar LEDs welche sich an- und ausschalten lassen.

Soviel zur Theorie, kommen wir nun zur Praxis. Dies ist der erste RC-Helikopter den ich geflogen bin. Das ganze ist relativ einfach, da er selbständig gerade schweben kann, zumindest mehr oder weniger. Nach den ersten paar Flugversuchen ging es schon recht gut, mittlerweile kriege ich sogar Punktlandungen hin. Wichtig ist beim Fliegen vorallem, dass man genügend Platz hat, sowie eine glatte Fläche zum Starten. Je weniger Hindernisse im Weg, desto besser, insbesondere am Anfang. Sollte man doch mal zu nah an ein Hinderniss herankommen, so sollte man sofort weg vom Gas. Der Helikopter überlebt Stürze relativ gut, hat jedoch Probleme wenn die Rotorblätter in harte Gegenstände schlagen. (Deshalb hat es wohl auch zwei Ersatzrotorblätter dabei).

Ein weiterer Trick: Nicht versuchen langsam zu starten, denn in Bodennähe fliegt der Helikopter nicht schön (wohl wegen den Luftwirbel am Boden). Ab ca 1 Meter spürt man davon nicht mehr viel. Aber nicht nur die Luftwirbel am Boden, sondern allgemein Luftbewegungen stören den Helikopter, so solle man die Fenster geschlossen halten und wirklich drinnen fliegen. Bei Wind wird der Helikopter unkontrollierbar. Da es sich um eine 3-Kanal-Fernsteuerung handelt, kann man ihn nicht seitwärts fliegen. Dies wäre aber bei Wind nötig. Ausserdem ist der Heli mit ca 50 Gramm auch viel zu leicht.

Nach den ersten paar Crashs habe ich die Rotoren mit ein wenig durchsichtigem Klebeband geflickt und verstärkt. Wenn die Rotorenblätter irgendetwas berühren, gibts es kleine Kerben. Sie sind definitiv Verbrauchsmaterial. Wer sich einen solcheHelikopter kauft, sollte am besten auch gleich einen Satz ersatzblätter mitkaufen. Die anderen Teile sehen zwar auch recht filigran aus, haben bis jetzt aber noch keinen Schaden genommen.

Fazit: Der Helikopter ist zwar gut verarbeitet und sieht stabil aus, die Rotoren werden aber wohl definitiv “verbraucht”. Das Fliegen macht auf jeden Fall Spass und bis jetzt bin ich begeistert. Es gibt sicher langweiligere Möglichkeiten 29.- CHF auszugeben. Wer schon immer mal einen kleinen (Indoor-)Helikopter haben oder ausprobieren wollte, wird mit dem Falcon-X sicher glücklich. Vorallem für Amateure ist dies eine lustige Sache. Für kleine Kinder würde ich ihn aber dennoch nicht empfehlen, denn allzuviele Crashs liegen wohl nicht drinn 😉

Ich habe auf jeden Fall meine Freude daran und werde mal ausprobieren wie lange ich noch mit den originalen Rotorblätter fliegen kann.

Update: Nachdem die Weihnachtsaktion abgelaufen ist, lohnt es sich evtl. einen Blick bei Amazon reinzuwerfen: FALCON-X – bei Amazon

Und für alle die nicht Sorge tragen zu ihrem Helikopter: Spare Part Pack 1 Ersatzteile f?r neuen RC Hubschrauber Falcon X gelb