seeseekey.net - Invictus Deus Ex Machina

Möchte man wissen wir viele Dateien sich in einem Ordner unter Linux befinden, so kann man dies leicht durch eine Kombination der Befehle „find“ und „wc“ bewerkstelligen:

find /home/seeseekey/manyfiles/ -type f | wc -l

Der „find“-Befehl listet dabei alle Dateien in dem Ordner auf, während „wc“ (word count) die ausgegebenen Zeilen zählt und man somit die Anzahl der Dateien ermittelt.

Möchte man unter Linux eine PDF komprimieren, so kann dies relativ unkompliziert auf der Konsole erledigt werden. Dazu gibt man einfach folgende Zeile ein:

gs -sDEVICE=pdfwrite -dNOPAUSE -dBATCH -sOutputFile=output.pdf input.pdf

Ghostscript nimmt sich dann der Datei an und schreibt die Ausgabe in das mittels „sOutputFile“ bezeichnete Ziel. Die PDFs können dabei durchaus auf ein Drittel ihrer Größe schrumpfen.

Spielekonsolen und Mediacenterhardware gibt es wie Sand am Meer. So könnte man den IST-Zustand des Ganzen beschreiben. Trotzdem hat das Ouya Projekt auf Kickstarter insgesamt $ 8,596,475 sammeln können. Damit ist es im Moment das zweiterfolgreichste (gleich nach der Pebble Uhr) Projekt auf Kickstarter. Bei Ouya handelt es sich um ein Stück Hardware in der Größe von „Rubiks Cube“, auch als Zauberwürfel bekannt.

Die Ouya Konsole

Die technischen Daten sind dabei verlockend, so ist ein Nvidia Tegra 3 (Quad-core ARM Cortex-A9, Nvidia ULP GeForce), ein Gigabyte RAM und acht Gigabyte interner Speicher in Form von Flashbausteinen verbaut. An Schnittstellen bietet die Ouya ein HDMI Ausgang (mit 1080p), Wi-Fi in 802.11 b/g/n, Bluetooth in der Version 4.0, einen Ethernet sowie einen USB (2.0) Port. Zur Steuerung des ganzen wird ein Controller mitgeliefert, welcher über Bluetooth an die Konsole angebunden ist. Auf der Konsole läuft dabei ein Android 4.1 auf welchem die Ouya-Oberfläche (und das entsprechende Framework) aufsetzen wird.

http://www.youtube.com/watch?v=U39L4mEyIRc

Die Ouya soll dabei nicht nur eine Spielkonsole sein, sondern bringt auch Media Center Fähigkeiten mit. So sind Ouya und XBMC eine Partnerschaft eingegangen, damit Ouya dieses unterstützt. Spiele werden über den Ouya Store auf die Konsole geladen. Für die Entwickler bleiben dabei 70 % des Preises, die anderen 30 % gehen an Ouya Inc. Eine Besonderheit ist das man erst einmal jedes Spiel ausprobieren kann und dann die „Vollversion“ per „In-App“ Kauf freischaltet.

Alles in allem kostet die Ouya $ 100, mit einem zweiten Controller und internationalem Versand kommt man umgerechnet auf knapp 120 €. Es wird also einiges geboten für das Geld. Die Konsole folgt dabei der Philosophie „hackable“ zu sein. So soll es eine Möglichkeit geben die Konsole zu rooten ohne dabei die Garantie zu verlieren. Außerdem lassen sich die Konsole selber sowie der Controller mit einem normalen Schraubenzieher öffnen, auf Spezialschrauben wie z.B. Torx wird verzichtet.

Im Laufe der Kickstarter-Kampange gab es einiges Feedback aus der Community, welches sich auch in einigen Punkten auf die Ouya Konsole ausgewirkt hat. So bekommt die fertige Ouya einen Ethernet Port, das Design des D-Pads würde überarbeitet und auch die Button würden hinsichtlich ihrer Farbgebung so optimiert, das sie für Menschen mit Farbenblindheit besser auseinander zuhalten ist. Auch ein erstes Exklusiv Spiel wurde bereits angekündigt: „Robotoki“. Neben diesem soll es auch andere bekannte Spiele wie Final Fantasy III von Square Enix für die Ouya geben.

