diff options
Diffstat (limited to 'resources/pug/finals/conferences.pug')
| -rw-r--r-- | resources/pug/finals/conferences.pug | 250 |
1 files changed, 0 insertions, 250 deletions
diff --git a/resources/pug/finals/conferences.pug b/resources/pug/finals/conferences.pug deleted file mode 100644 index 498f137..0000000 --- a/resources/pug/finals/conferences.pug +++ /dev/null @@ -1,250 +0,0 @@ -extends /layout.pug - -block extra_head - style. - table.conferences tr.year { - border-color: black; - border-style: solid; - border-width: 1px 0 0 0; - } - - table.conferences tr.spacer { - height: .8ex; - } - - table.conferences tr.year td { - padding-bottom: .4ex; - } - - table.conferences tr.entry { - color: gray; - } - - table.conferences td, table.conferences th { - white-space: nowrap; - } - - table.conferences td:last-child { - white-space: normal; - } - - table.conferences i.fas, table.conferences i.fab { - margin-right: .2ex; - } - -block titleContainer - -block content - - - const BIKE_CARBON_FOOTPRINT_KM = 30; - const DOMESTIC_FLIGHT_THRESHOLD = 500; - - h1 - a(href='/') #[i.fas.fa-arrow-circle-left] - | Visited conferences - - div.alert.alert-info - p. - This page gives an overview of the conferences, workshops, and summer schools I have visited together with the #[strong travel carbon footprint]. - The #[strong accomodation] I used is also listed, but not included in the carbon footprint. - The calculation is based on averages from #[a.alert-link(href='https://ourworldindata.org/travel-carbon-footprint', target='_blank') Our World in Data]. - - p. - For #[strong biking], I counted 30 g CO#[sub 2] / km as a rough estimate based on my diet. - #[strong Flights] shorter than 500km are counted as 'domestic' (255 g / km), otherwise they are counted as short/long-haul (averaged on 153 g / km). - #[strong Trains] in the Netherlands probably emit less than the estimate from Our World in Data because #[a.alert-link(href='https://www.ns.nl/over-ns/duurzaamheid/fossielvrij', target='_blank') the NS runs on wind energy]. - - p. - The carbon footprint per capita of the Netherlands was #[strong 9.66] t in 2017 (26,448 g / day), according to #[a.alert-link(href='https://ourworldindata.org/co2/country/netherlands?country=NLD~DEU~DNK~SWE~FRA~BEL', target='_blank') Our World in Data]. - The global average was #[strong 4.79] t in 2016 (13,114 g / day), according to #[a.alert-link(href='https://www.worldometers.info/co2-emissions/co2-emissions-per-capita/', target='_blank') Worldometer]. - - p. - Transport, aviation, and shipping #[a.alert-link(href='https://ourworldindata.org/grapher/ghg-emissions-by-sector?time=latest&country=~NLD', target='_blank') make up 34% of emissions in the Netherlands]. - For the average Dutch person this is #[strong 3.28] t per year or #[strong 8,992] g per day (but note that this includes more than personal travel). - Worldwide, we have #[a.alert-link(href='https://ourworldindata.org/emissions-by-sector#transport-16-2', target='_blank') 16.2% of emissions from transport], which makes this figure #[strong 0.78] t per year or #[strong 2,125] g per day per capita. - - p. - Please let me know if you think some of the calculations can be improved! - - - - // Accepts "Y-M-D to [[Y-]M-]D", i.e. you can leave out repeated parts in - // the second date. "2019-7-8 to 10" means "2019-7-8 to 2019-7-10". - // You can also give only one date. - function parse_date_range(s) { - s = s.split(' to ').map(d => d.split('-')); - - let from = {year: s[0][0], month: s[0][1], day: s[0][2]}; - - // If only day or month-day is given in the second date, add year-month - // or year from the first date. - let to; - if (s.length == 1) - to = from; - else if (s[1].length == 1) - to = {year: from.year, month: from.month, day: s[1][0]}; - else if (s[1].length == 2) - to = {year: from.year, month: s[1][0], day: s[1][1]}; - else - to = {year: s[1][0], month: s[1][1], day: s[1][2]}; - - return { - from: new Date(from.year, from.month-1, from.day), - to: new Date(to.year, to.month-1, to.day) - }; - } - - function nr_of_days(conf) { - return 1 + (conf.to - conf.from) / 24 / 3600 / 1000; - } - - // Computes footprint in grams CO2, according to - // https://ourworldindata.org/travel-carbon-footprint. - // See the explanation in the paragraph at the top of the page. - function compute_carbon_footprint(conf) { - let footprint = 0; - - if (conf.bike) - footprint += BIKE_CARBON_FOOTPRINT_KM * conf.bike; - if (conf.ferry) - footprint += 19 * conf.ferry; - if (conf.plane) - footprint += (conf.plane < DOMESTIC_FLIGHT_THRESHOLD ? 255 : 153) * conf.plane; - if (conf.train) - footprint += 41 * conf.train; - - return footprint * (conf.multiplier || 2); - } - - function year_summary(conferences, year) { - conferences = conferences.filter(c => c.from.getFullYear() == year); - - let summary = { - conferences: conferences.length, - total_days: Math.round(conferences.map(nr_of_days).reduce((x,y) => x + y, 0)), - total_footprint: conferences.map(compute_carbon_footprint).reduce((x,y) => x + y, 0), - }; - summary.total_footprint_percentage = Math.round(100 * summary.total_footprint / 3284400); - summary.total_footprint_per_day = summary.total_footprint / summary.total_days; - - return summary; - } - - let conferences = []; - - mixin conf(dates, location, distance, shorttitle, title) - - - let conf = parse_date_range(dates); - conf.location = location; - conf.distance = distance; - conf.shorttitle = shorttitle; - conf.title = title || shorttitle; - - Object.assign(conf, attributes); - - conf.footprint = compute_carbon_footprint(conf); - - conferences.push(conf); - - mixin listconferences() - - - conferences.sort((x,y) => y.from - x.from || y.to - x.to); - let last_year = null; - - table.conferences - thead - tr - th Year - th Month - th Location - th Travel modes - th(colspan=2) Carbon footprint (g CO#[sub 2]) - th Accomodation - th Title - - - for (const conf of conferences) - if last_year != conf.from.getFullYear() - - last_year = conf.from.getFullYear(); - - let summary = year_summary(conferences, last_year); - tr.spacer - tr.year - td= conf.from.getFullYear() - td(colspan=7). - #[strong= summary.conferences] conference#{summary.conferences == 1 ? '' : 's'} - over #[strong= summary.total_days] day#{summary.total_days == 1 ? '' : 's'}, - for a total of #[strong= (summary.total_footprint).toLocaleString('en')] g CO#[sub 2] - (#{summary.total_footprint_percentage.toLocaleString('en')}% of the yearly Dutch average), - averaging #[strong= (summary.total_footprint_per_day).toLocaleString('en', {maximumFractionDigits: 0})] g CO#[sub 2] / day. - - tr.entry - td - - td(title!=conf.from.toDateString() + ' to ' + conf.to.toDateString()) - = conf.from.toLocaleString('default', {month: 'short'}) - if conf.from.getMonth() != conf.to.getMonth() - | – - = conf.to.toLocaleString('default', {month: 'short'}) - - td - = conf.location - if conf.distance - = ' (' + (conf.distance).toLocaleString('en') + 'km)' - - td - if conf.bike - i.fas.fa-bicycle(alt='Bike', title!='Bike: ' + conf.bike + 'km one-way') - if conf.ferry - i.fas.fa-ship(alt='Ferry', title!='Ferry: ' + conf.ferry + 'km one-way') - if conf.train - i.fas.fa-train(alt='Train', title!='Train: ' + conf.train + 'km one-way') - if conf.plane - i.fas.fa-plane(alt='Plane', title!='Plane: ' + conf.plane + 'km one-way') - - td.text-right= (conf.footprint).toLocaleString('en') - - td.text-right= (conf.footprint / nr_of_days(conf)).toLocaleString('en', {maximumFractionDigits: 0}) + ' / day' - - td - if conf.airbnb - i.fab.fa-airbnb(alt='Airbnb', title='Airbnb') - if conf.hotel - i.fas.fa-hotel(alt='Hotel', title='Hotel') - if conf.friendstay - i.fas.fa-home(alt='With a friend', title='With a friend') - - td - a(href!=conf.url, target='_blank', title!=conf.title)!= conf.shorttitle - - +conf('2017-1-6', 'Nijmegen', 45, 'NL-FP Day', 'Dutch Functional Programming Day')(train=40, url='https://clean.cs.ru.nl/NL-FP_dag_2017') - +conf('2017-7-10 to 21', 'Leiden', 61, 'Summer School in Languages and Linguistics', 'Leiden Summer School in Languages and Linguistics')(train=75, multiplier=20, url='https://www.universiteitleiden.nl/en/education/study-programmes/summer-schools/summer-school-in-languages-and-linguistics') - - +conf('2018-1-5', 'Apeldoorn', 41, 'NL-FP Day', 'Dutch Functional Programming Day')(train=61, url='https://clean.cs.ru.nl/NL-FP_dag_2018') - +conf('2018-1-26', 'Nijmegen', 0, 'CLIN', 'Computational Linguistics in the Netherlands')(url='https://clin28.cls.ru.nl/') - - +conf('2019-7-8 to 10', 'Cambridge', 393, 'BHLAP', 'Biblical & Rabbinic Hebrew: New Perspectives in Philology & Linguistics')(bike=305, ferry=200, airbnb, url='https://www.ames.cam.ac.uk/whats-on/events-archive/biblical-rabinic-hebrew-conference') - +conf('2019-10-7 to 8', 'Utrecht', 59, 'CLSoR', 'Workshop on Cross-Linguistic Semantics of Reciprocals')(train=72, friendstay, url='https://rocky.sites.uu.nl/workshop-on-cross-linguistic-semantics-of-reciprocals/') - - +conf('2020-1-10', 'Amsterdam', 88, 'NL-FP Day', 'Dutch Functional Programming Day')(train=100, url='https://sites.google.com/view/nl-fp-day-2020/home') - +conf('2020-3-31', 'Online', 0, '#SemiticsTwitterCoronaConference')(url='https://www.academia.edu/42297049/') - +conf('2020-10-11', 'Online', 0, 'Syntax Workshop')(url='https://sites.google.com/view/syntaxworkshop') - +conf('2020-11-29 to 12-11', 'Online', 0, 'SBL Annual', 'SBL Annual Meeting')(url='https://www.sbl-site.org/meetings/Congresses_Abstracts.aspx?MeetingId=37') - - +conf('2021-10-25 to 11-22', 'Online', 0, 'ETT', 'Emerging Topics in Typology')(url='https://www2.helsinki.fi/en/conferences/emerging-topics-in-typology') - - +conf('2022-01-12 to 14', 'Online', 0, 'AIL2', 'Agency and Intentions in Language')(url='https://ail-workshop.github.io/AIL2-Workshop/') - +conf('2022-08-24 to 27', 'Bucharest', 1700, 'SLE 2022', 'Societas Linguistica Europaea')(train=107, plane=1800, airbnb, url='https://societaslinguistica.eu/sle2022/') - +conf('2022-11-19 to 22', 'Denver', 7840, 'SBL 2022', 'Society of Biblical Literature')(train=107, plane=7748, hotel, url='https://www.sbl-site.org/meetings/AnnualMeeting.aspx') - +conf('2022-12-8 to 9', 'Tilburg', 62, 'CogLing Days 9', 'CogLing Days 9')(train=68, multiplier=4, url='https://benecla.com/') - - +conf('2023-7-10 to 21', 'Leiden', 100, 'Summer School in Languages and Linguistics', 'Leiden Summer School in Languages and Linguistics')(train=115, multiplier=20, url='https://www.universiteitleiden.nl/en/education/study-programmes/summer-schools/summer-school-in-languages-and-linguistics') - +conf('2023-10-5 to 6', 'Brussels', 174, 'BCGL16', 'Brussels Conference on Generative Linguistics 16')(train=174, airbnb, url='https://www.crissp.be/bcgl-16-the-morphosyntax-of-speaker-and-hearer/') - +conf('2023-10-11 to 13', 'Nice', 1100, 'SPE12/OASIS3', 'Semantics and Philosophy in Europe 12 / Ontology As Structured by the Interfaces with Semantics 3')(train=1100, airbnb, url='https://spe-uca.sciencesconf.org/') - - +conf('2024-2-2', 'Utrecht', 59, 'GTD 2024', 'Grote Taaldag')(train=72, friendstay, url='https://anela.nl/activiteiten/grote-taaldag/') - +conf('2024-10-24 to 25', 'Online', 0, 'Puzzles of Agreement')(url='https://sites.google.com/view/puzzlesofagreement/') - - +conf('2025-1-31', 'Utrecht', 59, 'GTD 2025', 'Grote Taaldag')(train=72, friendstay, url='https://anela.nl/activiteiten/grote-taaldag/') - +conf('2025-2-8 to 9', 'Online', 0, 'IcoSem3', 'Iconicity Seminar 3')(url='https://ianjoo.github.io/icosem/3.html') - +conf('2025-8-26 to 29', 'Bordeaux', 912, 'SLE 2025', 'Societas Linguistica Europaea')(train=1050, hotel, url='https://societaslinguistica.eu/sle2025/') - +conf('2025-11-7', 'Amsterdam', 88, 'CLABH', 'Cognitive Linguistic Approaches to Biblical Hebrew')(train=100, url='https://etcbc.nl/bible/cognitive-linguistic-approaches-to-biblical-hebrew-hybrid-expert-meeting-7-november-2025/') - - +listconferences() |
