Hard Rock Hallelujah!

Τελικά όχι μόνο μπήκαν στον τελικό, αλλά πήραν και τα σώβρακα!

Με δεδομένα τα λεγόμενα “μπλοκ” των χωρών που αλληλοψηφίζονται[*] -είτε αυτό προκύπτει από επιτροπή, είτε με televoting- αν θέλει να κάποια χώρα -συγνώμη Εθνική Ραδιοτηλεόραση ήθελα να πω- να κερδίσει πρέπει να βρει τρόπο να σπάσει συμμαχίες ή να τραβήξει ολόκληρα μπλοκ χωρών για το “τραγούδι” της.

Οι Φινλανδοί πιο έξυπνα σκεπτόμενοι έκαναν τη διαφορά: Πάνω κάτω το ποιοι θα τους έδιναν 8+ αν είχαν αξιοπρεπές κομάτι ήταν δεδομένο. Οπότε έπρεπε να τραβήξουν ψήφους από τις υπόλοιπες χώρες. Τώρα αυτό μπορεί να γίνει με δύο τρόπους:

  1. Να σε ψηφίσουν οι σταθεροί ψηφοφόροι
  2. Να “αλλοιώσεις” τη σύνθεση του εκλογικού σώματος

Οι Φινλανδοί κατάφεραν το #2. Αφού οι σταθεροί ψηφοφόροι έχουν συγκεκριμένο είδος τραγουδιών που επιλέγουν, θα φέρουμε νέους στη διοργάνωση (ακόμα κι αν είναι για μία μόνο φορά).

Ομολογώ πως ποτέ δεν είχα σκεφτεί να ψηφίσω μέχρι σήμερα στη Eurovision, αλλά χτες το SMS μου το τσιμπήσανε τα παληκάρια. Και δεν είμαι μόνο εγώ. Το κοματάκι ήταν ωραίο, χοροπηδηχτό και ευχάριστο, θυμίζει κάτι ανάμεσα σε KISS, King Diamond και εξώφυλλα των Manowar που έβλεπα στη Disco Queen δίπλα από το φροντιστήριο. Είμαι σίγουρος πως πολύς κόσμος τους ψήφισε έτσι, όπως πιθανά στην Ελλάδα πολλοί τους ψήφισαν ακριβώς γιατί ήταν αντι-Eurovision-ικοί.

Τέλος πάντων το στόχο τους τον πέτυχαν και για μια ακόμα φορά η διαδικασία της ψηφοφορίας έδειξε πως η Eurovision είναι ένας αναίμακτος αγώνας γεωπολιτικής, κάτι σαν εκπαίδευση για την εξωτερική πολιτική σε παιδιά γυμνασίου (πόσο να παιζόταν στο στοίχημα ψήφος της Αρμενίας στην Τουρκία;)

[*]Βέβαια, όλα τα χρόνια που ανταλλάσσαμε 12άρια με την Κύπρο, τρώγαμε το βρίσιμο της αρκούδας, όταν το δίνει η Ανδόρα στην Ισπανία κοιτάμε ανέμελα αν βρέχει (για να πω το πιο απαλό παράδειγμα)

killall

Σήμερα νιώθω λίγο δεινόσαυρος. Έμαθα systems administration the very hard way. Από τα manuals της DEC για το Ultrix (ίσως το καλύτερο set από manuals που έχω διαβάσει, συνοδευόμενο από αυτά της HP για το HP-UX).

Από τότε που ξεκίνησα να μαθαίνω (early 90s, εποχές που δεν υπήρχε ./configure && make && make install και που έπρεπε να κάνεις μόνος σου edit τον κώδικα για να παίξει στη μηχανή σου) πέρασαν από τα χέρια μου μηχανήματα που έτρεχαν Ultrix, HPsUX (8, 9, 10 και 11), SunOS (4.1.3 και 4), όλα τα BSD και σχεδόν κάθε major Linux distribution που μπορεί να φανταστεί κάποιος (και όχι μόνο για IA32).

Το μεγαλύτερο κέρδος από την υπερέκθεσή μου σε τόσο διαφορετικά περιβάλλοντα (που μη ξεχνάτε ισχυρίζονταν πως είναι POSIX-like, Unix-like ή και Unix) ήταν να μη παίρνω σα δεδομένο τίποτε, ούτε καν τη συμπεριφορά του /bin/sh ή το αν το ll (ελ ελ) είναι alias του ls -l ή είναι πρόγραμμα κομπιλαρισμένο και με την ίδια συμπεριφορά (αλήθεια ποιο είναι το home directory του root στο Solaris; Τι; Τι θα πει δεν είναι το /root;). Κυρίως έμαθα να μη δίνω "επικίνδυνες" εντολές χωρίς να κάνω man πρώτα γιατί ποτέ δε ξέρεις τι σου ξημερώνει.

