Projektidee: Android VVO Fahrplan App

ScreenshotDes Öfteren steh ich in Dresden in der Stadt und frage mich wie ich denn nun nach wieder nach Hause komme. Die Lösung bisher, war das aufrufen der VVO Homepage bzw. das Nutzen das SMS Infoservice. Warum also nicht eine eigene App für diesen Zweck bauen.

Features

  • komfortable Eingabemöglichkeit
  • Orte speicherbar
  • “Wo bin ich? Wie komm ich nach Hause?” (GPS Ortung der aktuellen Position)

Nice to have

  • “Wie komme ich von hier zu der Haltestelle?” (Navigation)

Update: Aktuell existiert mit Öffi schon eine recht Gute App für die Routenplanung und Abfahrtszeiten in der Nähe.

GTX470 mit Hitzeschaden

Ich hatte inzwischen schon zwei mal das Vergnügen meine  Nvidia GeForce GTX470 (MSI) einzuschicken, weil sie hitzebedingte Ausfälle zeigte. Dabei sollte die Hitze nicht das Problem sein, denn der Lüfter hat noch reichlich Reserven. Bei einer Temperatur von über 80°C erreicht der Lüfter mit automatischer Steuerung gerade einmal 60% der möglichen Drehzahl. Dadurch ist der Lüfter zwar schön leise, aber was nützt mir das wenn ich dadurch bunte Artefakte auf dem Bild sehe, der Treiber sich ständig zurücksetzt oder das System gleich ganz abstürzt?

Vermutlich ist an dieser Stelle auch der Grund zu suchen warum MSI bei dem GTX465 Karten die Lüftersteuerung viel zu scharf eingestellt, sodass die Karten schon bei 50°C auf dem Desktop alles andere als leise sind.

Ich freue mich also schon auf die nächste Karte, die dann hoffentlich nicht solche Ausfallerscheinungen zeigt, bzw. werde ich da von Anfang an der Lüftersteuerung auf die Sprünge helfen.

Howto: Google Android – Kommunikation via HttpClient und JSON

Da es für Java jede Menge unterschiedliche Implementierungen eines HTTPClient gibt, hier mal ein Beispiel für die die Variante der Apache Foundation die im Google Android SDK zum Einsatz kommt. In diesem Beispiel geht es darum sich auf einem entfernten Server einzuloggen und anschließend Daten via JSON abzufragen und wieder in getypte Java Objekte umzuwandeln. Dabei speichert der Server den Login-Status in einer Session. Die SessionID wird auf der Clientseite in einem Cookie gespeichert, und muss bei jeder Anfrage mitgesendet werden.

Funktionsweise

Verbindung herstellen

HttpGet get = new HttpGet(String.format("%s?username=%s&password=%s", loginUrlHost, user, pass));
DefaultHttpClient client = new DefaultHttpClient();
ResponseHandler responseHandler = new BasicResponseHandler();
HttpResponse response = client.execute(get);

Anwort auswerten

int statusCode = response.getStatusLine().getStatusCode();
if (statusCode == 200) {
String responseText = responseHandler.handleResponse(response);
}

JSON parsen

import org.json.JSONException;
import org.json.JSONObject;

public class LoginResponse extends JSONObject {
    private boolean success;
    private String message;

    public LoginResponse(String string) throws JSONException {
        super(string);
        success = getBoolean("success");
        message = (get("message").equals(null))?"":getString("message");
    }

    public boolean isSuccess() {
        return success;
    }

    public String getMessage() {
        return message;
    }
}
LoginResponse loginResponse;
 try {
 loginResponse = new LoginResponse(responseText);
 } catch (JSONException e) {
 Log.d("LOGIN_ERROR(INVALID_RESPONSE)", e.getMessage(), e);
 errorState = INVALID_RESPONSE;
 return INVALID_RESPONSE;
 }

Cookies auslesen

List cookies = client.getCookieStore().getCookies();
 for (int i = 0; i < cookies.size(); i++) {
 Cookie cookie = cookies.get(i);
 Log.d("Cookie-Name:", cookie.getName());
 Log.d("Cookie-Value:", cookie.getValue());
 break;
 }

Cookies senden

DefaultHttpClient client = new DefaultHttpClient();
CookieStore cookieStore = client.getCookieStore();
cookieStore.addCookie(loginCookie);
client.setCookieStore(cookieStore);

Howto: PDF Formulare mit PHP ausfüllen

Wie erzeuge ich ein Formular?

