Ken Thompson

Ένας καλός φίλος μου έστειλε χτες βράδυ με email ένα attachment:

ken thompson's nametag
ken thompson's nametag from a unix symposium in Greece ~ November 1987

Επειδή ο φίλος δεν μπορούσε να βρει κάποιον να του εξηγήσει πως βρέθηκε αυτό το name tag, ρώτησα τον ίδιο τον Ken Thompson και ιδού η απάντηση:

i dont remember exactly, but i think it was in the mid 80’s. i was invited by the government – department of science or technology or something like that. the occasion was at a time when the government was trying to require unix for sub contractors for standardization.

Ταυτόχρονα ρώτησα και τον Γιάννη Κοροβέση, έναν από τους πρωτεργάτες του Internet στην Ελλάδα:

Λοιπόν, ναι ήμουνα και παρών στο Ξενοδοχείο (Intercontinetal ?) γύρω στα 1989 μαζί με τον ΚΕΝ ήταν και ο B.Gopinath και ένας τρίτος που δεν θυμάμαι προς το παρόν.

Οργανωτής ήταν ο Γιάννης Κοζατσας του ΥΚ της ΓΓΕΤ του τότε (ΥΒΕΤ, Ε=Ερευνα)

Το πιο απλό γεγονός, μία απορία μπορεί να οδηγήσει σε κομάτια της Ελληνικής τεχνολογικής ιστορίας που είναι σχετικά άγνωστα.

Όποιος ξέρει / θυμάται περισσότερα για το γεγονός, παρακαλείται να σχολιάσει.

ΥΓ 2024/09/11 Στο twitter ποσταρίστηκε το σχετικό ρεπορτάζ από τον τότε τύπο:

Image

sendmail: Should I use $*, $+ or $- ?

When writing a sendmail.mc rule, you can use some operators on the left hand side, like $- (match exactly one token), $+ (match one or more tokens) and $* (match zero or more tokens). You may find yourself in a situation where for example you want to use a certain delivery agent for some of your users. Normally you would write something like the following:

LOCAL_CONFIG
Kmitsos btree -m -a.mitsos /etc/mail/mitsosusers

LOCAL_RULE_0
:
R$-  < @ $=w . > $*              $: $(mitsos $1 $)  $3
R$- . mitsos  $*     $#mitsos $: $1

The above example seems to be correct, right? But what if you have a user in mitsosusers that contains a dot (.) in the user name (for example yiorgos.adamopoulos)? Because the . is a token separator (see the OperatorChars definition in your sendmail.cf), $- will not match the name. So the correct ruleset in this case is:

R$+  < @ $=w . > $*              $: $(mitsos $1 $)  $3
R$+ . mitsos  $*     $#mitsos $: $1

I got bitten by this sometime ago, and that is why I am sharing it.

What I like about the NoSQL crowd

Although I am not a big fan of the NoSQL movement (mostly because many of its advocates use arguments I do not agree with) there are a few things that I like about the NoSQL crowd and I want to write them down*. Most of what follows stems from discussions through the years with our DBA and some friends who are members of the “Greek Database Mafia“.

For more than two decades the dominance of the relational model (even though no commercial system fully implemented it) was undisputed. Nobody ever got fired for choosing a commercial RDBMS for an application, where instead one would look suspicious if one dared to propose something different. This situation is no different than what Rob Pike described in “Systems Software Research is Irrelevant” for Operating Systems:

  • For example it took 10+ years for the R-Tree to enter the commercial systems, although it was solving a real problem. In the meantime if you were lucky and your system offered extensibility you could write it on your own.
  • No matter how novel the system, for it not to be marginalized it had to have an “SQL layer”. No SQL queries, no sales. Provide an SQL layer and all innovation of the product stays unused.
  • Ones proposal for an RDBMS purchase had to be among three or four commercial products. Anything else would likely be considered “a hacker’s choice” because “We make money! We cannot go that way!”

You could say that databases outside academic research had come to a halt. You don’t believe me? Just ask Yannis Ioannidis who uses to say that “Databases are dead in the most emphatic way when he wants to stir things up in a conversation.

And this is what I like about the NoSQL crowd (== implementers, advocates and integrators) . They do not care about established standards. They are not afraid to experiment in a “real environment”. Some of them may focus on a single problem and solve it well. Others may aim at a wider range of problems. But no system is stopped from being developed and deployed because it not “SQL compilant” or not relational. And even though some of these solutions resemble CODASYLo, once again there is action in the field.

But please people, stop marketing them as a “one solution fits all”. For we will again end up in a stagnation era, just like when everyone was storing stuff in an RDBMS for lack and fear of better suited solutions. They do not invalidate relational systems. They fill in the gap left by them.


[*] – As I had promised.

