<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<p>Hi Dan,</p>
<p>On 3/28/19 9:24 PM, Dan Morphis wrote:</p>
<blockquote type="cite"
cite="mid:CAHwrMLctxCDX__3_4S9e4nEa-uxp0oEs1FdpYUcqEFR4izGDjw@mail.gmail.com">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">why do you want an interval so low</div>
</div>
</div>
</blockquote>
<p>Just for testing, I plan to put 1 hour +/- 20% in production.<br>
</p>
<blockquote type="cite"
cite="mid:CAHwrMLctxCDX__3_4S9e4nEa-uxp0oEs1FdpYUcqEFR4izGDjw@mail.gmail.com">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">why do you want a random interval? Load?</div>
</div>
</div>
</blockquote>
<p>Yes</p>
<blockquote type="cite"
cite="mid:CAHwrMLctxCDX__3_4S9e4nEa-uxp0oEs1FdpYUcqEFR4izGDjw@mail.gmail.com">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div>Looking through sandbox.js we see this:</div>
<div><br>
</div>
<div>
<div><font face="monospace, monospace">// Monkey-patch
Math.random() to make it deterministic</font></div>
<div><font face="monospace, monospace">context.random =
random;</font></div>
<div><font face="monospace, monospace">vm.runInContext("Math.random
= random;", context);</font></div>
<div><font face="monospace, monospace">delete
context.random;</font></div>
</div>
<div><br>
</div>
<div>And random is defined as:</div>
<div>
<div><font face="monospace, monospace">function random() {</font></div>
<div><font face="monospace, monospace"> if (!state.rng)</font></div>
<div><font face="monospace, monospace"> state.rng =
seedrandom(state.sessionContext.deviceId);</font></div>
<div><font face="monospace, monospace"><br>
</font></div>
<div><font face="monospace, monospace"> return
state.rng();</font></div>
<div><font face="monospace, monospace">}</font></div>
<div><font face="monospace, monospace"><br>
</font></div>
<div><font face="monospace, monospace">random.seed =
function(s) {</font></div>
<div><font face="monospace, monospace"> state.rng =
seedrandom(s);</font></div>
<div><font face="monospace, monospace">}</font></div>
</div>
<div><font face="monospace, monospace"><br>
</font></div>
<div><font face="monospace, monospace">This means for that
particular device id, you will always get the same
"random" value</font></div>
</div>
</div>
</div>
</blockquote>
<p>Ah, clear. That means, it doesn't make any sense to bind this
provision to a preset which executes on "2 PERIODIC". I would tag
a device as soon as a "random" value is set for the first time and
skip tagged devices later. Does it sounds reasonable? If yes, this
kind of "random" number will work for me.<br>
</p>
<p>What if I need really random value in my provision? Any other
way?</p>
<p>Thanks,</p>
<p>George Chelidze</p>
</body>
</html>