I just refreshed PM and noticed that, unusually for a Sunday afternoon, there were 100 users listed in the "Other Users" box.

Even more intriguing was that a lot of the names listed were guys who we unfortunately see very rarely these days. On further inspection, many of their home nodes showed that they hadn't visited here for weeks, if not months.

What gives?


Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.

Replies are listed 'Best First'.
Re: Amazing coincidence.
by toolic (Bishop) on Aug 28, 2011 at 15:14 UTC
    The list looks a lot like the top of Saints in our Book, with a few exceptions.

    It must be a glitch in The Matrix :)

      The list looks a lot like the top of Saints in our Book,

      That was my first thought until I noticed the absence of Abigail-II.

      Now he hasn't been around for a couple of years, which (I think) is longer than anyone else on the list. That suggests that the time threshold in the query that fetches the list of users that have been active in the last few minutes, has been screwed up.

      Perhaps a limit that should have been set in minutes has been set in seconds? Or similar.


      Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
      "Science is about questioning the status quo. Questioning authority".
      In the absence of evidence, opinion is indistinguishable from prejudice.

        Great diagnosis!

        In fact, it was this small change that broke all node sets that were user lists and should reflect the "recent" users:

        Originally, there was this query, which did not use an index on lasttime:

        SELECT node_id pick_id, title pickname, node_id auth_id, title authname, experience rep FROM node, user WHERE node_id = user_id AND (UNIX_TIMESTAMP(NOW()) - UNIX_TIMESTAMP(lasttime +) < ?) ORDER BY experience $args{order}, node_id ASC LIMIT $limit

        I eliminated the function on lasttime by converting the date math from math on integers/unix timestamps to math on datetime types:

        SELECT node_id pick_id, title pickname, node_id auth_id, title authname, experience rep FROM node, user WHERE node_id = user_id AND lasttime > date_sub(NOW(), INTERVAL ? DAY) ORDER BY experience $args{order}, node_id ASC LIMIT $limit

        which now used days where it should have used seconds:

        SELECT node_id pick_id, title pickname, node_id auth_id, title authname, experience rep FROM node, user WHERE node_id = user_id AND lasttime > date_sub(NOW(), INTERVAL ? SECOND) ORDER BY experience $args{order}, node_id ASC LIMIT $limit

        As my excuse, there was a similar-yet-different code path further above, where the same parameters were used for non-user nodes that were in days, instead of seconds :-)).

      Or padding the stats?
Re: Amazing coincidence.
by Anonymous Monk on Aug 28, 2011 at 15:20 UTC
    Corion was here a few hours ago, before he went to bed, said he was working on optimizing db indices or queries ... it was about the time I noticed top 100
Re: Amazing coincidence.
by Anonymous Monk on Aug 28, 2011 at 15:01 UTC
    August fools!