[†] – By the way, did you know that GROUP BY works outside of the “relational box”?

[‡] – I have heard him say this while giving a speech.

[o] – “one usually gets a low-level record-at-a-time DBMS interface“, says Mike Stonebraker.

La Ola

From page 25 of Connected:

A group of physicists who usually study waves on the surface of liquids were sufficiently intrigued that they decided to study a collection of filmed examples of La Ola in enormous soccer stadiums; they noticed that these waves usually rolled in a clockwise direction and consistently moved at a speed of “twenty seats per second”.*

Damn! I have participated numerous times in such waves and never, ever thought of that!


[*] – “Mexican waves in an excitable medium“, Nature 419, 131-132 (2002).

Super Crunchers

I am slightly disappointed. Two problems with the book (three if you count the translation which was forcing me to re-translate in English and back to Greek):

  1. The book feels like an extended version of an already long paper. This becomes tiring at times.
  2. The book explains why traditional experts in certain (all?) fields will be replaced by statistical methods. What the book does not say, is that a new breed of experts will rise: The ones that will devise the statistical models. The untrained eye may easily believe that all it takes is a lot of data and a few keystrokes.

I wrote the above lines while reading the book and before the final chapter. Chapter 8 makes up for the above, but somehow I expected more. Maybe I do not belong to the target audience.

PS1: While reading the book, I think I discovered how the character of Ian Frost (from Turing) was named.

PS2: Going through the author’s page I came across stickK which seems to be a perfect tool to fight procrastination.

Open Systems Security – an Architectural Framework

“In the old days” when security information was scarce and many of us began shaping our security mentality (be it white, gray or black) by reading “Improving the Security of Your Site by Breaking Into it” and the Computer Security FAQ and running tools like iss and Crack. I think it was there that I first read about Arto Karila’s PhD thesis. Even though it is an OSI based document, it helped understand basic concepts. However there were two problems with the document:

  1. It was hard to find, and
  2. It was in a weird PostScript format that even modern versions of ghostscript refuse to display.

With the help of a friend I managed to transform it to PDF and upload it to Scribd: Open Systems Security – an Architectural Framework

Of historical value mostly.

Update 2013/04/13: Now available at https://github.com/a-yiorgos/karila

Device drivers in Java?

The following tweet by @DSpinellis:

#USENIX @AnnualTech M. Renzelmann Decaf: Moving Device Drivers to a Modern Language (Java). He says performance impact is 1%

talks about “Decaf: Moving Device Drivers to a Modern Language” which describes a system where large parts of a driver can be written in a better language than C, the example here being Java.

I was certain that this was not the first time I had read about such an idea. This weekend I was able to go through my archive and find out the reference. Back in January 1997 in the NT Insider (Volume 4, Issue 1) Peter Viscarola, while criticizing the multitude of startups founded by anyone who could code a Java applet (this was a pre-dot-boom era remember) wrote:

It’s obvious that we are missing a real opportunity here to capitalize on the convergence of these trends. We need to immediately fund a start-up company to develop a package for writing Windows NT drivers in Java. THINK of it! We could have processor architecture independent device drivers that don’t even need to be recompiled in order to support X86, PPC, and Alpha machines! Amazing! We could create a visual driver development environment, complete with cute animated assistants. And, the drivers could probably have a visual component to them, so you could actually see your toaster-oven driver doing its work. Cool! THEN we could all be challenged, and have fun, and get rich at the same time. Wow! Why didn’t I think of this before?

It would be nice if we could see Peter’s views on the subject 12 years later.

The story of a lost manuscript

In “The development of social network analysis” (for which I have blogged too) Linton C. Freeman, among other things, tracks the efforts of different scientists to lay a mathematical foundation for SNA. For two such efforts he writes:

“both Fararo (circa 1964) and I separately set out to specify the common mathmatical properties of all these seemingly different studies. Fararo circulated but never published his paper. Mine was presented several times and eventually published, but not until twenty-five years later.”

The unpublished manuscript in question was entitled “Theory of Webs and Social Systems Data“. I contacted Professor Fararo for the unpublished manuscript. He told me that he had lost his copy and that I might be lucky by asking Professor Freeman, which I did. When I contacted Professor Freeman he was away from home, but promised to look for it. Indeed about a week later he found the manuscript, had it scanned and emailed it to me. Like I told to my wife who is an archaeologist, I think this is what it feels when they (archaeologists) make a discovery.

Prior to writing this blog post, I told this story to two friends of mine. Funnily enough they asked me the same question:

– Name one Greek Professor who (a) would answer to your email and (b) would go into all that effort to locate something written circa 1965-1966 and send it to you.

This humble blog post stands to publicly thank both Professors for their kind replies and help.

Update: After getting permission, I uploaded the document on Scribd.