Τετάρτη, Οκτωβρίου 13, 2010

Code snippet: Combining samples files

For the past few months, I have to go through a heap of data files containing measurement data from routers (packet throughput, packet loss etc). Creating the graphs in gnuplot does not require combining these files, but importing all the different data files into another program (LaTeX/Word/Excel/OO Writer/whatever) is practically a torture.

If, for whatever reasons, you need to combine a lot of files of space-separated values into one big file, I'm using this script which I call cf2.

(2 stands for version. cf1 was kinda crap :D )

#!/bin/bash
# cf2: Combine Files :)

if [ $# -eq 1 ]; then

exec 7<$1

let eof=0
while [ $eof -eq 0 ]
do
if read line1; then
if read line2 <&7; then
echo -e -n "$line2\t$line1\n"
else
let eof=1
fi
else
let eof=1
fi
done
exec 7>&-
elif [ $# -eq 2 ]; then
exec 7<$1
exec 8<$2
let eof=0
while [ $eof -eq 0 ]
do
if read line1 <&7; then
if read line2 <&8; then
echo -e -n "$line1\t$line2\n"
else
let eof=1
fi
else
let eof=1
fi
done
exec 7>&-
exec 8>&-

else
SELF=$0
FIRST=$1
shift
$SELF $@ | $SELF $FIRST
fi


How to use it:

# cf2 datafile1.dat datafile2.dat [...] datafileX.dat > newCombinedFile.dat


So if your data files are something like this:

# file1.dat
1 2 3 4
1 2 3 4
1 2 3 4

# file2. dat
5 6 7 8
5 6 7 8
5 6 7 8

Running cf2 file1.dat file2.dat will give you:
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8

I hope somebody will find this helpful. It has certainly sped up data manipulation for me.

Κυριακή, Οκτωβρίου 10, 2010

Ubuntu 10.10 Netbook

Εν συντομία, πρώτες εντυπώσεις του Ubuntu 10.10 Netbook να τρέχει από USB στο Dell Mini 10v μου.



Πολύ εντυπωσιακό το Unity desktop, χρωματάκια παντού, τα εικονίδια κάνουν ένα ψιλό-3D εφέ όταν τα scrollάρεις πάνω κάτω αλλά... αργό. Άσε που μετά από λίγο η πολυχρωμία αρχίζει να σε κουράζει. Ξεκινάμε με Firefox και...



Ιιιιιιιι! Ναι, αυτό είναι το maximized παράθυρο του Firefox. Η αριστερή μπάρα και η επάνω μπάρα παραμένουν στις θέσεις τους. Ότι ακριβώς χρειαζόμασταν σε μια οθόνη 1024x600: λιγότερος χώρος. Το F11 ευτυχώς συνεχίζει να δουλεύει στον Firefox και το βλέπεις full screen:



αλλά αυτό δεν είναι λύση διότι πολύ απλά είναι functionality του Firefox - άλλες εφαρμογές θα πρέπει να μείνουν περιορισμένες στον στριμόκωλο χώρο της δεύτερης φωτογραφίας (966x575!!!).

Επίσης, το Alt-F2 (quick-run) έκανε φτερά, άρα θα εκνευριστείτε όσοι βασίζεστε στο muscle memory των χεριών σας.

Τουλάχιστον αυτή την φορά η ένδειξη πληκτρολογίου μπαίνει μόνη της στην επάνω δεξιά γωνία και δεν χρειάζεται να κάνεις ταρζανιές με τα εικονίδια, όπως γινόταν στο 10.04 Netbook Remix. Το εικονίδιο φαίνεται επάνω δεξιά ('Gre'), ενώ στο εικονίδιο του Firefox στα αριστερά έχουμε βελάκι που μας λέει ότι ο Firefox είναι minimized... δηλαδή η μπάρα παριστάνει το Dock με ψιλοεφεδάκι Coverflow.



Ανεύρευση εφαρμογών και ρυθμίσεων που δεν βρίσκονται ήδη στο dock γίνεται πατώντας επάνω στο Ubuntu logo στην επάνω αριστερή γωνία, οπότε και εμφανίζεται ένα search box με live αποτελέσματα - φανταστείτε κάτι μεταξύ OSX Spotlight και Google Live Results. Ψιλοόμορφο, γρήγορο και με ομαλό animation, αλλά για κάποιο περίεργο λόγο, δεν μ'αφήνει να πάρω screenshot - μάλλον κάτι γίνεται με το OpenGL το οποίο φαίνεται να χρησιμοποιεί.

Αυτές οι εντυπώσεις αφορούν μόνο την χρήση του Live image (από USB flash), θα το εγκαταστήσω αργότερα όταν θα έχω λίγο χρόνο παραπάνω. Σε γενικές γραμμές όμως, το Ubuntu Netbook remix έχει αρχίσει να χάνει την ουσία η οποία είναι "αδύναμο hardware, μικρή οθόνη, κακοσχεδιασμένα trackpads". Βαρύ software, κακή χρήση της οθόνης, εξαφάνιση κάποιων keyboard shortcuts. Αυτή η έκδοση ίσως ταιριάζει περισσότερο σε ένα διπύρηνο tablet παρά σε ένα netbook...

ΥΓ: Στα καλά του όμως, αξίζει να σημειωθεί ότι δεν χρειάζεται πλέον να περάσεις μόνο σου win32 true type fonts για να βλέπεις ελληνικά σαν άνθρωπος.