Archiv der Kategorie: Allgemein

Dies und das, was sonst nicht passt.

Lustiger Android

Heute habe ich angefangen, mich mit CSS3 zu beschäftigen und dabei gerlernt, wie man einen kleinen Android designt. Er scheint recht gut drauf zu sein und man kann ihn sogar kitzeln ;)

Sollte in allen aktuellen Versionen der verbreiteten Browser funktionieren.

Selber ausprobieren

Im Folgenden beschreibe ich, wie ihr selbst einen Android bauen könnt. Es ist nicht sehr schwer :)

Bevor wir anfangen, müssen wir aber erst noch die Android-Farbe raussuchen: #A4C739

Zunächst wollen wir einen Android bauen, der nicht animiert ist. Wir nehmen dazu an, dass der Android in einem festgelegten Bereich mit absoluten Koordinaten positioniert wird.

Als Basis dient uns das Folgende:

.droid {
  position: absolute;
  bottom: 30px;
  right: 60px;
  height: 60px;
  width: 65px;
}

Nun folgt der Android:

.droid .torso {
  position: absolute;
  background:  #A4C739;
  width: 65px;
  height: 60px;
  border-radius: 0px 0px 10px 10px;
}
 
.droid .head {
  position: absolute;
  top: -32px;
  background:  #A4C739;
  width: 65px;
  height: 30px;
  border-radius: 65px 65px 0% 0%;
}
 
.droid .head .eye {
  height: 5px;
  width: 5px;
  border-radius: 5px;
  background: #333;
  position: absolute;
  top: 12px;
}
 
.droid .head .eye:nth-child(1) {
  left: 20px;
}
 
.droid .head .eye:nth-child(2) {
  right: 20px;
}
 
.droid .head .ear {
  height: 15px;
  width: 3px;
  border-radius: 15px;
  background: #A5C63B;
  position: absolute;
  top: -10px;
}
 
.droid .head .ear:nth-child(3) {
  left: 15px;
  transform: rotate(-30deg);
  -webkit-transform: rotate(-30deg);
  -moz-transform: rotate(-30deg);
  -o-transform: rotate(-30deg);
}
 
.droid .head .ear:nth-child(4) {
  right: 15px;
  transform: rotate(30deg);
  -moz-transform: rotate(30deg);
  -webkit-transform: rotate(30deg);
  -o-transform: rotate(30deg);
}
 
.droid .leg {
  position: absolute;
  bottom: -27px;
  background:  #A5C63B;
  width: 15px;
  height: 27px;
  border-radius: 0px 0px 30px 30px;
}
 
.droid .leg:nth-child(3) {
  left: 12px;
}
 
.droid .leg:nth-child(4) {
  right: 12px;
}
 
.droid .arm1,
.droid .arm2 {
  left:68px;
  top:-3px;
  width: 15px;
  height: 40px;
  background: #A5C63B;
  position: absolute;
  border-radius: 25px;
}
 
.droid .arm1 {
  left:-18px;
  transform-origin: 54% 18%;
  -webkit-transform-origin: 54% 18%;
  -moz-transform-origin: 54% 18%;
  -o-transform-origin: 54% 18%;
}
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.

Iranische Filme im Trend: Pardé und The Iran Job

Die Oscar-Verleihung ist gerade um, Argo als amerikanischer Beitrag zu iranischen Filmen ist in aller Munder. Doch ich möchte hier auf zwei iranische Filme eingehen: Pardé (Closed Curtain) und The Iran Job.

Pardé

Dass wir den Film auf der Berlinale sehen konnten, ist ein Verbrechen. Zumindest meint das die iranische Regierung. Der Grund ist Regisseur Jafar Panahi. Der für seine kritischen Filme bekannte Regisseur hat den Film nämlich ohne Erlaubnis gedreht, was im Iran derzeit illegal ist.

Der Film wurde innerhalb weniger Tage heimlich in Panahis Wohnung gedreht und angeblich auch zur Vorführung bei der Berlinale außer Landes geschmuggelt.

Der Film lässt sich grob in zwei Hälften teilen. Die erste Hälfte ist geprägt von einer angsterfüllten Atmosphäre in der beengten Wohnung. Ein Mann (Schriftsteller) reist zu Beginn an und verbarrikadiert sich in der Wohnung. Er schließt auch die Vorhänge ;) Der Grund ist sein Hund: den möchte er vor Verfolgung beschützen, da Hunde verboten werden und sämtliche aufgefundenen Hunde getötet werden sollen.

Im Anschluss kommen noch eine Frau mit ihrem Bruder in die Wohnung. Es ist zunächst unklar, wer sie sind, doch scheinbar sind sie auch auf der Flucht. Wie schnell sich die Rollen ändern können erfährt man, als die Frau meint, sie hätte Leute wie den Mann früher gemeldet. Ihr Bruder verschwindet und wird scheinbar von der Polizei aufgegriffen.

Nach der hälfte ändert sich der Film, er wird zunehmend surrealer. In einer parallelen/verschobenen Realität sieht man den Filmemacher selbst in der Wohnung bei alltäglichem Leben. Irgendwie scheinen die beiden Ebenen aber zusammen zu hängen.