Γιατί το θυμήθηκα αυτό; Χτες ένας από τους πιο έμπειρους Linux administrators που έχω δουλέψει ποτέ μαζί του (είναι o Debian reference που χρησιμοποιώ) θέλοντας να επανεκκινήσει τον sshd σε ένα μηχάνημα που έτρεχε OpenSolaris ήθελε να γράψει killall -HUP sshd. Ας δούμε όμως τα manuals:

Βέβαια κοιτώντας τον κώδικα του killall.c για το OpenSolaris θα πει κανείς πως η εντολή δε θα είχε αποτέλεσμα γιατί θα τύπωνε το usage. Πόσοι όμως θα το ρισκάρατε αυτό χωρίς να έχετε δει τον κώδικα; Κι αν στο Solaris ο developer είχε κάνει λάθος στο default στο switch;

Από τη Δευτέρα θα ξεκινήσω μάλλον ένα set μηχανημάτων (SPARC και IA32) που έχουν περιπέσει σε αχρηστία με OpenSolaris. Για να ξεσκουριάσω και για να μη συμβεί στο φίλο μου αυτό:

"I hate Solaris operating systems. I learned my *nix on Debian, and it spoiled me."

Και μια τελευταία συμβουλή: Αν ποτέ ο δρόμος σας σας βγάλει σε κάποιο HP-UX, ελένξτε πρώτα αν αυτό που θέλετε να κάνετε, γίνεται από το sam.

OpenSolaris (SPARC) disk labeling weirdness

Yesterday I tried to install build39 on a 220R. It's original disk was damaged so we replaced it with a 70G drive. I fired off the OpenSolaris installer which failed to install, since it wanted the drive to be formated. OK, no problem boot cdrom -s at the ok prompt and format from the root prompt. 8hours later the disk was formated and analyzed but the label was not written. Hence, no install!

And here comes the weird solution:

Find a Solaris 8 SPARC cdrom and boot cdrom -s at the ok prompt and format from the root prompt. You do not have to reformat the drive, just label it. Then start with the OpenSolaris (SPARC) CD#1 and you are all set.

Weird and inexplicable to me why something that is possible from the Solaris 8 format is not possible with format from OpenSolaris.

If anybody has an explanation, please please post it. I like it that it works. I do not like it that I do not know why it works.

Meetings are toxic

Meetings are toxic (PDF document). Αυτό το είχα διαπιστώσει εδώ και καιρό, αλλά χτες το απόγευμα το έζησα, όχι στο μεγαλείο του, αλλά στην επιβεβαίωσή του. Χτες παρεβρέθηκα στη συνεδρίαση μιας επιτροπής της οποίας το αντικείμενο με ενδιαφέρει. Δεν είχα διάθεση να πάω όμως και πήγα μόνο και μόνο γιατί η υπηρεσία έκρινε πως η παρουσία μου ήταν απαραίτητη. Συμμετείχα σαν παρατηρητής. Αυτό που με στενοχώρησε είναι πως σε ότι με αφορούσε η συνεδρίαση, έχασα 2 ώρες για κάτι που για να ενημερωθώ χρειάζονταν 10 λεπτά. Αποτέλεσμα; Γύρισα σπίτι μου στις 21:30 και όχι γιατί υπήρξα παραγωγικός στη δουλειά μου (όπως τουλάχιστον εγώ θέλω να είμαι παραγωγικός).

Στη δουλειά σπάνια κάνουμε meetings. Συνήθως κρατάνε μέχρι 10 λεπτά, με εξαίρεση τα εναρκτήρια για μεγάλα έργα, τα οποία μπορεί και να πάνε μέχρι 2 ώρες. Αυτή η συμπίεση χρόνου στις συναντήσεις μας οφείλεται στους ακόλουθους λόγους:

  1. Είμαστε όλοι στο ίδιο μήκος κύματος
  2. Δεν συζητάμε δύο φορές το ίδιο πράγμα
  3. Δουλεύουμε χρόνια μαζί χωρίς προβλήματα
  4. Έχουμε αναπτύξει ένα κώδικα επικοινωνίας που μας επιτρέπει να λέμε μεταξύ μας μία πρόταση και να μη χρειάζεται να εξηγήσουμε με άλλες 10 τι εννοούμε ή τι επιπτώσεις / συνέπειες / απαιτήσεις θα έχει αυτό που είπαμε αμέσως πριν
  5. Αν δεν έχουμε να πούμε κάτι δε μιλάμε
  6. Ανεχόμαστε ο ένας τις παραξενιές του άλλου
  7. Γνωριζόμαστε τόσο καλά που δε χρειάζεται να εφευρίσκουμε δικαιολογίες για τις καθυστερήσεις. Κάτι καθυστερεί είτε γιατί είναι πολύ δύσκολο -οπότε όλοι βάζουν πλάτη- είτε γιατί κωλοβάρεσε κάποιος, οπότε τα βγάζει πέρα μόνος του
  8. Το #7 δουλεύει γιατί υπάρχει φιλότιμο
  9. Έχουμε γαμάτο προϊστάμενο που δεν επιτρέπει να “στρίβουν” οι συζητήσεις από το θέμα
  10. Μας ενδιαφέρει να μη χάνεται ο χρόνος μας