Die offizielle Webseite auf der man die Ouya mittlerweile vorbestellen kann, ist dabei unter http://ouya.tv/ zu finden. Ausgeliefert soll die Konsole dabei im April 2013.

Weitere Informationen gibt es unter:
http://de.wikipedia.org/wiki/Ouya

Mit wget ist der Download einer Datei einfach, da das ganze nur aus dem Befehl und der Datei besteht:

wget http://example.com/datei.zip

Bei cURL braucht es da schon etwas mehr:

curl -O http://example.com/datei.zip

Damit lädt cURL die entsprechende Datei auf die Festplatte, anstatt sie nur anzuzeigen.

Weitere Informationen gibt es unter:
http://en.wikipedia.org/wiki/CURL

Manchmal möchte man ein Git Repository von Server A auf Server B umziehen (in diesem Fall von Google Code zu Github). Das ganze ist dabei relativ unproblematisch. Zuerst wird das bestehende Repository geklont:

git clone https://code.google.com/p/cscl/

In der GitHub Oberfläche erstellen wir nun ein neues Repository (in diesem Fall mit dem Namen „CSCL“). Danach entfernen wir den alten Remote und weisen einen neuen hinzu:

git remote rm origin
git remote add origin git@github.com:seeseekey/CSCL.git

Mittels „git remote –v“ kann man sich die bestehenden „Remotes“ anschauen. Nachdem der neue Remote gesetzt wurden laden wir das Repository (mittels „push“) bei GitHub hoch:

git push -u origin master

Damit ist der Umzug abgeschlossen.

Weitere Informationen gibt es unter:
https://help.github.com/articles/removing-a-remote

Wer in die Verlegenheit kommt und PDFs zusammenfügen möchte, der sollte sich einmal „pdftk“ anschauen. Unter Ubuntu muss das ganze mittels:

sudo apt-get install pdftk

installiert werden. Danach kann man mehrere Dateien im Terminal nach dem Schema:

pdftk rechnung.pdf rechnung-s2.pdf output rechnung-komplett.pdf

zusammenfügen.

Wenn man unter JavaScript entwickelt so benutzt man sicher auch folgende Zeile ab und an in abgewandelter Form:

alert("XYZ");

Das Problem an „alert“ ist das es für viele Sachen unpraktikabel ist. Schöner wäre hier eine Konsole in die man diese Meldungen hineinschreiben könnte und die auch browserunabhängig funktioniert. Genau hier kommt Blackbird ins Spiel welches unter http://www.gscottolson.com/blackbirdjs/ zu finden ist.

Blackbird im Einsatz.

Mit der Konsole ist es möglich verschiedene Loglevel zu realisieren und das ganze einfach in das Projekt seiner Wahl einzubinden. Der weitere Vorteil ist, das man die Debugmeldungen im Gegensatz zu einem „alert“ auch einfach im Quelltext stehen lassen kann und die Ausgabe nur bei Bedarf aktiviert.

Möchte man unter .NET/Mono das Schließen einer Konsolenanwendung abfangen so kann man dies mit einigen Methoden lösen, wie zum Beispiel die Anwendung bestimmten pInvoke Techniken unter Windows. Allgemeiner kann man das ganze mit dem „CancelKeyPress“ Event gestalten was dann so aussieht:

Console.CancelKeyPress+=new ConsoleCancelEventHandler(Console_CancelKeyPress);
...
static void Console_CancelKeyPress(object sender, ConsoleCancelEventArgs e)
{
  WriteErrorToConsole("Programm wird abgebrochen...");
  e.Cancel=true; // Event abbrechen
}

Manchmal benötigt man bestimmte Ordner eines Subversion Repositories ohne die .svn Verzeichnisse, welche in jedem Verzeichnis liegen. Diese kann man dann mittels eines Aufrufes

find . -type d -name .svn -exec rm -Rf {} \;

in dem entsprechenden Ordner einfach rekursiv entfernen.

Weitere Informationen gibt es unter:
http://www.blogix.net/2008/07/06/svn-ordner-rekursiv-loschen/