commit 0cff0f2a86c30e4063777483e1c23e24477befaa Author: vhaudiquet Date: Thu Jan 16 14:50:34 2025 +0100 Initial commit - vhaudiquet containerized diff --git a/.gitea/workflows/pipeline.yml b/.gitea/workflows/pipeline.yml new file mode 100644 index 0000000..61fa66a --- /dev/null +++ b/.gitea/workflows/pipeline.yml @@ -0,0 +1,31 @@ +name: pipeline +on: + push: + branches: + - "main" + +permissions: + packages: write + +jobs: + build-and-push-images: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: https://gitea.com/actions/checkout@v4 + + - name: Log in to container registry + uses: docker/login-action@v3 + with: + registry: https://git.vhaudiquet.fr + username: ${{ github.actor }} + password: ${{ secrets.PACKAGES_TOKEN }} + + - name: Build and push docker image + uses: docker/build-push-action@v6 + with: + context: . + push: true + tags: | + git.vhaudiquet.fr/vhaudiquet/vhaudiquet.fr:latest + git.vhaudiquet.fr/vhaudiquet/vhaudiquet.fr:${{ github.sha }} diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..1bccbb1 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,2 @@ +FROM nginx:latest +COPY ./src /usr/share/nginx/html diff --git a/src/about/index.html b/src/about/index.html new file mode 100644 index 0000000..770707d --- /dev/null +++ b/src/about/index.html @@ -0,0 +1,38 @@ + + + + Valentin Haudiquet + + + + + + + + + + + + + + + + +
+ +
+

Valentin Haudiquet

+

Computer science student at ENS Rennes

+

Interested in operating systems, virtualization, computer architecture, embedded systems

+
+
+ + +
+

About

+

+ Hello! I'm Valentin Haudiquet, and this is my personal website. I'm a French computer science student and developer. + You can find a link to my blog on the main page, but also my different Git repositories, contact informations and my CV. +

+
+ diff --git a/src/assets/arobase.svg b/src/assets/arobase.svg new file mode 100644 index 0000000..9b9519e --- /dev/null +++ b/src/assets/arobase.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/favicon.ico_256x256.png b/src/assets/favicon.ico_256x256.png new file mode 100755 index 0000000..f81b487 Binary files /dev/null and b/src/assets/favicon.ico_256x256.png differ diff --git a/src/assets/fluent-mdl2_blog.svg b/src/assets/fluent-mdl2_blog.svg new file mode 100644 index 0000000..05dd9f8 --- /dev/null +++ b/src/assets/fluent-mdl2_blog.svg @@ -0,0 +1,40 @@ + + + + + + diff --git a/src/assets/github-mark.png b/src/assets/github-mark.png new file mode 100644 index 0000000..6cb3b70 Binary files /dev/null and b/src/assets/github-mark.png differ diff --git a/src/assets/icon-park-solid_people.svg b/src/assets/icon-park-solid_people.svg new file mode 100644 index 0000000..29e10cb --- /dev/null +++ b/src/assets/icon-park-solid_people.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/assets/logo_black.svg b/src/assets/logo_black.svg new file mode 100644 index 0000000..f0d2673 --- /dev/null +++ b/src/assets/logo_black.svg @@ -0,0 +1,56 @@ + + + + + + + + + + + + + diff --git a/src/assets/mdi_about.svg b/src/assets/mdi_about.svg new file mode 100644 index 0000000..2824219 --- /dev/null +++ b/src/assets/mdi_about.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/photo.JPG b/src/assets/photo.JPG new file mode 100644 index 0000000..d79d2ff Binary files /dev/null and b/src/assets/photo.JPG differ diff --git a/src/assets/photo_web.JPG b/src/assets/photo_web.JPG new file mode 100644 index 0000000..b3c6076 Binary files /dev/null and b/src/assets/photo_web.JPG differ diff --git a/src/cv/cv.pdf b/src/cv/cv.pdf new file mode 100644 index 0000000..bd43ab3 Binary files /dev/null and b/src/cv/cv.pdf differ diff --git a/src/cv/index.html b/src/cv/index.html new file mode 100644 index 0000000..88d283c --- /dev/null +++ b/src/cv/index.html @@ -0,0 +1,156 @@ + + + + Valentin HAUDIQUET + + + + + + + + + + + + + + + + + +
+ +
+

