Πυροσβεστικό Μουσείο

Μια και ο Θ. δείχνει ένα ιδιαίτερο ενδιαφέρον για τα “πυροσβεστικά” σήμερα πήγαμε οικογενειακώς στο Πυροσβεστικό Μουσείο. Επειδή είμασταν και οι μοναδικοί επισκέπτες εκείνη την ώρα, είχαμε την τύχη να έχουμε πλήρη ξενάγηση από τον πυροσβέστη που είχε βάρδια στο μουσείο εκείνη την ώρα.

Το μουσείο είναι εντυπωσιακό, ειδικά εάν σκεφτεί κανείς πως προσπαθεί να καλύψει το έργο της Πυροσβεστικής από την ίδρυση του Ελληνικού Κράτους μέχρι και σήμερα. Έχει οχήματα και εξοπλισμό πριν από το 1900, μερικά μάλλιστα είναι πιστοποιημένο ακόμα και σε ποιες φωτιές έχουν χρησιμοποιηθεί. Επειδή ο Θ. έδειξε μεγαλύτερο ενδιαφέρον για τον πιο σύγχρονο (και οικείο σε αυτόν) εξοπλισμό, θα πρέπει να ξαναπάμε, γιατί υπάρχουν αντλίες και άλλοι μηχανισμοί που αξίζουν περισσότερης προσοχής.

Το Πυροσβεστικό Μουσείο είναι ανοιχτό για το κοινό Τετάρτη και Κυριακή, οπότε καλό είναι να κάνετε ένα τηλέφωνο πριν πάτε.

weird dns problems are routing problems

This is a story we dealt with some months ago. After a major upgrade of the pipes that connect us with one of our upstreams (lets call them O) our support lines started getting complaints that certain sites could not be reached (RapidShare was a notable example). At first this was thought to be a temporary routing problem, but as calls started to amass within the hour, we looked further into it.

Since we already had a list of sites that were not reachable, we used the first tool one uses at such situations: traceroute. What I immediately observed was that prior to failing, traceroute took sometime to execute. Could it be that the DNS servers and not the web sites were not reachable?

Since we run a separate setup that forwards queries to OpenDNS, I used that DNS server, and traceroute worked! So it indeed was a routing problem, only it was not a routing problem to the web site itself, rather to its name servers who were unreachable by our DNS servers. Tracerouting by hand to the IP addresses of the DNS servers of the “problematic” domains verified that. Luckily we could reach OpenDNS, who in turn could reach (and cached) the DNS servers we could not.

While in fact a very small part of the Internet was not reachable at the time, due to the fact that lots of DNS servers serving other domains lived there, a significantly larger part of the web was invisible. Such issues do occur when your DNS and your hosting provider are networks appart.

We opened a ticket with O and tried to resolve the situation. It seemed that the problem was a case of asymmetric routing, since answers to our packets were returning via our other upstream (lets call them F). The weirdness of describing the problem confused at first the routing engineers at F who could not believe that we were using DNS servers that were not forwarding to theirs. Luckily their DNS master is a good friend and helped get past that quickly. They (F) located the problem to the configuration of one of their upstreams (lets call them L). They opened a ticket and we all waited. In the mean time they (F) devised a backup plan, in case L did not want to cooperate. But they did.

So when you think (or are told) that a web site is unreachable, always check whether its DNS servers are reachable first.

NTP

Αυτό το tweet από τον Randal L. Schwartz:

merlyn sysadmin tip of the day: don’t use the generic “pool.ntp.org”… please narrow down your selection to nearby NTP servers. #lazyadmin

μου θύμισε μια ιστορία, της οποίας όμως δεν είμαι αυτήκοος / αυτόπτης μάρτυρας:

Σε ένα Oracle RAC παρουσιάστηκε το φαινόμενο τα αποτελέσματα από κάποια queries να …έρχονται από το μέλλον. Αυτός που κλήθηκε να για να δει τι συμβαίνει, διαπίστωσε πως δεν ήταν πρόβλημα της εγκατάστασης της Oracle, αλλά πως τα μηχανήματα δεν είχαν συγχρονισμένα ρολόγια. Κάποια μάλλιστα απείχαν πάνω από 5 λεπτά μεταξύ τους.

Oh well, αυτά είναι τα κακά της τμηματικής εγκατάστασης, όπου ο καθένας κάνει το “κουτάκι” του χωρίς να ξέρει / ενδιαφέρεται για ποια χρήση προορίζεται αυτό που στήνει και που ο επόμενος δεν ξέρει / μπορεί / ενδιαφέρεται εάν αυτό πάνω στο οποίο θα στήσει είναι φτιαγμένο σωστά.

Η πολυπλοκότητα των συστημάτων που βρίσκονται πια σε λειτουργία, απαιτεί κοινό συγχρονισμό ώρας, ακόμα κι αν πρόκειται για συστήματα που δεν συνδέονται στο Internet. Στο τεύχος του Οκτωβρίου του 2008 του ;login: ο Brad Knowles έχει ένα μη τεχνικό άρθρο [pdf] -μην περιμένετε να δείτε configuration files δηλαδή- σχετικά με το πως μπορεί κανείς να φτιάξει ένα scalable NTP infrastructure, πλούσιο σε βιβλιογραφία από την οποία “στα γρήγορα” μπορεί να ξεχωρίσει κανείς το “Using the Soekris computers for timestamping” του Poul-Henning Kamp (ένα Soekris 4501 πάει περίπου στα €136 και κάνει τη δουλειά μια χαρά). Αν ξεπεράσει κανείς το πρώτο τμήμα του άρθρου του Knowles (και το “υφάκι” του) θα βρει να διαβάσει περισσότερα από όσα ήθελε για το χρονικό συγχρονισμό του δικτύου του.

Sync, sync, sync!!!

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>

DNS Lameness Statistics from RIPE NCC

From the RIPE DNS Lameness Statistics site:

The RIPE NCC runs a lameness check once a month on all DNS servers listed as delegation points within the RIPE NCC delegated zones. If a server fails this test, the test will be retried five times over a period of ten days, at varying times of day. If, after ten days, the server continues to fail the test, it is classed as lame.

Related document: RIPE-400

[via dns-wg]

3×8

Η ημέρα έχει 3 οχτάωρα. Σε ένα ιδανικό κόσμο αυτό θα σήμαινε πως μπορούμε να αφιερώσουμε:

  • 8 ώρες για ξεκούραση / ύπνο.
  • 8 ώρες για εργασία.
  • 8 ώρες για προσωπικό χρόνο / οικογένεια / διασκέδαση κ.λπ.

Damn, agou is right!

Ένα άστρο επιστρέφει

Ιδιότροπος, περίεργος, ξεροκέφαλος, ακατανόητος μερικές φορές ακόμα και για τους παίχτες του. Και μετράμε: 2 συμμετοχές σε Euro, μία κατάκτηση against all odds και μία συμμετοχή σε Παγκόσμιο Κύπελο.

Όχι κι άσχημα για ένα “ξεμωραμένο μπάρμπα” όπως τον είχε αποκαλέσει ένα “διαμάντι” των αθλητικών μεταδόσεων.

Απλώστε πάλι τις γλώσσες σας, γιατί από τις τρύπες που έχετε κρυφτεί δεν φτάνουν.

(ref)