catching the network science bug

About 10 days ago I was asked by two friends (who do not know each other) for some information and literature on social networks. So after talking to them, I decided to document my self-study journey on social network analysis and the new(?) discipline that is called network science. I feel these two walk together hand in hand.

I first encountered SNA while reading the June 2007 Data Engineering Bulletin issue and especially Bernie Hogan’s “Using Information Networks to Study Social Behavior: An Appraisal” [pdf]. This must be the Data Engineering Bulletin issue that I have read the most. I remember being on vacation, having ideas flowing and calling Unique Fish in the middle of the night to discuss them.

It also happened that the next fall I was studying basic graph theory and I revisited the two Faloutsos3 papers on power laws and the Internet topology. I thought of toying around a bit more, but hey someone else had already written about “The Social Life of Routers” [pdf].

Digging some more, I came along the INSNA web site and their SOCNET mailing list (participation is free and the quality of conversations is excellent). From there I found out interesting stuff, the most interesting being: Social Network Analysis (if you need a freely available book look at Introduction to social network methods), Mason Porter’s blog (which is fun to read anyway) Valdis Krebs‘ work (also @valdiskrebs) and some papers that I really liked, namely [pdf links]:

Last summer John Baras, while giving a presentation on the subject, suggested reading Network Flows and Monotropic Optimization (and I have not regretted buying it) and Freeman‘s The development of social network analysis is waiting next in line to be read.

The list could go on of course, but I’ll stop here.

Important disclaimer: The above is the product of my self-study effort on the subject. It is not to be taken as a suggested roadmap of systematic study in any way. After all it is a personal log of my journey on the subject, and can best be viewed as bookmarks with commentary.

Update 2009/06/12: Alexandra Marin and Barry Wellman posted: “Social Network Analysis: An Introduction” [pdf]

tee.gr & teemail.gr downtime

Υπάρχει ανακοίνωση στην πρώτη σελίδα εδώ και μέρες, στείλαμε και email σε όλο τον κόσμο, αλλά για το φόβο του Murphy το βαζω και εδώ:

Σας ενημερώνουμε ότι την Τετάρτη 10 Ιουνίου 2009 από τις 09:00 μέχρι τις 16:00 θα διακόπτονται σταδιακά οι υπηρεσίες της ΤΠ/ΤΕΕ, λόγω απαραίτητων ηλεκτρολογικών εργασιών.

Στις υπηρεσίες που θα επηρεαστούν περιλαμβάνονται:

– πρόσβαση στο Διαδίκτυο (Internet) με οποιαδήποτε από τις μεθόδους που προσφέρει η ΤΠ/ΤΕΕ στους συνδρομητές της (dialup και ADSL).
– υπηρεσίες ηλεκτρονικού ταχυδρομείου (@tee.gr, @teemail.gr)
– υπηρεσίες αμοιβών μηχανικών
– το portal του ΤΕΕ, http://www.tee.gr
– λοιπές συνδρομητικές υπηρεσίες της ΤΠ/ΤΕΕ.

Το προσωπικό της ΤΠ/ΤΕΕ θα καταβάλει κάθε δυνατή προσπάθεια προκειμένου ο χρόνος διακοπής να είναι ο ελάχιστος δυνατός.

136

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

Τι γίνεται όμως εάν ο δικαστικός αντιπρόσωπος είναι σε εναλλακτικό πάροχο και δεν μπορεί να καλέσει το 136;

Απάντηση:

(α) Πάει κάπου που να έχουν ΟΤΕ για να κάνει τη διαδικασία

(β) Δίνει τα στοιχεία του σε κάποιον που έχει ΟΤΕ και κάνει τη διαδικασία για αυτόν

(γ) Ζητάει από κάποιον που έχει ΟΤΕ να καλέσει το 136, τους δίνει το τηλέφωνο του δικαστικού αντιπροσώπου και τον καλούν αυτοί.

