Every student is required to read this (before being contaminated by PowerPoint).-
Tag: Computing
Mary Tsingou
Since today is Ada Lovelace Day, it may be worth reading about Mary Tsingou: “Fermi, Pasta, Ulam and a Mysterious Lady” [pdf]
Universal Systems Language
While clearing my IEEE/Computer stack I read about the Universal Systems Language (December 2008 issue). Mind blowing stuff! USL and its Deal-Before-The-Fact methodology have their roots in the Apollo space program:
“We were the luckiest people in the world. There was no choice but to be pioneers. What would later become foundations for USL enabled the Apollo team to create the software for the trip to the moon.”
As is highlighted in the article “Correct use of USL eliminates the majority of errors, including all interface errors within a system modem and its derivatives”.
It is a pity that the 001 Tool Suite seems to cost $9950 :( That way we can only read (and dream) about it.
Algorithms on Strings
I was first exposed to string matching by given to read “Algorithms for Finding Patterns in Strings” back in 1990, when I naively asked Prof. Stathis Zachos something like “How does grep work?”.
Time passed, I became a system administrator and most of my exposure to string matching was through scripts and sysadmin stuff automation. Automata are nice, but Perl and shell brought food to the table.
These memories surfaced because I got to read “Algorithms on Strings” in January thanks to Bill Gasarch. Complete, self-contained and with plain and well understood English, the book covers the subject fulfilling simultaneously the needs of those who want to just read the theory, those who want to see the proofs and those who just want to write code.
The pseudocode in the book is understood by anyone who has ever written a single program in C or Java. It either introduces new functions or makes use of others previously defined. This may make it a little difficult at first for people who need to write something described in, for example, chapter six and may find themselves reading from chapter one up to six. In this process the book manages to educate even the programmer who does not care about theory not only about how to do certain functions, but why they are done the way they are. As a plus, references to appropriate Unix shell tools (e.g. diff) are given when appropriate.
A really impressive book, definitely worth your time! A book that you can use both to learn about stuff and as a reference.
The Kirsch postulate
In “An undetected error“†, Russell A. Kirsch states “the Kirsch postulate”:
All computers are always, in some sense, “broken.”
How he reached to that assertion is an interesting story that includes moving the SEAC, a logic (wiring) error found out during the move and a lot of debugging that really missed the error.
[†] – “Letters,” Computer, Vol. 42, 04, pp. 6-7, April, 2009.
Welcome back old friend
I had a professor who maintains the view that whatever system does not evolve dies. That is the case for Sun too.
Welcome back old friend. Be strong and conquer from within.
(In-Reply-To:)

Y2K+10
Πέρασαν 10 χρόνια και σχεδόν το έχουμε ξεχάσει. 10 χρόνια πριν κόσμος και κοσμάκης έκανε πρωτοχρονιά στα terminal room ή on-call (π.χ. ο Δημήτρης) περιμένοντας αν θα “πέσουν” τα συστήματα ή όχι.
Η (κατά τα ΜΜΕ) καταστροφή του κόσμου δεν ήρθε. Όχι γιατί δεν υπήρχε πρόβλημα, αλλά γιατί πολύς κόσμος (και για πολλά χρήματα) δούλεψε για αυτό: Το απόλυτο deadline.
Ελπίζω τουλάχιστον τόσο τα προβλήματα που σχετίζονταν με το Y2K, όσο και τα μέσα αντιμετώπισής του να έχουν “μπει” στην εκπαιδευτική διαδικασία. Να κάνουν λάθη και οι επόμενες γενιές, αλλά όχι τα ίδια.
Καλή Χρονιά σε όλους.
New IEEE/CS Fellows
Στη λίστα των νέων fellows της IEEE/CS για το 2010, βρίσκουμε τους:
- 25. Yannis Ioannidis (“for contributions to database systems including query optimization and data management”)
- 57. Timoleon Sellis (“for contributions to database query optimization, and spatial data management”)
Δάσκαλοι συγχαρητήρια!
Whither Software Engineering
The July 2009 issue of the IEEE/Computer magazine in its “32 and 16 Years Ago” section remembers that 16 years ago:
Software Engineering (p. 68) “The IEEE Computer Society Board of Governors has approved a motion to establish an ad hoc committee to serve as a steering group for evaluation, planning, coordination, and action related to establishing software engineering as a profession. The action came during the board’s May 21 meeting in Baltimore, Maryland, in conjunction with the International Conference on Software Engineering.”
In the same issue Neville Holmes writes:
“Now software engineering aims to be a branch of engineering, but is finding it difficult to be accepted as such. The problem is that other branches sensibly use the skills and talents of technicians to ensure the success of their professional work. Software engineering doesn’t; it won’t let go of programming”
It took a lot of people and effort to design programming languages and models (procedural, functional, etc) that tried to define how people should practice programming. It took only two pieces of software to make anyone think that is a quality programmer: Access and Visual Basic. So Holmes is right: Let go of programming; it is a lost cause.
After reading one of my posts, John Allen (author of “Anatomy of Lisp“) sent me his unpublished manuscript “Wither Software Engineering” [pdf] and corresponding presentation entitled “More Ballast!” which also deal with the subject of whether Software Engineering is actually a branch of Engineering. You can freely download the pdf slides and audio of an older version of the presentation (Title: History, Mystery and Ballast). In them Allen deals with the transition of traditional Engineering from an experience-based craft to a science-based discipline. Much of the historical data he uses come from “Engineering education in Europe and the USA, 1750-1930“. I have also read “Education, technology, and industrial performance in Europe, 1850-1939” (also translated in Greek) on the subject.
Basically Engineering training followed the path of:
- Apprenticeship for a long period of time under the supervision of an Engineer
- Study (and get certified for) the equipment of a specific manufacturer paying a considerable amound of money, and
- University studies
Does this ring a bell regarding today’s IT arena? It is exactly for this reason that Allen was motivated. Mathematics and Physics transformed traditional Engineering. Can this be done with computation and mathematical logic? His presentation closes with:
It is this kind of education, not Java vocational training, that will bring McCarthy‘s 40+ year old quote to life:
“It is reasonable to hope that the relationship between computation and mathematical logic will be as fruitful in the next century as that between analysis and physics in the past. The development of this relationship demands a concern for both applications and for mathematical elegance.”
At least for programmers we are not there yet. The link between their work and mathematical logic is not obvious for all.
In the closing discussion of HDMS 2009 there was a debate whether “their stuff” could be considered as a branch of Engineering, regardless of liability issues. Alex Labrinidis said “Give us 2000 years to perfect bridge building and then come back asking for liability”. Labrinidis is wrong. Hammurabi solved the issue of Engineering liability back in 1790 BC:
If a builder builds a house for someone, and does not construct it properly, and the house which he built falls in and kills its owner, then the builder shall be put to death.
After the discussion ended Panos Vassiliadis pointed to me Peter J. Denning‘s “Is Software Engineering Engineering?” article which concludes:
“We have not arrived at that point in software engineering practice where we can satisfy all the engineering criteria described in this column. We still need more effective tools, better software engineering education, and wider adoption of the most effective practices. Even more, we need to encourage system thinking that embraces hardware and user environment as well as software.
By understanding the fundamental ideas that link all engineering disciplines, we can recognize how those ideas can contribute to better software production. This will help us construct the engineering reference discipline that Glass tells us is missing from our profession. Let us put this controversy to rest.”
Bertrand Meyer adds that the one sure way to advance software engineering is to “pass a law that requires extensive professional analysis of any large software failure”. Meyer is not alone. “Where are the dead bodies?” asks Derek M. Jones who also writes: “The lack of dead bodies attributed to a software root cause suggests that it is very still early days for the field of high integrity software development.”
There you have it: No dead bodies, no Engineering. Hammurabi knew that long before Engineers did.
You may now want to read “Cargo-cult Engineering” and “It’s not Engineering, Jim“.
#include <std/disclaimer.h>
Ken Thompson
Ένας καλός φίλος μου έστειλε χτες βράδυ με email ένα attachment:

Επειδή ο φίλος δεν μπορούσε να βρει κάποιον να του εξηγήσει πως βρέθηκε αυτό το 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 ποσταρίστηκε το σχετικό ρεπορτάζ από τον τότε τύπο: