Archiv für den Monat: März 2013

Unterwegs in Wollishofen

Gestern bin ich in meine temporäre Wohnung in Zürich-Wollishofen gezogen und wollte mir den Kiez etwas ankucken. Da ich hunger hatte, habe ich bei Google Maps nach nem Bistro gesucht und bin auf das Strudelhaus Poushe aufmerksam geworden, das scheinbar eine kleine Kette in Zürich ist. Da das Angebot lecker aussah und etwa 15 Gehminuten entfernt war, stand mein Ziel fest.

Die reise hat sich gelohnt. Es gibt eine gute Auswahl an verschiedenen Strudeln und anderem Gebäck und einen hervorragenden Espresso. Ich habe mich für die klassische Variante, den Apfelstrudel entschieden.

Ich war dann auch zum erstenmal im Supermarkt einkaufen. (Rund-um-die-Uhr-Verpflegung auf dem Arbeitsplatz hat auch Vorteile ;)) Die große Auswahl an Produkten, sowohl nationale als auch ausländische hat mich überrascht. Sowas bräuchte es auch in Deutschland. Am coolsten fand ich die Zopftierliköpfli (habe ich schon gesagt, dass mich Wörter mit i am Ende mittlerweile extrem nerven?) und das Titanium-Bier. Letzteres kommt zwar aus Belgien, aber ich muss es trotzdem testen. Natürlich erfüllt es nicht die Anforderungen des Reinheitsgebots, da es mit Zucker zubereitet wird, aber manchmal muss man das einfach in Kauf nehmen.

Geschrieben von Kap. Zuletzt geändert am 20. November 2013.

Bundesrat winkt Leistungsschutzrecht durch

Umstrittenes Internetgesetz Bundesrat winkt Leistungsschutzrecht durch

Die SPD findet das Gesetz schlecht, unternimmt aber lieber nichts dagegen: Der Bundesrat hat zum umstrittenen Leistungsschutzrecht nur eine Stellungnahme beschlossen, das Gesetz wird nun in Kraft treten. Der von den Sozialdemokraten angekündigte Widerstand blieb aus.

Was musste ich da gerade in meinem Lieblings-Boulevard-Blatt Spiegel Online lesen? Das missratene Leistungsschutzrecht wurde heute durch den Bundesrat gewunken. Die SPD und Meinung-wechsel-dich-Peer haben kein Rückgrat bewiesen und das Gesetz ohne es in den Vermittlungsausschuss zu schieben passieren lassen.

Die Zukunft wird zeigen, ob die schlimmsten Befürchtungen wahr werden, oder ob sich das Gesetz als überflüssiger Stapel Papier erweist.

Im Artikel wird explizit darauf hinweisen, dass die Verlinkung unter Nutzung des Titels und Anrisstextes OK sei, daher nutze ich diese Erlaubnis natürlich aus ;) .

Geschrieben von Kap. Zuletzt geändert am 31. März 2019.

Einfaches Öffnen von Dateien von der Kommandozeile in Linux

Ich habe auf Macs den netten Befehl open gesehen, mit dem man von der Kommandozeile Dateien mit dem zugehörigen Programm öffnen kann, zum Beispiel Bilder oder PDF-Dokumente.

Da Mac OS ja auf Linux basiert, hätte ich vermutet, dass es sowas auch auf meinem Ubuntu-System gibt. Leider hat sich das als falsch herausgestellt. Nach einigem Suchen bin ich im Internet auf ein Programm namens xdg-open entdeckt, was das gleiche tut.

Leider ist der Name nicht so schön zu schreiben, ich empfehle daher den Eintrag

alias open=xdg-open

zur ./bashrc hinzuzufügen.

Geschrieben von Kap. Zuletzt geändert am 21. März 2013.

SVN-Revisionen mit NetBeans automatisch einfügen