FYI

pf tricks

OpenBSD journal points that pf is enabled by default on OpenBSD from now on (with the exception of X11 incoming traffic). I take the opportunity to share some minor tricks that I use with pf on my BSD systems (servers mostly):

Regardless of the default policy which may or may not vary across the BSD operating systems that support pf, I always have a pf.conf.block and a pf.conf.pass handy, just in case I need to enable one of the two defaults for debugging:

* pf.conf.block:

block all

* pf.conf.pass:

pass all

On machines that run OpenVPN it happens that pf is enabled and its rules are loaded before OpenVPN is started (and its virtual interface created). So if your pf.conf has rules for a non existent interface, loading it fails leaving your machine’s pf in a state that your clearly do not want. In those cases I boot the machine with a very simple policy and load the intended policy (written in /etc/pf.conf.local) later from /etc/rc.local by issuing the command:

pfctl -Fall -f /etc/pf.conf.local

And the simple policy contents of /etc/pf.conf are:

table <machine> const  { self }
block all
pass all to <machine>
pass all from <machine>

The above policy allows any kind of traffic to and from the machine, but routes no traffic between interfaces. It can be modified depending the services the machines starts (if any) and it is used only for boot time. YMMV.

Μήνυμα του Στέφανου Μάνου

Από το υστερόγραφο του τελευταίου πολιτικού spam:

“Υ.Γ. Ζητώ την κατανόηση σας για τον ανορθόδοξο τρόπο επικοινωνίας. Η κυβέρνηση “φρόντισε” να φιμώσει τη Δράση, απαγορεύει στα νέα κόμματα τη χρήση των ραδιοτηλεοπτικών μέσων. Αν πάντως δεν επιθυμείτε να λαμβάνετε μηνύματα από τη “Δράση”, απαντείστε γράφοντας “διαγράψτε με”.”

Καμία κατανόηση. Δύο λάθη δεν κάνουν ένα σωστό. Αναζητήστε λοιπόν ένα σύμβουλο επικοινωνίας που να ξέρει το αντικείμενο. Η όποια στοιχειώδης συμπάθεια που είχα στον κομματικό σχηματισμό σας εξαφανίστηκε.

Aaaargh!!! no-reply addresses in From: headers

I was asked to create a no-reply@ address for a certain internal application.

Aaaargh! Aaaargh! Aaaargh!!!

Fortunately Word to the wise points to this excellent article which I suggested that the people “upstairs” should read:

“Do Not Reply” Address? Don’t Bother.

As always, if you are lucky enough a consultant is an expert from out of town. Most of the times they are from out of this planet though.

XandrOS presto

I have been a XandrOS user ever since their first released version of desktop Linux. The reason that I stopped using XandrOS 4 was that I could not compile ns2-2.31 on it (which meant switching to Ubuntu and later to Debian/Etch; this desktop now runs OpenBSD). So when XandrOS emailed me an offer to install Presto, I gladly did.

If there is one way for Linux to conquer the desktop, distributions like Presto are the way to go. If most of the time that you use your computer you browse the web why not use an operating system that boots faster (11 seconds on my HP 530 laptop) and consumes less energy while at the same time your documents are accessible? Everyone seems to be riding the green computing wave and judging from my laptop’s battery, Presto is greener than Vista. Plus their email support is exceptional and they follow back when they haven’t heard from you for a day or two.

Presto installs as a three-click (next, next, install) application from within Windows. I can’t wait for a standalone installer for my Aspire One A110L.

on AMKA

