Microsoft

“Today is my last day at Microsoft. I’ve worked for this company for a little over 10 years. […] It’s been a wonderful ride from the Windows team to COM+ to the .NET Runtime ending with 6 years in Microsoft Services. Microsoft is a fantastic company to work for.”

Δεν έχω μιλήσει ποτέ με τον κύριο. Αλλά με όποιον έχω μιλήσει που έχει δουλέψει για τη Microsoft, έχει ακριβώς αυτή την άποψη. Η οποία είναι σχεδόν οπαδική. Σα να λέμε “Τι ομάδα είσαι;” και να σου απαντάει “Microsoft!“. Και αυτό είναι το τρομερό πλεονέκτημα της: Πως οι υπάλληλοι χαίρονται που δουλεύουν σε αυτή. Και ακόμα και όταν φεύγουν δεν έχουν αυτό το τρομερό συναίσθημα ανακούφισης σα να σου έφυγε ένα βάρος από το λαιμό ή το στήθος, αλλά νιώθουν κάτι αντίστοιχο με την αποφοίτηση.

Η μόνη άλλη εταιρία που το έχω δει αυτό είναι το Google.

(ref)

Internet

“In the beginning the Internet was like a small village with happy friendly neighbors. Later tourists came along and nobody has been happy ever since.” –reconstructed from memory

Ανακατασκευασμένο από μνήμης μια και όταν το διάβασα δεν υπήρχε όχι search engine, αλλά μάλλον ούτε Παγκόσμιος Ιστός. Πρέπει να ήταν post στο USENET. Εάν υπάρχει κάπου archived και το ανακαλύψω, θα προσθέσω και την αντίστοιχη παραπομπή. Σπάω το κεφάλι μου μήνες τώρα…

Μάθετε να ρυθμίζετε σωστά τους auto-responders

Όταν χρησιμοποιείτε έναν autoresponder, καλό είναι να μάθετε να τον ρυθμίζετε σωστά. Για παράδειγμα είναι τεράστεια αγένεια (και βλακεία) να δέχεστε email από μια mailing list και να απαντάει σε αυτή ο autoresponder. Ή ακόμα χειρότερα να δέχεστε email από τον MAILER-DAEMON@example.com και να του απαντάτε τα office hours και με ποιον αντικαταστάτη σας μπορεί να επικοινωνήσει. Γενικά δεν απαντάμε ποτέ σε ένα bounce-message και ακόμα ειδικότερα δεν απαντάμε ποτέ μέσω autoresponder. Αν οι παραπομπές δεν σας βοηθάνε να καταλάβετε το γιατί, ρωτήστε τον postmaster σας. Εν ολίγοις, είναι χαζό να απαντάτε σε ένα πρόγραμμα που σας έστειλε ένα πληροφοριακό μήνυμα.

Μάθετε να σέβεστε το χρόνο του απέναντί σας. Μπορεί ο μέσος χρόνος ανάγνωσης ενός autorespond message να είναι 3sec, αλλά τα χιλιάδες καθημερινά τέτοια, απλά καταστρέφουν το χρόνο κάποιου εργαζόμενου. Μην καταστρέφετε το robustness principle πάνω στο οποίο οικοδομήθηκε το Internet:

Be conservative in what you send, liberal in what you accept”

Εάν θεωρείτε σημαντικό το χρόνο σας, καλό είναι να θεωρείτε σημαντικό και τον χρόνο των άλλων.

Migrating thousands of mailboxes to a new mailbox storage

Years ago we were faced with the following situation: We had thousands of mailboxes that were being served by a proprietary and unsupported version of email software. So we decided to move to a new architecture. While researching I selected a very good (IMHO) commercial product. But for reasons outside the scope of the post I opted for a F/OSS solution, and specifically the UW-IMAP toolkit. For those rushing to judge that price was the decisive factor I only have to reiterate Vladimir Butenko‘s words:

“Bottom line: you always pay. You need a simple thing – you pay a small amount, you need a big thing – you pay more.” (plain message and comp.mail.imap thread)

OK and now for the real question: How do you move thousands of mailboxes without your users noticing?

Since you do not know (and do not want to know) your users’ passwords the only thing you can do is to hack into the source code of your POP3 server (we do not offer IMAP yet). Whether it is the UW-IMAP toolkit, Cucipop, popa3d or any other server that you have access to its source, the server knows the correct password for your users when they authenticate. So when the authentication succeeds you fork(2) a program that logs into the old server and fetches the mailbox from the old server to the new one that runs the F/OSS software that you have selected. This can be fetchmail or any similar program. However I have found out that Net::POP3 is a better choice:

