representative of the contained product A high level overview of integration problems A lot of quotes Not a lot of code examples1 (Hopefully funny) jokes 1For the joy of your optometrist
under your control Doesn't want you to copy or send around big chunks of data The first nonabsolute number is the number of people for whom the table is reserved. This will vary during the course of the first three telephone calls to the restaurant, and then bear no apparent relation to the number of people who actually turn up…
sometimes you'll end up duct-taping them too. The civilized way to do it is wrapping. "The statistical likelihood," continued the autopilot primly, "is that other civilizations will arise. There will one day be lemon-soaked paper napkins. Till then there will be a short delay. Please return to your seat."
Unneeded duplication of data structures Are errors intelligible? Meanwhile, the poor Babel fish, by effectively removing all barriers to communication between different races and cultures, has caused more and bloodier wars than anything else in the history of creation.
and get back the result. Immediate advantages: "It's a UNIX system... I know this!" "it is slightly cheaper; and it has the words DON'T PANIC inscribed in large friendly letters on its cover"
execution time might be unpredictable Every time they die, Conan Doyle has a new plot idea All you really need to know for the moment is that the universe is a lot more complicated than you might think, even if you start from a position of thinking it's pretty damn complicated in the first place
the problems above, it also introduces others. Use celery or any other equivalent framework. Some people, when confronted Now they with a problem, have think two problems. "I'll use threads". https://twitter.com/SteveStreza/status/176863405385326593
production, you're left with Angry people Limited time A traceback A logfile “Funny,” he intoned funereally, “how just when you think life can’t possibly get any worse it suddenly does.”
common problems (i.e. also mock errors) Always log: arguments, stdout, stderr, environment, pid, effective user and effective group "We apologize for the inconvenience." God's Final Message to His Creation, written in letters of fire on the side of the Quentulus Quazgar Mountains.
difference It uses os.fork() on UNIX, see man 2 fork for a list of things that can go wrong Windows handles things quite differently "Yeah," said the voice from under the table, "you go to pieces so fast people get hit by the shrapnel."
descriptors are inherited by default Always call a binary that's decently protected against tampering Only an absolute idiot would be sitting where he was, so he was winning already. A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools.
changes, even if subtle (corner cases) Limitations of synchronous protocols Lack of integration with the security system There is an art, it says, or rather, a knack to flying. The knack lies in learning how to throw yourself at the ground and miss. […] Clearly, it is this second part, the missing, which presents the difficulties.
Interface doesn't change unexpectedly, and can change if needed Rare outages, and prompt notification Authentication and authorization through basic protocols
Tradeoffs can be complex (resource availability vs locality) "it is very easy to be blinded to the essential uselessness of them by the sense of achievement you get from getting them to work at all."
and other creatures What is exactly a single sign-on Select the best protocol/solution given all requirements • SSO ◦ Kerberos ◦ Shibboleth (SAML) • Consolidated login ◦ OpenID ◦ LDAP
treat incoming data as untrusted (i.e. as user data) Keep a careful eye on: • Data being sent to you • Sensitive data you might be sending Conceal any sensitive data you might need to send, or make it less sensitive
exits your code and comes in (not before or after processing) Create effective (and easily extendable) mocks in your tests Mock both successful events and errors
you must Always use the least expensive solution Maintain a stricter discipline Always maintain full knowledge of the stack "You're starting to sound like Marvin." "Marvin is the clearest thinker I know."