
Is user a monkey? - mindaugas
http://developer.android.com/reference/android/app/ActivityManager.html#isUserAMonkey%28%29
======
lesterbuck
In 1993, I was taking a course in Software Verification & Validation at the
Univ of Houston Clear Lake, next door to Johnson Space Center and down the
street from the IBM division doing the Space Shuttle software. That is the
group that is CMM Level 5 and gets a bug report about once a year or so. It
happened that the instructor of this course was a mid-level IBM tech guy in
that organization. And he had stories...

After Challenger blew up, NASA demanded that every shuttle vendor report the
cumulative probability that their component of the system would lead to a loss
of vehicle accident. NASA took all those probabilities and came up with their
best guess of the probability of a loss of vehicle accident for each flight.
While Feynman praised the software process for the shuttle, the software group
still had to come up with their number. So the instructor said they took all
their statistics from the (individual, unique) software loads for each
historical flight, and included the failures from their loss of vehicle
accidents.

"Say what? The shuttle software hasn't had any loss of vehicle accidents."
Well, turns out it had. Each unique software load for each mission is tested
and trained against for many months before it flies. Sometimes they fail, just
not yet in actual flight. For example, apparently one time the shuttle crew
was practicing launch aborts, where the launch is aborted just after clearing
the pad and the orbiter lands like a glider. About the only crew member
involved in that is the pilot. Everyone else is just strapped in being bored,
and after a few hours of sitting still, the co-pilot got "frisky." During the
launch phase, he randomly tapped some keys on his keypad and ... BOOM! Loss of
vehicle accident.

Monkeys at work! I suppose it could be argued that with all the bumping around
during the launch phase, a stray hand could accidentally "fuzz" that keypad.

~~~
oiuyhgftrhyjuk
That's why modern fly-by-wire aircraft have a crew of two = one man and one
dog.

The man's job is to feed the dog, and the dog's job is to bite the man if he
tries to touch any of the controls.

------
kevingadd
Probably related:
[http://folklore.org/StoryView.py?project=Macintosh&story...](http://folklore.org/StoryView.py?project=Macintosh&story=Monkey_Lives.txt)

------
pgbovine
when i was doing Palm OS programming back in the stone age, i remember the
simulator had a "monkey testing mode", where it would just generate GUI events
randomly. it was actually quite useful for uncovering sporadic crashes.

EDIT: ha, i found a reference, they're called Gremlins

[http://users.jyu.fi/~mweber/teaching/docs/palmos/book/ch10.h...](http://users.jyu.fi/~mweber/teaching/docs/palmos/book/ch10.htm#P370_19896)

~~~
JoelSutherland
Calling them Gremlins is actually a reference to the British Royal Air Force
in WWII. The airmen would blame 'gremlins' for mechanical issues or even
problems during flight.

<http://en.wikipedia.org/wiki/Gremlin#Origins>

Famous children's author Roald Dahl popularized them after he left the RAF to
become a writer. If you get a chance, read a biography of Roald Dahl. He
truely was the most interesting man in the world. (WWII Ace Fighter Pilot,
British Secret Agent, invented a brain-heart valve, married an Academy Award
winning actress, pioneered a stroke recovery program and sold over 100 million
books.)

~~~
itsnotvalid
I remembered reading his books in my younger ages.

------
adk
This is referring to a test tool called The Monkey:
[http://developer.android.com/guide/developing/tools/monkey.h...](http://developer.android.com/guide/developing/tools/monkey.html)

~~~
icefox
The documentation really should mention that.

------
kd0amg
I guess this goes up there with Be's is_computer_on_fire()

[http://www.tycomsystems.com/beos/BeBook/The%20Kernel%20Kit/S...](http://www.tycomsystems.com/beos/BeBook/The%20Kernel%20Kit/System.html)

~~~
ben1040
Or "lp0 on fire"...

<http://en.wikipedia.org/wiki/Lp0_on_fire>

------
mlni
Skype must to have a similarly named function in it. In skype chat window,
when you press random keys on a keyboard in groups, the other side sees a cat
icon in the chat. Kind of neat of them to think of that.

~~~
regularfry
"Catlike typing detected" goes back (I think) to this:
<http://www.bitboost.com/pawsense/>

------
tlholaday
More euphonious in a ternary operator than an if clause:

value = isUserAMonkey() ? left : right ;

if (isUserAMonkey()) { ... }

For an if clause, I prefer userIsAMonkey:

if (userIsAMonkey) { ... }

~~~
ramchip
It also sounds better when you consider that the booleans are called True and
False:

isUserAMonkey -> Yes/No

userIsAMonkey -> True/False

------
scrrr
Make sure to not use this method when targeting anything below API Level 8.

------
AttentionStepFn
Always assume yes, at least when it comes to stress testing.

------
thefool
What does it return?

~~~
orangecat
[http://android.git.kernel.org/?p=platform/frameworks/base.gi...](http://android.git.kernel.org/?p=platform/frameworks/base.git;a=blob;f=core/java/android/app/ActivityManagerNative.java;h=f69428589e07534eeaf571f0395d289f87d1414a;hb=c1c45a4dc950865a7f5f76d8aab56be0cc8e0e91)

~~~
sshconnection
onTransact makes me die a little bit on the inside. Must... refactor....

------
sabat
"The customer is not an idiot. She is your wife." --Jean-Louis Gassee

~~~
__mt0d
It's David Ogilvy actually.

~~~
sabat
I stand corrected; Jean-Louis is just fond of saying it.

------
adolfoabegg
Infinite monkey theorem applies too I think...
<http://en.wikipedia.org/wiki/Infinite_monkey_theorem>

------
nuclear_eclipse
Doesn't seem to work well, I ran this code on my mom's phone and it returned
False. I'll have submit a bug report when I get home...

~~~
Tyrannosaurs
You're claiming to be directly and immediately descended from a monkey?

Can you come and meet some creationists I know? I can't wait to knock the smug
looks off their faces.