Valentin Haudiquet

+

Computer science student at ENS Rennes

+

Interested in operating systems, virtualization, computer architecture, embedded systems

+
+
+ + +
+ + +
+

Education

+ +
+ +

2024 - ?

+

M2 SIF, ENS Rennes, Second year of CS Master's Degree (Research)

+ +

2023 - 2024

+

Agrégation, ENS Rennes, Preparation for national competitive exam

+

'Agrégé' in computer science, rank 14/22

+ +

2022 - 2023

+

M1 SIF, ENS Rennes, First year of CS Master's Degree (Research)

+ +

2021 - 2022

+

L3 SIF, ENS Rennes, Last year of CS Bachelor's Degree

+ +

2018 - 2021

+

Prépa, Lycée Bellevue Toulouse, two-year intensive program preparing + for the national competitive exams for entry to engineering schools.

+

Prépa MPSI/MP, entry to ENS Rennes

+ +
+
+ + +
+

Professional experience

+ +
+ +

Summer 2023

+

Master's internship, Huawei Research Zurich, “Improving performances of virtualized servers by removing the guest kernel/user isolation layer”

+

Working on a Linux kernel patch to allow programs to run in kernel mode

+ +

2022 - 2023

+

Master's research project, IRISA (Rennes), “Transparent use of node-local storage for asynchronous I/O on supercomputers”

+

Library replacing MPI-IO calls, caching data locally, with neighbour communication

+ +

Summer 2022

+

Bachelor's internship, IRIT (Toulouse), “Reducing traffic in data centers by avoiding the transition of data through intermediate servers”

+

Library replacing read/write, using memory protection to provide data on-demand

+ + +
+
+ + +
+

Personal projects

+ +
+ +

2023 - 2024

+

RISC-V simulator

+

Basic RISC-V processor simulator, capable of running BBL and booting Linux

+ +

2022 - 2023

+

Java Virtual Machine implementation, school project

+

Basic C JVM for GNU/Linux, Java 8 specs, using OpenJRE runtime

+ +

2018 - ?

+

Blade Player, Android multi-source music player

+

Maintaining for 100+ users this Android application that plays music from Spotify or Deezer

+ +

2018 - 2020

+

Operating system kernel development,x86 architecture

+

Basic operating system kernel, with drivers, filesystem, Newlib ported, dash shell

+ +
+
+ + +
+

Skills

+ +
+ +

Programming languages

+

C, Assembly (x86, RISC-V, ARM), Java, TypeScript/JavaScript, Kotlin, Python, OCaml

+ +

DevOps / Workflow

+

Linux, Bash, Git, CI/CD, Docker, Kubernetes, virtual machines

+ +

Presentation tools

+

LaTeX, Figma, HTML/CSS, Inkscape, Gimp

+ +

Spoken languages

+

French (native), English (fluent), Spanish (basic)

+ +
+
+ + +
+

Contact

+ +
+ +

E-Mail

+

valentin.haudiquet@ens-rennes.fr

+ +

Website

+

https://vhaudiquet.fr

+ +

Phone number

+

+33 7 87 18 09 65

+ +

Street address

+

15 rue de Viarmes, 35000 Rennes, France

+ +

GitHub

+

vhaudiquet

+ +
+
+ + +
+ + diff --git a/src/index.html b/src/index.html new file mode 100644 index 0000000..43caaf3 --- /dev/null +++ b/src/index.html @@ -0,0 +1,64 @@ + + + + Valentin Haudiquet + + + + + + + + + + + + + + + + + +
+ +
+

Valentin Haudiquet

+

Computer science student at ENS Rennes

+

Interested in operating systems, virtualization, computer architecture, embedded systems

