initial commit, initial ideas

This commit is contained in:
khannurien
2026-08-18 10:55:21 +00:00
commit dc4ce0dc9e
13 changed files with 1157 additions and 0 deletions

54
.devcontainer/Dockerfile Normal file
View File

@@ -0,0 +1,54 @@
FROM mcr.microsoft.com/devcontainers/base:ubuntu
# Install dependencies for TeX Live installation and usage
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y \
perl \
biber \
wget \
fontconfig \
make \
git \
curl \
python3 \
python3-pygments \
&& rm -rf /var/lib/apt/lists/*
# Set non-root user provided by Microsoft base image
ARG USERNAME=vscode
# Switch to user home directory
USER $USERNAME
WORKDIR /home/$USERNAME
# Set TeX Live paths and update environment
ENV TEXLIVE_INSTALL_PREFIX="/usr/local/texlive"
ENV TEXLIVE_INSTALL_TEXDIR="${TEXLIVE_INSTALL_PREFIX}/2025"
ENV PATH="${TEXLIVE_INSTALL_TEXDIR}/bin/x86_64-linux:${PATH}"
# Download and install TeX Live 2025 as root
RUN wget -q https://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz && \
tar -xzf install-tl-unx.tar.gz && \
rm install-tl-unx.tar.gz && \
cd install-tl-* && \
echo "selected_scheme scheme-full" > texlive.profile && \
echo "TEXDIR ${TEXLIVE_INSTALL_TEXDIR}" >> texlive.profile && \
echo "TEXMFCONFIG /home/vscode/.texlive2025/texmf-config" >> texlive.profile && \
echo "TEXMFVAR /home/vscode/.texlive2025/texmf-var" >> texlive.profile && \
echo "instopt_adjustpath 1" >> texlive.profile && \
echo "tlpdbopt_autobackup 0" >> texlive.profile && \
sudo perl ./install-tl --profile=texlive.profile --no-interaction && \
cd .. && rm -rf install-tl-*
# User-writeable directories for TeX Live and LuaLaTeX
ENV TEXMFCONFIG="/home/vscode/.texlive2025/texmf-config"
ENV TEXMFVAR="/home/vscode/.texlive2025/texmf-var"
ENV LUAOTFLOAD_HOME="/home/vscode/.texlive2025/texmf-var/luatex-cache"
ENV LUAOTFLOAD_DB="/home/vscode/.texlive2025/texmf-var/luatex-cache/database.sqlite"
# Install latexmk
RUN sudo tlmgr option autobackup 0 && \
sudo tlmgr install latexmk && \
sudo tlmgr path add
# Set the working directory back to a neutral location
WORKDIR /workspace

View File

@@ -0,0 +1,128 @@
{
"name": "LaTeX Dev Container",
"image": "ghcr.io/khannurien/latex-devcontainer:2025.12",
"customizations": {
"vscode": {
"settings": {
// VSCode text editor settings
"editor.padding.top": 20,
"editor.padding.bottom": 20,
"editor.fontSize": 16,
"editor.tabSize": 2,
"editor.lineHeight": 1.8,
"editor.cursorBlinking": "phase",
"editor.unicodeHighlight.nonBasicASCII": false,
"editor.wordWrap": "on",
"editor.wrappingStrategy": "advanced",
"editor.wordBasedSuggestions": "off",
// "editor.quickSuggestions": {
// "other": "on",
// "comments": "off",
// "strings": "off"
// },
// "editor.acceptSuggestionOnEnter": "off",
// LaTeX Workshop settings
"latex-workshop.intellisense.package.enabled": true,
"latex-workshop.intellisense.unimathsymbols.enabled": true,
"latex-workshop.intellisense.citation.backend": "biblatex",
"latex-workshop.latex.outDir": "build",
"latex-workshop.latex.autoBuild.run": "onFileChange",
"latex-workshop.latex.autoBuild.interval": 3000,
"latex-workshop.synctex.afterBuild.enabled": true,
"latex-workshop.view.autoFocus.enabled": false,
"latex-workshop.view.pdf.reload.transition": "fade",
"latex-workshop.view.pdf.viewer": "tab",
"latex-workshop.view.pdf.zoom": "auto",
"latex-workshop.latex.tools": [
{
"args": [
"-shell-escape",
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"-pdf",
"-outdir=%OUTDIR%",
"-out2dir=.",
"-pdflatex",
"-e",
"$bibtex='biber %O %S';",
"%DOC%"
],
"command": "latexmk",
"name": "latexmk + pdflatex + biber"
},
{
"args": [
"-shell-escape",
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"-pdf",
"-outdir=%OUTDIR%",
"-out2dir=.",
"-xelatex",
"-e",
"$bibtex='biber %O %S';",
"%DOC%"
],
"command": "latexmk",
"name": "latexmk + xelatex + biber"
},
{
"args": [
"-shell-escape",
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"-pdf",
"-outdir=%OUTDIR%",
"-out2dir=.",
"-lualatex",
"-e",
"$bibtex='biber %O %S';",
"%DOC%"
],
"command": "latexmk",
"name": "latexmk + lualatex + biber"
}
],
"latex-workshop.latex.recipes": [
{
"name": "latexmk + lualatex + biber",
"tools": [
"latexmk + lualatex + biber"
]
},
{
"name": "latexmk + xelatex + biber",
"tools": [
"latexmk + xelatex + biber"
]
},
{
"name": "latexmk + pdflatex + biber",
"tools": [
"latexmk + pdflatex + biber"
]
}
],
"latex-workshop.latex.recipe.default": "lastUsed",
// VSCode workbench settings
"workbench.startupEditor": "none",
"workbench.sideBar.location": "left",
"workbench.activityBar.location": "top",
"workbench.panel.opensMaximized": "always"
},
"extensions": [
"james-yu.latex-workshop",
"wayou.vscode-todo-highlight",
"Braver.vscode-solarized",
"hediet.vscode-drawio",
"mathematic.vscode-pdf"
]
}
},
"remoteUser": "vscode",
"updateRemoteUserUID": true,
"features": {}
}

304
.gitignore vendored Normal file
View File

@@ -0,0 +1,304 @@
## Core latex/pdflatex auxiliary files:
*.aux
*.lof
*.log
*.lot
*.fls
*.out
*.toc
*.fmt
*.fot
*.cb
*.cb2
.*.lb
## Intermediate documents:
*.dvi
*.xdv
*-converted-to.*
# these rules might exclude image files for figures etc.
# *.ps
# *.eps
# *.pdf
## Generated if empty string is given at "Please type another file name for output:"
.pdf
## Bibliography auxiliary files (bibtex/biblatex/biber):
*.bbl
*.bcf
*.blg
*-blx.aux
*-blx.bib
*.run.xml
## Build tool auxiliary files:
*.fdb_latexmk
*.synctex
*.synctex(busy)
*.synctex.gz
*.synctex.gz(busy)
*.pdfsync
## Build tool directories for auxiliary files
# latexrun
latex.out/
## Auxiliary and intermediate files from other packages:
# algorithms
*.alg
*.loa
# achemso
acs-*.bib
# amsthm
*.thm
# beamer
*.nav
*.pre
*.snm
*.vrb
# changes
*.soc
# comment
*.cut
# cprotect
*.cpt
# elsarticle (documentclass of Elsevier journals)
*.spl
# endnotes
*.ent
# fixme
*.lox
# feynmf/feynmp
*.mf
*.mp
*.t[1-9]
*.t[1-9][0-9]
*.tfm
#(r)(e)ledmac/(r)(e)ledpar
*.end
*.?end
*.[1-9]
*.[1-9][0-9]
*.[1-9][0-9][0-9]
*.[1-9]R
*.[1-9][0-9]R
*.[1-9][0-9][0-9]R
*.eledsec[1-9]
*.eledsec[1-9]R
*.eledsec[1-9][0-9]
*.eledsec[1-9][0-9]R
*.eledsec[1-9][0-9][0-9]
*.eledsec[1-9][0-9][0-9]R
# glossaries
*.acn
*.acr
*.glg
*.glo
*.gls
*.glsdefs
*.lzo
*.lzs
*.slg
*.slo
*.sls
# uncomment this for glossaries-extra (will ignore makeindex's style files!)
# *.ist
# gnuplot
*.gnuplot
*.table
# gnuplottex
*-gnuplottex-*
# gregoriotex
*.gaux
*.glog
*.gtex
# htlatex
*.4ct
*.4tc
*.idv
*.lg
*.trc
*.xref
# hyperref
*.brf
# knitr
*-concordance.tex
# TODO Uncomment the next line if you use knitr and want to ignore its generated tikz files
# *.tikz
*-tikzDictionary
# listings
*.lol
# luatexja-ruby
*.ltjruby
# makeidx
*.idx
*.ilg
*.ind
# minitoc
*.maf
*.mlf
*.mlt
*.mtc[0-9]*
*.slf[0-9]*
*.slt[0-9]*
*.stc[0-9]*
# minted
_minted*
*.pyg
# morewrites
*.mw
# newpax
*.newpax
# nomencl
*.nlg
*.nlo
*.nls
# pax
*.pax
# pdfpcnotes
*.pdfpc
# sagetex
*.sagetex.sage
*.sagetex.py
*.sagetex.scmd
# scrwfile
*.wrt
# svg
svg-inkscape/
# sympy
*.sout
*.sympy
sympy-plots-for-*.tex/
# pdfcomment
*.upa
*.upb
# pythontex
*.pytxcode
pythontex-files-*/
# tcolorbox
*.listing
# thmtools
*.loe
# TikZ & PGF
*.dpth
*.md5
*.auxlock
# titletoc
*.ptc
# todonotes
*.tdo
# vhistory
*.hst
*.ver
# easy-todo
*.lod
# xcolor
*.xcp
# xmpincl
*.xmpi
# xindy
*.xdy
# xypic precompiled matrices and outlines
*.xyc
*.xyd
# endfloat
*.ttt
*.fff
# Latexian
TSWLatexianTemp*
## Editors:
# WinEdt
*.bak
*.sav
# Texpad
.texpadtmp
# LyX
*.lyx~
# Kile
*.backup
# gummi
.*.swp
# KBibTeX
*~[0-9]*
# TeXnicCenter
*.tps
# auto folder when using emacs and auctex
./auto/*
*.el
# expex forward references with \gathertags
*-tags.tex
# standalone packages
*.sta
# Makeindex log files
*.lpz
# xwatermark package
*.xwm
# REVTeX puts footnotes in the bibliography by default, unless the nofootinbib
# option is specified. Footnotes are the stored in a file with suffix Notes.bib.
# Uncomment the next line to have this generated file ignored.
#*Notes.bib
# artifacts directory
build/

BIN
img/bullshit-meter.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

BIN
img/draft.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

BIN
img/easy.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 781 KiB

BIN
img/frink.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 157 KiB

BIN
img/ia-backflip.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

BIN
img/logos.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

102
slides.bib Normal file
View File

@@ -0,0 +1,102 @@
@misc{microsoftresearchPhDHowWrite2016,
title = {How to Write a Great Research Paper},
shorttitle = {{{PhD}}},
author = {Peyton Jones, Simon},
year = 2016,
month = aug,
publisher = {Microsoft Research},
address = {Cambridge},
urldate = {2026-08-18},
url = {https://www.youtube.com/watch?v=1AYxMbYZQ1Y},
abstract = {Writing papers and giving talks are key skills for any researcher, but they aren{$\Gamma$}\c C\"Ot easy. In this pair of presentations, I{$\Gamma$}\c C\"Oll describe simple guidelines that I follow for writing papers and giving talks, which I think may be useful to you too. I don{$\Gamma$}\c C\"Ot have all the answers{$\Gamma$}\c C\"ofar from it{$\Gamma$}\c C\"oand I hope that the presentation will evolve into a discussion in which you share your own insights, rather than a lecture.}
}
@article{Zongker2006,
title = {Chicken Chicken Chicken: {{Chicken}} Chicken},
author = {Zongker, Doug},
year = 2006,
journal = {Annals of Improbable Research},
volume = {12},
number = {5},
pages = {16--21},
urldate = {2026-08-18},
url = {https://cs.wheatoncollege.edu/mgousie/comp401/chicken.pdf}
}
@article{keshavHowReadPaper2007,
title = {How to Read a Paper},
author = {Keshav, S.},
year = 2007,
month = jul,
journal = {ACM SIGCOMM Computer Communication Review},
volume = {37},
number = {3},
pages = {83--84},
issn = {0146-4833},
doi = {10.1145/1273445.1273458},
urldate = {2026-05-11},
abstract = {Researchers spend a great deal of time reading research papers. However, this skill is rarely taught, leading to much wasted effort. This article outlines a practical and efficient three-pass method for reading research papers. I also describe how to use this method to do a literature survey.},
langid = {english},
}
@book{beejGit2025,
title = {Beej's {{Guide}} to {{Git}}},
author = {Hall, Brian},
year = 2025,
edition = {v1.2.8},
urldate = {2026-08-18},
url = {https://beej.us/guide/bggit/pdf/bggit_usl_c_1.pdf}
}
% Own work
@inbook{Lannurien2023,
title = {{Serverless Cloud Computing: State of the Art and Challenges}},
author = {Lannurien, Vincent and D'Orazio, Laurent and Barais, Olivier and Boukhobza, Jalil},
year = 2023,
booktitle = {Serverless Computing: Principles and Paradigms},
publisher = {Springer International Publishing},
address = {Cham},
pages = {275--316},
doi = {10.1007/978-3-031-26633-1_11},
isbn = {978-3-031-26633-1},
editor = {Krishnamurthi, Rajalakshmi and Kumar, Adarsh and Gill, Sukhpal Singh and Buyya, Rajkumar},
abstract = {The serverless model represents a paradigm shift in the cloud: as opposed to traditional cloud computing service models, serverless customers do not reserve hardware resources. The execution of their code is event-driven (HTTP requests, cron jobs, etc.) and billing is based on actual resource usage. In return, the responsibility of resource allocation and task placement lies on the provider. While serverless in the wild is mainly advertised as a public cloud offering, solutions are actively developed and backed by solid actors in the industry to allow the development of private cloud serverless platforms. The first generation of serverless offers, ``Function as a Service'' (FaaS), has severe shortcomings that can offset the potential benefits for both customers and providers---in terms of spendings and reliability on the customer side, and in terms of resources multiplexing on the provider side. Circumventing these flaws would allow considerable savings in money and energy for both providers and tenants. This chapter aims at establishing a comprehensive tour of these limitations, and presenting state-of-the-art studies to mitigate weaknesses that are currently holding serverless back from becoming the de facto cloud computing model. The main challenges related to the deployment of such a cloud platform are discussed and some perspectives for future directions in research are given.}
}
@inproceedings{herofake,
title = {{HeROfake: Heterogeneous Resources Orchestration in a Serverless Cloud An Application to Deepfake Detection}},
author = {Lannurien, Vincent and D'Orazio, Laurent and Barais, Olivier and Bernard, Esther and Weppe, Olivier and Beaulieu, Laurent and Kacete, Amine and Paquelet, Stéphane and Boukhobza, Jalil},
year = 2023,
booktitle = {2023 IEEE/ACM 23rd International Symposium on Cluster, Cloud and Internet Computing (CCGrid)},
volume = {},
number = {},
pages = {154--165},
doi = {10.1109/CCGrid57682.2023.00024},
}
@inproceedings{herocache,
title = {{{HeROcache}}: {{Storage-Aware}} {{Scheduling}} in {{Heterogeneous}} {{Serverless}} {{Edge}} -- {{The}} {{Case}} of {{IDS}}},
author = {Lannurien, Vincent and Slimani, Camélia and D'Orazio, Laurent and Barais, Olivier and Paquelet, Stéphane and Boukhobza, Jalil},
year = 2024,
booktitle = {2024 IEEE/ACM 24th International Symposium on Cluster, Cloud and Internet Computing (CCGrid)},
volume={},
number={},
pages={587-597},
doi={10.1109/CCGrid59990.2024.00071}
}
@misc{herosim,
title = {{HeROsim: An Allocation and Placement Simulator for Evaluating Serverless Orchestration Policies}},
author = {Lannurien, Vincent},
year = 2024,
month = Feb,
note = {},
swhid = {swh:1:dir:25de7582f8eb4ac1c8e4f6547f13daedd95c89fb;origin=https://hal.archives-ouvertes.fr/hal-04468894;visit=swh:1:snp:f6e59382a8fcc7e6fbfe0828fcd11cf1b7d7395f;anchor=swh:1:rel:8d1f3395227f348fc47e438696cdae643674bf26;path=/},
repository = {https://github.com/b-com/HeROsim},
license = {Apache License 2.0},
file = {https://hal.science/hal-04468894/file/HeROsim-main.zip},
hal_id = {hal-04468894},
hal_version = {v1}
}

254
slides.cls Normal file
View File

@@ -0,0 +1,254 @@
\ProvidesClass{slides}[27/01/2025 v1]
\PassOptionsToPackage{dvipsnames}{xcolor}
\PassOptionsToPackage{unicode}{hyperref}
\PassOptionsToPackage{naturalnames}{hyperref}
\LoadClass[aspectratio=169,10pt]{beamer}
% speaker notes
% open pdf in dual screen using pympress (https://github.com/Cimbali/pympress)
% \setbeameroption{show notes on second screen=right}
% listings (should be loaded before csquotes)
\RequirePackage{minted}
% language and encoding
\RequirePackage[french]{babel}
\RequirePackage[T1]{fontenc}
\RequirePackage[autostyle]{csquotes}
\MakeOuterQuote{"}
% biblatex for references on slides
\RequirePackage[backend=biber]{biblatex}
% clean, short citations in footnotes (cf. https://tex.stackexchange.com/a/587604)
\renewbibmacro{in:}{}
% \AtEveryCitekey{\clearfield{journaltitle}}
\AtEveryCitekey{\clearfield{volume}}
\AtEveryCitekey{\clearfield{number}}
% \AtEveryCitekey{\clearfield{booktitle}}
% \AtEveryCitekey{\clearfield{series}}
\AtEveryCitekey{\clearfield{pages}}
\AtEveryCitekey{\clearfield{month}}
\AtEveryCitekey{\clearlist{publisher}}
\AtEveryCitekey{\clearname{editor}}
\AtEveryCitekey{\clearlist{location}}
\AtEveryCitekey{\clearfield{doi}}
\AtEveryCitekey{\clearfield{isbn}}
\AtEveryCitekey{\clearfield{issn}}
\AtEveryCitekey{\clearfield{eprint}}
\AtEveryCitekey{\clearfield{url}}
\AtEveryCitekey{\clearfield{urlyear}}
\AtEveryCitekey{\clearfield{urlmonth}}
\AtEveryCitekey{\clearfield{urlday}}
% include reference number in citations (cf. https://tex.stackexchange.com/a/176295)
\DeclareCiteCommand{\fullcite}
{\usebibmacro{prenote}}
{{\printtext[labelnumberwidth]{%
\printfield{prefixnumber}%
\printfield{labelnumber}}} %
\usedriver
{\DeclareNameAlias{sortname}{default}}
{\thefield{entrytype}}}
{\multicitedelim}
{\usebibmacro{postnote}}
% blank footnotes using \footnote[]{}
\let\svthefootnote\thefootnote
\textheight 1in
\newcommand\blankfootnote[1]{%
\let\thefootnote\relax\footnotetext{#1}%
\let\thefootnote\svthefootnote%
}
\let\svfootnote\footnote
\renewcommand\footnote[2][?]{%
\if\relax#1\relax%
\blankfootnote{#2}%
\else%
\if?#1\svfootnote{#2}\else\svfootnote[#1]{#2}\fi%
\fi
}
% captions
\RequirePackage{caption}
\captionsetup{font=scriptsize,labelfont=scriptsize}
% beamer theme
\usetheme{moloch}
\RequirePackage{appendixnumberbeamer}
\RequirePackage{fontspec}
\setsansfont[
ItalicFont={Fira Sans Light Italic},
BoldFont={Fira Sans},
BoldItalicFont={Fira Sans Italic}
]{Fira Sans Light}
\setmonofont[BoldFont={Fira Mono Medium}]{Fira Mono}
% \setmonofont{Fantasque Sans Mono}
\AtBeginEnvironment{tabular}{%
\addfontfeature{Numbers={Monospaced}}
}
% https://steeven9.github.io/USI-LaTeX/html/packages_hyperref_babel_xcolor3.html
% Section 3.2 of:
% https://mirror.ibcp.fr/pub/CTAN/macros/latex/contrib/beamer-contrib/themes/moloch/moloch.pdf
\definecolor{ubo}{HTML}{5e548e}
\setbeamercolor{progress bar}{fg=ubo}
\setbeamercolor{title separator}{fg=ubo}
\setbeamercolor{frametitle}{bg=ubo}
% \setbeamercolor{progress bar}{fg=BrickRed}
% \setbeamercolor{title separator}{fg=BrickRed}
% footnote font size
\setbeamerfont{footnote}{size=\tiny}
% frame numbering font size
\setbeamerfont{footline}{size=\footnotesize}
% solid background for blocks
\molochset{block=fill}
% remove section frames
% \molochset{sectionpage=none}
% enable subsection frames
\molochset{subsectionpage=progressbar}
% table of contents
\setbeamertemplate{section in toc}[sections numbered]
\makeatletter
\patchcmd{\beamer@sectionintoc}{\vskip1.5em}{\vskip0.3em}{}{}
\patchcmd{\beamer@subsectionintoc}{\vskip0.75em}{\vskip0.15em}{}{}
\makeatother
% smaller first-level bullet points
\setbeamertemplate{itemize item}{\textbullet}
% smaller bibliography entries
\renewcommand*{\bibfont}{\scriptsize}
% figures uncover animation (cf. https://tex.stackexchange.com/a/354033/95423)
\newcommand<>{\uncovergraphics}[2][{}]{
\begin{tikzpicture}
\node[anchor=south west,inner sep=0] (B) at (4,0)
{\includegraphics[#1]{#2}};
\alt#3{}{%
\fill [draw=none, fill=bg, fill opacity=0.9] (B.north west) -- (B.north east) -- (B.south east) -- (B.south west) -- (B.north west) -- cycle;
}
\end{tikzpicture}
}
% fonts and symbols
\RequirePackage{pifont}
\newcommand{\cmark}{{\color{YellowGreen}\ding{51}}}
\newcommand{\xmark}{{\color{BrickRed}\ding{55}}}
\newcommand{\imark}{{\color{Orange}\ding{109}}}
\RequirePackage{textcomp}
\RequirePackage{emoji}
% markers
\RequirePackage{circledsteps}
\pgfkeys{/csteps/inner color=white}
\pgfkeys{/csteps/fill color=black}
\RequirePackage{xparse}
\NewDocumentCommand{\DONE}{g}{%
\IfNoValueTF{#1}{%
\CircledParamOpts{inner color=black, outer color=LimeGreen, fill color=LimeGreen}
{1}{\textbf{DONE}}%
}{%
\CircledParamOpts{inner color=black, outer color=LimeGreen, fill color=LimeGreen}
{1}{\textbf{DONE --} #1}%
}%
}
\NewDocumentCommand{\TODO}{g}{%
\IfNoValueTF{#1}{%
\CircledParamOpts{inner color=black, outer color=Goldenrod, fill color=Goldenrod}
{1}{\textbf{TODO}}%
}{%
\CircledParamOpts{inner color=black, outer color=Goldenrod, fill color=Goldenrod}
{1}{\textbf{TODO --} #1}%
}%
}
\NewDocumentCommand{\FIXME}{g}{%
\IfNoValueTF{#1}{%
\CircledParamOpts{inner color=white, outer color=Red, fill color=Red}
{1}{\textbf{FIXME}}%
}{%
\CircledParamOpts{inner color=white, outer color=Red, fill color=Red}
{1}{\textbf{FIXME --} #1}%
}%
}
% custom font size for a slide (cf. https://tex.stackexchange.com/a/401409)
\RequirePackage{environ}
\newcommand{\customframefont}[1]{
\setbeamertemplate{itemize/enumerate body begin}{#1}
\setbeamertemplate{itemize/enumerate subbody begin}{#1}
}
\NewEnviron{framefont}[1]{
\customframefont{#1} % for itemize/enumerate
{#1 % For the text outside itemize/enumerate
\BODY
}
\customframefont{\normalsize}
}
% math
\RequirePackage{amsmath,amssymb,amsfonts}
% resizebox
\RequirePackage{graphicx}
\RequirePackage{subcaption}
% lists
\newenvironment{todolist}
{\begin{itemize}
\setbeamertemplate{itemize item}{$\square$}
\setbeamertemplate{itemize subitem}{$\square$}
\setbeamertemplate{itemize subsubitem}{$\square$}}
{\end{itemize}}
% tables
\RequirePackage{tabularx}
\RequirePackage{booktabs}
% various tabular columns with text wrapping
\newcolumntype{L}{>{\arraybackslash}m{\linewidth}}
\newcolumntype{M}{>{\centering\arraybackslash}m{0.33\linewidth}}
\newcolumntype{Y}{>{\centering\arraybackslash}m{0.15\linewidth}}
\newcolumntype{y}{>{\arraybackslash}m{0.15\linewidth}}
% generic horizontally centered column with line breaks
\newcolumntype{Z}{>{\centering\arraybackslash}X}
% vertical centering of text in all tabularx columns
\renewcommand\tabularxcolumn[1]{m{#1}}
% links
\RequirePackage{hyperref}
% \hypersetup{colorlinks,linkcolor=,urlcolor=}
\hypersetup{
colorlinks,
anchorcolor=ubo,
citecolor=ubo,
linkcolor=,
urlcolor=ubo
}
% redefine title page
% https://tex.stackexchange.com/a/396409
% Section 6.2.3 of:
% https://ctan.math.illinois.edu/macros/latex/contrib/beamer-contrib/themes/moloch/moloch.pdf
\makeatletter
\setbeamertemplate{title page}{
\begin{minipage}[b][\paperheight]{\textwidth}
% \vfill%
\ifx\inserttitle\@empty\else\usebeamertemplate*{title}\fi
\ifx\insertsubtitle\@empty\else\usebeamertemplate*{subtitle}\fi
\vspace{.2cm}
\ifx\insertdate\@empty\else\usebeamertemplate*{date}\fi
\usebeamertemplate*{title separator}
\vspace{-.2cm}
\begin{columns}[]
\column{0.4\linewidth}
\ifx\beamer@shortauthor\@empty\else\usebeamertemplate*{author}\fi
\column{0.4\linewidth}
% \begin{table}[]
% \begin{flushleft}
% \small
% \begin{tabular}{ll}
% Rapporteur & Blabla \\
% Rapporteur & Blabla
% \end{tabular}
% \end{flushleft}
% \end{table}
\end{columns}
\begin{columns}[b]
\column{0.4\linewidth}
\ifx\insertinstitute\@empty\else\usebeamertemplate*{institute}\fi
\column{0.5\linewidth}
\vspace{-2cm}
\ifx\inserttitlegraphic\@empty\else\inserttitlegraphic\fi
\end{columns}
\vspace*{.2cm}
\end{minipage}
}
\makeatother

BIN
slides.pdf Normal file

Binary file not shown.

315
slides.tex Normal file
View File

@@ -0,0 +1,315 @@
\documentclass{slides}
\addbibresource{slides.bib}
\title{Mener un projet de recherche}
\subtitle{Bonnes pratiques ?}
\date{\today}
\titlegraphic{\flushright\includegraphics[height=1.3cm]{img/logos.png}\vspace{.5cm}}
\author{
\texorpdfstring{
\begin{table}[]
\begin{flushleft}
\begin{tabular}{ll}
& Vincent Lannurien~\inst{1}
\end{tabular}
\end{flushleft}
\end{table}
}
{
Vincent Lannurien
}
}
\institute{
\texorpdfstring{
\begin{table}[]
\centering
\begin{flushleft}
\begin{tabular}{L}
\inst{1}~Lab-STICC, CNRS UMR 6285, Université de Bretagne Occidentale, Brest
\end{tabular}
\end{flushleft}
\end{table}
}
{
Lab-STICC, CNRS UMR 6285, Université de Bretagne Occidentale, Brest
}
}
\begin{document}
\maketitle
\begin{frame}{Introduction}
\begin{center}
\begin{figure}
\centering
\includegraphics[width=.6\textwidth]{img/easy.png}
\end{figure}
\end{center}
\end{frame}
\begin{framefont}{\small}
\begin{frame}[t]{Plan de la présentation}
\begin{columns}
\column{0.5\textwidth}
\textbf{Objectif} : comprendre le fonctionnement d'un projet de recherche
\vspace{2em}
\tableofcontents[hideallsubsections]
\column{0.5\textwidth}
\begin{center}
\includegraphics[width=0.9\columnwidth]{img/frink.jpg}
\end{center}
\end{columns}
\end{frame}
\end{framefont}
\section{Généralités}
\begin{frame}{La thèse : un projet de recherche}
\begin{exampleblock}{Qu'est-ce que le travail de thèse ?}
\textbf{Apprendre la \emph{conduite d'un projet de} recherche, par la \emph{conduite d'un projet de} recherche}.
\end{exampleblock}
\end{frame}
\section{Enjeux}
\begin{frame}{Raisons}
Pourquoi fait-on un projet de recherche ?
\begin{itemize}
\item Origine du besoin ?
\begin{itemize}
\item Demande d'un industriel (Thales, ...)
\item Cadre national (ANR, ...) \TODO{glossaire}
\end{itemize}
\item Verrous scientifiques
\begin{itemize}
\item Problèmes ouverts dans la littérature
\item Solutions de l'état de l'art inadaptées à notre contexte
\end{itemize}
\end{itemize}
\end{frame}
\begin{frame}{Production, valorisation}
\begin{itemize}
\item Savoir à tout moment présenter le projet
\item Alimenter, au fur et à mesure, un jeu de slides
\begin{itemize}
\item Faire attention à nommer les partenaires (ajouter les logos des institutions, vérifier les affiliations des collègues)
\item Articuler la présentation correctement dès le départ (voir slide~\ref{frame:outils:plan})
\item Travail au long cours : ne pas hésiter à laisser des sections vides ou "en travaux"
\end{itemize}
\end{itemize}
\end{frame}
\section{Les étapes}
\begin{frame}{Planning}
\begin{enumerate}
\item Revue de la littérature
\begin{itemize}
\item Lire des papiers, relire des papiers (rôle du \textit{reviewer})
\end{itemize}
\item Conception d'un logiciel
\begin{itemize}
\item \textit{PoC} (\textit{Proof of Concept}, une reproduction minimale du problème considéré)
\item Simulateur (par modélisation, représenter un système dynamique dans son environnement)
\item Démonstrateur (avec un effort d'ingénierie, un environnement d'exécution réaliste)
\end{itemize}
\end{enumerate}
\end{frame}
\section{Le quotidien}
\begin{frame}{Organisation, logistique}
\begin{itemize}
\item Gérer le calendrier
\begin{itemize}
\item Planifier les réunions (rythme, répartition des tâches)
\begin{itemize}
\item 1 \textbf{réunion} = 1 \textbf{rappel} des discussions, 1 point d'\textbf{avancement}, 1 \textbf{planning} des tâches à venir
\end{itemize}
\item Envoyer les invitations aux réunions, les rappels
\end{itemize}
\item Gérer les livrables
\begin{itemize}
\item Versionnage et sauvegarde des fichiers (Git~\footfullcite{beejGit2025} !)
\end{itemize}
\item Faire de la recherche !
\begin{itemize}
\item Se tenir à jour des publications de référence
\item Avancer sur les développements
\item \textbf{Écrire} : alimenter des documents en continu
\end{itemize}
\end{itemize}
\end{frame}
\begin{frame}{Responsabilités}
\begin{columns}
\column{.5\textwidth}
\begin{itemize}
\item Recherche agentique
\end{itemize}
\begin{figure}
\centering
\includegraphics[width=0.5\columnwidth]{img/bullshit-meter.jpg}
\end{figure}
\column{.5\textwidth}
\begin{figure}
\centering
\includegraphics[width=0.8\columnwidth]{img/ia-backflip.jpg}
\end{figure}
\end{columns}
\end{frame}
\section{Outils}
\begin{frame}{Un plan pour les contrôler tous}
\label{frame:outils:plan}
\begin{alertblock}{Comment présenter un problème ?}
\begin{enumerate}
\item \textbf{Contexte} : le \textit{quoi} (domaine, application, processus) ;
\item \textbf{Problème} : le \textit{pourquoi} (qu'est-ce qui est coûteux, lent, sujet aux pannes) ;
\item \textbf{État de l'art} : le \textit{comment} (quelles sont les approches existantes dans la littérature ? en quoi sont-elles insuffisantes dans notre cadre spécifique ?)
\item \textbf{Solution} : le \textit{qu'est-ce qu'on fait} : présenter notre approche en la comparant aux solutions existantes ;
\item \textbf{Évaluation} : le \textit{comment on le mesure} : comment notre solution se comporte-t-elle par rapport à l'existant ? ;
\item \textbf{Conclusion} :
\begin{itemize}
\item en un paragraphe, reprendre les éléments précédents (une phrase par item) ;
\item dans un second paragraphe, établir les limites des travaux courants et ouvrir sur les travaux futurs.
\end{itemize}
\end{enumerate}
\end{alertblock}
\end{frame}
\begin{frame}{Écrire un papier}
À quoi ressemble un papier ?~\footfullcite{Zongker2006}
Comment lire un papier ?~\footfullcite{keshavHowReadPaper2007}
Comment écrire un papier ?~\footfullcite{microsoftresearchPhDHowWrite2016}
Comment on présente ses travaux ?~\footnote{La présentation de~\cite{Zongker2006} est disponible ici : \url{https://www.youtube.com/watch?v=yL_-1d9OSdk}}
\end{frame}
\begin{frame}[fragile]{Relire un papier}
\footnotesize
\begin{columns}
\column{.5\textwidth}
Ce qu'il faut savoir des \textit{reviewers} :
\begin{itemize}
\item Les \textit{reviewers} ont souvent plusieurs papiers à traiter
\item Comme tout le monde, les \textit{reviewers} sont en retard
\item Donc les \textit{reviewers} \textbf{cherchent la première bonne raison de rejeter un papier}
\end{itemize}
\vspace{2em}
Quand on relit un papier, on cherche :
\begin{itemize}
\item L'\textbf{application} : ça sert à quoi ?
\item La \textbf{vue d'ensemble} : ça s'insère où ? comment ça marche ?
\item La \textbf{comparaison} à l'existant : c'est intéressant ?
\item La \textbf{méthodologie} d'évaluation : c'est fiable ?
\end{itemize}
\column{.5\textwidth}
\begin{minted}[fontsize=\footnotesize]{md}
# Paper Title
## Summary
## Strengths
+ ...
## Weaknesses
- ...
## Discussion
## Decision
\end{minted}
\end{columns}
\end{frame}
\begin{frame}{Outils de travail}
\begin{columns}
\column{.6\textwidth}
\begin{itemize}
\item Éditeur \LaTeX : \href{https://www.overleaf.com/}{Overleaf}
\item Gestion des références : \href{https://www.zotero.org/}{Zotero}
\item Outils de la fac :
\begin{itemize}
\item \href{https://overleaf-info.univ-brest.fr/}{Instance Overleaf}
\item \href{https://ubocloud.univ-brest.fr/}{Instance Nextcloud} (partage de fichiers)
\end{itemize}
\item Outils de \href{https://lasuite.numerique.gouv.fr/}{LaSuite} :
\begin{itemize}
\item \href{https://visio.numerique.gouv.fr/}{Visio} (gestion des réunions)
\item \href{https://docs.numerique.gouv.fr/}{Docs} ("\textit{pad}" pour écrire un document partagé en Markdown)
\end{itemize}
\item Outils de \href{https://www.renater.fr/}{Renater} :
\begin{itemize}
\item \href{https://evento.renater.fr/}{Evento} : gestion de sondages (planification de réunion, etc.)
\item \href{https://filesender.renater.fr/}{FileSender} : envoi de fichiers volumineux
\end{itemize}
\end{itemize}
\column{.4\textwidth}
\begin{figure}
\centering
\includegraphics[width=.8\columnwidth]{img/draft.jpg}
\end{figure}
\end{columns}
\end{frame}
\begin{frame}{Checklist}
\begin{itemize}
\item Environnement de travail :
\begin{todolist}
\item Outils de développement
\begin{todolist}
\item IDE (VS Code)
\end{todolist}
\end{todolist}
\end{itemize}
\end{frame}
\begin{frame}[standout]
\footnotesize \emoji{robot} \href{https://git.sqrt.fr/courses/projet-recherche-slides}{\color{white} https://git.sqrt.fr/courses/projet-recherche-slides}
\end{frame}
\appendix
\section{Bibliographie}
\begin{frame}[allowframebreaks]{Références}
\printbibliography[heading=none]
\end{frame}
% \appendix
% \section{Annexes}
% \begin{frame}{Annexe 1 -- ...}
% \end{frame}
\end{document}