[Noisebridge-discuss] PHP sucks [was Re: [drama] New logo source?]

Kelly hurtstotouchfire at gmail.com
Tue Jan 12 22:26:56 UTC 2010


I am so glad that I can blame this on something I already hate.

On Tue, Jan 12, 2010 at 2:24 PM, Leif Ryge <leif at synthesize.us> wrote:
> Kelly wrote:
>> Wow, so that was on the homepage. I've not yet gotten anything but the
>> WU logo there.
>>
>> As far as a secure way to add logos, maybe we could just have people
>> upload and then have a secure person add it?  Would ops be willing to
>> take this on?  Seems like it should be some official contactable
>> source that's not specific individuals.
>>
>> And in the meantime, can we see the code that's running this randomizer?
>>
>> -K
>>
>> On Mon, Jan 11, 2010 at 3:02 PM, Michael C. Toren <mct at toren.net> wrote:
>>> On Mon, Jan 11, 2010 at 01:36:20PM -0800, Jonathan Lassoff wrote:
>>>> I didn't want to hammer the server any harder, so it's hard to say if
>>>> only 2000 tightly-spaced samples are statistically significant, but I'll
>>>> let you draw your own conclusions:
>>> I ran a similar experiment on the 9th, using a silly bash+curl+awk
>>> one-liner that requested the root document 1000 times, randomly sleeping
>>> between 1 and 3 seconds between each request in order to be kind to the
>>> server.  The results from that experiment were:
>>>
>>>  - 508/1000 requests (50.8%):  wunderground-noisebridge.png
>>>  - 335/1000 requests (33.5%):  NB-logo-red-black-med.png
>>>  - 157/1000 requests (15.7%):  Pissingponynb-131.png
>>>
>>> It does appear to be heavily weighted.
>>>
>>> -mct
>
> Ok, this was bothering me, so I just went and checked to see how the
> randomizer was implemented. Here it is:
>
> $images =
> array("https://www.noisebridge.net/wunderground-noisebridge.png","https://www.noisebridge.net/Pissingponynb-131.png",
> "https://www.noisebridge.net/NB-logo-red-black-med.png");
> $rand_keys = array_rand($images, 2);
> $wgLogo = $images[$rand_keys[0]];
>
> I have no idea why someone chose to ask for 2 random values when they
> only needed one, but you might expect that this would produce suitably
> random results anyway. And, with an older version of PHP, I believe this
>  code actually would yield an even weighting. And, with a newer
> version, it would pick the first item 2/3 of the time and never pick the
> third at all. And, with our middle-aged version of PHP (5.2.4-2), it
> produces the distribution observed above. Hooray for PHP!
>
> Here is a demo from 5.2.6-3ubuntu4.4:
> $ php5 -r '$a=array(1,2,3); for ($i=1; $i<10000; $i++) { $r =
> array_rand($a, 2); echo "$r[0] $r[1]\n"; }'|sort|uniq -c
>    3398 0 1
>    1641 0 2
>    1641 1 2
>    1666 2 0
>    1653 2 1
>
> ~leif
> _______________________________________________
> Noisebridge-discuss mailing list
> Noisebridge-discuss at lists.noisebridge.net
> https://www.noisebridge.net/mailman/listinfo/noisebridge-discuss
>



More information about the Noisebridge-discuss mailing list