blob: 1154b5dba1996587a74f1ffd939e8739ba42580e [file] [log] [blame]
if(!window.asf) {
window.asf = {};
}
window.asf.getDirectorsTimelineData = function () {
let data = [];
const 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',
henning: 'Henning Schmiedehausen',
isabel: 'Isabel Drost-Fromm',
jerenkrantz: 'Justin Erenkrantz',
jim: 'Jim Jagielski',
jmclean: 'Justin Mclean',
ke4qqq: 'David Nalley',
lrosen: 'Larry Rosen',
markt: 'Mark Thomas',
marvin: 'Marvin Humphrey',
mattmann: 'Chris Mattmann',
mjc: 'Mark Cox',
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);
}
function add(id, start, end) {
let existing = data.find(d => d.id == id);
if(!existing) {
const fullName = idNames[id];
existing = {
id,
name: fullName ? fullName : id,
segments: []
};
data.push(existing);
}
existing.segments.push({
start,
end
})
}
// 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);
// Just guessing this date for now
y2024 = date(2024, 3, 31);
// Change dates for outgoing/incoming Directors
// fielding -> striker
change_2004 = date(2004, 1, 21);
// bayard -> geirm
change_2010 = date(2010, 8, 18);
// lrosen -> dkulp
change_2012 = date(2012, 3, 21);
// gstein -> rubys
change_2016a = date(2016, 9, 21);
// rubys -> rbowen
change_2016b = date(2016, 10, 19);
// psteitz -> danny
change_2019a = date(2019, 5, 16);
// jim -> tdunning
change_2019b = date(2019, 5, 16);
// wohali -> wave
change_2019c = date(2019, 9, 26);
// All Directors over history, with their begin/end timeframes.
add('sameer', y1999, y2000);
add('bhyde', y1999, y2000);
add('randy', y1999, y2003);
add('fielding', y1999, change_2004);
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, change_2016a);
add('stoddard', y2001, y2002);
add('rubys', y2002, y2009);
add('mjc', y2003, y2004);
add('striker', change_2004, 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, change_2010);
add('geirm', change_2010, y2011);
add('noirin', y2010, y2011);
add('brett', y2011, y2019);
add('lrosen', y2011, change_2012);
add('dkulp', change_2012, 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', change_2016a, change_2016b);
add('rbowen', change_2016b, y2020);
add('tdunning', y2017, y2019);
add('psteitz', y2017, change_2019a);
add('danny', change_2019a, y2020);
add('isabel', y2018, y2019);
add('rvs', y2018, y2020);
add('myrle', y2019, y2020);
add('druggeri', y2019, y2020);
add('clr', y2019, y2022);
add('jim', y2019, change_2019b);
add('tdunning', change_2019b, y2020);
add('wohali', y2019, change_2019c);
add('wave', change_2019c, y2020);
add('fielding', y2020, y2023);
add('niclas', y2020, y2021);
add('jmclean', y2020, y2022);
add('rubys', y2020, y2023);
add('pats', y2020, y2021);
add('rvs', y2021, y2023);
add('wusheng', y2021, y2022);
// ABOVE: history of begin/end for prior Directors
// Current set of Directors
add('rbowen', y2022, y2024);
add('bdelacretaz', y2020, y2024);
add('cdutz', y2022, y2024);
add('sharan', y2021, y2024);
add('ningjiang', y2022, y2024);
add('striker', y2020, y2024);
add('clr', y2023, y2024);
add('jmclean', y2023, y2024);
add('curcuru', y2023, y2024);
return data;
}