diff options
| author | Camil Staps | 2026-01-30 10:06:47 +0100 |
|---|---|---|
| committer | Camil Staps | 2026-01-30 10:06:47 +0100 |
| commit | 08591aff5a9b44cdf22f6714646346928f31d84d (patch) | |
| tree | 5359ccddfc6326ddb821e7e6c31f34ee93c1a65f /resources | |
| parent | Add SLE review stats (diff) | |
Diffstat (limited to 'resources')
| -rw-r--r-- | resources/pug/finals/clean.pug | 64 | ||||
| -rw-r--r-- | resources/pug/finals/conferences.pug | 250 | ||||
| -rw-r--r-- | resources/pug/finals/index.pug | 444 | ||||
| -rw-r--r-- | resources/pug/finals/linguistics.pug | 179 | ||||
| -rw-r--r-- | resources/pug/finals/publications.pug | 89 | ||||
| -rw-r--r-- | resources/pug/include/layout-main.pug | 57 | ||||
| -rw-r--r-- | resources/pug/include/mixins.pug | 78 | ||||
| -rw-r--r-- | resources/sass/style.scss | 121 |
8 files changed, 435 insertions, 847 deletions
diff --git a/resources/pug/finals/clean.pug b/resources/pug/finals/clean.pug new file mode 100644 index 0000000..7dbeee0 --- /dev/null +++ b/resources/pug/finals/clean.pug @@ -0,0 +1,64 @@ +extends /layout-main.pug + +block set_page + - let page = 'clean.html' + +block page + .container + section + p + | #[a(href="https://clean-lang.org", target="_blank") Clean] is a functional programming language, similar to Haskell. + | I have been actively involved with the development of Clean and its ecosystem since 2015. + | Here are some of my projects: + + table.main_table + tr + td: a(href="https://clean-and-itasks.gitlab.io/nitrile") Nitrile + td A package manager and build tool. + tr + td: a(href="https://cloogle.org") Cloogle + td A search engine with type search capability. + tr + td: a(href="https://gitlab.com/clean-and-itasks/abc-interpreter") ABC Interpreter + td + | A sandboxed Clean runtime, enabling seamless interoperability with a Clean host. + | When used in the browser this allows programmers to write a full-stack application entirely in Clean. + tr + td: a(href="https://gitlab.com/clean-and-itasks/clean-llvm") Clean-LLVM + td A new compiler backend using LLVM. + + p ... and more: see #[a(href="https://gitlab.com/users/camilstaps/projects", target="_blank") GitLab]. + + section + p + | My BSc and MSc theses were also on Clean. + | The latter was published at IFL: + + table.main_table.publications + tr + td 2019 + +pub(2019, 'Lazy interworking of compiled and interpreted code for sandboxing and distributed systems')(authors='Staps, Camil, John van Groningen & Rinus Plasmeijer', booktitle='Implementation and Application of Functional Languages (IFL \'19), September 25–27, 2019, Singapore, Singapore', editors='Jurriën Stutterheim & Wei Ngan Chin', doi='10.1145/3412932.3412941', oa, type='chapter') + tr + td + +pub(2019, 'Lazy interworking of compiled and interpreted code for sandboxing and distributed systems')(misc='Radboud University Nijmegen MSc. thesis', url='https://www.ru.nl/publish/pages/769526/thesis_1.pdf', oa, type='master-thesis') + tr + td 2017 + +pub(2017, 'Code generation for the Thumb-2 instruction set')(misc='Radboud University Nijmegen BSc. thesis', url='https://cs.ru.nl/bachelorscripties/2017/Camil_Staps___4498062___Code-generation-for-the-Thumb-2-instruction-set.pdf', oa, type='bachelor-thesis') + + section + p + | And finally some presentations on Clean: + + table.main_table.presentations + tr + td 2020 + td Jan 10, #[a(href="https://sites.google.com/view/nl-fp-day-2020/home", title="Dutch Functional Programming Day", target="_blank") NL-FP day] + td With John van Groningen and Rinus Plasmeijer. Lazy interworking of compiled and interpreted code. + tr + td 2019 + td Sep 27, #[a(href="https://web.archive.org/web/20201201105043/http://2019.iflconference.org/", title="Implementation and application of Functional Languages", target="_blank") IFL31] + td By Rinus Plasmeijer, with John van Groningen. Lazy interworking of compiled and interpreted code for sandboxing and distributed systems. + tr + td 2018 + td Jan 5, #[a(href="http://clean.cs.ru.nl/NL-FP_dag_2018", title="Dutch Functional Programming Day", target="_blank") NL-FP day] + td #[a(href="https://cloogle.org", target="_blank") Cloogle]: a programming language search engine and its applications (#[a(href="https://clean.cs.ru.nl/NL-FP_dag_2018#Camil_Staps_-_Cloogle:_a_programming_language_search_engine_and_its_applications", target="_blank") abstract & slides]). 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() diff --git a/resources/pug/finals/index.pug b/resources/pug/finals/index.pug index 72bb56e..5f822c9 100644 --- a/resources/pug/finals/index.pug +++ b/resources/pug/finals/index.pug @@ -1,436 +1,20 @@ -extends /layout.pug +extends /layout-main.pug -block extra_head - meta(name='description', content='PhD candidate in linguistics, representation of agency in language using spatial relations. I do theoretical research and apply it to Biblical Hebrew.') - -block titleContainer - -block append js - script(src='/assets/js/bootstrap.min.js') - - script new bootstrap.ScrollSpy(document.body, {target: '#sticky-nav'}); - -block content - #sticky-nav - ul.nav.nav-pills - li.nav-item(role='presentation') #[a.nav-link(href='#introduction') Introduction] - li.nav-item(role='presentation') #[a.nav-link(href='#publications') Publications] - li.nav-item(role='presentation') #[a.nav-link(href='#talks') Talks] - li.nav-item(role='presentation') #[a.nav-link(href='#service-outreach') Service & outreach] - li.nav-item(role='presentation') #[a.nav-link(href='#statistics') Statistics] - li.nav-item(role='presentation') #[a.nav-link(href='#projects') Software projects] - li.nav-item(role='presentation') #[a.nav-link(href='#teaching') Teaching] - li.nav-item(role='presentation') #[a.nav-link(href='#grants') Grants] - li.nav-item(role='presentation') #[a.nav-link(href='#employment') Employment] - li.nav-item(role='presentation') #[a.nav-link(href='#education') Education] - - .container#content - header#introduction - div - img#profile(alt="Camil Staps", style="vertical-align:bottom;", src="/assets/img/profile.jpg", width="170") - div#basicinfo(style="display:table-cell;vertical-align:bottom;") - h1 Camil Staps - p.text-muted - span [kaˈmil stɑps]  - span.opt-break he/his - br - span.tt.obfuscate.wrap-anywhere - | info@c - span dummy - | amilst - span dummy - | aps.nl - p(style="margin-bottom:1em;") - a(href="https://leidenuni.academia.edu/CamilStaps") - i.ai.ai-lg.ai-academia(title="Academia.edu") - | - a(href="https://orcid.org/0000-0003-1164-6838") - i.ai.ai-lg.ai-orcid(title="ORCiD") - |   - a(href="https://gitlab.com/camilstaps") - i.fab.fa-lg.fa-gitlab(title="GitLab") - |   - a(href="https://github.com/camilstaps") - i.fab.fa-lg.fa-github(title="GitHub") - |   - a(href="https://nl.linkedin.com/in/camilstaps") - i.fab.fa-lg.fa-linkedin(title="LinkedIn") +block set_page + - let page = '/' +block page + .container section - p.larger#lead - | I am a linguist, broadly interested in what language can tell us about human cognition. - | I am currently working as a postdoctoral researcher at the #[a(href="https://leibniz-zas.de", target="_blank") Leibniz-Zentrum Allgemeine Sprachwissenschaft]. p.larger - | The Bigger Question I aim to address is how abstract concepts like causation and evidentiality are represented in the mind. - | In particular, I study the relation between spatial and non-spatial meanings of prepositions, demonstratives, and other function words. - | I defended my #[a(href='#publications') doctoral dissertation] in June 2024. - - section#publications - h2 Publications - mixin pub(year, title) - if attributes.lingbuzz - - attributes.url = 'https://lingbuzz.net/lingbuzz/' + attributes.lingbuzz - - attributes.oa = true - td.icon - if attributes.type - if attributes.type == 'phd-thesis' - i.fa.fa-graduation-cap(title="PhD thesis") - else if attributes.type == 'master-thesis' - i.fa.fa-graduation-cap(title="Master thesis") - else if attributes.type == 'bachelor-thesis' - i.fa.fa-graduation-cap(title="Bachelor thesis") - else if attributes.type == 'review' - i.far.fa-comment(title="Book review") - else if attributes.type == 'chapter' - i.fa.fa-book-open(title="Book chapter") - else - - throw 'pub: unknown type' - else - i.far.fa-file-lines(title="Journal article") - td.icon - if attributes.oa - if attributes.url - - var oaurl = attributes.url - else if attributes.doi - - var oaurl = 'https://doi.org/'+attributes.doi - else - - throw 'pub: oa set but no doi or url' - a.oa(href!=oaurl, target='_blank') - i.ai.ai-lg.ai-open-access(title="Open Access") - - td - p - if !attributes.authors - - attributes.authors = 'Staps, Camil' - | !{attributes.authors}. #{year}. - | - if attributes.url - a(href!=attributes.url, target='_blank')!= title - else if attributes.publisher && !attributes.pages - i!= title - else - | !{title} - | - if attributes.journal - |. !{attributes.prejournal}#[em!=attributes.journal] - if attributes.volume - | #{attributes.volume} - if attributes.issue - | (#{attributes.issue}) - else if attributes.booktitle - | . In !{attributes.editors} (eds.), #[em!=attributes.booktitle] - else if attributes.misc - | . #{attributes.misc} - if attributes.pages - - attributes.pages = attributes.pages.replace('-', '–') - if attributes.journal - | :!{attributes.pages} - else - | , !{attributes.pages} - | . - if attributes.address - | #{attributes.address}: - if attributes.publisher - | #{attributes.publisher}. - if attributes.doi - | #[span.sc doi]: - - var doiurl = 'https://doi.org/'+attributes.doi - a(href!=doiurl, target='_blank')!= attributes.doi - | . - if attributes.errata - | (There are #[a(href!=attributes.errata) errata].) - - mixin review(year, author, title) - - attributes.type = 'review' - +pub(year, 'Review of: ' + author + ', ' + title)&attributes(attributes) - - table.main_table.publications - tr - td In preparation - +pub('In preparation', 'Complementation and Common Ground: Discursive effects in Biblical Hebrew')(lingbuzz='007711') - tr - td - +pub('In preparation', 'Overlap and countability')(authors='Rooryck, Johan & Camil Staps', lingbuzz='009490') - tr - td 2026 - +review(2024, 'Grace J. Park', 'Focus Construction with <i>kî ̓im</i> in Biblical Hebrew')(journal='Bibliotheca Orientalis', volume=81, issue='5/6', pages='510-515', url='assets/pdf/bior2026.pdf') - tr - td 2025 - +pub(2025, 'Iconic features in nominal reduplication')(journal='Linguistic Typology', doi='10.1515/lingty-2024-0042', oa) - tr - td - +review(2025, 'Alexandra Y. Aikhenvald', 'A guide to gender and classifiers')(journal='LINGUIST List', volume=36, issue=3268, url='https://linguistlist.org/issues/36/3268/', oa) - tr - td 2024 - +pub(2024, 'The persistence of space: Formalizing the polysemy of spatial relations in functional elements')(misc='Leiden University dissertation', address='Amsterdam', publisher='LOT', doi='10.48273/LOT0673', oa, errata='/dissertation-errata.html', type='phd-thesis') - tr - td - +pub(2024, 'Large Language Models and Biblical Hebrew: Limitations, pitfalls, opportunities')(journal='HIPHIL Novum', volume=9, issue=1, pages='46-55', doi='10.7146/hn.v9i1.144177', oa) - tr - td - +pub(2024, 'Semantic properties of prepositions: The distinction between causal <i>min</i> ‘from’ and <i>bə</i> ‘in’')(authors='Staps, Camil & Martijn Beukenhorst', journal='Brill\'s Journal of Afroasiatic Languages and Linguistics', volume=16, issue=2, pages='217-250', doi='10.1163/18776930-01602002', oa) - tr - td - +pub(2024, 'Formalizing spatial-causal polysemy of Agent prepositions')(authors='Staps, Camil & Johan Rooryck', journal='Semantics & Pragmatics', volume=17, issue=4, pages='1-47', doi='10.3765/sp.17.4', oa) - tr - td 2023 - +pub(2023, 'The interpretation of [+distal] in demonstratives and complementizers')(authors='Staps, Camil & Johan Rooryck', journal='Linguistics', volume=61, issue=5, pages='1195-1231', doi='10.1515/ling-2022-0178', oa) - tr - td 2022 - +pub(2022, 'Voice, discourse prominence, and aspect: The niphal and passive qal of <em>yālad</em>')(booktitle='Where is the way to the dwelling of light? Studies in Genesis, Job and linguistics in honor of Ellen van Wolde', editors='Pierre Van Hecke & Hanneke van Loon', pages='387-408', address='Leiden', publisher='Brill', doi='10.1163/9789004536296_020', url='https://hdl.handle.net/1887/3641662', oa, type='chapter') - tr - td - +pub(2022, '<em>Lip̄nē</em> ‘in the face of’: A Locative preposition with a threatening connotation')(journal='Journal of Hebrew Scriptures', volume=22, issue=1, pages='1-24', doi='10.5508/jhs29582', oa) - tr - td 2021 - +review(2021, 'Peter Bekins', 'Inscriptions from the world of the Bible: A reader and introduction to Old Northwest Semitic')(journal='Bibliotheca Orientalis', volume=78, issue='5/6', pages='723-726', url='https://hdl.handle.net/1887/3641664', oa) - tr - td - +review(2021, 'Margaret Winters', 'Historical linguistics')(journal='LINGUIST List', volume=32, issue=1438, url='https://linguistlist.org/issues/32/32-1438/', oa) - tr - td 2020 - +pub(2020, '“When dust was poured out”: Creation in Job 38.36–38')(journal='Journal for the Study of the Old Testament', volume=44, issue=3, pages='456-471', doi='10.1177/0309089219862828', oa) - tr - td - +pub(2020, 'Prepositions and the grammaticalization of Ancient Hebrew bipartite reciprocal markers')(journal='Journal of Semitic Studies', volume=65, issue=1, pages='61-84', doi='10.1093/jss/fgz050', oa) - tr - td - +review(2020, 'Elitzur A. Bar-Asher Siegal', 'The NP-strategy for expressing reciprocity')(journal='Bibliotheca Orientalis', volume=77, issue='3/4', pages='318-322', url='https://hdl.handle.net/1887/3142525', oa) - tr - td 2019 - +pub(2019, 'Lazy interworking of compiled and interpreted code for sandboxing and distributed systems')(authors='Staps, Camil, John van Groningen & Rinus Plasmeijer', booktitle='Implementation and Application of Functional Languages (IFL \'19), September 25–27, 2019, Singapore, Singapore', editors='Jurriën Stutterheim & Wei Ngan Chin', doi='10.1145/3412932.3412941', oa, type='chapter') - tr - td - +pub(2019, 'Lazy interworking of compiled and interpreted code for sandboxing and distributed systems')(misc='Radboud University Nijmegen MSc. thesis', url='https://www.ru.nl/publish/pages/769526/thesis_1.pdf', oa, type='master-thesis') - tr - td - +pub(2019, 'Tense, aspect and modality in Jewish Palestinian Aramaic')(misc='Leiden University MA. thesis', url='https://hdl.handle.net/1887/77991', oa, type='master-thesis') - tr - td 2018 - +pub(2018, 'A case study of reciprocal middles in Biblical Hebrew: The niphal of לחם')(journal='Orientalia', volume=87, issue=2, pages='159-183', url='http://www.academia.edu/37896637') - tr - td 2017 - +pub(2017, 'Code generation for the Thumb-2 instruction set')(misc='Radboud University Nijmegen BSc. thesis', url='https://cs.ru.nl/bachelorscripties/2017/Camil_Staps___4498062___Code-generation-for-the-Thumb-2-instruction-set.pdf', oa, type='bachelor-thesis') - - section#talks - h2 Talks - - table.main_table.presentations - //tr - // td(colspan=3) - // h4 Upcoming - //tr - // td(colspan=3) - // h4 Past - tr - td 2025 - td Feb 9, #[a(href="https://ianjoo.github.io/icosem/3.html", title="Iconicity Seminar", target="_blank") IcoSem3] - td Iconic features in nominal reduplication (#[a(href="/assets/pdf/icosem2025-abstract.pdf") abstract]; #[a(href="/assets/pdf/icosem2025-slides.pdf") slides]). - tr - td - td Jan 31, #[a(href="https://anela.nl/activiteiten/grote-taaldag/", title="Grote Taaldag / Dutch Annual Linguistics Day", target="_blank") Taaldag] - td Iconic features in nominal reduplication (#[a(href="/assets/pdf/gtd2025.pdf") slides]). - tr - td 2024 - td Feb 2, #[a(href="https://anela.nl/activiteiten/grote-taaldag/", title="Grote Taaldag / Dutch Annual Linguistics Day", target="_blank") Taaldag] - td With Johan Rooryck. The raadselen/#raadsels ‘riddles’ behind Dutch double plurals (#[a(href="/assets/pdf/gtd2024.pdf") slides]). - tr - td 2023 - td Oct 13, #[a(href="https://spe-uca.sciencesconf.org/", title="Semantics and Philosophy in Europe", target="_blank") SPE12/OASIS] - td With Johan Rooryck. Interpreting [+distal] complementizers as markers of Common Ground (#[a(href="/assets/pdf/spe2023.pdf") slides]; #[a(href="/assets/pdf/spe2023-handout.pdf") handout]). - tr - td 2022 - td Dec 9, #[a(href="https://benecla.com/", title="CogLing Days", target="_blank") CogLing Days] - td With Johan Rooryck. Finite complementizers as demonstratives in the clausal domain (#[a(href="/assets/pdf/coglingdays2022.pdf") slides]; #[a(href="/assets/pdf/coglingdays2022-handout.pdf") handout]). - tr - td - td Nov 21, #[a(href="https://www.sbl-site.org/meetings/AnnualMeeting.aspx", title="Society of Biblical Literature", target="_blank") SBL Annual] - td With Martijn Beukenhorst. Semantic properties of prepositions: the distinction between causal מן and ב (#[a(href="/assets/pdf/sbl2022.pdf") slides]). - tr - td - td Nov 9, #[a(href="https://bcopley.com/cocoa", title="Converging On Causal Ontology Analyses", target="_blank") COCOA] - td With Johan Rooryck. Space in the causal chain: The perspective from French and Biblical Hebrew (#[a(href="/assets/pdf/cocoa2022.pdf") handout]). - tr - td - td Aug 25, #[a(href="https://societaslinguistica.eu/sle2022/", title="Societas Linguistica Europaea", target="_blank") SLE2022] - td With Johan Rooryck. On the demonstratives nature of finite complementizers (#[a(href="/assets/pdf/sle2022.pdf") slides]; #[a(href="/assets/pdf/sle2022-handout.pdf") handout]). - tr - td - td Jan 12, #[a(href="https://ail-workshop.github.io/AIL2-Workshop/", title="Agency and Intentions in Language", target="_blank") AIL2] - td With Johan Rooryck. French double Agents: a force-theoretic account of #[em de] and #[em par] (#[a(href="/assets/pdf/ail2022.pdf") handout]). - tr - td 2020 - td Jan 10, #[a(href="https://sites.google.com/view/nl-fp-day-2020/home", title="Dutch Functional Programming Day", target="_blank") NL-FP day] - td With John van Groningen and Rinus Plasmeijer. Lazy interworking of compiled and interpreted code. - tr - td 2019 - td Sep 27, #[a(href="https://web.archive.org/web/20201201105043/http://2019.iflconference.org/", title="Implementation and application of Functional Languages", target="_blank") IFL31] - td By Rinus Plasmeijer, with John van Groningen. Lazy interworking of compiled and interpreted code for sandboxing and distributed systems. - tr - td 2018 - td Jan 26, #[a(href="http://clin28.cls.ru.nl/", title="Computational Linguistics in the Netherlands", target="_blank") CLIN28] - td Combining grammatical features for dating texts in small-corpus languages (#[a(href="http://clin28.cls.ru.nl/#abstract-42") abstract & slides]). - tr - td - td Jan 5, #[a(href="http://clean.cs.ru.nl/NL-FP_dag_2018", title="Dutch Functional Programming Day", target="_blank") NL-FP day] - td #[a(href="https://cloogle.org", target="_blank") Cloogle]: a programming language search engine and its applications (#[a(href="https://clean.cs.ru.nl/NL-FP_dag_2018#Camil_Staps_-_Cloogle:_a_programming_language_search_engine_and_its_applications", target="_blank") abstract & slides]). - - section#service-outreach - h2 Service & outreach - table.main_table - tr - td 2025 - td Reviewer for #[a(href='https://www.mdpi.com/journal/religions', target='_blank') #[i Religions]], #[a(href='https://dgfs.de/en/content/events/annual-conferences', target='_blank') DGfS 2026]. - tr - td - td Problem and presentation for the #[a(href='https://linguistikolympiade.de/', target='_blank') Deutsche Linguistik-Olympiade]. - tr - td 2024–2025 - td Proofreader for #[a(href='https://langsci-press.org/', target='_blank') Language Science Press]. - tr - td 2024 - td Reviewer for #[a(href='https://www.glossa-journal.org/', target='_blank') #[i Glossa]]. - tr - td 2023 - td Reviewer for #[a(href='https://www.glossa-journal.org/', target='_blank') #[i Glossa]], #[a(href='https://direct.mit.edu/opmi', target='_blank') #[i Open Mind]], and #[a(href='https://www.thenewscholar.nl/', target='_blank') #[i The New Scholar]]. - - section#statistics - h2 Statistics - p. - I keep track of #[a(href='/publications.html') time from submission to publication] for my writings, - as well as #[a(href='/conferences.html') the conferences I visit and how much CO#[sub 2] I emit in doing so]. - - section#projects - h2 Software projects - table.main_table - tr - td: a(href="https://gitlab.com/camilstaps/mbqs") Məḇaqqēš - td A spreadsheet application for scholars of the Hebrew Bible and Biblical Hebrew. - tr - td: a(href="https://hebrewtools.org") HebrewTools - td Several web applications for Biblical Hebrew education (#[a(href="https://github.com/HebrewTools", target="_blank") GitHub]). - tr - td: a(href="https://clean-and-itasks.gitlab.io/nitrile") Nitrile - td A package manager for the functional programming language #[a(href="https://clean-lang.org", target="_blank") Clean]. - tr - td: a(href="https://cloogle.org") Cloogle - td A search engine for #[a(href="https://clean-lang.org", target="_blank") Clean] code (#[a(href="https://gitlab.com/cloogle/cloogle-web", target="_blank") GitLab]). - - p Find more on #[a(href="https://gitlab.com/camilstaps", target="_blank") GitLab], #[a(href="https://github.com/camilstaps", target="_blank") GitHub], and #[a(href="https://git.camilstaps.nl/", target="_blank") git.camilstaps.nl]. - - section#teaching - h2 Teaching - table.main_table - tr - td 2022–2023 - td Hebrew I–II, Radboud University Nijmegen (10 ECTS). - tr - td 2021–2022 - td Hebrew I–II, Radboud University Nijmegen (10 ECTS). - tr - td 2020–2021 - td Hebrew II, Radboud University Nijmegen (5 ECTS). - tr - td - td Hebrew I–III, Vrije Universiteit Amsterdam (15 ECTS). - tr - td 2015–2019 - td. - Student assistant for various courses in computing science, Radboud University Nijmegen. - See under #[a(href='#employment') Employment] for a list of courses. - - section#grants - h2 Grants - table.main_table - tr - td 2024–2027 - td #[a(href="https://www.nwo.nl/en/researchprogrammes/rubicon/awarded-grants/awarded-rubicon-grants-2023", target="_blank") NWO Rubicon], €144K (for two years post-doctoral research at ZAS Berlin; grant no. 019.233SG.004). - tr - td 2019–2024 - td #[a(href="https://www.nwo.nl/projecten/pgw19015-0", target="_blank") NWO PhDs in the Humanities], €249K (applied for by Holger Gzella; grant no. PGW.19.015). - - section#employment - h2 Employment - table.main_table - tr - td Sep 2024–present - td Researcher, #[a(href="https://leibniz-zas.de", target="_blank") Leibniz-Zentrum Allgemeine Sprachwissenschaft]. - tr - td Apr 2024–Aug 2024 - td Compiler engineer, #[a(href="https://tasking.com", target="_blank") TASKING]. - tr - td Sep 2019–Apr 2024 - td - | PhD candidate, Leiden University & Radboud University Nijmegen. - br - | Supervised by #[a(href="https://www.rooryck.org/", target="_blank") Johan Rooryck] and #[a(href="https://radboud.academia.edu/ellenvanwolde", target="_blank") Ellen van Wolde]. - tr - td Feb 2023–Jun 2023 - td Lecturer, Radboud University Nijmegen. - tr - td Sep 2019–Aug 2021 - td Scientific programmer / software architect, #[a(href="https://top-software.nl", target="_blank") TOP Software]. - tr - td Feb 2021–Jul 2021 - td Lecturer, Vrije Universiteit Amsterdam. - tr - td Sep 2015–Aug 2019 - td - details - summary(style='cursor:pointer;') Student assistant, #[a(href="https://www.ru.nl", target="_blank") Radboud University Nijmegen] (click for an overview of activities). - - mixin saItem(guide, name) - | #[a(href=guide, target="_blank")= name], - - mixin lastSaItem(guide, name) - a(href=guide)= name - - p 2018–19: work on the #[a(href="http://clean.cs.ru.nl/Clean", target="_blank") Clean] ecosystem - - p - | 2017–18: - +saItem("https://sis.ru.nl/osiris-student/OnderwijsCatalogusSelect.do?selectie=cursus&collegejaar=2017&cursus=NWI-IBC016", "Combinatorics") - +lastSaItem("https://sis.ru.nl/osiris-student/OnderwijsCatalogusSelect.do?selectie=cursus&collegejaar=2017&cursus=NWI-IBC015", "Functional Programming for AI") - - p - | 2016–17: - +saItem("https://studiegids.science.ru.nl/2016/science/prospectus/inf_ba/course/40559/", "Algorithms and Data Structures") - +saItem("https://studiegids.science.ru.nl/2016/science/course/40511/", "Combinatorics") - +saItem("https://studiegids.science.ru.nl/2016/en/socsci/course/41452/", "Functional Programming for AI") - +saItem("https://www.studiegids.science.ru.nl/2016/science/prospectus/inf_ba/course/40568/", "Functional Programming 1") - +saItem("https://studiegids.science.ru.nl/2016/en/science/course/40564/", "Introduction to Cryptography") - +lastSaItem("https://studiegids.science.ru.nl/2016/science/prospectus/inf_ba/course/40560/", "Operating Systems") - p - | 2015–16: - +saItem("https://cs.ru.nl/~hubbers/courses/co_1516/", "Combinatorics") - +saItem("https://studiegids.science.ru.nl/2015/science/prospectus/inf_ba/course/37072/", "Functional Programming 1") - +saItem("https://studiegids.science.ru.nl/2015/course/37073/", "Functional Programming 2") - +saItem("https://studiegids.science.ru.nl/2015/science/prospectus/inf_ba/course/37067/", "Introduction to Cryptography") - +lastSaItem("https://cs.ru.nl/~hubbers/courses/ms_1516/", "Mathematical Structures") + | I am a compiler engineer and theoretical linguist. - tr - td May 2013–Mar. 2019 - td Owner of ViviSoft. + p + | As a compiler engineer, I develop software that translates high-level source code to machine-readable instructions. + | I have extensive experience developing runtimes for the functional programming language #[a(href='clean.html') Clean], + | as well as optimization passes for embedded C compilers. - section#education - h2 Education - table.main_table - tr - td 2019–2024 - td - | PhD. in Linguistics, Leiden University (#[abbr(title="Awarded to ±10% of doctors according to the judgment of the opposition committee") #[em cum laude]]). - tr - td 2017–2019 - td - | Research MA. in #[a(href="https://www.universiteitleiden.nl/en/education/study-programmes/master/classics-and-ancient-civilizations-research/hebrew-and-aramaic-studies-research", target="_blank") Hebrew and Aramaic Studies], Leiden University - | (#[abbr(title="A weighted average of more than 8/10 points, and a thesis graded with more than 8/10 points") #[em cum laude]]). - tr - td 2017–2019 - td - | MSc. in #[a(href="https://www.ru.nl/english/education/masters/software-science/", target="_blank") Software Science], Radboud University Nijmegen - | (#[abbr(title="A weighted average of more than 9/10 points") #[em summa cum laude]]). - tr - td 2014–2017 - td - | BSc. in #[a(href="https://www.ru.nl/opleidingen/bachelor/computing-science/", target="_blank") Computing Science], Radboud University Nijmegen - | (#[abbr(title="A weighted average of more than 8/10 points") #[em cum laude]]). + p + | As a theoretical linguist, I am broadly interested in what natural language utterances mean, and what this tells us about human cognition. + | I have worked on a variety of phenomena, such as Number, reduplication, prepositional polysemy, and grammaticalization. + | See #[a(href='linguistics.html') the dedicated page] for more details. diff --git a/resources/pug/finals/linguistics.pug b/resources/pug/finals/linguistics.pug new file mode 100644 index 0000000..97010ce --- /dev/null +++ b/resources/pug/finals/linguistics.pug @@ -0,0 +1,179 @@ +extends /layout-main.pug + +block set_page + - let page = 'linguistics.html' + +block page + .container + section + p + | As a theoretical linguist, I am broadly interested in what language can tell us about human cognition. + | In particular, I study the interaction between the representations of concrete and abstract concepts in the mind. + | My earlier work also deals with Biblical Hebrew and the Hebrew Bible. + + div.alert.alert-light + | I decided to leave academia in 2026, but may still write something every now and then. + + section + h2 Publications + table.main_table.publications + tr + td In preparation + +pub('In preparation', 'Complementation and Common Ground: Discursive effects in Biblical Hebrew')(lingbuzz='007711') + tr + td + +pub('In preparation', 'Overlap and countability')(authors='Rooryck, Johan & Camil Staps', lingbuzz='009490') + tr + td 2026 + +review(2024, 'Grace J. Park', 'Focus Construction with <i>kî ̓im</i> in Biblical Hebrew')(journal='Bibliotheca Orientalis', volume=81, issue='5/6', pages='510-515', url='assets/pdf/bior2026.pdf') + tr + td 2025 + +pub(2025, 'Iconic features in nominal reduplication')(journal='Linguistic Typology', doi='10.1515/lingty-2024-0042', oa) + tr + td + +review(2025, 'Alexandra Y. Aikhenvald', 'A guide to gender and classifiers')(journal='LINGUIST List', volume=36, issue=3268, url='https://linguistlist.org/issues/36/3268/', oa) + tr + td 2024 + +pub(2024, 'The persistence of space: Formalizing the polysemy of spatial relations in functional elements')(misc='Leiden University dissertation', address='Amsterdam', publisher='LOT', doi='10.48273/LOT0673', oa, errata='/dissertation-errata.html', type='phd-thesis') + tr + td + +pub(2024, 'Large Language Models and Biblical Hebrew: Limitations, pitfalls, opportunities')(journal='HIPHIL Novum', volume=9, issue=1, pages='46-55', doi='10.7146/hn.v9i1.144177', oa) + tr + td + +pub(2024, 'Semantic properties of prepositions: The distinction between causal <i>min</i> ‘from’ and <i>bə</i> ‘in’')(authors='Staps, Camil & Martijn Beukenhorst', journal='Brill\'s Journal of Afroasiatic Languages and Linguistics', volume=16, issue=2, pages='217-250', doi='10.1163/18776930-01602002', oa) + tr + td + +pub(2024, 'Formalizing spatial-causal polysemy of Agent prepositions')(authors='Staps, Camil & Johan Rooryck', journal='Semantics & Pragmatics', volume=17, issue=4, pages='1-47', doi='10.3765/sp.17.4', oa) + tr + td 2023 + +pub(2023, 'The interpretation of [+distal] in demonstratives and complementizers')(authors='Staps, Camil & Johan Rooryck', journal='Linguistics', volume=61, issue=5, pages='1195-1231', doi='10.1515/ling-2022-0178', oa) + tr + td 2022 + +pub(2022, 'Voice, discourse prominence, and aspect: The niphal and passive qal of <em>yālad</em>')(booktitle='Where is the way to the dwelling of light? Studies in Genesis, Job and linguistics in honor of Ellen van Wolde', editors='Pierre Van Hecke & Hanneke van Loon', pages='387-408', address='Leiden', publisher='Brill', doi='10.1163/9789004536296_020', url='https://hdl.handle.net/1887/3641662', oa, type='chapter') + tr + td + +pub(2022, '<em>Lip̄nē</em> ‘in the face of’: A Locative preposition with a threatening connotation')(journal='Journal of Hebrew Scriptures', volume=22, issue=1, pages='1-24', doi='10.5508/jhs29582', oa) + tr + td 2021 + +review(2021, 'Peter Bekins', 'Inscriptions from the world of the Bible: A reader and introduction to Old Northwest Semitic')(journal='Bibliotheca Orientalis', volume=78, issue='5/6', pages='723-726', url='https://hdl.handle.net/1887/3641664', oa) + tr + td + +review(2021, 'Margaret Winters', 'Historical linguistics')(journal='LINGUIST List', volume=32, issue=1438, url='https://linguistlist.org/issues/32/32-1438/', oa) + tr + td 2020 + +pub(2020, '“When dust was poured out”: Creation in Job 38.36–38')(journal='Journal for the Study of the Old Testament', volume=44, issue=3, pages='456-471', doi='10.1177/0309089219862828', oa) + tr + td + +pub(2020, 'Prepositions and the grammaticalization of Ancient Hebrew bipartite reciprocal markers')(journal='Journal of Semitic Studies', volume=65, issue=1, pages='61-84', doi='10.1093/jss/fgz050', oa) + tr + td + +review(2020, 'Elitzur A. Bar-Asher Siegal', 'The NP-strategy for expressing reciprocity')(journal='Bibliotheca Orientalis', volume=77, issue='3/4', pages='318-322', url='https://hdl.handle.net/1887/3142525', oa) + tr + td 2019 + +pub(2019, 'Tense, aspect and modality in Jewish Palestinian Aramaic')(misc='Leiden University MA. thesis', url='https://hdl.handle.net/1887/77991', oa, type='master-thesis') + tr + td 2018 + +pub(2018, 'A case study of reciprocal middles in Biblical Hebrew: The niphal of לחם')(journal='Orientalia', volume=87, issue=2, pages='159-183', url='http://www.academia.edu/37896637') + + section + h2 Statistics + p. + #[a(href='/publications.html') Paper processing time by venue]. + + section + h2 Software projects + table.main_table + tr + td: a(href="https://hebrewtools.org") HebrewTools + td Several web applications for Biblical Hebrew education (#[a(href="https://github.com/HebrewTools", target="_blank") GitHub]). + + section + h2 Talks + + table.main_table.presentations + //tr + // td(colspan=3) + // h4 Upcoming + //tr + // td(colspan=3) + // h4 Past + tr + td 2025 + td Feb 9, #[a(href="https://ianjoo.github.io/icosem/3.html", title="Iconicity Seminar", target="_blank") IcoSem3] + td Iconic features in nominal reduplication (#[a(href="/assets/pdf/icosem2025-abstract.pdf") abstract]; #[a(href="/assets/pdf/icosem2025-slides.pdf") slides]). + tr + td + td Jan 31, #[a(href="https://anela.nl/activiteiten/grote-taaldag/", title="Grote Taaldag / Dutch Annual Linguistics Day", target="_blank") Taaldag] + td Iconic features in nominal reduplication (#[a(href="/assets/pdf/gtd2025.pdf") slides]). + tr + td 2024 + td Feb 2, #[a(href="https://anela.nl/activiteiten/grote-taaldag/", title="Grote Taaldag / Dutch Annual Linguistics Day", target="_blank") Taaldag] + td With Johan Rooryck. The raadselen/#raadsels ‘riddles’ behind Dutch double plurals (#[a(href="/assets/pdf/gtd2024.pdf") slides]). + tr + td 2023 + td Oct 13, #[a(href="https://spe-uca.sciencesconf.org/", title="Semantics and Philosophy in Europe", target="_blank") SPE12/OASIS] + td With Johan Rooryck. Interpreting [+distal] complementizers as markers of Common Ground (#[a(href="/assets/pdf/spe2023.pdf") slides]; #[a(href="/assets/pdf/spe2023-handout.pdf") handout]). + tr + td 2022 + td Dec 9, #[a(href="https://benecla.com/", title="CogLing Days", target="_blank") CogLing Days] + td With Johan Rooryck. Finite complementizers as demonstratives in the clausal domain (#[a(href="/assets/pdf/coglingdays2022.pdf") slides]; #[a(href="/assets/pdf/coglingdays2022-handout.pdf") handout]). + tr + td + td Nov 21, #[a(href="https://www.sbl-site.org/meetings/AnnualMeeting.aspx", title="Society of Biblical Literature", target="_blank") SBL Annual] + td With Martijn Beukenhorst. Semantic properties of prepositions: the distinction between causal מן and ב (#[a(href="/assets/pdf/sbl2022.pdf") slides]). + tr + td + td Nov 9, #[a(href="https://bcopley.com/cocoa", title="Converging On Causal Ontology Analyses", target="_blank") COCOA] + td With Johan Rooryck. Space in the causal chain: The perspective from French and Biblical Hebrew (#[a(href="/assets/pdf/cocoa2022.pdf") handout]). + tr + td + td Aug 25, #[a(href="https://societaslinguistica.eu/sle2022/", title="Societas Linguistica Europaea", target="_blank") SLE2022] + td With Johan Rooryck. On the demonstratives nature of finite complementizers (#[a(href="/assets/pdf/sle2022.pdf") slides]; #[a(href="/assets/pdf/sle2022-handout.pdf") handout]). + tr + td + td Jan 12, #[a(href="https://ail-workshop.github.io/AIL2-Workshop/", title="Agency and Intentions in Language", target="_blank") AIL2] + td With Johan Rooryck. French double Agents: a force-theoretic account of #[em de] and #[em par] (#[a(href="/assets/pdf/ail2022.pdf") handout]). + tr + td 2018 + td Jan 26, #[a(href="http://clin28.cls.ru.nl/", title="Computational Linguistics in the Netherlands", target="_blank") CLIN28] + td Combining grammatical features for dating texts in small-corpus languages (#[a(href="http://clin28.cls.ru.nl/#abstract-42") abstract & slides]). + + section + h2 Service & outreach + table.main_table + tr + td 2025 + td Reviewer for #[a(href='https://www.mdpi.com/journal/religions', target='_blank') #[i Religions]], #[a(href='https://dgfs.de/en/content/events/annual-conferences', target='_blank') DGfS 2026]. + tr + td + td Problem and presentation for the #[a(href='https://linguistikolympiade.de/', target='_blank') Deutsche Linguistik-Olympiade]. + tr + td 2024–2025 + td Proofreader for #[a(href='https://langsci-press.org/', target='_blank') Language Science Press]. + tr + td 2024 + td Reviewer for #[a(href='https://www.glossa-journal.org/', target='_blank') #[i Glossa]]. + tr + td 2023 + td Reviewer for #[a(href='https://www.glossa-journal.org/', target='_blank') #[i Glossa]], #[a(href='https://direct.mit.edu/opmi', target='_blank') #[i Open Mind]], and #[a(href='https://www.thenewscholar.nl/', target='_blank') #[i The New Scholar]]. + + section + h2 Teaching + table.main_table + tr + td 2022–2023 + td Hebrew I–II, Radboud University Nijmegen (10 ECTS). + tr + td 2021–2022 + td Hebrew I–II, Radboud University Nijmegen (10 ECTS). + tr + td 2020–2021 + td Hebrew II, Radboud University Nijmegen (5 ECTS). + tr + td + td Hebrew I–III, Vrije Universiteit Amsterdam (15 ECTS). + tr + td 2015–2019 + td. + Student assistant for various courses in computing science, Radboud University Nijmegen. + See under #[a(href='#employment') Employment] for a list of courses. diff --git a/resources/pug/finals/publications.pug b/resources/pug/finals/publications.pug index 86aad1d..8b7e380 100644 --- a/resources/pug/finals/publications.pug +++ b/resources/pug/finals/publications.pug @@ -3,11 +3,7 @@ extends /layout.pug block titleContainer block content - h1 - a(href='/') #[i.fas.fa-arrow-circle-left] - | Publication statistics - - h2 Time to publication + h1 Time to publication p. Inspired by #[a(href='https://mastodon.social/@fussballinguist/111288814708880725', target='_blank') Simon Meier-Vieracker], @@ -160,86 +156,3 @@ block content }, series, }); - - h2 Time to review - - p. - I also keep track of reviews I have performed for journals. - The chart below shows how many reviews I have performed/declined for different journals, and how long they took. - Negative times indicate declined review requests. - - #chart-reviews - - script. - function makeSeries(journal, color, data) { - return { - name: journal, - color, - marker: { - radius: 10, - symbol: 'circle', - }, - data: data.map(entry => ({x: Date.parse(entry[0]), y: entry[1], name: entry[2]})), - }; - } - - Highcharts.chart('chart-reviews', { - credits: {enabled: false}, - chart: { - type: 'scatter', - spacingLeft: 0, - spacingRight: 0, - }, - title: null, - xAxis: [{ - type: 'datetime', - min: Date.parse('2023-01-01'), - max: Date.now(), - labels: {align: 'left', distance: 0, padding: 0}, - crossing: 0, - tickLength: 0, - gridLineWidth: 1, - }], - yAxis: { - title: 'days', - tickInterval: 10 - }, - tooltip: { - pointFormatter: function(){ - let label = 'Review'; - if (typeof this.name != 'undefined') - label = `${this.name} reviews`; - let days = Math.abs(this.y) == 1 ? 'day' : 'days'; - return `${label} ${this.y < 0 ? 'declined' : 'performed'} in ${Math.abs(this.y)} ${days}`; - }, - }, - series: [ - makeSeries('DGfS (conference)', '#506ba0', [ - ['2025-09-04', 4], - ['2025-09-04', 7], - ]), - makeSeries('Glossa', '#905486', [ - ['2023-03-23', 8], - ['2024-02-04', 8], - ['2024-02-17', 5], - ['2024-07-10', 2], - ]), - makeSeries('Lingua', '#fb6032', [ - ['2023-02-22', -1], - ]), - makeSeries('Open Mind', '#00aeef', [ - ['2023-07-28', 34], - ['2023-12-11', 9], - ]), - makeSeries('Religions', '#00699e', [ - ['2025-08-29', 3], - ['2025-10-10', 4], - ]), - makeSeries('SLE (conference)', '#8b8baf', [ - ['2026-01-08', 1, 8], - ]), - makeSeries('The New Scholar', '#dbbe9e', [ - ['2023-05-05', 1], - ]), - ], - }); diff --git a/resources/pug/include/layout-main.pug b/resources/pug/include/layout-main.pug new file mode 100644 index 0000000..46f6d65 --- /dev/null +++ b/resources/pug/include/layout-main.pug @@ -0,0 +1,57 @@ +extends layout.pug + +block extra_head + meta(name='description', content='Compiler engineer and theoretical linguist. Software projects and academic publications.') + +block titleContainer + +block content + header#introduction + div + img#profile(alt="Camil Staps", src="/assets/img/profile.jpg") + div#basicinfo + .container + h1 Camil Staps + p.text-muted + span [kaˈmil stɑps]  + span.opt-break he/his + br + span.tt.obfuscate.wrap-anywhere + | info@c + span dummy + | amilst + span dummy + | aps.nl + p(style="margin-bottom:1em;") + a(href="https://leidenuni.academia.edu/CamilStaps") + i.ai.ai-lg.ai-academia(title="Academia.edu") + | + a(href="https://orcid.org/0000-0003-1164-6838") + i.ai.ai-lg.ai-orcid(title="ORCiD") + |   + a(href="https://gitlab.com/camilstaps") + i.fab.fa-lg.fa-gitlab(title="GitLab") + |   + a(href="https://github.com/camilstaps") + i.fab.fa-lg.fa-github(title="GitHub") + |   + a(href="https://nl.linkedin.com/in/camilstaps") + i.fab.fa-lg.fa-linkedin(title="LinkedIn") + + ul.nav.nav-tabs + block set_page + - + function item_is_active (item) { + return item.link == page; + } + items = [ + {name: 'About', link: '/'}, + {name: 'Linguistics', link: 'linguistics.html'}, + {name: 'Clean', link: 'clean.html'}, + ]; + + each item in items + li.nav-item(role='presentation') + a.nav-link(href=item.link, class=item_is_active(item) ? 'active' : '')= item.name + + block page diff --git a/resources/pug/include/mixins.pug b/resources/pug/include/mixins.pug index 6d0c6db..5c595f1 100644 --- a/resources/pug/include/mixins.pug +++ b/resources/pug/include/mixins.pug @@ -1,3 +1,81 @@ mixin githubIconLink(repo) a(href='https://github.com/' + repo, target='_blank', title='Source on GitHub') i.fab.fa-2x.fa-github(title='GitHub') + +mixin pub(year, title) + if attributes.lingbuzz + - attributes.url = 'https://lingbuzz.net/lingbuzz/' + attributes.lingbuzz + - attributes.oa = true + td.icon + if attributes.type + if attributes.type == 'phd-thesis' + i.fa.fa-graduation-cap(title="PhD thesis") + else if attributes.type == 'master-thesis' + i.fa.fa-graduation-cap(title="Master thesis") + else if attributes.type == 'bachelor-thesis' + i.fa.fa-graduation-cap(title="Bachelor thesis") + else if attributes.type == 'review' + i.far.fa-comment(title="Book review") + else if attributes.type == 'chapter' + i.fa.fa-book-open(title="Book chapter") + else + - throw 'pub: unknown type' + else + i.far.fa-file-lines(title="Journal article") + td.icon + if attributes.oa + if attributes.url + - var oaurl = attributes.url + else if attributes.doi + - var oaurl = 'https://doi.org/'+attributes.doi + else + - throw 'pub: oa set but no doi or url' + a.oa(href!=oaurl, target='_blank') + i.ai.ai-lg.ai-open-access(title="Open Access") + + td + p + if !attributes.authors + - attributes.authors = 'Staps, Camil' + | !{attributes.authors}. #{year}. + | + if attributes.url + a(href!=attributes.url, target='_blank')!= title + else if attributes.publisher && !attributes.pages + i!= title + else + | !{title} + | + if attributes.journal + |. !{attributes.prejournal}#[em!=attributes.journal] + if attributes.volume + | #{attributes.volume} + if attributes.issue + | (#{attributes.issue}) + else if attributes.booktitle + | . In !{attributes.editors} (eds.), #[em!=attributes.booktitle] + else if attributes.misc + | . #{attributes.misc} + if attributes.pages + - attributes.pages = attributes.pages.replace('-', '–') + if attributes.journal + | :!{attributes.pages} + else + | , !{attributes.pages} + | . + if attributes.address + | #{attributes.address}: + if attributes.publisher + | #{attributes.publisher}. + if attributes.doi + | #[span.sc doi]: + - var doiurl = 'https://doi.org/'+attributes.doi + a(href!=doiurl, target='_blank')!= attributes.doi + | . + if attributes.errata + | (There are #[a(href!=attributes.errata) errata].) + +mixin review(year, author, title) + - attributes.type = 'review' + +pub(year, 'Review of: ' + author + ', ' + title)&attributes(attributes) + diff --git a/resources/sass/style.scss b/resources/sass/style.scss index 3cb4a93..cfcc60a 100644 --- a/resources/sass/style.scss +++ b/resources/sass/style.scss @@ -28,69 +28,6 @@ body { max-width: 970px; } -#sticky-nav { - padding-top: 1em; -} - -#sticky-nav li > a { - display: inline-block; - text-wrap: nowrap; -} - -@media (max-width: 1269px) { - /* Navigation in a sticky header */ - #sticky-nav { - background: rgba(255, 255, 255, 0.9); - border-bottom: 1px solid #eee; - padding-bottom: 1em; - position: sticky; - top: 0; - } - - /* Offset # links because of sticky header: - * https://stackoverflow.com/a/64998338 */ - :target:before { - content: ''; - display: block; - height: 150px; - margin: -150px 0 0; - } -} - -@media (min-width: 1270px) { - /* Navigation in a sticky sidebar. The sidebar is to the left of the - * content, below the profile image, but sticks to the top of the page when - * scrolling down. */ - #sticky-nav { - display: table-cell; - /* 970px is width of .container; 180px is width of #sticky-nav. This - * places the nav buttons to the left of the content. */ - left: calc(50% - 970px/2 - 180px); - /* 216px is the height of the profile image. */ - padding-top: calc(216px + 2em); - text-align: right; - width: 180px; - } - - #sticky-nav ul.nav { - border-right: 1px solid #eee; - flex-direction: column; /* .flex-column, but only on large screens */ - padding: 1em 1em 1em 0; - position: sticky; - top: 1em; - } - - ul.nav li { - display: block; - float: none; - } - - #content { - display: table-cell; - vertical-align: top; - } -} - .greyed-out { color: #888; } @@ -118,28 +55,54 @@ abbr { border-width: 0 !important; } -header > div { - @media (min-width: 500px) { - display: table-row; +header { + margin: 1em 0; - img#profile { - margin: 1em 1em 1em 0; - max-width: 30vw; - } + > div { + @media (min-width: 1400px) { + height: 240px; + position: relative; - div#basicinfo { - margin-top: 1em; + img#profile { + height: 240px; + max-width: 30vw; + position: absolute; + right: calc(100% + 1em); + } + + div#basicinfo { + bottom: 0; + position: absolute; + width: 100%; + } } - } - @media (max-width: 499px) { - img#profile { - margin: 1em 0; - max-width: unset !important; + @media (max-width: 1399px) and (min-width: 500px) { + align-items: self-end; + display: flex; + height: 240px; + + img#profile { + max-height: 240px; + margin-right: 1em; + max-width: 30vw; + } + + div#basicinfo { + flex-grow: 1; + } } - div#basicinfo { - clear: both; + @media (max-width: 499px) { + img#profile { + margin-bottom: 1em; + max-height: 240px; + max-width: 100%; + } + + div#basicinfo { + clear: both; + } } } } |