Insbesondere in OpenSource-Projekten, bei denen Benutzer verschiedene Versionen der Software haben können, kann es zu Debugging-Zwecken sehr interessant sein, die SVN-Version einfach lesbasr zu machen.

Ich beschreibe hier eine Variante unter Windows mit TortoiseSVN und NetBeans.

SVN bietet die Möglichkeit, bestimmte Strings durch die Versionsnummer einer einzelnen Datei ersetzen zu lassen. Schreibt man in eine Datei den String $Rev:$, wird von SVN der Text automatisch durch die aktuelle Revision der Datei ersetzt, also zum Beispiel zu $Rev: 2658 $. Man muss dazu für die ausgewählte Datei ein Schlüsselwort aktualisieren. Bei Tortoise muss im Kontextmenü der Datei der Menüeintrag „TortoiseSVN | Properties“ ausgewählt werden und im sich öffnenden Fenster „New | Keywords“. Von den möglichen Keywords muss „Revision“ ausgewählt werden.

Durch diese Einstellung kann für jede Datei die Version der Datei gespeichert werden. Nun mag es aber auch interessant sein, die aktuellste Version zu haben. Tortoise bietet dazu das Tool subwcrev an. Es kann eine Template-Datei lesen und in dieser Datei sämtliche Vorkommen von $WCREV$ durch die maximale SVN-Revision aller Dateien im Repository zu ersetzen. Bei einer standardmäßigen Installation ist das Tool im Windows-Pfad enthalten und kann direkt aufgerufen werden. Ansonsten ist es unter /bin im Tortoise-Verzeichnis zu finden.

Wir gehen davon aus, dass wir eine Datei version.tmpl haben, in der nur $WCREV$ steht. Wir wollen eine Datei version.txt erstellen, in der die Versionsnummer steht. Der der Aufruf auf Befehlszeile lautet subwcrev . version.tmpl version.txt. Die Ausgabe enthält noch weitere Informationen und sieht zum Beispiel so aus
SubWCRev: 'D:DokumenteProgrammeTool'
Last committed at revision 2657
Mixed revision range 2655:2657
Local modifications found

Damit dieser Befehl nicht jedes mal manuell aufgerufen werden muss, kann man ihn in das NetBeans-Build-Script eingefügt werden. Dazu wird die Datei build.xml bearbeitet. Direkt nach <import file="nbproject/build-impl.xml"/>

fügen wir das Folgende hinzu:

<target name="-pre-compile">
<exec executable="subwcrev" output="svn-revision.log">
<arg line=" . version.tmpl version.txt">
<exec>
<target>

Damit teilen wir der Entwicklungsumgebung mit, dass vor dem Kompilieren das subwcrev-Tool ausgeführt werden soll, welche Parameter übergeben werden wollen und dass die Ausgabe in der datei svn-revision.log gespeichert werden soll. Falls etwas falsch angegeben worden ist, werden die Fehlermeldungen ebenfalls in diese Datei geschrieben.

Nun noch ein Beispiel, wie im Programm auf die Versionsinfos zugegriffen werden kann. Ich habe einen doppelten Ansatz gewählt: es wird versucht, den Text der Datei version.txt einzulesen. Falls dabei etwas schiefgeht, wird die lokale SVN-Revsionsnummer genommen.

/** SVN version */
public final static String revision = getVersion();
 
/**
* Reads the svn revision from a file with name 'version.txt'. If an exception
* occurs, the revision of this source code file is returned. WARNING: no error
* checks are performed!
*/
private static String getVersion() {
  try {
    return new String( Files.readAllBytes( Paths.get( "./version.txt" ) ) );
  } catch( IOException ex ) {
    return "> $Rev: 2658 $"; // return emergency value
  }
}

Das war’s auch schon. Nun kann man im Programm auf die aktuelle Revisionsnummer zugreifen. Die Textdatei wird bei jeder Ausführung von Clean & Build ausgefüht.