Insgesamt fand ich den Film mittelmäßig. Das Interessante war noch die Entstehungsgeschichte um den Filmemacher Panahi und unter welchen Umständen der Film gedreht worden ist. Nach dem eher gelungenen Start wird die allegorische Geschichte zu verwirrend und auch langatmit erzählt.

The Iran Job

Der zweite Film (ebenfalls illegal gedreht), den ich sehr empfehlen möchte, ist The Iran Job. Es ist eine Dokumentation über einen Kevin Sheppard, ein US-Amerikanischer Basketballspieler, der als Legionär in einer iranischen Mannschaft spielen soll um ihr einen Platz in den Play Offs zu sichern. Der Film begleitet Kevin sowohl im „Beruf“, wie er versucht dem Team zu helfen und auch bei seinem Privatleben, wo er versucht sich in die iranische Gesellschaft zu integrieren. Durch die iran

Kevin lernt unter Anderem drei Frauen kennen, mit denen er öfter Kontakt hat, sie nehmen ihn auch zu ihren Familien mit. Durch sie lernt er die Probleme von Frauen kennen. In diesem Rahmen gibt der Film tiefe Einblicke in die iranische Gesellschaft, zeigt aber nicht mit dem Finger auf Probleme. Stattessen wird Kevins Versuch, das für ihn fremde Land zu verstehen, von den Frauen sehr schön dargestellt.

Es ist eine sehr schöne Mischung aus humorvollen Szenen, die hauptsächlich von Kevins lockerer Art leben, und (in unseren Augen oftmals traurigen) Einblicken in das Leben der Iraner(innen).

Am Ende zeigt sich: Kevins Versuch, einfach nur Sport zu machen und Politik zu ignorieren, geht schief. Im Iran kann man nicht einfach „nur“ Basketball spielen, man muss kämpfen. Darum, als Amerikaner spielen zu dürfen, darum, dass Frauen im Publikum sitzen dürfen.

Am Ende des Films wird noch gesagt, was man sich als Zuschauer schon denkt: können das die Frauen einfach so machen? Natürlich nicht, und so müssen die Frauen mit repressalien kämpfen.

Sehr geil fand ich übrigens den Soundtrack, der hauptsächlich iranische Rapper präsentiert. Leider kann man den Soundtrack nicht kaufen, die offizielle Homepage listet aber einige der Interpreten: Shahin Najafi, Jadugaran und ZedBazi. Es ist schwer legal daran zu kommen, aber das Internet ist ja groß. Und die Urheberrechtsbehörden werden vermutlich nicht iranische Musik verfolgen, die aufgrund von Embargos eh nicht vertrieben werden darf O:-)

Geschrieben von Kap. Zuletzt geändert am 11. März 2014.

Berliner Schnauze ;)

Es gibt immer wieder mal schöne Situationen in Berlin ;) Wer hat sich nicht schonmal gefragt, warum es im Hausflur immer nach Rauch riecht? Wenn man Glück hat, kann man die Ursache des Übels sehen: Da hat tatsächlich jemand im Haus geraucht und netterweise einen Beweis dagelassen.

Der geneigte Berliner findet natürlich direkt die passende Ansage. Falls man die Ursache nicht findet gibts auch direkt noch den Hinweis :P

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

Totensonntag nervt!

Man lernt nie aus.

Heute ist Totensonntag. Das wusste ich bereits. Also, dass exakt heute Totensonntag ist, habe ich zufällig mitbekommen. Aber auch, dass es den Tag generell gibt, hab ich schonmal gehört. Letztens lernte ich sogar, dass man erst nachher die Weihnachtsbeleuchtung anmachen „darf“.

Neu, und nervig, ist aber vor allem die Erkenntnis, dass es so ein Verbots-Tag ist. Wie Karfreitag. Das hat dann zur Folge, dass es keinen Flohmarkt gibt. Wtf??? Während der Karfreitag immerhin noch einen Nutzen hat, schließlich ist der Freitag ja frei, ist es völlig sinnlos den Kram an einem Sonntag zu veranstalten.

Da ich mich ja nicht lumpen lassen will und als „Nichtwisser“ sterben will, habe ich Wikipedia gefragt, und herausgefunden, dass es ein evangelischer Feiertag is und auch noch von einem Preußen eingeführt worden ist. Trotzdem veranstaltet Bayern ebenfalls eine Verbotsorgie ;) Die Bayern sind aber auch einiges in dieser Hinsicht gewohnt. Blöd ist halt nur, dass Berlin da mitmacht. Da hofft man schon, hier um von sowas verschont zu werden, und dann das. Und als ob das nicht genug wäre, ist weder Allerheiligen noch der Reformationstag ein Feiertag ^^

Geschrieben von Kap. Zuletzt geändert am 25. November 2012.

nerdpause!

Willkommen bei meinem neuen Blog, der nerdpause. Hier werde ich in Zukunft schreiben, welche Gedanken mich in der Pause umtreiben (und auch sonst!).

Geschrieben von Kap. Zuletzt geändert am 20. Februar 2019.