robsite

In command line

Object#andand

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

· command line, productivity, programming, rails, ruby ·

Dateien splitten in Unix

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.

· command line, linux, mac, tool, unix ·