<div dir="ltr">The issue with this data is that who says something is not a good metric. For example, this shows that I attended more than twice as many afternoon meetings as the morning meetings when I know I actually only missed a couple of morning ones. I just don't say anything unless there is something that I feel I need to comment on.</div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jan 13, 2016 at 12:02 AM, IWAMOTO Toshihiro <span dir="ltr"><<a href="mailto:iwamoto@valinux.co.jp" target="_blank">iwamoto@valinux.co.jp</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">At Tue, 12 Jan 2016 17:28:19 -0600,<br>
<span class="">Doug Wiegley wrote:<br>
><br>
> I don’t think it ninja merged. It had plenty of reviews, and was open during international hours. I don’t have any issue there.<br>
><br>
> I don’t like the crazy early meeting, so I set out to prove it didn’t matter:<br>
><br>
> Average attendance before rotating: 20.7 people<br>
> Average attendance on Monday afternoons (U.S. time): 20.9<br>
> Average attendance on Tuesday morning (U.S. time): 23.7<br>
><br>
> Stupid data, that’s not what I wanted to see.<br>
><br>
> I haven’t yet correlated people to which meeting time yet, but attendance was slightly up during the crazy early hated time, across the 1.25 years it was running (started 9/9/14). This is just people saying something; lurkers can just read the logs.<br>
><br>
> Data is from eavesdrop meeting logs, if anyone else wants to crunch it.<br>
<br>
</span>Overall attendance isn't a great metric.  Actually, the population<br>
does differ with meeting times.  Those who mostly attend only in one<br>
of the two timeslots are:<br>
<br>
$ python a.py<br>
Sukhdev 6/23 17/22<br>
ajo 22/23 4/22<br>
obondarev 10/23 0/22<br>
vikram 7/23 0/22<br>
kevinbenton 9/23 22/22<br>
ihrachyshka 13/23 1/22<br>
Swami 0/23 8/22<br>
(Legend: <irc nick> <attendance at 14UTC> <attendance at 21UTC>)<br>
<br>
The script is at bottom just in case if anyone cares. ;)<br>
<span class=""><br>
> Thanks,<br>
> doug<br>
><br>
><br>
> > On Jan 12, 2016, at 4:32 PM, Tony Breeds <<a href="mailto:tony@bakeyournoodle.com">tony@bakeyournoodle.com</a>> wrote:<br>
> ><br>
> > On Tue, Jan 12, 2016 at 01:27:30PM +0100, Ihar Hrachyshka wrote:<br>
> >> Agreed with Gary on behalf of my European compatriots. (Note that I<br>
> >> *personally* +1’d the patch because I don’t mind, doing late hours anyway;<br>
> >> but it’s sad it was ninja merged without giving any chance for those from<br>
> >> affected timezones to express their concerns).<br>
> ><br>
> > So Ninja merged has a negative connotation that I refute.<br>
> ><br>
> > I merged it.  It was judgment error, and I apologise for that.<br>
> ><br>
> > * I found and read through the list thread.<br>
> > * Saw only +1's yours included<br>
> >    - known you'd be affected I used your +1 as a barometer<br>
> ><br>
> > My mistake was not noticing your request to leave the review open for longer.<br>
> ><br>
> > I also noted in my review that reverting it is pretty low cost to back it out<br>
> > if needed.<br>
> ><br>
> > I understand that the 'root cause' for this change was the yaml2ical issue that<br>
> > stemmed from having 2 odd week in a row.  We've fixed that [1]. I'm also<br>
> > working a a more human concept of biweekly meeting in yaml2ical.<br>
> ><br>
> > Tony<br>
> > [1] the next time it could have been a problem is 2020/2021 ;P<br>
<br>
</span>#!/usr/bin/python<br>
import os<br>
import re<br>
<br>
from scipy.stats import binom_test<br>
<br>
# Run the following before executing this:<br>
# $ wget <a href="http://eavesdrop.openstack.org/meetings/networking/2015/" rel="noreferrer" target="_blank">http://eavesdrop.openstack.org/meetings/networking/2015/</a><br>
# $ for f in `sed -n  '/[^g].txt"/ s/.*href=.\([^"]*\)*".*/\1/p' index.html ` ; do wget <a href="http://eavesdrop.openstack.org/meetings/networking/2015/$f" rel="noreferrer" target="_blank">http://eavesdrop.openstack.org/meetings/networking/2015/$f</a>; done<br>
<br>
fname_re = re.compile('-(\d\d)\.\d\d\.txt$')<br>
person_re = re.compile('^\* (.*[^_])_* \(\d+\)$')<br>
<br>
count = {}<br>
freq = {}<br>
for f in os.listdir('.'):<br>
    m = fname_re.search(f)<br>
    if not m:<br>
        continue<br>
    hour = m.group(1)<br>
    if hour not in freq:<br>
        freq[hour] = {}<br>
        count[hour] = 0<br>
    count[hour] += 1<br>
    f1 = freq[hour]<br>
    with open(f) as ff:<br>
        while True:<br>
            l = ff.readline()<br>
            if l.startswith('People present'):<br>
                ll = ff.read().splitlines()<br>
                break<br>
            if not l:<br>
                raise Exception("Error reading %s" % f)<br>
        for l in ll:<br>
            m = person_re.match(l)<br>
            if m:<br>
                name = m.group(1)<br>
                f1[name] = f1.get(name, 0) + 1<br>
<br>
assert set(freq.keys()) == set(['14', '21'])<br>
people = set(freq['14'].keys()) | set(freq['21'].keys())<br>
total = count['14'] + count['21']<br>
c14 = count['14']<br>
c21 = count['21']<br>
<br>
sig_lvl = .05<br>
for n in people:<br>
    f14 = freq['14'].get(n, 0)<br>
    f21 = freq['21'].get(n, 0)<br>
    p = float(f14 + f21) / total<br>
    if binom_test(f14, c14, p) < sig_lvl or binom_test(f21, c21, p) < sig_lvl:<br>
        print("%s %d/%d %d/%d" % (n, f14, c14, f21, c21))<br>
<div class="HOEnZb"><div class="h5"><br>
__________________________________________________________________________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div>Kevin Benton</div></div>
</div>