blob: f494d484deec05f0dc51bba06ef11d7a31fdce4f [file] [log] [blame]
function director_data() {
var dataTable = new google.visualization.DataTable();
dataTable.addColumn({ type: 'string', id: 'director' });
dataTable.addColumn({ type: 'string', id: 'bar label' });
dataTable.addColumn({ type: 'string', role: 'tooltip' });
dataTable.addColumn({ type: 'date', id: 'start' });
dataTable.addColumn({ type: 'date', id: 'end' });
var idNames = {
ben: 'Ben Laurie',
bayard: 'Henri Yandell',
bdelacretaz: 'Bertrand Delacretaz',
bhyde: 'Ben Hyde',
brett: 'Brett Porter',
brian: 'Brian Behlendorf',
brianm: 'Brian McCallister',
cdutz: 'Christopher Dutz',
cliffs: 'Cliff Schmidt',
clr: 'Craig Russell',
coar: 'Ken Coar',
curcuru: 'Shane Curcuru',
cutting: 'Doug Cutting',
danny: 'Danny Angus',
dirkx: 'Dirk-Willem van Gulik',
dkulp: 'Daniel Kulp',
dougm: 'Doug Maceachern',
druggeri: 'Daniel Ruggeri',
farra: 'J Aaron Farr',
fielding: 'Roy T. Fielding',
geirm: 'Geir Magnusson, Jr.',
gstein: 'Greg Stein',
isabel: 'Isabel Drost-Fromm',
jerenkrantz: 'Justin Erenkrantz',
jim: 'Jim Jagielski',
jmclean: 'Justin Mclean',
ke4qqq: 'David Nalley',
markt: 'Mark Thomas',
marvin: 'Marvin Humphrey',
mattmann: 'Chris Mattmann',
mjc: 'Mark Cox',
henning: 'Henning Schmiedehausen',
lrosen: 'Larry Rosen',
myrle: 'Myrle Krantz',
niclas: 'Niclas Hedhman',
ningjiang: 'Willem Ning Jiang',
noirin: 'Noirin Plunkett',
pats: 'Patricia Shanahan',
psteitz: 'Phil Steitz',
randy: 'Randy Terbush',
rasmus: 'Rasmus Lerdorf',
rbowen: 'Rich Bowen',
rgardler: 'Ross Gardler',
rubys: 'Sam Ruby',
sameer: 'Sameer Parekh',
sharan: 'Sharan Foga',
stefano: 'Stefano Mazzocchi',
stoddard: 'Bill Stoddard',
striker: 'Sander Striker',
rvs: 'Roman Shaposhnik',
tdunning: 'Ted Dunning',
wave: 'Dave Fisher',
wohali: 'Joan Touzet',
wrowe: 'William Rowe',
wusheng: 'Sheng Wu',
}
function date(y, m, d) {
// Date's month is [0..11]
return new Date(y, m-1, d);
}
// NOTE: these are the dates that election results are announced,
// which may be two days after the meeting-start (due to
// adjournment for voting). Thus, these dates do not necessarily
// align with Annual Meeting dates.
y1999 = date(1999, 3, 13); // CHECK
y2000 = date(2000, 3, 11); // CHECK
y2001 = date(2001, 4, 3); // CHECK
y2002 = date(2002, 5, 21); // CHECK
y2003 = date(2003, 6, 18); // CHECK
y2004 = date(2004, 5, 18); // CHECK
y2005 = date(2005, 5, 24); // CHECK
y2006 = date(2006, 6, 13); // CHECK
y2007 = date(2007, 6, 5); // CHECK
y2008 = date(2008, 6, 3); // CHECK
y2009 = date(2009, 7, 9);
y2010 = date(2010, 7, 15);
y2011 = date(2011, 7, 14);
y2012 = date(2012, 5, 24);
y2013 = date(2013, 5, 23);
y2014 = date(2014, 5, 29);
y2015 = date(2015, 3, 26);
y2016 = date(2016, 3, 24);
y2017 = date(2017, 3, 30);
y2018 = date(2018, 3, 22);
y2019 = date(2019, 3, 28);
y2020 = date(2020, 4, 2);
y2021 = date(2021, 3, 9);
y2022 = date(2022, 3, 1);
y2023 = date(2023, 3, 9);
// Transition dates for outgoing/incoming Directors
// fielding -> striker
t2004 = date(2004, 1, 21);
// bayard -> geirm
t2010 = date(2010, 8, 18);
// lrosen -> dkulp
t2012 = date(2012, 3, 21);
// gstein -> rubys
t2016a = date(2016, 9, 21);
// rubys -> rbowen
t2016b = date(2016, 10, 19);
// psteitz -> danny
t2019a = date(2019, 5, 16);
// jim -> tdunning
t2019b = date(2019, 5, 16);
// wohali -> wave
t2019c = date(2019, 9, 26);
function add(id, start, end) {
var name = idNames[id];
var y1 = start.getFullYear();
var m1 = start.getMonth();
var d1 = start.getDate();
var y2 = end.getFullYear();
var m2 = end.getMonth();
var d2 = end.getDate();
var tip = `${name}, from ${y1}/${m1}/${d1} to ${y2}/${m2}/${2}`;
dataTable.addRow([id, id, tip, start, end]);
}
add('sameer', y1999, y2000);
add('bhyde', y1999, y2000);
add('randy', y1999, y2003);
add('fielding', y1999, t2004);
add('brian', y1999, y2005);
add('ben', y1999, y2004);
add('coar', y1999, y2007);
add('dirkx', y1999, y2007);
add('jim', y1999, y2018);
add('dougm', y2000, y2001);
add('rasmus', y2000, y2001);
add('gstein', y2001, t2016a);
add('stoddard', y2001, y2002);
add('rubys', y2002, y2009);
add('mjc', y2003, y2004);
add('striker', t2004, y2007);
add('stefano', y2004, y2006);
add('geirm', y2004, y2005);
add('ben', y2005, y2006);
add('jerenkrantz', y2005, y2010);
add('cliffs', y2006, y2007);
add('bayard', y2006, y2008);
add('geirm', y2007, y2010);
add('farra', y2007, y2009);
add('wrowe', y2007, y2009);
add('henning', y2007, y2009);
add('bdelacretaz', y2008, y2009);
add('fielding', y2009, y2014);
add('brett', y2009, y2010);
add('brianm', y2009, y2010);
add('cutting', y2009, y2015);
add('curcuru', y2009, y2012);
add('bdelacretaz', y2010, y2019);
add('rubys', y2010, y2016);
add('bayard', y2010, t2010);
add('geirm', t2010, y2011);
add('noirin', y2010, y2011);
add('brett', y2011, y2019);
add('lrosen', y2011, t2012);
add('dkulp', t2012, y2012);
add('rbowen', y2012, y2013);
add('rgardler', y2012, y2013);
add('curcuru', y2013, y2014);
add('mattmann', y2013, y2018);
add('rgardler', y2014, y2015);
add('rbowen', y2014, y2016);
add('curcuru', y2015, y2021);
add('ke4qqq', y2015, y2016);
add('marvin', y2016, y2017);
add('markt', y2016, y2019);
add('isabel', y2016, y2017);
add('rubys', t2016a, t2016b);
add('rbowen', t2016b, y2020);
add('tdunning', y2017, y2019);
add('psteitz', y2017, t2019a);
add('danny', t2019a, y2020);
add('isabel', y2018, y2019);
add('rvs', y2018, y2020);
add('myrle', y2019, y2020);
add('druggeri', y2019, y2020);
add('clr', y2019, y2021);
add('jim', y2019, t2019b);
add('tdunning', t2019b, y2020);
add('wohali', y2019, t2019c);
add('wave', t2019c, y2020);
add('bdelacretaz', y2020, y2021);
add('fielding', y2020, y2021);
add('niclas', y2020, y2021);
add('jmclean', y2020, y2021);
add('rubys', y2020, y2021);
add('pats', y2020, y2021);
add('striker', y2020, y2021);
add('bdelacretaz', y2021, y2022);
add('fielding', y2021, y2022);
add('sharan', y2021, y2022);
add('justin', y2021, y2022);
add('clr', y2021, y2022);
add('rubys', y2021, y2022);
add('rvs', y2021, y2022);
add('striker', y2021, y2022);
add('wusheng', y2021, y2022);
add('rbowen', y2022, y2023);
add('bdelacretaz', y2022, y2023);
add('cdutz', y2022, y2023);
add('fielding', y2022, y2023);
add('sharan', y2022, y2023);
add('ningjiang', y2022, y2023);
add('rubys', y2022, y2023);
add('rvs', y2022, y2023);
add('striker', y2022, y2023);
return dataTable;
}