Google AdSense

Über mich
blafoo: Software-Entwickler & Onliner
Neuestes Spielzeug: Asus EeePad Transformer, ICS
Mein Handy: LG Optimus Speed, Custom Rom V20Q

Freunde


Statistik
Gesamtbeiträge:  18
Gesamtkommentare:  1
Heutige Besucher:  8
Gesamtbesucher:  18410


Aktuelle Kommentare
by Sommer 2011

Schlecher geht's nicht mehr - oder ?

Yoda läßt grüßen !

 

Von: Postmaster@talanx.com

Gesendet: Mittwoch, 21. März 2012 09:15

An: Talanx-Konzern

Betreff: Ihr PayPal-Konto blockiert werden konnte.

 

 

Sehr geehrter PayPal-Mitglied,

aufgrund eines automatisierten Abgleiches Ihrer Kundendaten

mit Vergleichsstatistiken wurde das Risiko eines Zahlungsausfalls fur Ihr Konto als uberdurchschnittlich hoch eingestuft. Um weiterhin problemlos Ihr PayPal-Konto nutzen zu konnen, bitten wir Sie Ihre Daten - als Sicherheit bei Zahlungsausfallen - bei uns erneut zu registrieren. Verwenden Sie bitte den Link unten, um Ihre Daten zu aktualisieren.

 

http://paypaonline.blo.pl/

 

Wir bitten die Unannehmlichkeiten zu entschuldigen, dieses Vorgehen ist allerdings aufgrund vermehrter Betrugsversuche erforderlich.

 

Mit freundlichen Gruben

Ihr PayPal Kundenservice

Copyright (c) 1999-2012 PayPal. All rights reserved

PayPal Germany & Austria Pty Limited

ABN 76 966 195 389 (AFSL 304962)

Kirschen pflücken mit git

oder "wie mache ich ein git cherry-pick von einen Branch aus einen Remote Repo" ?

 

Heute stand ich vor dem Problem, dass ein c:geo Pull Request vier Commits enthielt, von denen aber nur ein einziger relevant war. Diesen einen commit wollte ich selektiv übernehmen, ohne durch die drei anderen die commit Historie zu "versauen". Folgendermaßen habe ich es dann hinbekommen.

> git remote add campbeb https://github.com/campbeb/c-geo-opensource.git

> git fetch campbeb

remote: Counting objects: 70, done.
remote: Compressing objects: 100% (27/27), done.
remote: Total 42 (delta 26), reused 26 (delta 10)
Unpacking objects: 100% (42/42), done.
From https://github.com/campbeb/c-geo-opensource
 * [new branch]      fix933     -> campbeb/fix933
 * [new branch]      fix946     -> campbeb/fix946
 * [new branch]      fix963     -> campbeb/fix963
 * [new branch]      fix966     -> campbeb/fix966
 * [new branch]      fixHumanDistanceTest -> campbeb/fixHumanDistanceTest
 * [new branch]      master     -> campbeb/master
 * [new branch]      release    -> campbeb/release

> git cherry-pick 42a7063f7e52c1691eb70ddb2f08e3aad34ce8f4

> git commit

Fat32 für Windows 7

Hin und wieder stehe ich vor dem Problem, externe Festplatten oder USB-Sticks mit mehr als 8GB für nicht-Windows Systeme formatieren zu müssen. Windows 7 bietet - im Gegensatz zu seinen Vorgängern - dazu nicht mehr die Möglichkeit an, dass Dateisystem als Fat32 zu formatieren:

 

Fat32

 

NTFS und exFAT als Dateisystem werden aber i.d.R. von nicht-Windows Systemen nicht unterstützt.

Zur Lösung des Problemes git es Fat 32 Formatter. Damit kann über die Kommandozeile eine externe Festplatte oder ein USB-Stick mit Fat32 formatiert werden.

Emma ?!

Emma ist ein Code Coverage Tool, u.a. auch für Android. Damit lassen sich Auswertungen erstellen, welcher Code während der Programmausführung auch wirklich ausgeführt wurde. Emma benötigt dazu sogenannten instrumentieren Code. Zum Instrumentieren wird ein Virtual Device oder ein gerootetes Gerät benötigt. Das hängt mit den benötigten Berechtigungen zusammen. Da nicht jeder Entwickler ein gerootetets Gerät hat, instrumentieren wir hier ein Virtual Device mit dem Namen "Virtual".

Das Virtual Device benötigt außerdem eine (emulierte, zusätzliche) SD-Karte. Emma schreibt die Daten auf diese SD-Karte, da keine Berechtigungen für /data vorhanden sind, wohin Emma üblicherweise schreibt.

Los geht's. Einmalig eine Datei für die "SD-Karte" erzeugen:

> %ANDROID_SDK%\tools\mksdcard 256M %ANDROID_SDK%\tools\mysdcard

Das Virtual Device starten:

> %ANDROID_SDK%\tools\emulator -avd Virtual -sdcard %ANDROID_SDK%\tools\mysdcard

Virtual ist dabei der Name des Virtual Devices. Als nächstes wird eine ant build.xml für das eigentliche, zu untersuchende Projekt erzeugt (sofern noch nicht vorhanden). Basis dafür ist die AndroidManifest.xml Datei:

> %ANDROID_SDK%\tools\android update project --path . --target android-8

--path und --target müssen natürlich angepasst werden.

Ins Testprojekt wechseln, und dort ebenfalls die ant build.xml erzeugen:

