first commit

master
Fabrice Mouhartem 6 years ago
commit d8ed79728c

2
.gitignore vendored

@ -0,0 +1,2 @@
__pycache__/
output/

@ -0,0 +1,124 @@
PY?=python3
PELICAN?=pelican
PELICANOPTS=
BASEDIR=$(CURDIR)
INPUTDIR=$(BASEDIR)/content
OUTPUTDIR=$(BASEDIR)/output
CONFFILE=$(BASEDIR)/pelicanconf.py
PUBLISHCONF=$(BASEDIR)/publishconf.py
FTP_HOST=localhost
FTP_USER=anonymous
FTP_TARGET_DIR=/
SSH_HOST=localhost
SSH_PORT=22
SSH_USER=root
SSH_TARGET_DIR=/var/www
S3_BUCKET=my_s3_bucket
CLOUDFILES_USERNAME=my_rackspace_username
CLOUDFILES_API_KEY=my_rackspace_api_key
CLOUDFILES_CONTAINER=my_cloudfiles_container
DROPBOX_DIR=~/Dropbox/Public/
GITHUB_PAGES_BRANCH=gh-pages
DEBUG ?= 0
ifeq ($(DEBUG), 1)
PELICANOPTS += -D
endif
RELATIVE ?= 0
ifeq ($(RELATIVE), 1)
PELICANOPTS += --relative-urls
endif
help:
@echo 'Makefile for a pelican Web site '
@echo ' '
@echo 'Usage: '
@echo ' make html (re)generate the web site '
@echo ' make clean remove the generated files '
@echo ' make regenerate regenerate files upon modification '
@echo ' make publish generate using production settings '
@echo ' make serve [PORT=8000] serve site at http://localhost:8000'
@echo ' make serve-global [SERVER=0.0.0.0] serve (as root) to $(SERVER):80 '
@echo ' make devserver [PORT=8000] start/restart develop_server.sh '
@echo ' make stopserver stop local server '
@echo ' make ssh_upload upload the web site via SSH '
@echo ' make rsync_upload upload the web site via rsync+ssh '
@echo ' make dropbox_upload upload the web site via Dropbox '
@echo ' make ftp_upload upload the web site via FTP '
@echo ' make s3_upload upload the web site via S3 '
@echo ' make cf_upload upload the web site via Cloud Files'
@echo ' make github upload the web site via gh-pages '
@echo ' '
@echo 'Set the DEBUG variable to 1 to enable debugging, e.g. make DEBUG=1 html '
@echo 'Set the RELATIVE variable to 1 to enable relative urls '
@echo ' '
html:
$(PELICAN) $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS)
clean:
[ ! -d $(OUTPUTDIR) ] || rm -rf $(OUTPUTDIR)
regenerate:
$(PELICAN) -r $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS)
serve:
ifdef PORT
cd $(OUTPUTDIR) && $(PY) -m pelican.server $(PORT)
else
cd $(OUTPUTDIR) && $(PY) -m pelican.server
endif
serve-global:
ifdef SERVER
cd $(OUTPUTDIR) && $(PY) -m pelican.server 80 $(SERVER)
else
cd $(OUTPUTDIR) && $(PY) -m pelican.server 80 0.0.0.0
endif
devserver:
ifdef PORT
$(BASEDIR)/develop_server.sh restart $(PORT)
else
$(BASEDIR)/develop_server.sh restart
endif
stopserver:
$(BASEDIR)/develop_server.sh stop
@echo 'Stopped Pelican and SimpleHTTPServer processes running in background.'
publish:
$(PELICAN) $(INPUTDIR) -o $(OUTPUTDIR) -s $(PUBLISHCONF) $(PELICANOPTS)
ssh_upload: publish
scp -P $(SSH_PORT) -r $(OUTPUTDIR)/* $(SSH_USER)@$(SSH_HOST):$(SSH_TARGET_DIR)
rsync_upload: publish
rsync -e "ssh -p $(SSH_PORT)" -P -rvzc --delete $(OUTPUTDIR)/ $(SSH_USER)@$(SSH_HOST):$(SSH_TARGET_DIR) --cvs-exclude
dropbox_upload: publish
cp -r $(OUTPUTDIR)/* $(DROPBOX_DIR)
ftp_upload: publish
lftp ftp://$(FTP_USER)@$(FTP_HOST) -e "mirror -R $(OUTPUTDIR) $(FTP_TARGET_DIR) ; quit"
s3_upload: publish
s3cmd sync $(OUTPUTDIR)/ s3://$(S3_BUCKET) --acl-public --delete-removed --guess-mime-type
cf_upload: publish
cd $(OUTPUTDIR) && swift -v -A https://auth.api.rackspacecloud.com/v1.0 -U $(CLOUDFILES_USERNAME) -K $(CLOUDFILES_API_KEY) upload -c $(CLOUDFILES_CONTAINER) .
github: publish
ghp-import -m "Generate Pelican site" -b $(GITHUB_PAGES_BRANCH) $(OUTPUTDIR)
git push origin $(GITHUB_PAGES_BRANCH)
.PHONY: html help clean regenerate serve serve-global devserver publish ssh_upload rsync_upload dropbox_upload ftp_upload s3_upload cf_upload github

@ -0,0 +1,18 @@
Title: 2016 โ€“ 2017: Architecture, Systรจme et Rรฉseaux 2
Date: 2016-10-28 10:37
Category: Teaching
Lang: en
**Lectures:** By [Michael Rao](http://perso.ens-lyon.fr/michael.rao/)
**Tutorials:** TBA
A description of the course is available [here](http://www.ens-lyon.fr/DI/?p=97).
This course is the second part of an [architecture](http://www.ens-lyon.fr/DI/?p=61) course. This part aims at providing knowledge about โ€œhow to use the underlying processors to do stuffโ€. That is, how the system manages all of this. Finally the course ends by giving some network intuitions.
Et je ne sais pas pourquoi j'ai expliquรฉ รงa en anglaisโ€ฆ
## Tutorials
***TBA***

@ -0,0 +1,39 @@
Title: 2015 โ€“ 2016: Computational Complexity
Date: 2016-09-19 15:21
Category: Teaching
Lang: en
save_as: CC15-16.html
URL: CC15-16.html
**Lectures:** By [Omar Fawzi](http://perso.ens-lyon.fr/omar.fawzi/), on Thursday 10:15 โ€” 12:15, Amphi ??\
**Tutorials:** On Tuesday 15:45 โ€” 17:45, Amphi B
A description of the course is available
[here](http://www.ens-lyon.fr/DI/?p=3932) and more extensive information is accessible
[here](http://perso.ens-lyon.fr/omar.fawzi/teaching/complexity/index.html).
To sum up, this course aims at making you more familiar with the different
complexity classes (i.e. a classification of the different computational
problems based on their asymptotical resource consumption).
## Tutorials
* [TD1](CC15-16/td01.pdf): On Turing machines.
* [TD2](CC15-16/td02.pdf): On Turing machines, and some $P/NP$ considerations.
* [TD3](CC15-16/td03.pdf): On Time Constructible Functions, NP-Completeness and Hierarchy.
* [TD4](CC15-16/td04.pdf): On Space Complexity
* [TD5](CC15-16/td05.pdf): Still on Space
* [TD6](CC15-16/td06.pdf): Padding and Oracles
* [TD7](CC15-16/td07.pdf): Time-Space tradeoff and Polynomial Hierarchy
* [TD8](CC15-16/td08.pdf): Two-players game, and circuit complexity
* [TD9](CC15-16/td09.pdf): Randomized Classes
* [TD10](CC15-16/td10.pdf): Randomized Computation
## Useful Resources
* Sanjeev Arora and Boaz Barak.
[Computational Complexity: A Modern Approach](http://theory.cs.princeton.edu/complexity/)
* *In French:* Sylvain Pรฉrifel.
[Complexitรฉ Algorithmique.](http://www.liafa.jussieu.fr/~sperifel/complexite.pdf)
* [Last year](https://builds.progval.net/ens/cours-m1/CplxAlgo/CplxAlgo.pdf)
lecture notes [[git]](http://git.aliens-lyon.fr/tpelliss/cours-m1).

@ -0,0 +1,31 @@
Title: 2016 โ€“ 2017: Computational Complexity
Date: 2016-10-04 12:40
Category: Teaching
Lang: en
save_as: CC16-17.html
URL: CC16-17.html
**Lectures:** By [Omar Fawzi](http://perso.ens-lyon.fr/omar.fawzi/)
**Tutorials:** TBA
A description of the course is available
[here](http://www.ens-lyon.fr/DI/?p=3932) and more extensive information is accessible
[here](http://perso.ens-lyon.fr/omar.fawzi/teaching/complexity/index.html).
To sum up, this course aims at making you more familiar with the different
complexity classes (i.e. a classification of the different computational
problems based on their asymptotical resource consumption).
## Tutorials
***TBA***
## Useful Resources
* Sanjeev Arora and Boaz Barak.
[Computational Complexity: A Modern Approach](http://theory.cs.princeton.edu/complexity/)
* *In French:* Sylvain Pรฉrifel.
[Complexitรฉ Algorithmique.](http://www.liafa.jussieu.fr/~sperifel/complexite.pdf)
* [2015](https://builds.progval.net/ens/cours-m1/CplxAlgo/CplxAlgo.pdf)
lecture notes [[git]](http://git.aliens-lyon.fr/tpelliss/cours-m1).
* [Last Year Course](http://perso.ens-lyon.fr/fabrice.mouhartem/CC15-16.html)

@ -0,0 +1,25 @@
Title: 2016 โ€“ 2017: Cryptography and Security
Date: 2016-10-17 17:34:14+02:00
Category: Teaching
Lang: en
**Lectures:** By [Benoรฎt Libert](http://perso.ens-lyon.fr/benoit.libert) and [Damien Stehlรฉ](http://perso.ens-lyon.fr/damien.stehle).
**Tutorials:** TBA
A description of the course is available [here](http://www.ens-lyon.fr/DI/?p=3929).
To sum up, this course aims at presenting the different constructions in cryptography, from symmetric primitives such as pseudorandom functions, constructions such as stream ciphers, operation modes... Going to provable security with public-key cryptosystems and game-based security proofs. If you want to know more, feel free to enroll the course โ˜บ
## Tutorials
***TBA***
## Useful Resources
* Jonathan Katz and Yehuda Lindell,
[Introduction to Modern Cryptography](http://www.cs.umd.edu/~jkatz/imc.html)
* [2015's](https://builds.progval.net/ens/cours-m1/Crypto/Crypto.pdf)
lecture notes [[git]](http://git.aliens-lyon.fr/tpelliss/cours-m1).
* The lectures of Dan Boneh on [coursera](https://fr.coursera.org/learn/crypto#syllabus).

Binary file not shown.

After

Width:  |  Height:  |  Size: 297 B

@ -0,0 +1,130 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="86.791985mm"
height="73.521156mm"
viewBox="0 0 307.53065 260.50803"
id="svg64695"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="canard_vectorise.svg">
<defs
id="defs64697" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.98994949"
inkscape:cx="188.21602"
inkscape:cy="140.62039"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:window-width="1362"
inkscape:window-height="729"
inkscape:window-x="0"
inkscape:window-y="18"
inkscape:window-maximized="0" />
<metadata
id="metadata64700">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Calque 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-351.94896,-93.536766)">
<path
style="fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1"
d="m 510.13374,173.93983 45.25488,-21.2132 -34.64828,58.33631 z"
id="path34733"
inkscape:connector-curvature="0" />
<path
style="fill:#00ff66;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1"
d="m 513.56902,174.35126 42,-21.5 -36,65 z"
id="path34731"
inkscape:connector-curvature="0" />
<path
style="fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1"
d="m 352.44893,112.42154 60.45763,21.2132 -14.84925,-27.57716 -43.84062,3.53553 z"
id="path34735"
inkscape:connector-curvature="0" />
<path
style="fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1"
d="m 535.58962,195.50659 47.7297,-23.68808 75.3068,70.00357 -108.1046,-16.38909 z"
id="path34737"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
<path
style="fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1"
d="m 437.30174,139.9987 76.72109,34.29468 93.69169,62.2254 c 0,0 -133.99678,-32.52691 -135.41099,-33.94113 -1.41422,-1.41421 -35.00179,-62.57895 -35.00179,-62.57895 z"
id="path34747"
inkscape:connector-curvature="0" />
<path
style="fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1"
d="m 537.00382,201.87055 46.3155,-29.34493 75.6604,70.00357 -129.7541,-17.32412 z"
id="path34739"
inkscape:connector-curvature="0" />
<path
style="fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1"
d="m 380.7332,126.21012 8.83883,-32.173357 30.37006,2.06066 39.98707,54.154327 -31.81981,4.94975 -11.66726,-18.73833 z"
id="path34741"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccccc" />
<path
style="fill:#00ff66;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1"
d="m 452.85809,151.66597 156.97773,88.38834 -117.0262,20.5061 -38.89087,-51.26524 -13.43503,-48.08326 13.78858,-9.19239 z"
id="path34749"
inkscape:connector-curvature="0" />
<path
style="fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1"
d="m 492.97016,260.49791 103.07706,93.04704 -81.06729,-166.60943 -5.90686,59.1292 z"
id="path34751"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
<path
style="fill:#00ff66;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1"
d="m 381.79386,126.56367 7.42462,-31.8198 29.69848,3.535534 39.59798,62.225396 -4.24264,48.79037 -36.06244,-52.67946 -7.07107,-15.9099 z"
id="path34745"
inkscape:connector-curvature="0" />
<path
style="fill:#00ff66;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1"
d="m 380.31902,125.60126 78.25,35.25 -40.5,-62.999996 -30,-2.75 z"
id="path34757"
inkscape:connector-curvature="0" />
<path
style="fill:#33ff66;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1"
d="m 515.08349,186.70329 -22.17767,73.96067 103.4949,92.52744 -68.5893,-123.74369 z"
id="path34753"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 456.31902,151.35126 87.25,45.25"
id="path34759"
inkscape:connector-curvature="0" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.8 KiB

@ -0,0 +1,84 @@
Title: Bienvenue
Date: 2016-09-19 15:20
Slug: home
Lang: fr
URL: index-fr.html
save_as: index-fr.html
Prรฉsentation
------------
Bienvenue sur ma page personnelle professionnelle.
Je suis actuellement en deuxiรจme annรฉe de thรจse dans l'รฉquipe [AriC](http://www.ens-lyon.fr/LIP/AriC/) au
[LIP](http://www.ens-lyon.fr/LIP/) (*Laboratoire de lโ€™Informatique et du Parallรฉlisme*) ร  Lyon sous la direction de [Benoit Libert](http://perso.ens-lyon.fr/benoit.libert/),
je travaille sur la
**cryptographie protรฉgeant la vie privรฉe avec des fonctionnalitรฉs avancรฉes**.
Mon CV est disponible en [franรงais](documents/cv.pdf) ou en [anglais](documents/cv_english.pdf).
Me contacter
------------
**e-mail** : `ocaml <<<'(fun p n -> p ^ "." ^ n ^ "@ens-lyon.fr") "fabrice" "mouhartem";;'`{.ocaml}\
Ma clรฉ publique __PGP__ est disponible [ici](documents/pubkey.asc).
<div class="container"> <div class=".row"> <div class="six columns">
**Adresse postale** :
```
ร‰cole Normale Supรฉrieure de Lyon
AriC Team, LIP laboratory
46 Allรฉe d'Italie
69364 Lyon Cedex 07
France
```
**Tรฉlรฉphone** :
`04.72.72.83.52`
</div><div class="eight columns">
<div id="enslyon" style="align:right;height:300px;width:100%"></div>
<script type="text/javascript">
var mymap = L.map('enslyon').setView([45.72965, 4.82707], 17);
L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', { attribution: '&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors' }).addTo(mymap);
var marker=L.marker([45.72998, 4.82676]).addTo(mymap);
marker.bindPopup("GN1 313 Sud");
</script>
</div></div></div>
Oรน me trouver ?
---------------
Les endroits oรน j'ai pu me trouver ou me trouverai:
* Le bureau N329 au [LIP](http://www.ens-lyon.fr/LIP/).
* Les [Lattice Meetings](http://perso.ens-lyon.fr/damien.stehle/LATTICE_MEETINGS.html), et ร  celle de [Londres](http://malb.io/discrete-subgroup/2016/09/21/lattice-meeting/).
* Aux **Confรฉrencesโ€ฏ**:
[Arith 22](http://arith22.gforge.inria.fr/),
[Asiacrypt 2015](https://www.math.auckland.ac.nz/~sgal018/AC2015/index.html),
[PKC 2016](http://troll.iis.sinica.edu.tw/pkc16/index.shtml),
[Eurocrypt 2016](http://ist.ac.at/eurocrypt2016/),
[AsiaCCS 2016](http://meeting.xidian.edu.cn/conference/AsiaCCS2016/),
[ACNS 2016](http://acns2016.sccs.surrey.ac.uk/cfp.html),
[Crypto 2016](http://www.iacr.org/conferences/crypto2016/),
[TCC 2016-B](http://tcc2016b.sklois.cn/),
[Asiacrypt 2016](http://www.asiacrypt2016.org/).
* Aux rencontres du **GDR-IMโ€ฏ**:
Les [Journรฉes du GT-C2](http://imath.univ-tln.fr/C2/),
[Journรฉes Nationales 2016 du GDR-IM](https://lipn.univ-paris13.fr/GDR-IM-2016/),
[RAIM 2016](http://raim2016.sciencesconf.org/),
[JNCF 2017](https://jncf2017.lip6.fr/).
Enseignements
=============
* **2016 โ€” 2017**
* TD/TP d'***Architecture, Systรจmes et Rรฉseaux 2*** en L3IF dont le cours est donnรฉ par [Michaรซl Rao](http://perso.ens-lyon.fr/michael.rao).
* TDs de [*Cryptologie*](http://perso.ens-lyon.fr/damien.stehle/teaching.html) en M1IF, dont le cours est donnรฉ par [Damien Stehlรฉ](http://perso.ens-lyon.fr/damien.stehle) et [Benoรฎt Libert](http://perso.ens-lyon.fr/benoit.libert).
* TDs de ***Complexitรฉ Algorithmique*** en M1IF, cours donnรฉs par [Omar Fawzi](http://perso.ens-lyon.fr/omar.fawzi/).
* **2015 โ€” 2016** :
* TD/TP de [*Thรฉorie de la programmation*](https://perso.ens-lyon.fr/philippe.audebaud/ThPr/) en L3IF,
cours donnรฉs par [Philippe Audebaud](https://perso.ens-lyon.fr/philippe.audebaud/), TDs donnรฉs avec
[Anupam Das](http://www.anupamdas.com/) et [Antoine Plet](http://perso.ens-lyon.fr/antoine.plet/).
* TDs de [*Complexitรฉ Algorithmique*](CC15-16.html) en M1IF, cours donnรฉs par [Omar Fawzi](http://perso.ens-lyon.fr/omar.fawzi/).

@ -0,0 +1,82 @@
Title: Home
Date: 2016-09-19 15:21
Slug: home
Lang: en
URL:
save_as: index.html
Presentation
------------
Welcome to my personal page.
I am a second year Ph.D. student at the [LIP](http://www.ens-lyon.fr/LIP/)
(*Laboratoire de lโ€™Informatique et du Parallรฉlisme*) in Lyon supervised by
[Benoit Libert](http://perso.ens-lyon.fr/benoit.libert/) on **privacy-enhancing cryptography with advanced functionalities**.
My resume is available either in [English](documents/cv_english.pdf) or
in [French](documents/cv.pdf).
Contact
-------
If you want to contact me for any reason, it is possible by mail through the
address `sed 's/#/fabrice/;s/#/mouhartem/' <<<'#.#@ens-lyon.fr'`, my gpg public
key is available [here](documents/pubkey.asc).
<div class="container"> <div class=".row"> <div class="six columns">
Snailmail address:
```
ร‰cole Normale Supรฉrieure de Lyon
AriC Team, LIP laboratory
46 Allรฉe d'Italie
69364 Lyon Cedex 07
France
```
**Telephone number:** `04.72.72.83.52`
</div><div class="eight columns">
<div id="enslyon" style="align:right;height:300px;width:100%"></div>
<script type="text/javascript">
var mymap = L.map('enslyon').setView([45.72965, 4.82707], 17);
L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', { attribution: '&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors' }).addTo(mymap);
var marker=L.marker([45.72998, 4.82676]).addTo(mymap);
marker.bindPopup("GN1 313 Sud");
</script>
</div></div></div>
Where am I?
-----------
Places where I was, be or will be:
* The office N329 at [LIP](http://www.ens-lyon.fr/LIP/) in Lyon.
* Usually in the [(Soft) Lattice Meetings](http://perso.ens-lyon.fr/damien.stehle/LATTICE_MEETINGS.html), and the [London-ish lattice meeting](http://malb.io/discrete-subgroup/2016/09/21/lattice-meeting/).
* **Conferences**:
[Arith 22](http://arith22.gforge.inria.fr/),
[Asiacrypt 2015](https://www.math.auckland.ac.nz/~sgal018/AC2015/index.html),
[PKC 2016](http://troll.iis.sinica.edu.tw/pkc16/index.shtml),
[Eurocrypt 2016](http://ist.ac.at/eurocrypt2016/),
[AsiaCCS 2016](http://meeting.xidian.edu.cn/conference/AsiaCCS2016/),
[ACNS 2016](http://acns2016.sccs.surrey.ac.uk/cfp.html),
[Crypto 2016](http://www.iacr.org/conferences/crypto2016/),
[TCC 2016-B](http://tcc2016b.sklois.cn/),
[Asiacrypt 2016](http://www.asiacrypt2016.org/).
* **Meetings**:
[Journรฉes C2](http://imath.univ-tln.fr/C2/),
[Journรฉes Nationales 2016 du GDR-IM](https://lipn.univ-paris13.fr/GDR-IM-2016/),
[RAIM 2016](http://raim2016.sciencesconf.org/),
[JNCF 2017](https://jncf2017.lip6.fr/).
Teaching
========
* **2016 โ€” 2017**:
+ **Bachelor** โ€“ Tutorials of ***Architecture, Systรจme et Rรฉseaux 2***. This course mainly deals with operating systems and networks. The course is given by [Michael Rao](http://perso.ens-lyon.fr/michael.rao/).
+ **Master 1** โ€“ Tutorials of [*Cryptology*](http://perso.ens-lyon.fr/damien.stehle/teaching.html). The course is jointly given by [Damien Stehlรฉ](http://perso.ens-lyon.fr/damien.stehle/) and [Benoรฎt Libert](http://perso.ens-lyon.fr/benoit.libert/).
+ **Master 1** โ€“ Tutorials of ***Computational Complexity***, the main course is taught by [Omar Fawzi](http://perso.ens-lyon.fr/omar.fawzi/)
* **2015 โ€” 2016**:
+ **Bachelor** โ€“ Tutorials of [*Programming Theory*](https://perso.ens-lyon.fr/philippe.audebaud/ThPr/), the main
course is given by [Philippe Audebaud](https://perso.ens-lyon.fr/philippe.audebaud/) and the tutorial is given with [Anupam Das](http://www.anupamdas.com/) and [Antoine Plet](http://perso.ens-lyon.fr/antoine.plet/)
+ **Master 1** โ€“ Tutorials of [*Computational Complexity*](CC15-16.html), the main course is taught by [Omar Fawzi](http://perso.ens-lyon.fr/omar.fawzi/)

@ -0,0 +1,84 @@
Title: Recherche
Date: 2016-09-20
Slug: research
Lang: fr
Publications
------------
### Confรฉrences
* Benoit Libert, San Ling, Fabrice Mouhartem, Khoa Nguyen et Huaxiong Wang.
Signature Schemes with Efficient Protocols and Dynamic Group Signatures from Lattice Assumptions.
ร€ paraรฎtre, Asiacrypt'16.
*eprint [2016/101](http://ia.cr/2016/101)*. 2016.
* Benoit Libert, San Ling, Fabrice Mouhartem, Khoa Nguyen et Huaxiong Wang.
Zero-Knowledge Arguments for Matrix-Vector Relations and Lattice-Based Group Encryption
ร€ paraรฎtre, Asiacrypt'16.
*ePrint [2016/879](http://ia.cr/2016/879)*. 2016.
* Benoรฎt Libert, Fabrice Mouhartem and Khoa Nguyen. A Lattice-Based Group
Signature Scheme with Message-Dependent Opening. ร€ *<abbr title="Applied Cryptography and Network Security">ACNS</abbr>'16*. 2016. [[version complรจte | hal]](https://hal.inria.fr/hal-01302790)
* Benoรฎt Libert, Fabrice Mouhartem, Thomas Peters et Moti Yung. Practical
โ€œSignatures with Efficient Protocolsโ€ from Simple Assumptions. ร€ *AsiaCCS'16*. 2016. [[version complรจte | hal]](https://hal.inria.fr/hal-01303696)
Exposรฉs
-------
### Confรฉrences et Sรฉminaires
* Prรฉsentations en **Confรฉrences**:
* 01/06/2016: [AsiaCCS](http://meeting.xidian.edu.cn/conference/AsiaCCS2016/home.html); *Practical โ€œSignatures with Efficient Protocolsโ€ from Simple Assumptions*.
* 20/06/2016: [Applied Cryptography and Network Security](http://acns2016.sccs.surrey.ac.uk/index.html); *A Lattice-Based Group Signature Scheme with Message-Dependent Opening*.
* [Sรฉminaire AriC](http://www.ens-lyon.fr/LIP/AriC/seminar):
* 24/09/2015: *Lattice-based group signatures for dynamic groups*.
* 16/06/2016: *Crypto's fair: Lattice-Based Group Encryption*.
* [Lattice and Crypto Meetings](http://perso.ens-lyon.fr/damien.stehle/LATTICE_MEETINGS.html):
* 01/10/2015: *Lattice-based group signatures for dynamic groups*.
* Rencontres du [GDR-IM](https://www.gdr-im.fr/):
* 06/10/2015: [Journรฉes du GT-C2](http://imath.univ-tln.fr/C2/); *Signature de groupe dynamique ร  base de rรฉseaux euclidiens*
* 30/06/2016: Journรฉes du GT-Arith ([RAIM](http://raim2016.sciencesconf.org/)); *Signature de Groupes et Rรฉseaux Euclidiens*
### Vulgarisation/Grand Public
* 22/10/2016: [Journรฉes Nationales de l'APMEP](http://www.jnlyon2016.fr/) sur *L'origami est NP-Complet* [[Prรฉsentation]](../documents/APMEP-16.pdf)
* 15/10/2016: [Fรชte de la science](http://fetedelascience.ens-lyon.fr/origami-une-histoire-de-papier-et-de-mathematique-270357.kjsp?RH=1446795779287)โ€ฏ:
* Animation d'un atelier sur l'**origami**
* ยซ Causerie mathรฉmatique ยป de 20 minutes sur *les preuves sans divulgation de connaissances* [[Prรฉsentation]](../documents/FDLS-ZK.pdf)
* 15/06/2016: Journรฉe des laurรฉats du [concours Al-Kindi](http://www.concours-alkindi.fr/#/); *Aperรงu de la Cryptographie Moderne: Le Vote ร‰lectronique*
* [Sรฉminaire de la dรฉtente mathรฉmatique](http://math.univ-lyon1.fr/mmi/-Detente-mathematique-)
* [19/11/2015](http://math.univ-lyon1.fr/mmi/Sur-les-preuves-sans-divulgation): Sur *les preuves ร  divulgation nulle de connaissance* [[Prรฉsentation]](../documents/Preuve_ZK.pdf)
* [16/03/2016](http://www.mmi-lyon.fr/Origami): *Origamis* [[Prรฉsentation]](../documents/Origami.pdf)
* 10/10/2015: [Fรชte de la science](http://fetedelascience.ens-lyon.fr/mathematiques-et-informatique-magimatique-origami-et-ludotheque-mathematique-320244.kjsp?RH=1435568685904), animation d'un atelier sur l'**origami**.
#### Addendum
**Marie Lhuissier** a proposรฉ un [rรฉsumรฉ colorรฉ](http://images.math.cnrs.fr/Sur-les-preuves-sans-divulgation-de-connaissance.html) pour l'exposรฉ sur *les preuves ร  divulgation nulle de connaissances* pour la rubrique [images des maths](http://images.math.cnrs.fr/+-Carnets-de-route-de-la-MMI-+.html) du [CNRS](http://cnrs.fr).
Stages
------
* M2 : *Conception dโ€™un schรฉma de signature de groupes dynamique fondรฉ sur
les rรฉseaux euclidiens*, avec Benoรฎt Libert au [LIP](http://www.ens-lyon.fr/LIP/web-n/). [[Rapport (en)]](../documents/M2_Internship_report.pdf) [[Prรฉsentation (en)]](../documents/M2_Internship_presentation.pdf)
- M1 : *Sur le logarithme discret en petite caractรฉristique*, avec
Frรฉderik Vercauteren au [KU Leuven](http://www.kuleuven.be/english).
[\[Rapport (en)\]](../documents/M1_Internship_report.pdf)
[\[Prรฉsentation (en)\]](../documents/M1_Internship_presentation.pdf)
- L3 : *Amรฉlioration des performances รฉnergรฉtiques pour le GPGPU en
exploitant la rรฉgularitรฉ des donnรฉes*, avec Sylvain Collange ร 
[lโ€™INRIA Rennes](http://www.inria.fr/equipes/alf). [[Rapport]](../documents/L3_Stage_rapport.pdf) [[Prรฉsentation (en)]](../documents/L3_Stage_presentation.pdf)
Centres dโ€™intรฉrรชts
------------------
Mes centres dโ€™intรฉrรชts scientifiques sont principalement la *cryptologie*, le *calcul formel* et en particulier la *thรฉorie algorithmique des nombres*.
En dehors de รงa, je suis intรฉressรฉ par les problรจmes relatifs ร  la *combinatoire*.
Notes de Cours
--------------
Mes notes du [cours de probabilitรฉ](download/probabilite.pdf) de Pascal Koiran.
Mes notes de M1 (incomplรจtes) sont disponibles sur ce dรฉpot git :
<http://git.aliens-lyon.fr/fmouhart/cours-m1>,
une version plus complรจte repris par les plus jeunes est disponible [ici](http://git.aliens-lyon.fr/tpelliss/cours-m1).

@ -0,0 +1,69 @@
Title: Research
Date: 2016-09-19 15:21
Slug: research
Lang: en
Publications
------------
### Conference Paper
* Benoit Libert, San Ling, Fabrice Mouhartem, Khoa Nguyen and Huaxiong Wang.
Signature Schemes with Efficient Protocols and Dynamic Group Signatures from Lattice Assumptions.
To appear, Asiacrypt'16.
*ePrint report [2016/101](http://ia.cr/2016/101)*. 2016.
* Benoit Libert, San Ling, Fabrice Mouhartem, Khoa Nguyen and Huaxiong Wang.
Zero-Knowledge Arguments for Matrix-Vector Relations and Lattice-Based Group Encryption.
To appear, Asiacrypt'16.
*ePrint report [2016/879](http://ia.cr/2016/879)*. 2016.
* Benoรฎt Libert, Fabrice Mouhartem and Khoa Nguyen. A Lattice-Based Group Signature Scheme with Message-Dependent Opening. In *<abbr title="Applied Cryptography and Network Security">ACNS</abbr>'16*. 2016. [[full version | hal]](https://hal.inria.fr/hal-01302790)
* Benoรฎt Libert, Fabrice Mouhartem, Thomas Peters and Moti Yung. Practical
โ€œSignatures with Efficient Protocolsโ€ from Simple Assumptions. In *AsiaCCS'16*. 2016. [[full version | hal]](https://hal.inria.fr/hal-01303696)
Talks
-----
### Conferences and Seminars
* **Conferences**:
* 01/06/2016: [AsiaCCS](http://meeting.xidian.edu.cn/conference/AsiaCCS2016/home.html); *Practical โ€œSignatures with Efficient Protocolsโ€ from Simple Assumptions*.
* 20/06/2016: [Applied Cryptography and Network Security](http://acns2016.sccs.surrey.ac.uk/index.html); *A Lattice-Based Group Signature Scheme with Message-Dependent Opening*.
* [Aric Seminar](http://www.ens-lyon.fr/LIP/AriC/seminar):
* 24/09/2015: *Lattice-based group signatures for dynamic groups*.
* 16/06/2016: *Crypto's fair: Lattice-Based Group Encryption*.
* [Lattice and Crypto Meetings](http://perso.ens-lyon.fr/damien.stehle/LATTICE_MEETINGS.html):
* 01/10/2015: *Lattice-based group signatures for dynamic groups*.
* [GDR-IM](https://www.gdr-im.fr/)'s Meetings:
* 06/10/2015: [GT-C2's days](http://imath.univ-tln.fr/C2/); *Signature de groupe dynamique ร  base de rรฉseaux euclidiens* (in French)
* 30/06/2016: GT-Arith's days ([RAIM](http://raim2016.sciencesconf.org/)); *Signature de Groupes et Rรฉseaux Euclidiens* (in French)
### Popularisation (In [French](research-fr.html))
* 22/10/2016: [Journรฉes Nationales de l'APMEP](http://www.jnlyon2016.fr/) about the *NP-Completeness of Origami* [[Prรฉsentation (fr)]](../documents/APMEP-16.pdf)
* 15/10/2016: [Fรชte de la science](http://fetedelascience.ens-lyon.fr/)โ€ฏ:
* workshop about mathematical origamis
* 20 min. popularisation talk about *zero-knowledge proofs* [[Prรฉsentation (fr)]](../documents/FDLS-ZK.pdf)
* 15/06/2016: [Al-Kindi Contest](http://www.concours-alkindi.fr/#/) laureates' day; *A glance at modern cryptograhy: e-voting*
* [Recreational Mathematics Seminar](http://math.univ-lyon1.fr/mmi/-Detente-mathematique-)
* [19/11/2014](http://math.univ-lyon1.fr/mmi/Sur-les-preuves-sans-divulgation): *Zero-Knowledge Proofs* [[Prรฉsentation (fr)]](../documents/Preuve_ZK.pdf)
* [16/03/2016](http://math.univ-lyon1.fr/mmi/Origami): *Origamis* [[Prรฉsentation (fr)]](../documents/Origami.pdf)
* 10/10/2015: โ€œ[Fรชte de la Science](http://fetedelascience.ens-lyon.fr/)โ€, workshop about *mathematical origamis*
Internships
-----------
* Master 2: *Lattice-based group signature scheme for dynamic groups*, with Benoรฎt Libert, at the [LIP](http://www.ens-lyon.fr/LIP/web-n/). [[Report]](../documents/M2_Internship_report.pdf) [[Presentation]](../documents/M2_Internship_presentation.pdf)
- Master 1: *On the discrete logarithm problem in small characteristic*,
with Frรฉderik Vercauteren in [KU
Leuven](http://www.kuleuven.be/english). [\[Report\]](../documents/M1_Internship_report.pdf) [\[Presentation\]](documents/M1_Internship_presentation.pdf)
- Bachelor: *Improving GPU energy efficiency using data locality*, with
Sylvain Collange at [INRIA Rennes](http://www.inria.fr/equipes/alf).
[\[Report (fr)\]](../documents/L3_Stage_rapport.pdf) [\[Presentation\]](documents/L3_Stage_presentation.pdf)
Interests
---------
I am particularly interested in *cryptology* and in *computer algebra*.
I am also interested in *combinatoric*.

@ -0,0 +1,24 @@
Title: Et Cรฆtera
Date: 2016-09-20
Slug: etc
Lang: fr
Passe-temps
-----------
<center>![Canard Origami](../images/canard-origami.svg)</center>
- [Origami](https://www.flickr.com/photos/chouhartem/) : entre le
passe-temps et la passion. Adhรฉrent [MFPP](http://mfpp-origami.fr/).
* Entre autre, jโ€™ai รฉcrit un article pour la revue [Le Pli](http://mfpp-origami.fr/en/le-pli/)
nยฐ[137](http://mfpp-origami.fr/en/le-pli-n-137-2015/), et un court encadrรฉ pour le Pli
nยฐ[138](http://mfpp-origami.fr/en/le-pli-n-138-2015/).
* J'ai รฉtรฉ aux conventions [LUO](http://ooraa.free.fr/index.html) #6, #7 et #8, ainsi qu'aux [Rencontres de Mai](http://mfpp-origami.fr/agenda/rencontres-de-mai/) 2015 et 2016.
Projets
-------
* J'ai contribuรฉ ร  [origram](http://origram.org/), un simulateur de pliages de
papiers, initialement pensรฉ pour aider les crรฉateurs ร  diagrammer.
* [EnigML](http://git.aliens-lyon.fr/fmouhart/enigml) : un simulateur de la machine
[enigma](https://fr.wikipedia.org/wiki/Enigma_(machine)), รฉcrite en **OCaml**.

@ -0,0 +1,19 @@
Title: Et Cรฆtera
Date: 2016-09-20
Slug: etc
Lang: en
Hobbies
-------
<center>![Canard Origami](../images/canard-origami.svg)</center>
- [Origami](https://www.flickr.com/photos/chouhartem/): from time to time
I fold some pieces of paper. I'm a member of the [MFPP](http://mfpp-origami.fr/en/) association. I also attend to origami convention from time to time: [LUO](http://ooraa.free.fr/index-eng.html) and [MFPP Meetings](http://mfpp-origami.fr/agenda/rencontres-de-mai/).
Projects
--------
* [Origram](http://origram.org/): an origami simulator and diagrammer.
* [EnigML](http://git.aliens-lyon.fr/fmouhart/enigml): an [enigma
machine](https://en.wikipedia.org/wiki/Enigma_machine) simulator in **OCaml**.

@ -0,0 +1,103 @@
#!/usr/bin/env bash
##
# This section should match your Makefile
##
PY=${PY:-python3}
PELICAN=${PELICAN:-pelican}
PELICANOPTS=
BASEDIR=$(pwd)
INPUTDIR=$BASEDIR/content
OUTPUTDIR=$BASEDIR/output
CONFFILE=$BASEDIR/pelicanconf.py
###
# Don't change stuff below here unless you are sure
###
SRV_PID=$BASEDIR/srv.pid
PELICAN_PID=$BASEDIR/pelican.pid
function usage(){
echo "usage: $0 (stop) (start) (restart) [port]"
echo "This starts Pelican in debug and reload mode and then launches"
echo "an HTTP server to help site development. It doesn't read"
echo "your Pelican settings, so if you edit any paths in your Makefile"
echo "you will need to edit your settings as well."
exit 3
}
function alive() {
kill -0 $1 >/dev/null 2>&1
}
function shut_down(){
PID=$(cat $SRV_PID)
if [[ $? -eq 0 ]]; then
if alive $PID; then
echo "Stopping HTTP server"
kill $PID
else
echo "Stale PID, deleting"
fi
rm $SRV_PID
else
echo "HTTP server PIDFile not found"
fi
PID=$(cat $PELICAN_PID)
if [[ $? -eq 0 ]]; then
if alive $PID; then
echo "Killing Pelican"
kill $PID
else
echo "Stale PID, deleting"
fi
rm $PELICAN_PID
else
echo "Pelican PIDFile not found"
fi
}
function start_up(){
local port=$1
echo "Starting up Pelican and HTTP server"
shift
$PELICAN --debug --autoreload -r $INPUTDIR -o $OUTPUTDIR -s $CONFFILE $PELICANOPTS &
pelican_pid=$!
echo $pelican_pid > $PELICAN_PID
cd $OUTPUTDIR
$PY -m pelican.server $port &
srv_pid=$!
echo $srv_pid > $SRV_PID
cd $BASEDIR
sleep 1
if ! alive $pelican_pid ; then
echo "Pelican didn't start. Is the Pelican package installed?"
return 1
elif ! alive $srv_pid ; then
echo "The HTTP server didn't start. Is there another service using port" $port "?"
return 1
fi
echo 'Pelican and HTTP server processes now running in background.'
}
###
# MAIN
###
[[ ($# -eq 0) || ($# -gt 2) ]] && usage
port=''
[[ $# -eq 2 ]] && port=$2
if [[ $1 == "stop" ]]; then
shut_down
elif [[ $1 == "restart" ]]; then
shut_down
start_up $port
elif [[ $1 == "start" ]]; then
if ! start_up $port; then
shut_down
fi
else
usage
fi

94
fabfile.py vendored

@ -0,0 +1,94 @@
from fabric.api import *
import fabric.contrib.project as project
import os
import shutil
import sys
import SocketServer
from pelican.server import ComplexHTTPRequestHandler
# Local path configuration (can be absolute or relative to fabfile)
env.deploy_path = 'output'
DEPLOY_PATH = env.deploy_path
# Remote server configuration
production = 'root@localhost:22'
dest_path = '/var/www'
# Rackspace Cloud Files configuration settings
env.cloudfiles_username = 'my_rackspace_username'
env.cloudfiles_api_key = 'my_rackspace_api_key'
env.cloudfiles_container = 'my_cloudfiles_container'
# Github Pages configuration
env.github_pages_branch = "gh-pages"
# Port for `serve`
PORT = 8000
def clean():
"""Remove generated files"""
if os.path.isdir(DEPLOY_PATH):
shutil.rmtree(DEPLOY_PATH)
os.makedirs(DEPLOY_PATH)
def build():
"""Build local version of site"""
local('pelican -s pelicanconf.py')
def rebuild():
"""`clean` then `build`"""
clean()
build()
def regenerate():
"""Automatically regenerate site upon file modification"""
local('pelican -r -s pelicanconf.py')
def serve():
"""Serve site at http://localhost:8000/"""
os.chdir(env.deploy_path)
class AddressReuseTCPServer(SocketServer.TCPServer):
allow_reuse_address = True
server = AddressReuseTCPServer(('', PORT), ComplexHTTPRequestHandler)
sys.stderr.write('Serving on port {0} ...\n'.format(PORT))
server.serve_forever()
def reserve():
"""`build`, then `serve`"""
build()
serve()
def preview():
"""Build production version of site"""
local('pelican -s publishconf.py')
def cf_upload():
"""Publish to Rackspace Cloud Files"""
rebuild()
with lcd(DEPLOY_PATH):
local('swift -v -A https://auth.api.rackspacecloud.com/v1.0 '
'-U {cloudfiles_username} '
'-K {cloudfiles_api_key} '
'upload -c {cloudfiles_container} .'.format(**env))
@hosts(production)
def publish():
"""Publish to production via rsync"""
local('pelican -s publishconf.py')
project.rsync_project(
remote_dir=dest_path,
exclude=".DS_Store",
local_dir=DEPLOY_PATH.rstrip('/') + '/',
delete=True,
extra_opts='-c',
)
def gh_pages():
"""Publish to GitHub Pages"""
rebuild()
local("ghp-import -b {github_pages_branch} {deploy_path}".format(**env))
local("git push origin {github_pages_branch}".format(**env))

@ -0,0 +1,66 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*- #
from __future__ import unicode_literals
AUTHOR = 'Fabrice Mouhartem'
SITENAME = 'Fabrice Mouhartem'
SITEURL = ''
PATH = 'content'
TIMEZONE = 'Europe/Paris'
DEFAULT_LANG = 'en'
# Feed generation is usually not desired when developing
FEED_ALL_ATOM = None
CATEGORY_FEED_ATOM = None
TRANSLATION_FEED_ATOM = None
AUTHOR_FEED_ATOM = None
AUTHOR_FEED_RSS = None
# Theme & Plugins
PLUGIN_PATHS = ['./plugins/']
PLUGINS = ['pandoc_reader']
PANDOC_ARGS = [
'--mathml',
]
THEME = 'theme'
#Themes customs
#TWITTER_URL = 'https://twitter.com/cryptomoumou'
PIWIK_URL = 'epheme.re/stats/piwik'
PIWIK_ID = '1'
#INDEX_SAVE_AS= 'blog_index.html'
DISPLAY_CATEGORIES_ON_MENU = True
MENUITEMS = (('Resume', '/documents/cv_english.pdf'), ('Teaching', '/category/teaching.html'),)
# Disable tags
TAGS_SAVE_AS = ''
TAG_SAVE_AS = ''
# Blogroll
#LINKS = (('Pelican', 'http://getpelican.com/'),
# ('Python.org', 'http://python.org/'),
# ('Jinja2', 'http://jinja.pocoo.org/'),
# ('You can modify those links in your config file', '#'),)
# Social widget
#SOCIAL = (('You can add links in your config file', '#'),
# ('Another social link', '#'),)
SOCIAL = (
('Simon Castellan', 'http://iso.mor.phis.me/'),
('Damien Desfontaines', 'https://desfontain.es/'),
('Tanguy Fardet', 'http://perso.ens-lyon.fr/tanguy.fardet/'),
('Armaรซl Guรฉneau', 'https://perso.ens-lyon.fr/armael.gueneau/'),
('Jรฉrรฉmy Ledent', 'https://perso.ens-lyon.fr/jeremy.ledent/'),
('Tito Lรช Thร nh Dลฉng Nguyแป…n', 'http://nguyentito.eu/'),
('Alice Pellet--Mary', 'https://perso.ens-lyon.fr/alice.pellet___mary/'),
('Baptiste Roziรจre', 'https://perso.ens-lyon.fr/baptiste.roziere/'),
)
DEFAULT_PAGINATION = False
# Uncomment following line if you want document-relative URLs when developing
#RELATIVE_URLS = True

@ -0,0 +1 @@
Subproject commit 9ef0197eed5d141bf0f3b9a8468cd37ad3e5fbd7

@ -0,0 +1,26 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*- #
from __future__ import unicode_literals
# This file is only used if you use `make publish` or
# explicitly specify it as your config file.
import os
import sys
sys.path.append(os.curdir)
from pelicanconf import *
SITEURL = 'https://perso.ens-lyon.fr/fabrice.mouhartem'
#SITEURL = 'http://blog.epheme.re'
RELATIVE_URLS = True
MENUITEMS = tuple((e[0], SITEURL + e[1]) for e in MENUITEMS)
FEED_ALL_ATOM = 'feeds/all.atom.xml'
CATEGORY_FEED_ATOM = 'feeds/%s.atom.xml'
DELETE_OUTPUT_DIRECTORY = True
# Following items are often useful when publishing
#DISQUS_SITENAME = ""
#GOOGLE_ANALYTICS = ""

@ -0,0 +1,7 @@
MIT Open Source License
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

@ -0,0 +1,58 @@
### What is Gum?
Gum is a clean and responsive theme for [Pelican](https://github.com/getpelican/pelican), based on the [Gumby Framework](http://gumbyframework.com/docs).
### Requirements
* [Pelican](https://github.com/getpelican/pelican)
### Configuration
* Edit your settings file to include the following if desired (any values left blank won't show up in the theme):
```
GITHUB_URL = ''
TWITTER_URL = ''
FACEBOOK_URL = ''
GOOGLEPLUS_URL = ''
```
This theme uses the latest Google Analytics code, which will be included when the following values are filled out appropriately.
```
GOOGLE_ANALYTICS_ID = ''
GOOGLE_ANALYTICS_SITENAME = ''
```
Alternatively you can use [Piwik](http://piwik.org/) for analytics if you set the following settings, where the url has to be given without leading `http://` and trailing `/`.
```
PIWIK_ID = ''
PIWIK_URL = ''
```
To use Juvia for comments, fill out the following values, again the url without leading `http://` and trailing `/`.
```
JUVIA_URL = ''
JUVIA_ID = ''
```
### Screenshot ###
![screenshot](screenshot.png)
### Credits / Thanks
* Alexis Metaireau / Pelican
* Digital Surgeons / Gumby Framework
* Twitter Bootstrap
* traeblain for his [makefile](https://gist.github.com/traeblain/4252511) gist for building Pelican on Windows
**MIT Open Source License**
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Binary file not shown.

After

Width:  |  Height:  |  Size: 135 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

@ -0,0 +1,27 @@
/**
* Gumby Init
*/
// test for touch event support
Modernizr.load({
test: Modernizr.touch,
// if present load custom jQuery mobile build and update Gumby.click
yep: 'js/libs/jquery.mobile.custom.min.js',
callback: function(url, result, key) {
// check jQuery mobile has successfully loaded before using tap events
if($.mobile) {
window.Gumby.click = 'tap';
}
},
// either way initialize Gumby
complete: function() {
window.Gumby.init();
// if AMD return Gumby object to define
if(typeof define == "function" && define.amd) {
define(window.Gumby);
}
}
});