#!/usr/bin/perl
use Sys::Syslog;
use Net::POP3;
use DB_File;
$host = shift or die;
$user = shift or die;
$pass = shift or die;
tie %d, 'DB_File', "/etc/pop3.users.db", O_CREAT|O_RDWR, 0640, $DB_BTREE or die;
if ($d{$user}) {
        untie %d;
        exit 0;
}
$pop = Net::POP3->new($host) or die;
if ($pop->login($user, $pass) >= 0) {
        openlog("pop3cat-tmail", 'pid', 'mail') or die;
        syslog('info', 'fetching mail for user %s', $user);
        closelog();
        $msgnums = $pop->list or die;
        foreach $msgnum (keys %$msgnums) {
                $msg = $pop->get($msgnum);
                open T, "| /usr/bin/tmail $user" or die;
                print T @$msg;
                $pop->delete($msgnum);
                close T;
        }
        $d{$user} = "OK";
        untie %d;
}
$pop->quit;
exit 0;

Where exactly in the server code you fork(2), exec(3) and wait(2) for the script depends on the source code. You need to find where in the server code the authentication procedure succeeds and patch from there, before the server actually opens the user’s mailbox.

This script basically checks whether it has already moved a user’s mailbox from the old server. If it has, then the user is found in /etc/pop3.users.db and the script exits. If not, then the mailbox is moved and the user is inserted in /etc/pop3.users.db. Simply using Net::POP3 allows you to move the old mailbox to the Unix traditional mailbox format. That is why we fork tmail, since I have chosen the mbx mailbox format to store messages (I compile UW-IMAP with CREATEPROTO=mbxproto). If your server supports a format like Maildir, then you have to customize the above script accordingly, since it is written for mbx, which means that the user’s mailbox is a single file.

Όλα όσα θα χρειαστείτε για μια άνετη και επιτυχημένη θητεία

Ένας φίλος ξεκινάει τη στρατιωτική του θητεία σε λίγες μέρες και με την ευκαιρία του δείξαμε μια λίστα με πράγματα που πρέπει να έχει μαζί του. Με την άδεια του φίλου Γιώργου που την ανέπτυξε.

Καλή θητεία Κ.

[via]

The Aurelio

Ελπίζω να μη το δούμε και σήμερα αυτό από τον Taddei.

Από το Wikipedia: “On 18 October 2006 Rodrigo created a new trick called “The Aurelio”, named after AS Roma Assistant Manager, Aurelio Andreazzoli. The move envolves putting your weight on your left foot, while guiding the fooball with your right leg around the back of your left leg and forward again. It is only the second ever football trick to be named after a footballer following the Cruyff Turn.”.

Μου αρκεί που το είδα live την πρώτη φορά που το πέτυχε σε αγώνα.  Δε θέλω κι άλλη.

Οι λεπτομέρειες κάνουν τη διαφορά(;)

Η ανακοίνωση του ΠΣΑΤ για τα επεισόδια λέει μεταξύ άλλων:

Οι υπόλοιποι εκπρόσωποι του Τύπου που κάλυπταν τον αγώνα σώθηκαν χάρη στην παρέμβαση του Αργύρη Καμπούρη, τον οποίο ευχαριστούμε δημόσια για την ενέργειά του.”

Στα βίντεο που έδειχναν τα επεισόδια είμαι σίγουρος πως είδα τον Άκη1 (TV Magic Άκης). Διαβάζοντας την ανακοίνωση του ΠΣΑΤ πίστεψα πως απλά είχα κάνει λάθος (ΟΚ δεν μπερδεύει κανείς εύκολα τον Καμπούρη με τον Άκη). Να όμως που ο Γιάννης Λαμπίρης στην ΟΜΑΔΑ γράφει:

“Αξίζει να σημειωθεί ότι από τα χειρότερα γλίτωσαν τους συναδέλφους της ΕΡΤ ο Αργύρης Καμπούρης και ένα μέλος της «Θύρας 7».”

Θα τους έπεφταν τα μούτρα στον ΠΣΑΤ αν το αναγνώριζαν ε;


[1] Το Wikipedia link για τον Άκη δούλευε μέχρι χτες.