PDF Formulare kann man entweder direkt mit PHP erzeugen z.B. mit der Klasse tcpdf oder aber, wenn man Wert darauf legt das dass Ganze ansprechend aussieht, mit OpenOffice. Natürlich funktioniert das ganze auch mit den Produkten von Adobe.

Wie fülle ich das Formular aus?

Adobe stellt mit FDF ein Format zur Verfügung mit den es möglich ist PDF Formulare auszufüllen. Die FDF Datei selbst enthält dabei die Daten die in die Felder eingesetzt werden sollen und den Namen des dazu gehörenden PDF Formats.

Wenn man diese Methode benutzt erhält man schon mal ein ausgefülltes Formular. Das ist aber immer noch kein PDF und abhängig vom ursprünglichen Dokument.

Wie wird daraus wieder ein PDF?

An dieser Stelle kommt das PDF Toolkit ins Spiel. Diesem Tool, das man irgendwo auf den Server ablegt, übergibt man die PDF und FDF Datei und erhält eine neue ausgefüllte PDF Datei.

Angespielt: Modern Warfare 2 im Multiplayer

Schon schlimm genug, dass man wenn man allein an einer Multiplayer-Partie von Modern Warfare 2 teilnehmen will, mehrere Versuche benötigt und deshalb reichlich Geduld mitbringen muss.

Wenn man das ganze dann noch mit einer Gruppe von Freunden versucht, und sei es nur einer, ist es nahezu gänzlich zum scheitern verurteilt. Die Bildung der Gruppe scheitert mit immer anderen Fehlern und wenn es dann doch einmal geklappt hat und die Suche nach einem Host erfolgreich war, fliegt nach Ablauf des Counters die Hälfte der Spieler aus der Lobby, darunter natürlich auch der Freund mit dem man zusammen spielen will. Eine halbe Stunde später wenn man dann endlich wieder an diesem Punkt angekommen ist und endlich des Level geladen wird, hat man einen völlig unbrauchbaren Host und das Spielchen beginnt wieder von neuem.

Dieses ganze Problem wäre zu umgehen gewesen, wenn man die üblichen dedizierten Server verwenden würde. Welchen Sinn hat eine integrierte Freundesliste, wenn man alle 10 Minuten gezwungen ist den Host zu wechseln und sowieso nicht wieder auf die gleichen Leute trifft. Mit diesen Leuten eine Gruppe zu bilden funktioniert ja auch nicht zuverlässig.

Howto: Administrative Freigaben unter Windows 7 mit Heimnetzgruppe

Der Zugriff auf administrative Freigaben wie C$ bereitet unter Windows 7 wie schon unter Vista so einige Probleme.
Zu aller erst muss der schon von Vista bekannte Registry Schlüssen gesetzt werden „HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Policies/System/LocalAccountTokenFilterPolicy = DWORD:0x1“.

Das nächste Problem entsteht durch die vorhandene Heimnetzgruppe in der man auf anderen Rechnern automatisch als HomeGroupUser$ angemeldet wird. Da man sich pro Rechner nur mit einen Benutzer gleichzeitig anmelden kann, erscheint auch bei Eingabe des richtigen Nutzers samt Kennwort immer Zugriff verweigert.

Abhilfe schafft hier die Einstellung: „Benutzerkonten und Kennwörter zum Herstellen von Verbindungen mit anderen Computern verwenden“ in den erweiterten Freigabeeinstellungen. Für Leute die ihr Benutzerkonto nicht mit einer Live-ID verknüpft haben sollte das ganze nach einen Neustart funktionieren.

Wer dies allerdings getan hab wird sehen das es auf dem anderen Rechner immer mit seiner Live-ID angemeldet wird statt mit seinem echten Nutzernamen. Dieses Problem lässt sich nur lösen indem man die Verknüpfung von Live-ID und Nutzerkonto wieder löst.

Howto: iTunes mit Multimediatasten steuern

Wer auch das Problem hat, dass iTunes damit es auf die Multimediatasten moderner Tastaturen reagiert, zwangsläufig im Vordergrund sein muss benötigt ein Plugin welches Abhilfe schafft. Das Plugin sorgt dafür das iTunes fortan auch auf globale Tastendrücke reagiert, wenn es z.B. minimiert ist oder nicht den Fokus besitzt.
Ursprünglich stammt das Plugin vom Nutzer localhost im aqua-soft Forum. Es handelt sich dabei um eine einzelne DLL Datei, die in das Plugin Verzeichnis von iTunes kopiert werden muss.

