C interpreters

I spotted today on Hacker News an article about PicoC, a small C interpreter. This triggered my memory in a journey back in 1994 when I had asked over at comp.compilers whether any C interpreter existed. It was then that I learned about ICI, a cool C-like scripting language that deserves more attention, the Quincy C interpreter which evolved to an IDE, and Smac, the C-like
interpreter that comes embedded with the XCoral editor.

Then there are also CINT which is part of an even more interesting project, and of course Ch.

But the coolest interpreter that I’ve seen, is written by Diomidis Spinellis:

#include "/dev/tty"

It changed the rules for the IOCCC.

on Priority Inbox

After briefly reading about Gmail’s Priority Inbox, I think it is a product of what they are best at: classification. Using it though may change the “spaminess” of the messages in our inbox: Unimportant messages in our inbox are equally unimportant with spam messages, we just do not mark them as spam. A message can be both spam and unimportant, but not spam and important. Like @gtzi tweeted:

OH – “You are not in my priority inbox.”

Could it be that people stop periodically checking their “unimportant” email just like they do with their spam folders? Do we have before us yet another automatic Trash can? I do not know.

It is really cool to see message classification technology being used for something else than spam filtering though. I remember reading in sage-members about someone using a (Bayes based) spam filter to distinguish between normal (machine generated) mail sent to the system administrator which can easily be discarded and the rest (few) that needed the administrator’s attention.

Congratulations to Google. They always seek of new ways to classify and present data.

Update: Cool infographic on Priority Inbox: Gmail Evolution

Dune and eBook distribution idiocy

I like Dune. I like it a lot. So being the happy owner of a BeBook Mini, I decided to buy the 40th anniversary edition from eBooks.com. Unlucky me:

This book is only available to customers in the following countries: United States.

The same goes with other e-bookstores too. I am sure that there exists a perfectly standing reason in some legal universe that does not allow me to buy an eBook version of Dune because I live in Greece, while at the same time I can go to Eleftheroudakis, or Politia and buy the english version in paperback!

To make it even funnier, I can buy a Greek translation of Dune from e-bookshop.gr (which is what I did in the end). So if I live in Greece and cannot read the native language, I cannot buy the eBook version!

It seems to me that only O’Reilly, Apress and Manning “get” it about eBooks. The rest seem to try and reproduce their current business model in a new paperless medium. We’ve got news for you: An eBook is not a book. It is now time to understand that the book is the content and you’ve been selling the medium.

Upgrades: Friday or Sunday?

I think I’ve read about this on sage-members (it is also quite possible that I’ve blogged about it, but a quick search did not reveal anything):

You’ve got a major upgrade ahead of you, one that might take too long to complete and on top of that, the company (your employer) cannot halt while you are at the task. So do you schedule to start the upgrade on Friday evening, or on Sunday morning?

For years I used to opt for Friday evening. But it seems that I was lucky. For as I read in sage-members, what if the upgrade does not complete and you need support? Do you have (verified) support 24×7 for everything involved in the process, including hardware, software, personnel (if shifts are needed)? Even if you do, have you ever tested them? Are the support people you contact on weekends of the quality you expect or simply note takers so that you get an open ticket and a checklist while an actual solution may arrive on Monday evening? What if a simple fan fails and you need to replace it?

Start on Sunday mornings. As a bonus you get a full day for rest and mental preparation.

Unintended consequences

The recent sport related (but unsporting) events bring to mind the point I was trying to make in my previous post: That an organization must rely on its people following rules and processes and not on their display of filotimo (which must be saved for extreme circumstances only).

A decision was made to have the grass surface of the field in the Olympic Stadium of Athens replaced. The works begun and reports in the press showed progress. However, a pump was broken while the person responsible for it was on leave. This event went unnoticed until a friendly match was given between Panathinaikos and Genoa C.F.C. In this match, Djibril Cisse, Panathinaikos’ main fire power was injured. So were two players of Genoa. The pitch was declared unusable and will be replaced after the U2 concert in the Stadium (September 3).

