seeseekey.net - Invictus Deus Ex Machina

Möchte man die lokale Revi­sion eines Git Repo­si­to­ries ermit­teln so reicht es in der Konsole:

git log -n 1

ein­zu­ge­ben. Das ganze sieht auf dem Ter­mi­nal dann so aus:

commit 1c40074d28676ec996ec91f1719cff43077f15f6
Author: Example 
Date:   Tue Jan 3 09:52:23 2013 +0800

    Bugfixes in example function.

Soll nur der Hash aus­ge­ben wer­den so muss die Kom­man­do­zeile wie folgt aussehen:

git log -n 1 --pretty=format:"%H"

Damit bekommt man dann nur den ent­spre­chen­den Hashwert ausgegeben.

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

Der Stan­dar­de­di­tor im Ter­mi­nal bei Mac OS X ist „vim“. Möchte man die­sen nicht benut­zen, so kann man den Edi­tor ändern indem man im Nut­zer­haupt­ver­zeich­nis eine „.bash_profile“ Datei anlegt (wenn diese nicht bereits vor­han­den ist). In diese Datei trägt man dann fol­gen­des ein:

export EDITOR=nano

Nach­dem dem Spei­chern der Ände­rung, sowie einem Neu­start ist der neue Edi­tor aktiv.

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.

Manch­mal benö­tigt man eine MySQL Kom­man­do­zeile, hat aber kein „phpmyad­min“ zur Ver­fü­gung. Für einen sol­chen Fall wäre es schön wenn man eine kleine Anwen­dung hätte wel­che die­ses Pro­blem löst. Genau hier setzt die PHP Anwen­dung „Admi­ner“ an. Dabei han­delt es sich sozu­sa­gen um eine „phpmyad­min“ Minimalversion.

SQL-Query Ansicht im Adminer

Das schöne am Admi­ner ist das er nur aus einer Datei besteht und so unkom­pli­ziert „instal­liert“ wer­den kann. Zu fin­den ist das ganze unter http://www.adminer.org.

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/