The hawk can accelerate at 3m/s/s, up to a maximum of 15m/s.
How long until she snatches the hare?
Hawks can't dive straight down - she descends in circles, tracing a conical path.
Her maximum angle of descent is 75 degrees.
How long until she grabs the hare?
As the hawk turns more quickly through the narrowing descent cone, centripetal force reduces her velocity.
Her maximum velocity decreases linearly in proportion to the percentage of maximum turn rate reached.
Her maximum turn rate is 135 degrees per second.
At maximum turn rate, her maximum forward velocity is reduced to 33% (5m/s).
How long until dinner?
Hare: not an idiot
The hare starts moving, 3m/s in one direction.
The hawk continuously reorients on the hare as long as he's in view.
Complexity vs Reasoning
Modifying a system requires the ability to reason about its behavior
Complexity is the primary limit on our ability to reason
Our capacity to create complexity vastly exceeds our capacity to reason about it
Simplicity is prerequisite for reliability.
Simple and Easy are both important (and difficult)
Easy gets the attention by default. Simple requires deliberate effort.
Simple things can usually be made Easy
The reverse does not hold
Interface vs Artifact
Easy focuses on the experience of use
Convenience for users
Replaceability of users
Simple is concerned with the results of use
Quality of code, correctness
Maintenance and future change
Simple vs Easy: Project Velocity
Simple vs Easy: Coolness
There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies.
Complexity in Drupal
Complects your code with ALL other code in your PHP process
Somewhat less risky because failures tend to be obvious
Also just wicked easy
But, they're hell for testing
Global vars are a more general problem of mutable state
Complects value with time
Weaves into everything that touches it
Cannot be mitigated by modularization
"It works, as long as no one does something stupid."
OMG, STOP SAYING THIS
Complects discrete logic through shared state
Traditionally, an "escape hatch"
In practice, often amounts to "runtime configuration"
Wreaks havoc on artifact predictability - state space is too large