Tomorrow AEK, who also use the Stadium as home, is supposed to play against Dundee United for the Europa League competition. Only now they face the problem of having to find a home stadium for the match to be played. In a controversial for some fans agreement, they decided to use the Nea Smyrni Stadium, home of Panionios FC. Angered by the agreement, Panionios’ fans entered the pitch and made it virtually unusable, not only for AEK, but for Panionios’ home game in Saturday too! Now AEK is supposed to defend its win, using Karaiskakis Stadium, Olympiacos‘ home, with no fans on their side- only fans of Dundee United who traveled from Scotland will watch the game.

A broken pump while a single person was on leave has lead to two damaged soccer fields and a team not having the support of their fans while giving an international competition game at home. This displays the complexity and inter-connectivity between systems in this world in weird and unforeseen ways, where the law of unintended consequence strikes, with a seemingly low priority glitch creating so much havoc because “the system” could not deal with (or even detect) it.

Learn to say “No”

Users consider their needs top priority. Not only that, but when they pick up the phone or press the send button of their email client, they demand immediate service. System Administrators on the other hand are trained (over time) to objectively distinguish between real emergencies (threats to the organization’s business operation if not dealt with) and the rest.

So whenever an urgent situation arises, step back and ask yourself:

– Urgent for whom?
– Why is this urgent?
– Is there a process missing here??

These are important questions, especially if there exists no process covering the situation. Organizations have written workflows that define processes, but operate on the evolution of those rules which are mostly undocumented. If you identify a missing process, your reaction to the matter will create a process, no matter what. Solve the problem as a fireman and you have just created a process with your name hardcoded in it. Not your team, your name. People will look for you.

Identify that it is about a missing process problem that needs to be fixed and everybody will promise to you that it will be dealt with. Only it will not. The next time it arises, they will come back to you, because you did it the first time and now you are (informally) in charge of “those things”.

This is neither good for you nor for your employer. So the need to say “No, I will not fix that this way. Create a process and I will” arises. It is to the benefit of your employer to do so. It makes certain that for this particular situation they are not depended from a single person (you). It also protects your time, weekends and vacation. Explain this to upper management. Learn to say “No” in a productive way. Make sure this is not misunderstood as BOFHiness from your part. Put a price tag on what it means not doing it the formal way.

As a System Administrator you do not only manage the computers in your organization. You manage the people using them too. You manage human-computer systems. And whenever there is a void in the workflow, you need to do your best to create a process. Otherwise it will be created without your intervention. You do not want that. You are the System manager.

Eliminating unnecessary processes is part of the job too, but this is maybe for another blog post.

Μπουρμπουληθρόνερο

Τώρα που έχω το γκάτζετ το καλό για μπουρμπουλήθρες (μοιάζει με ηλεκτρική ξυριστική της Φίλιπς με τρεις κεφαλές) ξέρει κανείς πως φτιάχνουμε αξιοπρεπές μπουρμπουληθρόνερο;

Update: Ο Clechuck προτείνει: Δύο μέρη υγρό για πιάτα, δύο μέρη γλυκερίνη από το φαρμακείο και ένα μέρος νερό.

ΤΖΩΤΖΙΟΥ mode on

Χρειάστηκε να πάμε τον Χ. στο νοσοκομείο για να τον δει παιδίατρος (όχι κάτι σοβαρό τελικά). Στην επιστροφή προς το σπίτι πήραμε ένα παιχνίδι στον Θ. από το ELC.

Θ: Μαμά, πολύ καλός ο γιατρός που πήγατε τον Χ.

Και την επόμενη μέρα:

Θ: Πότε θα πάμε την Κ. στο γιατρό;

(Inspired by: Οικογενειακές ιστορίες των ΤΖΩΤΖΙΟΥ)