seeseekey.net - Invictus Deus Ex Machina

Möchte man wis­sen wir viele Dateien sich in einem Ord­ner unter Linux befin­den, so kann man dies leicht durch eine Kom­bi­na­tion der Befehle „find“ und „wc“ bewerkstelligen:

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

Der „find“-Befehl lis­tet dabei alle Dateien in dem Ord­ner auf, wäh­rend „wc“ (word count) die aus­ge­ge­be­nen Zei­len zählt und man somit die Anzahl der Dateien ermittelt.

Möchte man unter Linux eine PDF kom­pri­mie­ren, so kann dies rela­tiv unkom­pli­ziert auf der Kon­sole erle­digt wer­den. Dazu gibt man ein­fach fol­gende Zeile ein:

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

Ghost­script nimmt sich dann der Datei an und schreibt die Aus­gabe in das mit­tels „sOut­put­File“ bezeich­nete Ziel. Die PDFs kön­nen dabei durch­aus auf ein Drit­tel ihrer Größe schrumpfen.

Spie­le­kon­so­len und Media­cen­ter­hard­ware gibt es wie Sand am Meer. So könnte man den IST-Zustand des Gan­zen beschrei­ben. Trotz­dem hat das Ouya Pro­jekt auf Kick­star­ter ins­ge­samt $ 8,596,475 sam­meln kön­nen. Damit ist es im Moment das zwei­ter­folg­reichste (gleich nach der Peb­ble Uhr) Pro­jekt auf Kick­star­ter. Bei Ouya han­delt es sich um ein Stück Hard­ware in der Größe von „Rubiks Cube“, auch als Zau­ber­wür­fel bekannt.

Die Ouya Konsole

Die tech­ni­schen Daten sind dabei ver­lo­ckend, so ist ein Nvi­dia Tegra 3 (Quad-core ARM Cortex-A9, Nvi­dia ULP GeForce), ein Giga­byte RAM und acht Giga­byte inter­ner Spei­cher in Form von Flash­bau­stei­nen ver­baut. An Schnitt­stel­len bie­tet die Ouya ein HDMI Aus­gang (mit 1080p), Wi-Fi in 802.11 b/g/n, Blue­tooth in der Ver­sion 4.0, einen Ether­net sowie einen USB (2.0) Port. Zur Steue­rung des gan­zen wird ein Con­trol­ler mit­ge­lie­fert, wel­cher über Blue­tooth an die Kon­sole ange­bun­den ist. Auf der Kon­sole läuft dabei ein Android 4.1 auf wel­chem die Ouya-Oberfläche (und das ent­spre­chende Frame­work) auf­set­zen wird.

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

Die Ouya soll dabei nicht nur eine Spiel­kon­sole sein, son­dern bringt auch Media Cen­ter Fähig­kei­ten mit. So sind Ouya und XBMC eine Part­ner­schaft ein­ge­gan­gen, damit Ouya die­ses unter­stützt. Spiele wer­den über den Ouya Store auf die Kon­sole gela­den. Für die Ent­wick­ler blei­ben dabei 70 % des Prei­ses, die ande­ren 30 % gehen an Ouya Inc. Eine Beson­der­heit ist das man erst ein­mal jedes Spiel aus­pro­bie­ren kann und dann die „Voll­ver­sion“ per „In-App“ Kauf freischaltet.

Alles in allem kos­tet die Ouya $ 100, mit einem zwei­ten Con­trol­ler und inter­na­tio­na­lem Ver­sand kommt man umge­rech­net auf knapp 120 €. Es wird also eini­ges gebo­ten für das Geld. Die Kon­sole folgt dabei der Phi­lo­so­phie „hacka­ble“ zu sein. So soll es eine Mög­lich­keit geben die Kon­sole zu roo­ten ohne dabei die Garan­tie zu ver­lie­ren. Außer­dem las­sen sich die Kon­sole sel­ber sowie der Con­trol­ler mit einem nor­ma­len Schrau­ben­zie­her öff­nen, auf Spe­zi­al­schrau­ben wie z.B. Torx wird verzichtet.

