diff --git a/content/en/about.md b/content/en/about.md index 2cc9f33..33ba493 100644 --- a/content/en/about.md +++ b/content/en/about.md @@ -14,6 +14,14 @@ Hello! `nemunaire` here, aka Pierre-Olivier; I am an engineer (and passionate ab {{}} Currently **entrepreneur** in various businesses. Previously worked as **devops** for [Novaquark](http://novaquark.com), prior to worked as **embedded software engineer** at [Qarnot computing](https://qarnot.com/), then **Chief Information Security Officer** and **senior software architect** at [Qarnot computing](https://qarnot.com/). +{{}} +For 10 years, I taught students of the [*System, Network and Security*](https://srs.epita.fr/) major at [Epita](http://www.epita.fr/): preparing lectures, lab sessions and projects, teaching in class, grading individually, on the topics of [*advanced Linux system administration*](https://adlin.nemunai.re) and [*light virtualization*](https://virli.nemunai.re/) (containers, Docker, LXC, Kubernetes, ...) as well as the related *Linux Internals* (namespaces, cgroups, capabilities, ...). +{{
}} +I was also the project lead supervising the yearly design of a [forensic challenge](https://fic.srs.epita.fr/) for the [International Cybersecurity Forum](https://www.forum-fic.com/)/[European Cyber Cup](https://european-cybercup.com): project planning, coordinating the assistants in charge of follow-up, organizing defenses and mock challenges, developing [the secure platform](https://git.nemunai.re/fic/server), coordinating the students in charge of the infrastructure and the competition organizers, up to setting up and running the challenge on site. + +{{}} +Following my light virtualization courses, in April 2022 I published the book [*Conteneurs et technologies du DevOps*](https://alpo.tf/livres/2493960009/). It gathers more than 7 years of teaching container usage: each chapter uncovers new aspects of the technology and builds up skills through challenges of increasing difficulty, from creating and managing containers in a company to how they work at the heart of the Linux kernel. + {{}} After 5 years in [Epita](http://epita.fr/), in 2014, I am a graduate engineer! I was following the [***System, Network and Security***](https://srs.epita.fr/) classes. {{
}} diff --git a/content/en/talks.md b/content/en/talks.md index a0fe37e..c33dfb6 100644 --- a/content/en/talks.md +++ b/content/en/talks.md @@ -7,25 +7,17 @@ menu: weight: 40 --- -Here are slides I used as support to my presentations: +Here are the slides I used as support for my presentations: -* [[FR] DNS, the hidden backbone of the Internet](/talks/starinux_dns_2025.pdf) ([Atelier Starinux](https://www.starinux.org/?p=1329)) -* [[FR] Embedding a web front-end in your Go binary: happyDomain example](/talks/happyDomain_golang_meetup_2024.pdf) [(code)](https://git.nemunai.re/nemunaire/meetup-golang-2024-demo) ([Meetup Golang Paris](https://www.meetup.com/fr-FR/golang-paris/events/301188194/)) -* [[EN] Let's make people love domain names again](https://blog.happydomain.org/files/happyDomain%20FOSDEM%202024.pdf) ([FOSDEM 2024](https://fosdem.org/2024/schedule/event/fosdem-2024-2316-let-s-make-people-love-domain-names-again/)) -* [[FR] How can we make the words DNS and simplicity compatible?](https://blog.happydomain.org/files/happyDomain%20Open%20Source%20Experience%202023.pdf) ([Open Source Experience 2023](https://www.opensource-experience.com/event/#conf-13898)) -* [[FR] Rethinking web platform security](/talks/lresw23-moenia.pdf) ([LRE Summer Week](https://www.lre.epita.fr/news_content/summer_week_23/)) -* [[FR] Strong authentication](/talks/2fa.pdf) (*cryptoparty* GConfs) -* [[FR] Self-Hosting](/talks/autohebergement.pdf) (*cryptoparty* GConfs) -* [[FR] DNS overview](/talks/QTechNote%20DNS.pdf) (QTechNote) -* [[FR] Docker hands-on](/talks/QTechNote%20Docker.pdf) (QTechNote) -* [[FR] gRPC/Protobuf overview](/talks/QTechNote%20%231.pdf) (QTechNote) - - -## Teaching - -In [Epita](http://www.epita.fr/), I'm responsible for teaching containers usage and plumbing in a 15 hours course called [*light virtualization*](https://virli.nemunai.re/) and for [*ADvanced LINux administration*](https://adlin.nemunai.re). - -Moreover, I coach students to create [an annual CTF](https://fic.srs.epita.fr/), at [FIC]. -And also lead the related CTF [server developments](https://git.nemunai.re/fic/server). - -[FIC]: https://www.forum-fic.com/ +{{< talks >}} +{{< talk title="DNS, the hidden backbone of the Internet" lang="fr" year="2025" url="/talks/starinux_dns_2025.pdf" img="/talks/covers/starinux_dns_2025.jpg" event="Atelier Starinux" eventurl="https://www.starinux.org/?p=1329" >}} +{{< talk title="Embedding a web front-end in your Go binary: happyDomain example" lang="fr" year="2024" url="/talks/happyDomain_golang_meetup_2024.pdf" img="/talks/covers/happyDomain_golang_meetup_2024.jpg" event="Meetup Golang Paris" eventurl="https://www.meetup.com/fr-FR/golang-paris/events/301188194/" code="https://git.nemunai.re/nemunaire/meetup-golang-2024-demo" >}} +{{< talk title="Let's make people love domain names again" lang="en" year="2024" url="https://blog.happydomain.org/files/happyDomain%20FOSDEM%202024.pdf" img="/talks/covers/happydomain_fosdem_2024.jpg" event="FOSDEM 2024" eventurl="https://fosdem.org/2024/schedule/event/fosdem-2024-2316-let-s-make-people-love-domain-names-again/" >}} +{{< talk title="How can we make the words DNS and simplicity compatible?" lang="fr" year="2023" url="https://blog.happydomain.org/files/happyDomain%20Open%20Source%20Experience%202023.pdf" img="/talks/covers/happydomain_osx_2023.jpg" event="Open Source Experience 2023" eventurl="https://www.opensource-experience.com/event/#conf-13898" >}} +{{< talk title="Rethinking web platform security" lang="fr" year="2023" url="/talks/lresw23-moenia.pdf" img="/talks/covers/lresw23-moenia.jpg" event="LRE Summer Week" eventurl="https://www.lre.epita.fr/news_content/summer_week_23/" >}} +{{< talk title="Strong authentication" lang="fr" url="/talks/2fa.pdf" img="/talks/covers/2fa.jpg" event="cryptoparty GConfs" >}} +{{< talk title="Self-Hosting" lang="fr" url="/talks/autohebergement.pdf" img="/talks/covers/autohebergement.jpg" event="cryptoparty GConfs" transcript="post/self-hosting/index.md" >}} +{{< talk title="DNS overview" lang="fr" url="/talks/QTechNote%20DNS.pdf" img="/talks/covers/qtechnote_dns.jpg" event="QTechNote" >}} +{{< talk title="Docker hands-on" lang="fr" url="/talks/QTechNote%20Docker.pdf" img="/talks/covers/qtechnote_docker.jpg" event="QTechNote" >}} +{{< talk title="gRPC/Protobuf overview" lang="fr" url="/talks/QTechNote%20%231.pdf" img="/talks/covers/qtechnote_grpc.jpg" event="QTechNote" >}} +{{< /talks >}} diff --git a/content/fr/a-propos.md b/content/fr/a-propos.md index 7b3c344..bbc1660 100644 --- a/content/fr/a-propos.md +++ b/content/fr/a-propos.md @@ -16,6 +16,14 @@ Bonjour ! ici `nemunaire`, alias Pierre-Olivier ; je suis ingénieur (et pas {{}} Aujourd'hui **entrepreneur**. J'ai travaillé avant comme **devops** pour [Novaquark](http://novaquark.com), avant d'être **ingénieur système/logiciel embarqué** chez [Qarnot computing](https://qarnot.com/), puis **responsable de la sécurité des systèmes d'information** et **architecte logiciel sénior** chez [Qarnot computing](https://qarnot.com/). +{{}} +Durant 10 ans, j'ai enseigné auprès des étudiants de la majeure [*Systèmes, Réseaux et Sécurité*](https://srs.epita.fr/) de l'[Epita](http://www.epita.fr/) : préparation des cours, TP et projets, face-à-face pédagogique, corrections et notation individuelle, sur les thèmes de l'[*administration système Linux avancée*](https://adlin.nemunai.re) et de la [*virtualisation légère*](https://virli.nemunai.re/) (conteneurs, Docker, LXC, Kubernetes, ...) ainsi que des *Linux Internals* associés (namespaces, cgroups, capabilities, ...). +{{
}} +J'ai également été chef de projet encadrant la conception annuelle d'un [challenge de forensic](https://fic.srs.epita.fr/) pour le [Forum International de la Cybersécurité](https://www.forum-fic.com/)/[European Cyber Cup](https://european-cybercup.com) : planification du projet, coordination des assistants en charge du suivi, organisation des soutenances et des challenges blancs, développement de [la plateforme sécurisée](https://git.nemunai.re/fic/server), coordination des étudiants en charge de l'infrastructure et des organisateurs de la compétition, jusqu'à l'installation et l'animation du challenge sur place. + +{{}} +Dans le prolongement de mes cours sur la virtualisation légère, j'ai publié en avril 2022 le livre [*Conteneurs et technologies du DevOps*](https://alpo.tf/livres/2493960009/). Il rassemble le travail de plus de 7 années d'enseignement à l'utilisation des conteneurs : chaque chapitre fait découvrir de nouveaux aspects de la technologie et permet de développer ses compétences par des défis à la difficulté croissante, de la création et la gestion des conteneurs en entreprise jusqu'à leur fonctionnement au cœur du noyau Linux. + {{}} Après 5 ans d'études à l'[Epita](http://epita.fr/), j'ai, en 2014, obtenu mon diplôme d'ingénieur ! J'ai suivi les enseignements de la majeure [***Systèmes, Réseaux et Sécurité***](https://srs.epita.fr/). {{
}} diff --git a/content/fr/conferences.md b/content/fr/conferences.md index 3852461..1418966 100644 --- a/content/fr/conferences.md +++ b/content/fr/conferences.md @@ -9,23 +9,17 @@ aliases: - talks --- -Voici les supports des conférences que j'ai données : +Voici les supports des conférences que j'ai données : -* [[FR] Le DNS, la colonne vertébrale cachée d’Internet](/talks/starinux_dns_2025.pdf) ([Atelier Starinux](https://www.starinux.org/?p=1329)) -* [[FR] Embarquer un frontal web dans son binaire Go, exemple avec happyDomain](/talks/happyDomain_golang_meetup_2024.pdf) [(code)](https://git.nemunai.re/nemunaire/meetup-golang-2024-demo) ([Meetup Golang Paris](https://www.meetup.com/fr-FR/golang-paris/events/301188194/)) -* [[EN] Let's make people love domain names again](https://blog.happydomain.org/files/happyDomain%20FOSDEM%202024.pdf) ([FOSDEM 2024](https://fosdem.org/2024/schedule/event/fosdem-2024-2316-let-s-make-people-love-domain-names-again/)) -* [[FR] Comment rendre les mots DNS et simplicité compatibles ?](https://blog.happydomain.org/files/happyDomain%20Open%20Source%20Experience%202023.pdf) ([Open Source Experience 2023](https://www.opensource-experience.com/event/#conf-13898)) -* [[FR] Repenser la sécurité des plateformes web](/talks/lresw23-moenia.pdf) ([LRE Summer Week](https://www.lre.epita.fr/news_content/summer_week_23/)) -* [[FR] L'authentification forte](/talks/2fa.pdf) (*cryptoparty* GConfs) -* [[FR] L'autohébergement](/talks/autohebergement.pdf) (*cryptoparty* GConfs) -* [[FR] Le DNS](/talks/QTechNote%20DNS.pdf) (QTechNote) -* [[FR] Prise en main de Docker](/talks/QTechNote%20Docker.pdf) (QTechNote) -* [[FR] Prise en main de gRPC/Protobuf](/talks/QTechNote%20%231.pdf) (QTechNote) - - -## Enseignement - -À l'[Epita](http://www.epita.fr/), j'ai enseigné durant 10 ans l'usage des conteneurs et leur fonctionnement technique au sein du noyau Linux dans un cours de 24 heures nommé [*Virtualisation légère*](https://virli.nemunai.re/) ainsi que l'[*ADministration LINux avancée*](https://adlin.nemunai.re). - -D'autre part, j'encadre le projet de fin d'études des étudiants de la majeure SRS pour lequel ils conçoivent un [challenge de forensic](https://fic.srs.epita.fr/) pour l'[European Cyber Cup](https://european-cybercup.com), présenté au [Forum International de la Cybersécurité](https://www.forum-fic.com/). -À ce titre, je maintiens et coordonne les développements de [la plateforme de validation](https://git.nemunai.re/fic/server). +{{< talks >}} +{{< talk title="Le DNS, la colonne vertébrale cachée d’Internet" lang="fr" year="2025" url="/talks/starinux_dns_2025.pdf" img="/talks/covers/starinux_dns_2025.jpg" event="Atelier Starinux" eventurl="https://www.starinux.org/?p=1329" >}} +{{< talk title="Embarquer un frontal web dans son binaire Go, exemple avec happyDomain" lang="fr" year="2024" url="/talks/happyDomain_golang_meetup_2024.pdf" img="/talks/covers/happyDomain_golang_meetup_2024.jpg" event="Meetup Golang Paris" eventurl="https://www.meetup.com/fr-FR/golang-paris/events/301188194/" code="https://git.nemunai.re/nemunaire/meetup-golang-2024-demo" >}} +{{< talk title="Let's make people love domain names again" lang="en" year="2024" url="https://blog.happydomain.org/files/happyDomain%20FOSDEM%202024.pdf" img="/talks/covers/happydomain_fosdem_2024.jpg" event="FOSDEM 2024" eventurl="https://fosdem.org/2024/schedule/event/fosdem-2024-2316-let-s-make-people-love-domain-names-again/" >}} +{{< talk title="Comment rendre les mots DNS et simplicité compatibles ?" lang="fr" year="2023" url="https://blog.happydomain.org/files/happyDomain%20Open%20Source%20Experience%202023.pdf" img="/talks/covers/happydomain_osx_2023.jpg" event="Open Source Experience 2023" eventurl="https://www.opensource-experience.com/event/#conf-13898" >}} +{{< talk title="Repenser la sécurité des plateformes web" lang="fr" year="2023" url="/talks/lresw23-moenia.pdf" img="/talks/covers/lresw23-moenia.jpg" event="LRE Summer Week" eventurl="https://www.lre.epita.fr/news_content/summer_week_23/" >}} +{{< talk title="L'authentification forte" lang="fr" url="/talks/2fa.pdf" img="/talks/covers/2fa.jpg" event="cryptoparty GConfs" >}} +{{< talk title="L'autohébergement" lang="fr" url="/talks/autohebergement.pdf" img="/talks/covers/autohebergement.jpg" event="cryptoparty GConfs" transcript="post/self-hosting/index.md" >}} +{{< talk title="Le DNS" lang="fr" url="/talks/QTechNote%20DNS.pdf" img="/talks/covers/qtechnote_dns.jpg" event="QTechNote" >}} +{{< talk title="Prise en main de Docker" lang="fr" url="/talks/QTechNote%20Docker.pdf" img="/talks/covers/qtechnote_docker.jpg" event="QTechNote" >}} +{{< talk title="Prise en main de gRPC/Protobuf" lang="fr" url="/talks/QTechNote%20%231.pdf" img="/talks/covers/qtechnote_grpc.jpg" event="QTechNote" >}} +{{< /talks >}} diff --git a/layouts/shortcodes/talk.html b/layouts/shortcodes/talk.html new file mode 100644 index 0000000..73e21b2 --- /dev/null +++ b/layouts/shortcodes/talk.html @@ -0,0 +1,34 @@ +{{ $_hugo_config := `{ "version": 1 }` }} +{{ $title := .Get "title" }} +{{ $url := .Get "url" }} +{{ $img := .Get "img" }} +{{/* Open external links (slides, event page, code repo) in a new tab. */}} +{{ $blank := "" }} +{{ if hasPrefix $url "http" }}{{ $blank = " target=\"_blank\" rel=\"noopener\"" }}{{ end }} +
+
+ {{ with $img }} + + {{ end }} +
+

+ {{ $title }} +

+

+ {{ with .Get "event" }} + {{ with $.Get "eventurl" }}{{ $.Get "event" }}{{ else }}{{ $.Get "event" }}{{ end }} + {{ end }} + {{ with .Get "year" }} · {{ . }}{{ end }} +

+
+ {{ with .Get "lang" }}{{ . }}{{ end }} + + {{ with .Get "transcript" }}{{ if eq $.Page.Language.Lang "fr" }}transcription{{ else }}transcript{{ end }}{{ end }} + {{ with .Get "code" }}code{{ end }} + +
+
+
+
diff --git a/layouts/shortcodes/talks.html b/layouts/shortcodes/talks.html new file mode 100644 index 0000000..f7fb6bd --- /dev/null +++ b/layouts/shortcodes/talks.html @@ -0,0 +1,4 @@ +{{ $_hugo_config := `{ "version": 1 }` }} +
+ {{ .Inner }} +
diff --git a/static/css/custom.css b/static/css/custom.css index 89e211b..ca2df0e 100644 --- a/static/css/custom.css +++ b/static/css/custom.css @@ -248,3 +248,40 @@ footer .copyright { .img-title { margin-bottom: 0.75rem; } + +/* Talks page: card deck of conference slides */ +.talk-deck .talk-card .card-img-top { + height: 180px; + width: 100%; + object-fit: cover; + object-position: top center; + border-bottom: 1px solid var(--bs-border-color, rgba(0, 0, 0, .1)); +} + +/* Undo the theme's `.blog-post :first-child { margin-top: 0 }` reset, which + strips the Bootstrap grid vertical gutter from the first card and pulls it up. */ +.blog-post .talk-deck > * { + margin-top: var(--bs-gutter-y); +} + +.talk-deck .talk-action { + display: inline-flex; + align-items: center; + font-size: .8rem; + --bs-btn-padding-y: .2rem; + --bs-btn-padding-x: .6rem; +} + +.talk-deck .talk-action i, +.talk-deck .talk-action svg { + font-size: .85em; + margin-right: .45em; +} + +.talk-deck .talk-card { + transition: transform .15s ease, box-shadow .15s ease; +} + +.talk-deck .talk-card:hover { + transform: translateY(-2px); +} diff --git a/static/talks/covers/2fa.jpg b/static/talks/covers/2fa.jpg new file mode 100644 index 0000000..fba4258 Binary files /dev/null and b/static/talks/covers/2fa.jpg differ diff --git a/static/talks/covers/autohebergement.jpg b/static/talks/covers/autohebergement.jpg new file mode 100644 index 0000000..73b9bbe Binary files /dev/null and b/static/talks/covers/autohebergement.jpg differ diff --git a/static/talks/covers/happyDomain_golang_meetup_2024.jpg b/static/talks/covers/happyDomain_golang_meetup_2024.jpg new file mode 100644 index 0000000..ba06b4d Binary files /dev/null and b/static/talks/covers/happyDomain_golang_meetup_2024.jpg differ diff --git a/static/talks/covers/happydomain_fosdem_2024.jpg b/static/talks/covers/happydomain_fosdem_2024.jpg new file mode 100644 index 0000000..5bb3c2d Binary files /dev/null and b/static/talks/covers/happydomain_fosdem_2024.jpg differ diff --git a/static/talks/covers/happydomain_osx_2023.jpg b/static/talks/covers/happydomain_osx_2023.jpg new file mode 100644 index 0000000..f539ca8 Binary files /dev/null and b/static/talks/covers/happydomain_osx_2023.jpg differ diff --git a/static/talks/covers/lresw23-moenia.jpg b/static/talks/covers/lresw23-moenia.jpg new file mode 100644 index 0000000..da10c30 Binary files /dev/null and b/static/talks/covers/lresw23-moenia.jpg differ diff --git a/static/talks/covers/qtechnote_dns.jpg b/static/talks/covers/qtechnote_dns.jpg new file mode 100644 index 0000000..b75659c Binary files /dev/null and b/static/talks/covers/qtechnote_dns.jpg differ diff --git a/static/talks/covers/qtechnote_docker.jpg b/static/talks/covers/qtechnote_docker.jpg new file mode 100644 index 0000000..5642ab2 Binary files /dev/null and b/static/talks/covers/qtechnote_docker.jpg differ diff --git a/static/talks/covers/qtechnote_grpc.jpg b/static/talks/covers/qtechnote_grpc.jpg new file mode 100644 index 0000000..72fb5c4 Binary files /dev/null and b/static/talks/covers/qtechnote_grpc.jpg differ diff --git a/static/talks/covers/starinux_dns_2025.jpg b/static/talks/covers/starinux_dns_2025.jpg new file mode 100644 index 0000000..eac64b3 Binary files /dev/null and b/static/talks/covers/starinux_dns_2025.jpg differ