obviscating python code for distribution

Steven D'Aprano steve+comp.lang.python at pearwood.info
Fri May 20 03:04:27 EDT 2011


On Fri, 20 May 2011 05:48:50 +0100, Hans Georg Schaathun wrote:

> Either way, the assumption that your system will not be handled by
> idiots is only reasonable if you yourself is the only user.

Nonsense. How do you (generic "you", not any specific person) know that 
you are not an idiot?

If you are an idiot, you obviously shouldn't trust your own judgment -- 
although of course idiots do trust their own judgment when they 
shouldn't, and the less they know, the less they realise how little they 
know:

http://en.wikipedia.org/wiki/Dunning–Kruger_effect

So if you think that you're not an idiot, you might be an idiot who is 
unaware of being an idiot. Your own opinion is the last opinion you 
should pay attention to. The world is full of people with delusions of 
superiority -- only an idiot would trust their own opinion of themselves.

You can listen to others, but only so long as you don't surround yourself 
with idiots. But how do you know if the people around you are idiots? You 
certainly can't trust your judgment, nor can you trust theirs. If you're 
an idiot, you (still talking about generic "you") and your idiot friends 
are probably all congratulating yourselves for not being idiots.

In contrast, if you're not an idiot, then you probably are aware (and if 
not, you should be) of all the cognitive biases human beings are prone 
to, of all the mental and emotional weaknesses that we all suffer from, 
which cause us to act in idiotic ways. If you're not an idiot, then you 
know your limitations, that like everyone, you can be fooled or foolish, 
that you can make mistakes, that you sometimes operate equipment when you 
are not at the optimum level of alertness, when your attention to detail 
is below normal or you are a little more careless than you should be.

In short, that everyone, including yourself, can be an idiot, and the 
more intelligent you are, the more astonishingly stupid your mistakes may 
be. Any moron can accidentally burn themselves with a match, but it takes 
a first-class genius to give chronic lead poisoning to tens of millions 
*and* nearly destroy the ozone layer of the entire world:

http://en.wikipedia.org/wiki/Thomas_Midgley,_Jr.

So... if you think you are not an idiot, you are, and if you think you 
are an idiot, you are. Either way, even if your software is only being 
used by yourself, you should still attempt to make it as idiot-proof as 
an idiot like yourself can make it.



-- 
Steven



More information about the Python-list mailing list