Ερωτήσεις και απαντήσεις για τις τηλεφωνικές υποκλοπές

Αφού ο καθένας -ειδικός και μη- έχει πει δημοσίως τη γνώμη του υπερπληροφορόντας, παραπληροφορόντας και τρομάζοντας τον κόσμο είτε εν γνώση του, είτε άθελά του, βρέθηκε και ένας άνθρωπος να πει μερικά σωστά πράγματα.

Το άρθρο αυτό το βρήκα στο τεύχος 9 του περιοδικού on-line που εκδίδει ο Πανελλήνιος Σύλλογος Διπλωματούχων Μηχανικών Η/Υ & Πληροφορικής.

Update: Νεότερη δουλειά από τον κ. Σπινέλλη για το θέμα: “The Athens Affair“.

Δημητράκη είσαι τρέλα

Αν υπάρχει ένας ποδοσφαιριστής του Παναθηναϊκού που είναι αγαπητός στους φίλους του Ολυμπιακού, αυτός είναι ο Δημήτρης Παπαδόπουλος. Ή τουλάχιστον έτσι συμβαίνει με τους διπλανούς μου στο Καραϊσκάκη. Από την πρώτη φορά που έπαιξε κόντρα στον Ολυμπιακό στο Καραϊσκάκη, όλο “γιατί δεν τον πήραμε από όταν γύρισε από την Αγγλία” ακούω. Και τώρα ο Τζίγγερ (τι σημαίνει αυτό το nickname ξέρει να μου πει κανείς;) μας κάνει ακόμα ένα δώρο. Δεν τον κρατάει στην ομάδα! Όχι δεν θέλω να κάνω κουμάντο στη τσέπη του ιδιοκτήτη, αλλά αν η αξία του ηττημένου καθορίζει την αξία του νικητή, τότε η διοίκηση του ΠΑΟ κάνει ότι μπορεί για να απαξιώσει τις νίκες του Ολυμπιακού :)

Κι εμένα δε μου αρέσει το “κόκκινο τριφύλλι” αλλά αν υπάρχει τρόπος:

“Κόκκαλη, Κόκκαλη σε παρακαλώ! Φέρε το Δημήτρη στον Ολυμπιακό!”

Update #1: Τελικά μετά το κράξιμο, ο Δημητράκης όχι μόνο έμεινε στον ΠΑΟ, αλλά έγινε και αρχηγός.

Update #2: Δύο χρόνια μετά, ο πολυμετοχικός πλέον Παναθηναϊκός, λέει στο Δ.Π. να βρει ομάδα στο εξωτερικό…

Γιατί ο Έλληνας για να διαπρέψει πρέπει να ξενιτευτεί;

Δίαβασα πρόσφατα αυτό το άρθρο. Παραθέτω την αρχή του:

"Έχει αναρωτηθεί ποτέ κανείς γιατί κανένας Έλληνας δεν έχει αναγνωριστεί ποτέ στον τόπο του; Γιατί ο Έλληνας για να διαπρέψει πρέπει να ξενιτευτεί;"

Δεν ξέρω ποιος ή τι εκνεύρισε τον alex για να το γράψει, αλλά η απάντηση είναι απλή: Φταίει η υπερσυγκέντρωση Ελλήνων στον ίδιο γεωγραφικό χώρο.

Installing OpenBSD 3.9 on a Soekris 4801