> %ANDROID_SDK%\tools\android update test-project --path . --main ..

Jetzt können wir endlich instrumentieren und Emma ausführen:

> ant -Demma.dump.file=/sdcard/coverage.ec emma instrument install test

Aber nach kurzer Zeit erscheint:

test:
     [echo] Running tests ...
     [exec] Syntax error: Bad substitution

Häh ?

Ursache ist ein Fehler in der verwendeten build.xml (hier: rev14) die Bestandteil des Android-SDKs ist. Tritt der Fehler auf, so muss in %ANDROID_SDK%\tools\ant\build.xml im Abschnitt

      <macrodef name="run-tests-helper">
        <attribute name="emma.enabled" default="false" />
                 ...
                <arg value="${manifest.package}/${test.runner}" />
            </exec>
        </sequential>
    </macrodef>

durch

      <macrodef name="run-tests-helper">
        <attribute name="emma.enabled" default="false" />
                 ...
                <arg value="${tested.manifest.package}/${test.runner}" />
            </exec>
        </sequential>
    </macrodef>

ersetzt werden.

Nach der Korrektur weiter mit dem nächsten Versuch:

> ant -Demma.dump.file=/sdcard/coverage.ec -Dtested.manifest.package=xxx.xxx.xxx emma instrument install test

Kommt es zu diesem Fehler

test:
     [echo] Running tests ...
     [exec] INSTRUMENTATION_STATUS: id=ActivityManagerService
     [exec]
     [exec] INSTRUMENTATION_STATUS: Error=Unable to find instrumentation info fo
r: ComponentInfo{xxx.xxx.xxx/android.test.InstrumentationTestRunne
r}
     [exec] INSTRUMENTATION_STATUS_CODE: -1
     [exec] android.util.AndroidException: INSTRUMENTATION_FAILED:xxx.xxx.xxx /android.test.InstrumentationTestRunner

so liegt es daran, dass die Projekt und die Test-Projekt Sourcen das gleiche Package verwenden. Zum Instrumentieren sollten die Test-Projekt Sourcen in einem xxx.xxx.test Package sein.

Next try.

> ant -Demma.dump.file=/sdcard/coverage.ec -Dtested.manifest.package=xxx.xxx.xxx.test instrument install test

Nach einiger (?) Zeit sollte in der Kommandozeile folgendes erscheinen:

     [exec] Generated code coverage data to /sdcard/coverage.ec
     [echo] Downloading coverage file into project directory...
     [exec] 24 KB/s (3809 bytes in 0.151s)
     [echo] Extracting coverage report...
     [echo] Cleaning up temporary files...
     [echo] Saving the report file in .../coverage/coverage.html

Heureka !

Das Ergebnis kann man sich dann mit

> start coverage\coverage.html

anzeigen lassen.

Tipp 1: ist die Code Coverage für das eigentliche Projekt 0%, so werden dort nicht die instrumentierten Dateien verwendet. Ich habe mir damit beholfen, dass ich meine <Projekt>-instrumented.apk nach <Projekt>-debug.apk umbenannt und installiert habe. Ich kann es mir nur so erklären, dass noch eine <Projekt>-debug.apk auf dem System vorhanden ist, und aufgrund des Dateinamens im Classpath vor der <Projekt>-instrumented.apk gefunden wird.

Tipp 2: die Code Coverage für das Testprojekt wird nicht richtig angezeigt. Ursache ist, dass für die Auswertung auf die Datei coverage.em im Hauptrojekt zugegriffen wird. Hier fehlen aber die Informationen über das Testtrojekt. Einen funktionierenden Workaround dafür habe ich nicht gefunden, falls jemand eine Lösung findet würde ich mich über ein kleines How-To freuen.

Weiterführende Infos gibt es auf android developers.

"Git Bash Here" anpassen

Für die Mitarbeit am Open-Source Projekt "c:geo open source" nutze ich "Git for Windows". Bestandteil der Installation ist eine Integration in den Windows Explorer, so dass es möglich ist, über einen Rechtsklick eine "Git Bash Here" zu öffnen. Der einzige Nachteil: ich muss jedesmal die Größe des Fensters (ist mir zu klein) als auch den "Quick Edit-Modus" (ist ausgeschaltet) manuell anpassen. Ein Speichern der geänderten Einstellungen ist nicht möglich, da "Git Bash Here" einen temporäre Verknüpfung auf sh.exe im Git-Installationsverzeichnis erzeugt, die nach dem Aufruf sofort gelöscht wird. Als Workaround habe ich mir daher folgende Lösung einfallen lassen:


1. regedit aufrufen

Den Standard-Wert "Wscript "<Git Installationsverzeichnis>\Git Bash.vbs" "%1"" (ohne die äußeren Anführungszeichen) für den Schlüssel "HKEY_CLASSES_ROOT\Directory\shell\git_shell\command" in "<Git Installationsverzeichnis>\Git Bash.cmd" "%1"" (ohne die äußeren Anführungszeichen) ändern.

2. Git Bash.cmd erzeugen

Im Git Installationsverzeichnis (bei mir C:\Programme\Git) die Datei "Git Bash.cmd" mit diesem Inhalt anlegen:

@C:\WINDOWS\system32\cmd.exe /c "cd %1 & <Git Installationsverzeichnis>\bin\sh.exe --login -i"

3. Git Bash Here aufrufen

Die entsprechenden Einstellungen vornehmen und speichern ,-)

1 2 3 4
Photo station