@ -0,0 +1,145 @@
/**
* Gumby Framework
* ---------------
*
* Follow @gumbycss on twitter and spread the love.
* We worked super hard on making this awesome and released it to the web.
* All we ask is you leave this intact. #gumbyisawesome
*
* Gumby Framework
* http://gumbyframework.com
*
* Built with love by your friends @digitalsurgeons
* http://www.digitalsurgeons.com
*
* Free to use under the MIT license.
* http://www.opensource.org/licenses/mit-license.php
*/
!function() {
'use strict';
function Gumby() {
this.$dom = $(document);
this.isOldie = !!this.$dom.find('html').hasClass('oldie');
this.click = 'click';
this.onReady = this.onOldie = this.onTouch = false;
this.uiModules = {};
this.inits = {};
}
// initialize Gumby
Gumby.prototype.init = function() {
// init UI modules
this.initUIModules();
var scope = this;
// call ready() code when dom is ready
this.$dom.ready(function() {
if(scope.onReady) {
scope.onReady();
}
// call oldie() callback if applicable
if(scope.isOldie && scope.onOldie) {
scope.onOldie();
}
// call touch() callback if applicable
if(Modernizr.touch && scope.onTouch) {
scope.onTouch();
}
});
};
// public helper - set Gumby ready callback
Gumby.prototype.ready = function(code) {
if(code && typeof code === 'function') {
this.onReady = code;
}
};
// public helper - set oldie callback
Gumby.prototype.oldie = function(code) {
if(code && typeof code === 'function') {
this.onOldie = code;
}
};
// public helper - set touch callback
Gumby.prototype.touch = function(code) {
if(code && typeof code === 'function') {
this.onTouch = code;
}
};
// public helper - return debuggin object including uiModules object
Gumby.prototype.debug = function() {
return {
$dom: this.$dom,
isOldie: this.isOldie,
uiModules: this.uiModules,
click: this.click
};
};
// grab attribute value, testing data- gumby- and no prefix
Gumby.prototype.selectAttr = function() {
var i = 0;
// any number of attributes can be passed
for(; i < arguments.length; i++) {
// various formats
var attr = arguments[i],
dataAttr = 'data-'+arguments[i],
gumbyAttr = 'gumby-'+arguments[i];
// first test for data-attr
if(this.attr(dataAttr)) {
return this.attr(dataAttr);
// next test for gumby-attr
} else if(this.attr(gumbyAttr)) {
return this.attr(gumbyAttr);
// finally no prefix
} else if(this.attr(attr)) {
return this.attr(attr);
}
}
// none found
return false;
};
// add an initialisation method
Gumby.prototype.addInitalisation = function(ref, code) {
this.inits[ref] = code;
};
// initialize a uiModule
Gumby.prototype.initialize = function(ref) {
if(this.inits[ref] && typeof this.inits[ref] === 'function') {
this.inits[ref]();
}
};
// store a UI module
Gumby.prototype.UIModule = function(data) {
var module = data.module;
this.uiModules[module] = data;
};
// loop round and init all UI modules
Gumby.prototype.initUIModules = function() {
var x;
for(x in this.uiModules) {
this.uiModules[x].init();
}
};
window.Gumby = new Gumby();
}();

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1,69 @@
/**
* Gumby Navbar
*/
!function() {
'use strict';
// define module class and init only if we're on touch devices
if(!Modernizr.touch) {
return;
}
function Navbar($el) {
this.$el = $el;
var scope = this;
// when navbar items are tapped hide/show dropdowns
this.$el.find('li').on(Gumby.click, function(e) {
var $this = $(this);
e.stopPropagation();
// prevent jump to top of page
if(this.href === '#') {
e.preventDefault();
}
scope.dropdown($this);
});
}
// hide/show dropdowns
Navbar.prototype.dropdown = function($this) {
// we have dropdowns so open/cose
if($this.children('.dropdown').length) {
if($this.hasClass('active')) {
$this.removeClass('active');
} else {
$this.addClass('active');
}
// no dropdown so close others
} else {
this.$items.removeClass('active');
}
};
// add initialisation
Gumby.addInitalisation('navbars', function() {
$('.navbar').each(function() {
var $this = $(this);
// this element has already been initialized
if($this.data('isNavbar')) {
return true;
}
// mark element as initialized
$this.data('isNavbar', true);
new Navbar($this);
});
});
// register UI module
Gumby.UIModule({
module: 'navbar',
events: [],
init: function() {
Gumby.initialize('navbars');
}
});
}();

