From 401803e349801a8b61baa76637542469d3ed055a Mon Sep 17 00:00:00 2001 From: spencer Date: Sat, 25 Apr 2026 20:00:49 -0400 Subject: [PATCH] add automatic language context, fix french translations on resume --- src/main.rs | 10 ++++-- templates/common.html | 2 +- templates/en/resume/index.html | 21 +++++++----- templates/fr/index.html | 5 ++- templates/fr/resume/index.html | 58 ++++++++++++++++++---------------- 5 files changed, 56 insertions(+), 40 deletions(-) diff --git a/src/main.rs b/src/main.rs index d62e9b6..cc97eb6 100644 --- a/src/main.rs +++ b/src/main.rs @@ -14,6 +14,7 @@ async fn main() { } let templates = warp::get() + .and(warp::path::param::()) .and(warp::path::tail()) .and_then(render_template); @@ -34,13 +35,16 @@ async fn main() { .await; } -async fn render_template(tail: Tail) -> Result { - let mut path = tail.as_str().to_string(); +async fn render_template(lang: String, tail: Tail) -> Result { + let mut path = format!("{lang}/{}", tail.as_str()); if path.is_empty() || path.ends_with('/') { path.push_str("index.html"); } - match TEMPLATES.render(&path, &Context::new()) { + let mut context = Context::new(); + context.insert("lang", &lang); + + match TEMPLATES.render(&path, &context) { Ok(html) => Ok(warp::reply::html(html)), Err(e) => { eprintln!("Tera error: {}", e); diff --git a/templates/common.html b/templates/common.html index 1afc8b1..8469f85 100644 --- a/templates/common.html +++ b/templates/common.html @@ -1,4 +1,4 @@ -{% macro meta(title, lang) %} +{% macro meta(title) %} diff --git a/templates/en/resume/index.html b/templates/en/resume/index.html index e6c64c1..8d2d2c7 100644 --- a/templates/en/resume/index.html +++ b/templates/en/resume/index.html @@ -1,7 +1,7 @@ {% import "common.html" as common %} -{{ common::meta(title="Spencer Whitehead - Resume", lang="en") }} +{{ common::meta(title="Spencer Whitehead - Resume") }} - {{ common::nav() }} +{{ common::nav() }}

Spencer Nicholas Whitehead

@@ -45,7 +45,7 @@

Software Engineering Intern, Citadel Enterprise, January 2020 – April 2020

    -
  • Developed C++ data pipelines to parse and archive data streams from Thompson Reuters.
  • +
  • Developed C++ data pipelines to parse and archive data streams from Thomson Reuters.
  • Handled over 300GB per day of market data at the height of the market impact of COVID-19.
@@ -83,17 +83,17 @@

Leadership and Professional Service

-

Steward, Duke Graduate Students Union, Fall 2025 - present

+

Steward, Duke Graduate Students Union, Fall 2025 - present

  • Mediated workplace disputes and represented graduate workers in grievance proceedings.
-

President, AMS Student Chapter, 2024-25 academic year

+

President, Duke AMS Student Chapter, 2024-25 academic year

  • Organized and hosted the Triangle Area Graduate Mathematics Seminar with NC State University and UNC Chapel Hill at Duke, February 2025.
-

Graduate student representative, Duke Mathematics Departmental Teaching Committee, Fall 2023 - present

+

Graduate student representative, Duke Mathematics Departmental Teaching Committee, Fall 2023 - present

  • Performed annual interviews and advocated for graduate interests in departmental teaching decisions.
@@ -113,10 +113,15 @@

Supervision

Duke Math+ program (joint with Biji Wong, Gregory Herschlag), Spring 2026

+
    +
  • Supervised four undergraduate students in a project on the application of diffusion maps and machine learning to graph partition problems, with a focus on the study of gerrymandering.

    - +
  • +

MITACS internship program (joint with Benoit Charbonneau), Spring 2022

-

Supervised two undergraduate students in a computational project on low-dimensional optimal packing problems

+
    +
  • Supervised two undergraduate students in a computational project on low-dimensional optimal packing problems.

  • +
diff --git a/templates/fr/index.html b/templates/fr/index.html index a1e1384..22284fb 100644 --- a/templates/fr/index.html +++ b/templates/fr/index.html @@ -5,6 +5,9 @@

To access the English version, click here.

-

Ceci est le site web personnel de Spencer Whitehead.

+

N.B. : ma langue maternelle est l'anglais ; je m'en excuse d'avance pour les éventuelles fautes sur cette page. En cas d'erreur, veuillez m'envoyer un e-mail à spencer@firemail.cc.

+ +

Ceci est le site web personnel de Spencer Whitehead. Je suis doctorant en quatrième année à l'université Duke. Je m'intéresse à la recherche en géométrie différentielle, particulièrement en dimension 4 et 8. J'étudie aussi les applications des systèmes de calcul formel aux problèmes de géométrie. Je prévois de soutenir ma thèse en avril 2027.

+

CV

diff --git a/templates/fr/resume/index.html b/templates/fr/resume/index.html index e649ff9..2115c9a 100644 --- a/templates/fr/resume/index.html +++ b/templates/fr/resume/index.html @@ -16,18 +16,18 @@

Education

-

Doctorant, départment des mathématiques, Université Duke | septembre 2022 – avril 2027

+

Doctorant, département de mathématiques, Université Duke | septembre 2022 – avril 2027

    -
  • Chercheur de la geometrie de quatre et huit dimensions sous la direction du Pr Mark Stern.
  • -
  • Membre du programme de certificat en enseignant universitaire, qui sera décerné à la reussit au doctorat.
  • +
  • Chercheur en géométrie de quatre et huit dimensions sous la direction du Pr Mark Stern.
  • +
  • Membre du programme de certificat en enseigement universitaire, qui sera décerné à la réussite du doctorat.
-

M.Math. en mathématiques pures (thèse du recherche), Université de Waterloo | octobre 2021 – août 2022

+

M.Math. en mathématiques pures (thèse de recherche), Université de Waterloo | octobre 2021 – août 2022

    -
  • Sous la direction du Pr Benoit Charbonneau.
  • -
  • Titre du thèse : Integrality theorems for symmetric instantons.
  • +
  • Sous la direction du Pr Benoît Charbonneau.
  • +
  • Titre de la thèse : Integrality theorems for symmetric instantons.
@@ -46,24 +46,24 @@

Stagiaire en ingénierie logicielle, Citadel Enterprise, janvier 2020 – avril 2020

    -
  • Developpment de pipelines en C++ pour analyser et archiver donnèes de Thompson Reuters.
  • -
  • Traitment d'en haute de 300GB des donnèes de marché par jour pendant la crise de COVID-19.
  • +
  • Développement de pipelines en C++ pour analyser et archiver des données de Thomson Reuters.
  • +
  • Traitement en masse de plus de 300 GB de données de marché par jour pendant la crise de COVID-19.

Stagiaire en ingénierie logicielle, ContextLogic LLC, janvier 2018 – avril 2018

    -
  • Recherche sur les estimates de délais de livraison qui ont généré 2,5% de profits supplémentaires.
  • -
  • Création de reports et tableau de bord Grafana en combinaison des donnèes de MongoDB et TreasureData.
  • +
  • Recherche sur les estimations de délais de livraison ayant généré 2,5 % de profits supplémentaires.
  • +
  • Création de rapports et tableau de bord Grafana à partir de données de MongoDB et TreasureData.

Stagiaire en ingénierie logicielle, Citadel LLC, septembre 2017 – décembre 2017

    -
  • Création et soutien de logiciel de accounting comptabilité pour plus de 100 clients interne.
  • -
  • Conception et implementation des nouveaux formats de réponse, ce qui a reduisé la taille de la réponse 10x et a amelioré la vitesse 5x.
  • +
  • Création et soutien de logiciels de comptabilité pour plus de 100 clients internes.
  • +
  • Conception et implémentation de nouveaux formats de réponse, ce qui a réduit la taille de la réponse par 10 fois et a amelioré la vitesse par 5 fois.
@@ -84,19 +84,19 @@

Leadership et services professionnels

-

Délégué syndical, Duke Graduate Students Union, septembre 2025 - à ce jour

+

Délégué syndical, Duke Graduate Students Union, septembre 2025 - à ce jour

    -
  • Mediation de conflits au travail et répresentation des doctorants en procédure de gref.
  • +
  • Médiation de conflits au travail et représentation des doctorants en procédure de gref.
-

Président, Section étudiant de l'American Mathematical Society, année universitaire 2024-25

+

Président, Section étudiante de l'American Mathematical Society, année universitaire 2024-25

    -
  • Organisation du Triangle Area Graduate Mathematics Seminar avec l'Université NC State et l'UNC Chapel Hill à Duke, février 2025.
  • +
  • Organisation du Triangle Area Graduate Mathematics Seminar avec l'université d'État de Caroline du Nord et l'université de Caroline du Nord à Chapel Hill, février 2025 à l'université Duke.
-

Représentant des doctorants, Duke Mathematics Departmental Teaching Committee, novembre 2023 - à ce jour

+

Représentant des doctorants, Duke Mathematics Departmental Teaching Committee, novembre 2023 - à ce jour

    -
  • Performed annual interviews and advocated for graduate interests in departmental teaching decisions.
  • +
  • Réalisation d'entretiens annuels et défense des intérêtes des doctorants dans les décisions d'enseignement départementales.
@@ -114,16 +114,20 @@

Direction

Duke Math+ program (joint with Biji Wong, Gregory Herschlag), mai - août 2026

-

Direction de quatres étudiants dans un projet sur l'application de diffusion maps et apprentissage automatique pour rechercher le gerrymandering.

+
    +
  • Direction de quatre étudiants dans un projet sur l'application de diffusion maps et apprentissage automatique pour étudier le gerrymandering.

  • +
-

MITACS internship program (joint with Benoit Charbonneau), mai - août 2022

-

Direction de deux étudiants dans un projet sur le probleme de packing en bas dimension.

+

MITACS internship program (joint with Benoît Charbonneau), mai - août 2022

+
    +
  • Direction de deux étudiants dans un projet sur le problème de packing en basse dimension.

  • +

Selected Research Presentations

    -
  • [Invité] An asymptotic Nahm transform for Spin(7) instantons. Mathematical Congress of the Americas, Miami, julliet 2025.
  • +
  • [Invité] An asymptotic Nahm transform for Spin(7) instantons. Mathematical Congress of the Americas, Miami, juillet 2025.
  • Symmetric instantons. (Poster). Geometric Models of Matter, Leeds, août 2024.
  • Generalized Pythagorean lutes. Bridges 2022, Helsinki, août 2022.
  • Integrality theorems for symmetric instantons. Union College Mathematics Conference, Schenectady, juin 2022.
  • @@ -133,14 +137,14 @@

    Selected Teaching Experience

    Chargé de cours MATH 106L (Lab calculus 2), août - décembre 2023, Université Duke

      -
    • Enseignement et coordination d'un group de 18 étudiants.
    • -
    • Gestion d'une équipe de 4 auxiliaires d'enseignement
    • +
    • Enseignement et coordination d'un groupe de 18 étudiants.
    • +
    • Gestion d'une équipe de 4 auxiliaires d'enseignement.
    -

    Auxiliaire d'enseignment CS 246(E) ([Enriched] Object-Oriented Software Development), septembre 2018 - décembre 2019, Université de Waterloo.

    +

    Auxiliaire d'enseignement CS 246(E) ([Enriched] Object-Oriented Software Development), septembre 2018 - décembre 2019, Université de Waterloo.

      -
    • Delivered weekly tutorial lectures for classes of 50+ students.
    • -
    • Creation des devoirs et gestation d'outils logiciels pour evaluer code d'étudiants
    • +
    • Cours de tutorat hebdomadaires pour des groupes de plus de 50 étudiants.
    • +
    • Création des devoirs et gestion d'outils logiciels pour évaluer le code des étudiants.