Συνήθως αποφεύγω να κάνω κρίσεις από μακριά για την δουλειά των άλλων, αλλά η περίπτωση του ΑΜΚΑ είναι μία εξαίρεση. Μου γεννιόνται απορίες και ελπίζω να τις διαβάσει κάποιος και να μας διαφωτίσει. Αρχικά υπήρχε η παρατήρηση του Stazybo Horn πως τα πρώτα ψηφία του ΑΜΚΑ αποτελούνται από την ημερομηνία γέννησης του ασφαλισμένου. Μου φάνηκε περίεργο, αλλά δεν έδωσα ιδιαίτερη σημασία. Μέχρι που σήμερα η γυναίκα μου κάνοντας ένα paper mining, βρήκε τη δικιά της κάρτα με τον ΑΜΚΑ της, καθώς και το χαρτί που συνόδευε την κάρτα. Διαβάζει λοιπόν κανείς στο πίσω μέρος του χαρτιού:

Ελέγξετε την ημερομηνία γέννησης και το φύλο, που περιέχονται στον Α.Μ.Κ.Α., σύμφωνα με το παρακάτω παράδειγμα.

Έστω ότι ο Α.Μ.Κ.Α. είναι ο 270163 0012 5

  • Οι πρώτοι έξι (6) αριθμοί είναι η ημερομηνία γέννησης (27 Ιανουαρίου 1963).
  • Από τους επόμενους τέσσερις αριθμούς (0012) ο τελευταίος (δηλ. το 2) δηλώνει το φύλο και στη συγκεκριμένη περίπτωση πρόκειται για γυναίκα. Γιατί οι ζυγοί αριθμοί 0,2,4,6,8 δίδονται στις γυναίκες ενώ οι μονοί 1,3,5,7,9 δίδονται στους άνδρες.
  • Ο τελευταίος αριθμός (5) αφορά τη μηχανογράφηση και επομένως δεν ελέγχεται από εσάς.

 

Ερωτήματα:

  1. Η ασφαλισμένη γεννήθηκε στις 26/01/63. Y2K anyone; Η δικιά μου κάρτα έφτασε ~5 χρόνια πριν. Ξεχάστηκε τόσο γρήγορα; Τι θα γίνει εάν κάποιο νεογέννητο βρεθεί με το ΑΜΚΑ κάποιου υπεραιωνόβιου;
  2. 80 bits (ναι 80, όχι 88, θα το δούμε μετά) για να περιγραφεί ο ασφαλισμένος με μοναδικό τρόπο; Τη στιγμή που αρκούν 33 bits για να χαρακτηρίσουν μοναδικά όποιον ζει αυτή τη στιγμή στον πλανήτη;
  3. Δεν ξέρω πως είναι οργανωμένη η βάση του ΑΜΚΑ, καταλαβαίνω όμως πως ο ΑΜΚΑ είναι πρωτεύον κλειδί (ή χρησιμοποιείται ως τέτοιο). Είναι δυνατό να κάνει κανείς πράξεις στο πρωτεύον κλειδί για να εξάγει συμπεράσματα για τον ασφαλισμένο; Και εάν δεν κάνει τον υπολογισμό επί του κλειδιού αυτού, ξανασώζει την ίδια πληροφορία σε χωριστό πεδίο; Και όχι μόνο αυτό, αλλά η πληροφορία αυτή να είναι substring μήκους 6 bytes μέσα σε άλλο string, ενώ θα μπορούσε να είναι 4 bytes (ένας integer); Update: Χρόνια μετά υποψιάζομαι πως ο λόγος που ο ΑΜΚΑ έχει αυτή τη μορφή είναι για να τον θυμάται εύκολα ο ασφαλισμένος. Και τον δικό του και των παιδιών του.
  4. Το αυτό και για το φύλο του ασφαλισμένου. Γιατί πρέπει να είναι κομάτι του ΑΜΚΑ αυτό;
  5. Τι εξυπηρετούν τα 3 bytes για τα οποία δεν υπάρχει εξήγηση;
  6. Το 11ο byte (αυτό που αφορά τη μηχανογράφηση) είναι μάλλον κάποιο check digit.

This smells a lot like COBOL.

– Που πάνε οι ΑΜΚΑ όταν πεθαίνουν μπαμπά;