-
Monotheism
When I was in grade school we were taught that monotheism was a historical advance, comparable to agriculture or other notable inventions. For example, we learned that Akenhaten was a significant figure because he was the first historical figure to advocate monotheism, although it was later repudiated by his successor Tutankhaten aka Tutankhamun aka King…
-
Layered Programming
Many programs today are written at a very high level. They are run in an interpreted environment, not a compiler. Often many different components running in different interpreted environments are hooked together. HTML and XML, for example, started out as markup languages, but now they are often also used as components of programs hooking together…
-
Peer Review
Peer review can be a useful technique when programming. It ensures that at least one other person has read the code. It can catch dumb bugs and help ensure that the code is not unnecessarily obscure. Several popular programming methodologies use it. (Pair programming has the same benefits.) Peer review has one obvious disadvantage: it…
-
Iron Man
I’ve always liked Iron Man. Tony Stark has a simple comic book story: a smart guy, who doesn’t think very much about what he’s doing, is nearly killed. The experience changes him–but not all that much. He’s a superhero because he’s addicted to action, because he feels the need to justify his survival, and because…
-
Linker relro
gcc, the GNU linker, and the glibc dynamic linker cooperate to implement an idea called read-only relocations, or relro. This permits the linker to designate a part of an executable or (more commonly) a shared library as being read-only after dynamic relocations have been applied. This may be used for read-only global variables which are…