reading the classics

Χάζευα πριν καιρό τη σελίδα “CS294-17: Reading the Classics για το σεμιναριακό μάθημα που κάνει ο Παπαδημητρίου στο Berkeley. Τα πράγματα που μου έκαναν αμέσως εντύπωση:

Course Requirements:

Attend all meetings, read all papers, and participate in the discussion.

Present (possibly in a group) one of the classics, and write a paper about it (including a summary of the presentation and the discussion).

Και φυσικά τα ίδια τα classics:

Σκεφτόμουν λοιπόν: Εμάς γιατί δεν βρέθηκε ένας άνθρωπος να μας βάλει να τα διαβάσουμε; ΟΚ μπορεί με τον ένα ή τον άλλο τρόπο, από τύχη και αυτενέργεια να έχουμε διαβάσει μερικά, αλλά πόσα έχουμε συζητήσει με άλλους; Πόσα έχουμε παρουσιάσει (άρα και έχουμε καταλάβει) σε άλλους;

Φανταστείτε λοιπόν τη χαρά μου όταν ο Γιάννης Θεοδωρίδης έκανε περίπου το ίδιο πράγμα (διαβάστε το paper, γράφτε μου τι καταλάβατε σε μια σελίδα) για κλασσικές δουλειές στο χώρο των βάσεων. Όλα τα κλασσικά (Codd, Chen, Comer κ.λπ.) θα τα βρείτε εδώ.

Ελπίζω και άλλοι να ακολουθήσουν το παράδειγμά του.

NSFNET legacy

Θυμάμαι, χρόνια πριν, να ακούω τη συζήτηση που πήγαινε κάπως έτσι:

– Και τώρα που μας τελειώνει το NSFNET τι θα γίνει; Θα μείνουμε χωρίς σύνδεση*;

– Μπα… Κάτι άλλο θα γίνει. Στο κάτω κάτω, όλος ο υπόλοιπος κόσμος είναι έστω και υποτυποδώς συνδεδεμένος. Δε μπορεί να μείνουν αυτοί απέξω. Τα πανεπιστήμιά τους δε θα το θέλουν δηλαδή.

Και …εγένετο Internet Commercialization!

Στις 29 και 30 Νοεμβρίου γίνεται μια διημερίδα αφιερωμένη στην κληρονομιά που άφησε το NSFNET. Το πρόγραμμά της περιλαμβάνει ενδιαφέρουσες ομιλίες γύρω από την ιστορία του Internet και το webcast των εκδηλώσεων είναι ανοιχτό στον καθένα.

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