Alternativ kann man natürlich auch eine Java-Klasse als Template erzeugen und somit auf das Einlesen verzichten. In dem Fall bietet es sich an, eine eigene Klasse nur für den Versionstext zu entwickeln, da sonst immer das Template verändert werden muss, nicht die „richtige“ Quelldatei.

Geschrieben von Kap. Zuletzt geändert am 18. März 2013.

Die Crux mit Picasa und Google+

Die Bilder für das Blog lade ich bei Picasa (bzw. Google+, ist ja nun das gleiche) hoch. Dort konnte ich bisher prima die Links zu den Bildern erzeugen. Doch seit kurzem leitet mich Google immer automatisch auf die Google+-Fotos-Seite weiter, wenn ich versuche Picasa anzusteuern.

Wenn die beiden Produkte in ihren Fähigkeiten ähnlich wären, wäre das kein Problem. Leider gibt es in G+ noch keine Möglichkeit, Links zu den Bildern zu generieren. Ein großes Manko!

Zum Glück bin ich nicht der einzige mit diesem Problem. Georg Maschke hat auch eine Lösung parat. Man hängt an den Link einfach den Parameter

?noredirect=1

an. Wenn der Link bereits Parameter enthält (also nicht direkt auf die Picasa-Startseite sondern auf eines eurer Alben zeigt), muss man das Fragezeichen ersetzen und der Link wird so ergänzt:

&noredirect=1

Hoffen wir mal, dass Google bald die fehlenden Features in G+ nachrüstet.

Geschrieben von Kap. Zuletzt geändert am 1. November 2013.

Damsel in Distress

Gestern wurde die erste Folge von Anita Sarkeesians Doku-Serie Tropes vs. Women in Video Games veröffentlicht. Die Veröffentlichung über feministfrequncy legt nahe, dass es mal wieder aus feministischer Sicht gegen Sexismus geht.

Ich habe mir die erste Folge Damsel in Distress: Part 1 angesehen um zu sehen, was davon zu halten ist. Die Ankündigung auf Kickstarter hat sich jedenfalls interessant angehört.

Worum geht es? Anita Sarkeesian beschreibt ein Phänomen in Computerspielen, dass sie „Damsel in Distress“ nennt. Dabei geht es um den Fakt, dass ein weiblicher Charakter eingesperrt, gefangen, seiner Macht beraubt wird und von einem Helden befreit werden muss. Als berühmte Beispiele führt sie Peach (Toadstool), Daisy aus den Mario-Spielen und Zelda an.

Das und die weiteren Beispiele fand ich sehr interessant, ich finde Tropes ja generell interessant, auch in Filmen. Es macht auch Spaß, sie in Filmen zu suchen. Mit ihrer anschließenden Kritik übertreibt sie imho jedoch. Durch die wiederholte Verwendung würde der Eindruck gefördert, dass Frauen generell schwächer als Männer sind und sich nicht allein zur Wehr setzen können. Ich sehe das nicht so schwerwiegend. Generell sollte man ein Weltbild haben, das sich nicht zu 100% aus aufgenommenen Infos aus Filmen, Spielen und Büchern entstammt. Weiterhin sind die Szenarien ja nicht immer untypisch. Die Prinzessinnen sind ja nicht eigentlich wehrhafte Frauen, sondern eben Prinzessinnen. Marios erster Auftritt in Donkey Kong, dem er Pauline entreißen muss, fällt natürlich auch in die Kategorie. Dafür gibt’s aber mit der Donkey Kong: Pauliene Edition eine moderne Revanche.

Weiterhin kritisiert sie, dass in modernen Neuauflagen und Fortsetzungen das Prinzip nicht aufgegeben wird. Nun, in neuen Spielen darf das gern anders sein. Aber wenn die Prinzessin auf einmal Mario retten muss, möchte ich das nicht mehr spielen ;) Zu den Neuauflagen: es handelt sich dabei teilweise um 1:1-Umsetzungen, in denen nur die Grafik verändert wurde.