Im Laufe der Kickstarter-Kampange gab es eini­ges Feed­back aus der Com­mu­nity, wel­ches sich auch in eini­gen Punk­ten auf die Ouya Kon­sole aus­ge­wirkt hat. So bekommt die fer­tige Ouya einen Ether­net Port, das Design des D-Pads würde über­ar­bei­tet und auch die But­ton wür­den hin­sicht­lich ihrer Farb­ge­bung so opti­miert, das sie für Men­schen mit Far­ben­blind­heit bes­ser aus­ein­an­der zuhal­ten ist. Auch ein ers­tes Exklu­siv Spiel wurde bereits ange­kün­digt: „Robo­toki“. Neben die­sem soll es auch andere bekannte Spiele wie Final Fan­tasy III von Square Enix für die Ouya geben.

Die offi­zi­elle Web­seite auf der man die Ouya mitt­ler­weile vor­be­stel­len kann, ist dabei unter http://ouya.tv/ zu fin­den. Aus­ge­lie­fert soll die Kon­sole dabei im April 2013.

Wei­tere Infor­ma­tio­nen gibt es unter:
http://de.wikipedia.org/wiki/Ouya

Mit wget ist der Down­load einer Datei ein­fach, 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 ent­spre­chende Datei auf die Fest­platte, anstatt sie nur anzuzeigen.

Wei­tere Infor­ma­tio­nen gibt es unter:
http://en.wikipedia.org/wiki/CURL

Manch­mal möchte man ein Git Repo­sitory von Ser­ver A auf Ser­ver B umzie­hen (in die­sem Fall von Google Code zu Git­hub). Das ganze ist dabei rela­tiv unpro­ble­ma­tisch. Zuerst wird das beste­hende Repo­sitory geklont:

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

In der Git­Hub Ober­flä­che erstel­len wir nun ein neues Repo­sitory (in die­sem Fall mit dem Namen „CSCL“). Danach ent­fer­nen wir den alten Remote und wei­sen einen neuen hinzu:

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

Mit­tels „git remote –v“ kann man sich die beste­hen­den „Remo­tes“ anschauen. Nach­dem der neue Remote gesetzt wur­den laden wir das Repo­sitory (mit­tels „push“) bei Git­Hub hoch:

git push -u origin master

Damit ist der Umzug abgeschlossen.

Wei­tere Infor­ma­tio­nen gibt es unter:
https://help.github.com/articles/removing-a-remote

Wer in die Ver­le­gen­heit kommt und PDFs zusam­men­fü­gen möchte, der sollte sich ein­mal „pdftk“ anschauen. Unter Ubuntu muss das ganze mittels:

sudo apt-get install pdftk

instal­liert wer­den. Danach kann man meh­rere Dateien im Ter­mi­nal nach dem Schema:

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

zusam­men­fü­gen.

Wenn man unter Java­Script ent­wi­ckelt so benutzt man sicher auch fol­gende Zeile ab und an in abge­wan­del­ter Form:

alert("XYZ");

Das Pro­blem an „alert“ ist das es für viele Sachen unprak­ti­ka­bel ist. Schö­ner wäre hier eine Kon­sole in die man diese Mel­dun­gen hin­ein­schrei­ben könnte und die auch brow­ser­un­ab­hän­gig funk­tio­niert. Genau hier kommt Black­bird ins Spiel wel­ches unter http://www.gscottolson.com/blackbirdjs/ zu fin­den ist.

Black­bird im Einsatz.

Mit der Kon­sole ist es mög­lich ver­schie­dene Log­le­vel zu rea­li­sie­ren und das ganze ein­fach in das Pro­jekt sei­ner Wahl ein­zu­bin­den. Der wei­tere Vor­teil ist, das man die Debug­mel­dun­gen im Gegen­satz zu einem „alert“ auch ein­fach im Quell­text ste­hen las­sen kann und die Aus­gabe nur bei Bedarf aktiviert.

Möchte man unter .NET/Mono das Schlie­ßen einer Kon­so­len­an­wen­dung abfan­gen so kann man dies mit eini­gen Metho­den lösen, wie zum Bei­spiel die Anwen­dung bestimm­ten pIn­voke Tech­ni­ken unter Win­dows. All­ge­mei­ner kann man das ganze mit dem „Can­cel­Key­Press“ Event gestal­ten 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
}

Manch­mal benö­tigt man bestimmte Ord­ner eines Sub­ver­sion Repo­si­to­ries ohne die .svn Ver­zeich­nisse, wel­che in jedem Ver­zeich­nis lie­gen. Diese kann man dann mit­tels eines Aufrufes

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

in dem ent­spre­chen­den Ord­ner ein­fach rekur­siv entfernen.

Wei­tere Infor­ma­tio­nen gibt es unter:
http://www.blogix.net/2008/07/06/svn-ordner-rekursiv-loschen/