[goto http://www.nsfnet-legacy.org/]


[*] – Δηλαδή χωρίς email, USENET και FTP.

city

Τιμάμε τα στέκια μας: Σήμερα το City κλείνει 19 χρόνια λειτουργίας.

Να τα εκατοστήσετε παιδιά.

core dumb

core dumb: n.

Η πνευματική κατάσταση στην οποία περιέρχεται ο διαχειριστής όταν έχει προβεί σε όλες τις προτεινόμενες από τον κατασκευαστή ενέργειες και όμως συνεχίζει να παίρνει core dumps.

Ο όρος εφευρέθηκε από τον coby.

data loss (?)

Ο Δημήτρης ζητάει ένα σχόλιό μου πάνω σε αυτό το θέμα:

Darling admits Revenue loss of 25 million personal records

Συνοπτικά: Η υπηρεσία που είναι υπεύθυνη για τη συλλογή των φόρων στο Ηνωμένο Βασίλειο ανακοίνωσε πως χάθηκαν δύο CD, που ταχυδρόμησε στο NAO, με records που αφορούν περίπου 25 εκατομμύρια πολίτες. Τα στοιχεία περιείχαν:

  • Ονοματεπώνυμο
  • Ημερομηνία Γέννησης
  • Ενιαίος Αριθμός Ασφάλισης
  • Τραπεζικός λογαριασμός (όχι σε όλες τις εγγραφές)

(Δείτε και το σχετικό άρθρο στο Wikipedia)

Τα σχόλιά μου:

  • Δεν εύχομαι κάτι τέτοιο ούτε στον εχθρό μου
  • Συμβαίνουν και στις καλύτερες οικογένειες λοιπόν
  • Θυμήθηκα πόσο μεγάλο μπορεί να είναι το bandwidth ενός φορτηγού γεμάτου σκληρούς δίσκους / CD / storage devices*

Συγνώμη Δημήτρη, αλλά δεν νομίζω πως υπάρχουν (ακόμα) στη δημοσιότητα αρκετά στοιχεία για να κάνει κάποιος σοβαρό σχολιασμό επί του θέματος, και μάλλιστα από τόσο μακριά από τα γεγονότα. Υποτίθεται πως διαδικασίες υπήρχαν, όπως και αμοιβαία συννενόηση ανάμεσα στις υπηρεσίες για την ανταλλαγή των δεδομένων. Αλλά όπως λέει και ένας φίλος, Τελικά η κρίσιμη υποδομή είναι ο άνθρωπος.”:

“The discs were sent by junior staff at HM Revenue and Customs (HMRC) based at Waterview Park in Washington, Tyne and Wear, to the National Audit Office (NAO), as unrecorded internal mail via TNT N.V” (ref)

Εάν υπάρχει κάποιο δίδαγμα από αυτήν την υπόθεση, τότε αυτό είναι:

It is not a matter of “if” but of “when

και άρα πρέπει να είσαι έτοιμος για το damage control / containment.

Την παραπάνω πρόταση στα Ελληνικά μπορεί να την έχεις ακούσει σαν:

“Όσο περνάει ο καιρός και το σύστημά σας δεν έχει παραβιαστεί, η πιθανότητα να παραβιαστεί πλησιάζει το P=1”

Την διατύπωση αυτή την άκουσα πρώτη φορά το 2001 από τον Δημήτρη Γκρίτζαλη.


[*] “Never underestimate the bandwidth of a truck full of tapes hurling down the highway” –Andrew S. Tanenbaum

Having fun with the MNIST database

The MNIST database of handwritten digits, available from this page, has a training set of 60,000 examples, and a test set of 10,000 examples. It is a subset of a larger set available from NIST.

It consists of four files that store data in a simple file format (idx format) which is documented in the MNIST database homepage. I wrote this C program to be able to extract the descriptions of handwritten digits of a certain value separately (eg. only the 0s or only the 1s). The text output is pretty simple and closely resembles the format of a PGM file. It is describes the grayscale pixel values of the image in decimal ASCII. Pixel values range from 0 to 255.

As a bonus, there is the opportunity to extract the images in portable graymap file format (PGM) image files.

This program was written with these guys mostly in mind.

[download mnist.c]

Mulberry opensourced!

Φρέσκο, φρέσκο από το INBOX μου:

Hi folks,
All the Mulberry code is now available as open source under an Apache 2 license. Details here:

<http://trac.mulberrymail.com/mulberry/wiki/opensource>

A mailing list has been setup for anyone interested in working on the Mulberry code. You can subscribe to the list at:

<http://lists.mulberrymail.com/mailman/listinfo/mulberry-dev>


Cyrus Daboo

Bye bye Thunderbird…

Πειρατικό λογισμικό – Ελεύθερο λογισμικό

Η BSA “τρέχει” μια καμπάνια στον Τύπο (ή τουλάχιστον είναι η δεύτερη Κυριακή που τη βλέπω στην Καθημερινή), που πάει κάπως έτσι:

ΠΕΙΡΑΤΙΚΟ ΛΟΓΙΣΜΙΚΟ:
ΔΕΝ ΠΛΗΡΩΝΕΤΕ ΤΙΠΟΤΕ ΓΙΑ ΝΑ ΤΟ ΒΑΛΕΤΕ.

ΠΛΗΡΩΝΕΤΕ 1000 ΕΥΡΩ ΓΙΑ ΝΑ ΤΟ ΒΓΑΛΕΤΕ.

Είναι νομίζω μια καλή ευκαιρία για τους υποστηρικτές του ελεύθερου λογισμικού να κάνουν μια ανάλογη καμπάνια:

ΕΛΕΥΘΕΡΟ ΛΟΓΙΣΜΙΚΟ:
ΔΕΝ ΠΛΗΡΩΝΕΤΕ ΤΙΠΟΤΕ ΓΙΑ ΝΑ ΤΟ ΒΑΛΕΤΕ.

ΔΕΝ ΧΡΕΙΑΖΕΤΑΙ ΝΑ ΤΟ ΒΓΑΛΕΤΕ.

Φαντάζομαι όμως πως δεν υπάρχουν οικονομικοί πόροι τέτοιοι για αντίστοιχες καταχωρήσεις στον Κυριακάτικο Τύπο.

Και με την ευκαρία: Μπορεί να έχουμε συνδέσει την έννοια του πειρατικού λογισμικού με την παράνομη διακίνηση και χρήση του εμπορικού-κλειστού λογισμικού, αλλά είναι εύκολο να καταλάβει κανείς πως η πειρατική χρήση είναι φαινόμενο που συμβαίνει και στο ανοιχτό λογισμικό (όταν δεν τηρούνται οι όροι της άδειας χρήσης, αναδιανομής, κ.ο.κ.).

predefined symbols in gcc

I keep forgetting this, so although it is a note to self, I post it here too. The easiest way to find out what symbols are predefined by gcc in your platform; follow these steps:

$ touch p.c
$ gcc -E -dM p.c

#define __DBL_MIN_EXP__ (-1021)
#define __FLT_MIN__ 1.17549435e-38F
#define __CHAR_BIT__ 8
#define __OpenBSD__ 1
#define __WCHAR_MAX__ 2147483647
#define __DBL_DENORM_MIN__ 4.9406564584124654e-324
#define __FLT_EVAL_METHOD__ 2
#define __unix__ 1
#define __i386__ 1
#define __SIZE_TYPE__ long unsigned int
#define __ELF__ 1
#define __DBL_MIN_10_EXP__ (-307)
#define __FINITE_MATH_ONLY__ 0
#define __GNUC_PATCHLEVEL__ 5
#define __FLT_RADIX__ 2
#define __LDBL_EPSILON__ 1.08420217248550443401e-19L
#define __SHRT_MAX__ 32767
#define __LDBL_MAX__ 1.18973149535723176502e+4932L
#define __LDBL_MAX_EXP__ 16384
#define __LONG_MAX__ 2147483647L
#define __SCHAR_MAX__ 127
#define __DBL_DIG__ 15
#define __USER_LABEL_PREFIX__ 
#define __STDC_HOSTED__ 1
#define __LDBL_MANT_DIG__ 64
#define __FLT_EPSILON__ 1.19209290e-7F
#define __LDBL_MIN__ 3.36210314311209350626e-4932L
#define __WCHAR_TYPE__ int
#define __FLT_DIG__ 6
#define __FLT_MAX_10_EXP__ 38
#define __INT_MAX__ 2147483647
#define __FLT_MAX_EXP__ 128
#define __DECIMAL_DIG__ 21
#define __DBL_MANT_DIG__ 53
#define __WINT_TYPE__ unsigned int
#define __GNUC__ 3
#define __LDBL_MIN_EXP__ (-16381)
#define __LDBL_MAX_10_EXP__ 4932
#define __DBL_EPSILON__ 2.2204460492503131e-16
#define __DBL_MAX__ 1.7976931348623157e+308
#define __DBL_MAX_EXP__ 1024
#define __ANSI_COMPAT 1
#define __FLT_DENORM_MIN__ 1.40129846e-45F
#define __LONG_LONG_MAX__ 9223372036854775807LL
#define __FLT_MAX__ 3.40282347e+38F
#define __GXX_ABI_VERSION 102
#define __FLT_MIN_10_EXP__ (-37)
#define __FLT_MIN_EXP__ (-125)
#define i386 1
#define __GNUC_MINOR__ 3
#define __DBL_MAX_10_EXP__ 308
#define __LDBL_DENORM_MIN__ 3.64519953188247460253e-4951L
#define __DBL_MIN__ 2.2250738585072014e-308
#define __PTRDIFF_TYPE__ long int
#define __tune_i386__ 1
#define __LDBL_MIN_10_EXP__ (-4931)
#define __REGISTER_PREFIX__ 
#define __LDBL_DIG__ 18
#define __NO_INLINE__ 1
#define __i386 1
#define __FLT_MANT_DIG__ 24
#define __VERSION__ "3.3.5 (propolice)"

$ rm p.c
$

The output in this example is from a PIII machine running OpenBSD-4.2.