There are many ways to install OpenBSD 3.9 on a Soekris 4801. One can refer to flashdist and OpenSoekris. This is an alternate method. Why? Because it can be done. Flashdist and OpenSoekris aim at smaller distributions (~ 32MB) while using my way you get a more complete OpenBSD installation.

  1. Setup a DHCP server

    I use the ISC DHCP server. The relevant part in the dhcpd.conf is:

    host foo {
            hardware ethernet 00:00:24:XX:YY:ZZ;
            fixed-address foo.bar.tee.gr;
            filename "pxeboot";
    }
    

    The above configuration presupposes that your DHCP server is going to be used as a TFTP server also.

  2. Stuff to do on the TFTP server

    Assume that the tftp root directory is /tftpboot. Place on /tftpboot the file
    pxeboot that is found on the OpenBSD distribution.

    Also, place on /tftpboot the install kernel, bsd.rd.

    Next, mkdir /tftpboot/etc. Create a file named /tftpboot/etc/boot.conf with the following contents:

    set tty com0
    stty com0 9600
    boot bsd.rd
    
    

    If your 4801 console is setup to a different baud rate, either change this here, or on your 4801’s console. Refer to the Soekris BIOS documentation on how to do this.

    If your inetd/xinetd makes use of /etc/hosts.{allow,deny} then take care to allow foo.bar.tee.gr to access the tftp server.

  3. Netboot your Soekris 4801

    According to the Soekris documentation on the Soekris BIOS prompt you should type:

    boot f0
    

  4. Install OpenBSD 3.9

    This procedure is best covered by the OpenBSD documentation.

    What you need to remember is that you are installing on a Compact Flash. Therefore you do not need a swap partition. But OpenBSD does not install unless you have a swap partition. So you can create a swap
    partition with size of 1 (yes one):

    
    Initial label editor (enter '?' for help at any prompt)
    > p
    device: /dev/rwd0c
    type: ESDI
    disk: TOSHIBA THNCF25
    label:
    bytes/sector: 512
    sectors/track: 32
    tracks/cylinder: 16
    sectors/cylinder: 512
    cylinders: 978
    total sectors: 500736
    free sectors: 0
    rpm: 3600
    
    16 partitions:
    #             size        offset  fstype [fsize bsize  cpg]
      a:        500703            32  4.2BSD   2048 16384  578
      b:             1        500735    swap
      c:        500704            32  unused      0     0
    > w
    > q
    

    When you need to select what sets to install, you select only:

            [X] bsd
            [ ] bsd.rd
            [ ] bsd.mp
            [X] base39.tgz
            [X] etc39.tgz
            [ ] misc39.tgz
            [ ] comp39.tgz
            [ ] man39.tgz
            [ ] game39.tgz
            [ ] xbase39.tgz
            [ ] xetc39.tgz
            [ ] xshare39.tgz
            [ ] xfont39.tgz
            [ ] xserv39.tgz
    Set name? (or 'done') [bsd.mp] done
    

    Halt the system

  5. Configure the System

    Boot in single user mode. Interrupt the OpenBSD boot procedure (not the Soekris BIOS one) and type boot -s. When the system boots, perform the next steps:

    mount -o rw /
    mkdir /mfs
    

    Modify /etc/rc to execute the following script:

    # add a line after the rm -f /fastboot entry in /etc/rc to execute this
    # script: /usr/local/sbin/setup_mfs.sh
    #
    # This preassumes that you have moved /var/log to /var/log.template
    # and /var/mail to /var/mail.template
    #
    # /tmp -> /mfs/var/tmp
    # /var/tmp -> /mfs/var/tmp
    # /var/log -> /mfs/var/log
    # /var/run -> /mfs/var/run
    # /var/mail -> /mfs/mail
    #
    echo mfs: mounting /mfs...
    mount_mfs -s 16384 /dev/wd0b /mfs
    mkdir -p /mfs/var/run
    mkdir -p /mfs/var/tmp
    chmod 1777 /mfs/var/tmp
    cp -Rp /var/log.template /mfs/var/log
    cp -Rp /var/spool/mqueue /mfs/mqueue
    cp -Rp /var/spool/clientmqueue /mfs/clientmqueue
    cp -Rp /var/mail.template /mfs/mail
    #
    # EOF
    

    Do not create the symbolic links yet!

    chmod +x /usr/local/sbin/setup_mfs.sh
    

    Edit /etc/mail/sendmail.cf and /etc/mail/submit.cf and change the entries for clientmqueue and mqueue to point at /mfs/{clientmqueue,mqueue}

    Create all the symbolic links discussed above and reboot.

    After the first reboot, edit /etc/fstab to mount / as read-only:

    /dev/wd0a / ffs ro,noatime 1 1
    

    On a 256MB Compact Flash df -h shows:

    # df -h
    Filesystem     Size    Used   Avail Capacity  Mounted on
    /dev/wd0a      240M    136M   91.8M    60%    /
    mfs:28643      7.8M    112K    7.3M     1%    /mfs
    

Comments, flames and improvements are welcome.

P.S. What about the PC Engines WRAP?