July 21st, 2008

in my what killin my who? (art by eclect

A radical thought

The hippies used to say "Don't trust anyone over 30." But, being hippies and not computer programmers, they left a surprising amount of syntactical ambiguity in that statement. Even if we don't challenge the assumption that "thirty" refers to the number of Earth solar years since the target's birth, this still leaves the question of what the exact cutoff is, and to hold any sort of rational discussion about the topic, it's necessary to find a rigorous answer.

Linguistically, "over" implies strictly "greater than"; if "greater than or equal to" were intended, a phrase such as "at least" would have been more appropriate. So if we were writing pseudocode for a trust routine, it should look like:

if ($person.age_in_years > 30) then { $person.trust = 0; }

Even this doesn't answer the question: What is the precision of the comparison? Is someone "over" thirty when they are 30 plus a month? 30 plus a day? 30 plus an hour, a minute, a second, a nanosecond?

Tests of arbitrary precision could easily be constructed and executed, but this would then create a secondary dilemma: platform differences would not guarantee consistent trust results across runtime environments. For full RFC compliance, and to prevent security exploits in applications implementing trust webs, we must ensure that all interpersonal relationships are calculable in replicable ways regardless of native hardware. Removing the question of precision is recognized as the canonical response to this issue:

if ( int($person.age_in_years) > 30) then { $person.trust = 0; }

Which is a lengthy way of saying that, as of yesterday, you can no longer trust me.

Edited to add: No, I didn't just turn 30. ];=8) If int(baxil.age_in_years) needs to be strictly greater than 30, then 30 > 30 fails. Besides, I already turned 30 last year.
  • Current Music
    "Spy", Cowboy Bebop OST 'Vitaminless'
  • Tags