@ -0,0 +1,8 @@
window.log=function(){log.history=log.history||[];log.history.push(arguments);if(this.console){arguments.callee=arguments.callee.caller;var a=[].slice.call(arguments);(typeof console.log==="object"?log.apply.call(console.log,console,a):console.log.apply(console,a))}};
(function(b){function c(){}for(var d="assert,count,debug,dir,dirxml,error,exception,group,groupCollapsed,groupEnd,info,log,timeStamp,profile,profileEnd,time,timeEnd,trace,warn".split(","),a;a=d.pop();){b[a]=b[a]||c}})((function(){try
{console.log();return window.console;}catch(err){return window.console={};}})());
/*! http://mths.be/placeholder v2.0.7 by @mathias */
;(function(f,h,$){var a='placeholder' in h.createElement('input'),d='placeholder' in h.createElement('textarea'),i=$.fn,c=$.valHooks,k,j;if(a&&d){j=i.placeholder=function(){return this};j.input=j.textarea=true}else{j=i.placeholder=function(){var l=this;l.filter((a?'textarea':':input')+'[placeholder]').not('.placeholder').bind({'focus.placeholder':b,'blur.placeholder':e}).data('placeholder-enabled',true).trigger('blur.placeholder');return l};j.input=a;j.textarea=d;k={get:function(m){var l=$(m);return l.data('placeholder-enabled')&&l.hasClass('placeholder')?'':m.value},set:function(m,n){var l=$(m);if(!l.data('placeholder-enabled')){return m.value=n}if(n==''){m.value=n;if(m!=h.activeElement){e.call(m)}}else{if(l.hasClass('placeholder')){b.call(m,true,n)||(m.value=n)}else{m.value=n}}return l}};a||(c.input=k);d||(c.textarea=k);$(function(){$(h).delegate('form','submit.placeholder',function(){var l=$('.placeholder',this).each(b);setTimeout(function(){l.each(e)},10)})});$(f).bind('beforeunload.placeholder',function(){$('.placeholder').each(function(){this.value=''})})}function g(m){var l={},n=/^jQuery\d+$/;$.each(m.attributes,function(p,o){if(o.specified&&!n.test(o.name)){l[o.name]=o.value}});return l}function b(m,n){var l=this,o=$(l);if(l.value==o.attr('placeholder')&&o.hasClass('placeholder')){if(o.data('placeholder-password')){o=o.hide().next().show().attr('id',o.removeAttr('id').data('placeholder-id'));if(m===true){return o[0].value=n}o.focus()}else{l.value='';o.removeClass('placeholder');l==h.activeElement&&l.select()}}}function e(){var q,l=this,p=$(l),m=p,o=this.id;if(l.value==''){if(l.type=='password'){if(!p.data('placeholder-textinput')){try{q=p.clone().attr({type:'text'})}catch(n){q=$('<input>').attr($.extend(g(this),{type:'text'}))}q.removeAttr('name').data({'placeholder-password':true,'placeholder-id':o}).bind('focus.placeholder',b);p.data({'placeholder-textinput':q,'placeholder-id':o}).before(q)}p=p.removeAttr('id').hide().prev().attr('id',o).show()}p.addClass('placeholder');p[0].value=p.attr('placeholder')}else{p.removeClass('placeholder')}}}(this,document,jQuery));
// place any jQuery/helper plugins in here, instead of separate, slower script files.