+
+
+ + + + \ No newline at end of file diff --git a/src/robots.txt b/src/robots.txt new file mode 100644 index 0000000..5587929 --- /dev/null +++ b/src/robots.txt @@ -0,0 +1,4 @@ +User-agent: * +Disallow: +Allow: / +Sitemap: https://vhaudiquet.fr/sitemap.xml \ No newline at end of file diff --git a/src/sitemap.xml b/src/sitemap.xml new file mode 100644 index 0000000..f28bade --- /dev/null +++ b/src/sitemap.xml @@ -0,0 +1,32 @@ + + + + https://vhaudiquet.fr/ + + + https://vhaudiquet.fr/cv/ + + + https://vhaudiquet.fr/about/ + + + https://vhaudiquet.fr/blog/apic-vs-pic/ + 2021-12-16 + + + https://vhaudiquet.fr/blog/categories/ + + + https://vhaudiquet.fr/blog/more/ + + + https://vhaudiquet.fr/blog/more/about/ + + + https://vhaudiquet.fr/blog/tags/ + + + https://vhaudiquet.fr/blog/valou3433-pusku-com-historique/ + 2021-05-02 + + \ No newline at end of file diff --git a/src/stylesheets/style.css b/src/stylesheets/style.css new file mode 100644 index 0000000..47f6967 --- /dev/null +++ b/src/stylesheets/style.css @@ -0,0 +1,158 @@ +#header-img { + border-radius: 50%; + + width: 400px; + height: 400px; +} + +#header-div { + display: flex; + width: fit-content; + margin: auto; + margin-top: 50px; +} + +#header-text-container { + margin-left: 90px; + display: flex; + flex-direction:column; + align-items:end; +} + +h1 { + font-family: 'Inter', sans-serif; + font-style: normal; + font-weight: 600; + font-size: 96px; + + margin-top: 5px; + margin-bottom: 5px; + + text-align: right; +} + +h2 { + font-family: 'Inter', sans-serif; + font-style: normal; + font-weight: 500; + font-size: 40px; + + margin-top: 5px; + margin-bottom: 5px; +} + +h4 { + font-family: 'Inter', sans-serif; + font-style: normal; + font-weight: 300; + font-size: 40px; + + margin-top: 5px; + margin-bottom: 5px; + + text-align: right; +} + +#header-paragraph { + max-width: 770px; + margin-right: -3px; + text-align: right; + font-size: 36px; + font-weight: 200; +} + +#links-div { + display: grid; + column-gap: 40px; + grid-auto-flow: column; + width: fit-content; + margin: auto; + margin-top: 100px; +} + +p { + font-family: 'Inter', sans-serif; + font-style: normal; + font-weight: normal; + font-size: 30px; + + margin-top: 5px; + margin-bottom: 5px; +} + +a:link { + text-decoration: none; + color: grey; +} +a:visited { + text-decoration: none; + color: grey; +} +a:hover { + text-decoration: none; + color: #536878; +} +a:active { + text-decoration: none; + color: grey; +} + +strong { + font-family: 'Inter', sans-serif; + font-style: normal; + font-weight: 600; + font-size: 30px; +} + +.cv-section { + display: grid; + grid-auto-flow: row; + column-gap: 50px; + width: fit-content; +} + +.date { + margin-left: 10px; + + font-style: italic; +} + +.subtext { + font-weight: 200; + font-size: 26px; +} + +@media only screen and (max-width: 1000px) { + /* Mobile version */ + #header-img { + align-self: center; + } + #header-div { + flex-direction: column; + } + #header-text-container { + margin-left: 0px; + display: flex; + flex-direction:column; + align-items:center; + } + h1 { + text-align: center; + } + h4 { + text-align: center; + } + #header-paragraph { + text-align: center; + } + + #links-div { + display: grid; + column-gap: 40px; + row-gap: 40px; + grid-auto-flow: row; + width: fit-content; + margin: auto; + margin-top: 100px; + } +} \ No newline at end of file