http://qs321.pair.com?node_id=342201

The last hour's chatterbox is graphed to clump around who was talking to whom. Sort of. This doesn't take into account message content so if you say someone's name, that doesn't hint that you are talking to them. You get points by speaking recently and within proximity to when someone else spoke.

Fullpage Chat with the graph

View the source

Incidentally, I'm bringing these links up in PMD because while the code is visible I'm not presenting complete packages so people can run this stuff on their own. In that sense its more just an introduction to another view to perlmonks.

Appended: I added the PL/R code so people could see that too. The full source code for everything is at http://grenekatz.org/downloads/chatterbox//sql/perlmonks.sql.

CREATE FUNCTION r_median(double precision[]) RETURNS double precision AS ' median(arg1) ' LANGUAGE plr; CREATE AGGREGATE median ( BASETYPE = double precision, SFUNC = plr_array_accum, STYPE = double precision[], FINALFUNC = r_median ); CREATE FUNCTION invisible_speakers() RETURNS SETOF text AS ' SELECT username FROM (SELECT userid FROM chatter AS c, ( SELECT MAX( inserted ) AS s FROM other_users ) as s, ( SELECT MAX( inserted ) AS f FROM current_other_users ) AS + f WHERE c.inserted BETWEEN s.s AND f.f EXCEPT SELECT userid FROM current_other_users) AS i JOIN users USING (userid); ' LANGUAGE sql STABLE;