@ -0,0 +1,205 @@
.hll {
background-color:#eee;
}
.c {
color:#408090;
font-style:italic;
}
.err {
border:1px solid #FF0000;
}
.k {
color:#007020;
font-weight:bold;
}
.o {
color:#666666;
}
.cm {
color:#408090;
font-style:italic;
}
.cp {
color:#007020;
}
.c1 {
color:#408090;
font-style:italic;
}
.cs {
background-color:#FFF0F0;
color:#408090;
}
.gd {
color:#A00000;
}
.ge {
font-style:italic;
}
.gr {
color:#FF0000;
}
.gh {
color:#000080;
font-weight:bold;
}
.gi {
color:#00A000;
}
.go {
color:#303030;
}
.gp {
color:#C65D09;
font-weight:bold;
}
.gs {
font-weight:bold;
}
.gu {
color:#800080;
font-weight:bold;
}
.gt {
color:#0040D0;
}
.kc {
color:#007020;
font-weight:bold;
}
.kd {
color:#007020;
font-weight:bold;
}
.kn {
color:#007020;
font-weight:bold;
}
.kp {
color:#007020;
}
.kr {
color:#007020;
font-weight:bold;
}
.kt {
color:#902000;
}
.m {
color:#208050;
}
.s {
color:#4070A0;
}
.na {
color:#4070A0;
}
.nb {
color:#007020;
}
.nc {
color:#0E84B5;
font-weight:bold;
}
.no {
color:#60ADD5;
}
.nd {
color:#555555;
font-weight:bold;
}
.ni {
color:#D55537;
font-weight:bold;
}
.ne {
color:#007020;
}
.nf {
color:#06287E;
}
.nl {
color:#002070;
font-weight:bold;
}
.nn {