sudo perl -MCPAN -e 'install Acme::POE::Tree' && perl -MAcme::POE::Tree -e 'Acme::POE::Tree->new()->run()'
Praktisches gem von Reg Braithwaite mit dem Methoden-Aufrufe auf nil-Objekten abgefangen werden können.
# Ohne andand:
@user = User.find(1)
@address = @user ? @user.address : nil
# Mit andand:
@address = User.find(1).andand.address
EnthĂ€lt auĂerdem noch tap zum leichten debugging:
# Original:
p [1, 2, 3].reverse.map {|x| x**2 }
# Debug durch Auseinanderrupfen und Zwischenvariable:
bla = [1, 2, 3].reverse
p bla
p bla.map {|x| x**2 }
# Debug mit tap:
p [1, 2, 3].reverse.tap {|d| p d }.map {|x| x**2 }
Einfach sudo gem install andand und
require 'rubygems'
require 'andand'
in den Code.
Ăhnlich praktisch ist der tee-Befehl auf der Commandline:
ps aux | tee p.txt | more
ps aux gibt alle laufenden Prozesse aus, tee p.txt schreibt die Ausgabe von ps aux in die Datei p.txt und gibt sie weiter an more.
Update:
Rails 2.3 hat andand-Àhnliche FunktionalitÀt schon eingebaut: try
@address = User.find(1).try(:address)
Mehr dazu: ozmm.org/posts/try.html
Manchmal passt eine fette Datei nicht auf eine CD-R oder die externe Festplatte, da diese mit FAT32 formatiert ist und Dateien dort nur 4GB groà sein können. Warum auch immer, die Datei muss aufgeteilt werden.
Tools dafĂŒr gibts zu Hauf, aber jedes Unix (Linux, Mac OS X) bringt schon alles mit, was man braucht:
split -b 700m datei.zip
Teilt datei.zip in 700MB-Teile auf und benennt diese mit xaa, xab, xac, ...
split -b 700m datei.zip neuer_name
Macht das gleiche, nur dass die Teile nun neuer_nameaa, neuer_nameab, ... heiĂen.
Ich finde
split -b 700m datei.zip datei.zip.
ganz praktisch. Der Originalname bleibt erhalten und aa, ab, ac, ... hÀngen als Dateiendung dran (man beachte den Punkt am Ende).
Um die Teile wieder zusammenzupacken nimmt man einfach cat:
cat datei.zip.aa datei.zip.ab datei.zip.ac > datei.zip
Oder besser
cat datei.zip.* > datei.zip
man split zeigt alle Optionen.