Bei XP z.B.: „C:\Programme\iTunes\Plug-Ins“
Bei Vista/7: „C:\Benutzer\\AppData\Roaming\Apple Computer\iTunes\iTunes Plug-ins“

Eingeschlafen: Colin McRae DiRT2

Was haben GTA 4 und Colin McRae: DiRT 2 gemeinsam? Beides sind Titel unter dem Label Games for Windows LIVE und brauchen mehr als eine halbe Stunde zur Installation. Warum ist das so? Meine Vermutung ist, das man den Leuten da zu häufiges Wechseln der Datenträger ersparen will und dadurch die Daten auf den DVDs so stark komprimiert, dass der Installer für eine Datei alleine mal locker 10 Minuten benötigt. Mal ehrlich, ich wechsele lieber 3 mal die DVD als minutenlang einer Statusanzeige zuzusehen bei der sich nichts tut. Da man aber dann ein paar Cent für weitere Datenträger an Produktionskosten hätte, wird sich in dem Bereich wohl nichts ändern.

Howto: Fix für Shader Compliation Error bei Shaun White Snowboarding

Wer auch das Problem hat, dass die Retail Version von Shaun White Snowboarding unter Windows 7/8 einen „shader compilation error“ beim Start meldet, kann das Problem ähnlich lösen, wie wenn dieses bei der Steam Version auftritt.
Man kopiert die Datei „EKShadersPC.BIN“ von „\ProgramData\Ubisoft\SWSnow“ nach „\Users\Public\Ubisoft\SWSnow“ und in der Ordner in dem das Spiel installiert ist.

Für die „ShaunWhiteSnowboardingGame.exe“ muss in den Eigenschaften der Kompatibiltätsmodus für Windows XP SP3 aktiviert werden.

p.s. Wer zusätzlich noch gerne eine höhere Auslösung hätte, findet die Einstellungen in der Registry unter „HKEY_CURRENT_USER\Software\Ubisoft\ShaunWhiteSnowboarding\1.0\Engine“ (ScreenResolutionHeight, ScreenResolutionWidth)

 

Angespielt: Need for Speed: Shift

Nach dem Prostreet Debakel schien die Need for Speed Serie dem Untergang geweiht, doch wie EA nun mal ist, muss jede Marke bis zum Ende ausgeschlachtet werden. Deswegen gibt es jetzt Shift. Auch dieser Teil versucht wie Prostreet ein seriöses Rennspiel zu sein und wieder gelingt es nicht.

In Sachen Grafik hat sich immer noch nichts getan, dafür aber bei den Unschärfe-Effekten diese sind mal wieder mehr geworden. Positiv zu erwähnen bleibt die Cockpit-Ansicht, die aber bei „hohen“ Geschwindigkeiten ebenfalls unscharf wird. Das Spiel vermag es keineswegs auch nur ansatzweise den Eindruck von Realismus zu erwecken. Angefangen bei dem fehlenden Geschwindigkeitsgefühl, über unglaubwürdige Fahrphysik, hin zum wie immer nahezu nutzlosen Schadensmodell.

Es mag sein das ich von den Codemasters Titel verwöhnt bin, aber über die Jahre sollte auch EA verstanden haben, das man sowohl Auto als auch Strecke einen Ausritt ins Kiesbett oder einen Aufprall mit 100km/h in die Leitplanke ansehen sollte. Die Entwickler scheinen ebenfalls nicht verstanden zu haben, worum es in einem Rennspiel geht, denn bei Shift verbringt man wegen der extrem kurzen Rennen mehr Zeit in Menüs als auf der Strecke.

Ebenso wenig Motivation bringt das Sterne System, da die Punkte viel zu beliebig für alle möglichen Aktionen vergeben werden und nahezu keinen Anspruch an den Spieler stellen.

Wer also ein gutes Rennspiel will, spielt weiterhin Race Driver GRID oder wartet noch ein paar Tage auf Colin McRae: DiRT 2.

Zu EA kann ich nur sagen, wenn ihr die Need for Speed Serie retten wollt, besinnt euch endlich auf die Wurzeln der Serie. Und damit sind keine getunten Serienwagen gemeint, sondern Nobelkarossen auf interessanten, wenn auch unrealistischen Strecken auf denen man von der Polizei verfolgt wird und ein Schadensmodell das den Namen endlich verdient. Und damit es auch der letzte versteht: Ein Remake von Need for Speed 4 mit heutigem Stand der Technik.