content/history/data/directors.js (198 lines of code) (raw):

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; }