Was mir etwas fehlte: mittlerweile gibt es ja bekanntermaßen starke weibliche Charaktere, wie zum Beispiel Lara Croft und Cate Archer (auch wenn es dabei natürlich andere Probleme gibt ;)). Doch auch früher gab es bereits die zahlreichen Frauen in Beat ’em ups wie Tekken (Anna, Nina, Julia, Ling Xiaoyu, etc) und Street Fighter (Chun-Li) und in den Rollenspielen. In den vielen Final-Fantasy-Teilen gab es zahlreiche weibliche Charaktere, darunter zum Beispiel Refia (FF3), Rinoa (FF8) Yuna, Lulu, Rikku (FFX) und Lightning (FF13). In Secret of Mana waren zwei der drei Hauptcharaktere weiblich und beide deutlich cooler als der „Held“. Ebenfalls in den 80ern wurden zwei berühmte Charaktere eingführt, die das Damsel-in-Distress-Thema auf den Kopf stellen: Samus Aran und Giana, die gerade erst ein neues Spiel spendiert bekommen hat. Ich könnte die Liste noch endlos fortsetzen, und das sind nur Spiele, die ich gespielt habe ;)

In einer Sache muss ich Anita Sarkeesian jedoch zu 100% recht geben: das 1999 entwickelte Spiel Dinosaur Planet hätte wie geplant rauskommen sollen. Stattdessen haben wir nun ein Star Fox Adventures… Danke Miyamoto :-/ Naja, man kann ja nicht immer genial sein. Geschickterweise „vergisst“ sie auch noch, dass Krystal versucht die Prinzessin zu befreien. Aber sie sieht den Damsel-in-Distress-Trope nur erfüllt, wenn ein Mann eine Damsel rettet.

Hier noch die Szenen aus Dinosaur Planet:

Geschrieben von Kap. Zuletzt geändert am 31. März 2019.

Welcome, Noogler :)

Anfang der Woche hat mein Praktikum bei Google angefangen, ich bin also ein Noogler. Da ich in Zürich arbeite, bin ich außerdem noch ein Zoogler. Außer solch eher nutzlosen Fakten habe ich in vielen einführenden Kursen auch nützliches gelernt, und davon extrem viel. Außerdem habe ich dem Gourmet-Essen zugesprochen :)

Ich wurde über erwünschtes und unerwünschtes Verhalten aufgeklärt; selbstverständlich darf ich nicht Evil sein. Die wahre Mission von Google ist aber „to organize the world’s information and make it universally accessible and useful“. Die zugehörige Google-Philosophie finde ich ausgesprochen gut :) mit so einer Übereinstimmung hätte ich nicht gerechnet. Überraschenderweise gehört ein Kurs in Kaffezubereitung ebenfalls zur Einführung, und das nicht nur für Praktikanten! Nicht zuletzt habe ich noch meinen Laptop bekommen. Ein MacBook :( aber immerhin mit viel RAM…

Ich mit Noogler-Cap.

Heute beim habe ich dann meine Noogler-Cap bekommen. Obwohl, streng genommen bin ich kein Noogler mehr: Das ansonsten hervorragende Essenserlebnis wurde einmal von einem eher unterirdischen Tiramisù getrübt. Und es gilt die Regel: Wer anfängt sich über das Essen zu beschweren, ist kein Noogler mehr ;)

Beim TGIF bin ich auch zum erstenmal gerutscht, ein Foto davon reiche ich noch nach.

Geschrieben von Kap. Zuletzt geändert am 20. November 2013.

Jetzt gehts los!

Nach all dem Aufwand nun nur noch ein paar Stunden Zugfahren und eine Nacht, dann geht mein Praktikum bei Google in Zürich endlich los :) Sehr geil!

Geschrieben von Kap. Zuletzt geändert am 3. März 2013.