commit dc4ce0dc9e68e79df990727baa9ed1b1846553cf Author: khannurien Date: Tue Aug 18 10:55:21 2026 +0000 initial commit, initial ideas diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile new file mode 100644 index 0000000..f9b1d30 --- /dev/null +++ b/.devcontainer/Dockerfile @@ -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 diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 0000000..d41169f --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -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": {} +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5e6189a --- /dev/null +++ b/.gitignore @@ -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/ diff --git a/img/bullshit-meter.jpg b/img/bullshit-meter.jpg new file mode 100644 index 0000000..a4049a6 Binary files /dev/null and b/img/bullshit-meter.jpg differ diff --git a/img/draft.jpg b/img/draft.jpg new file mode 100644 index 0000000..6a5e6c7 Binary files /dev/null and b/img/draft.jpg differ diff --git a/img/easy.png b/img/easy.png new file mode 100644 index 0000000..3058740 Binary files /dev/null and b/img/easy.png differ diff --git a/img/frink.jpg b/img/frink.jpg new file mode 100644 index 0000000..70ce344 Binary files /dev/null and b/img/frink.jpg differ diff --git a/img/ia-backflip.jpg b/img/ia-backflip.jpg new file mode 100644 index 0000000..8ca3987 Binary files /dev/null and b/img/ia-backflip.jpg differ diff --git a/img/logos.png b/img/logos.png new file mode 100644 index 0000000..f9f03cf Binary files /dev/null and b/img/logos.png differ diff --git a/slides.bib b/slides.bib new file mode 100644 index 0000000..4f04203 --- /dev/null +++ b/slides.bib @@ -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} +} diff --git a/slides.cls b/slides.cls new file mode 100644 index 0000000..6ee1ca3 --- /dev/null +++ b/slides.cls @@ -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 diff --git a/slides.pdf b/slides.pdf new file mode 100644 index 0000000..10f2118 Binary files /dev/null and b/slides.pdf differ diff --git a/slides.tex b/slides.tex new file mode 100644 index 0000000..879a9fe --- /dev/null +++ b/slides.tex @@ -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}