diff --git a/_site/archive.html b/_site/archive.html
index 2dc01b8..6a70480 100644
--- a/_site/archive.html
+++ b/_site/archive.html
@@ -16,8 +16,9 @@
Home
- Contact
+ Projects
Archive
+ Contact
diff --git a/_site/contact.html b/_site/contact.html
index 419bdcd..24f6bd1 100644
--- a/_site/contact.html
+++ b/_site/contact.html
@@ -16,8 +16,9 @@
Home
- Contact
+ Projects
Archive
+ Contact
diff --git a/_site/css/default.css b/_site/css/default.css
index 2becb67..d453a6d 100644
--- a/_site/css/default.css
+++ b/_site/css/default.css
@@ -1 +1 @@
-html{font-size:62.5%}body{font-size:1.6rem;color:#000}header{border-bottom:0.2rem solid #000}nav{text-align:right}nav a{font-size:1.8rem;font-weight:bold;color:black;text-decoration:none;text-transform:uppercase}footer{margin-top:3rem;padding:1.2rem 0;border-top:0.2rem solid #000;font-size:1.2rem;color:#555}h1{font-size:2.4rem}h2{font-size:2rem}article .header{font-size:1.4rem;font-style:italic;color:#555}.logo a{font-weight:bold;color:#000;text-decoration:none}@media (max-width:319px){body{width:90%;margin:0;padding:0 5%}header{margin:4.2rem 0}nav{margin:0 auto 3rem;text-align:center}footer{text-align:center}.logo{text-align:center;margin:1rem auto 3rem}.logo a{font-size:2.4rem}nav a{display:block;line-height:1.6}}@media (min-width:320px){body{width:90%;margin:0;padding:0 5%}header{margin:4.2rem 0}nav{margin:0 auto 3rem;text-align:center}footer{text-align:center}.logo{text-align:center;margin:1rem auto 3rem}.logo a{font-size:2.4rem}nav a{display:inline;margin:0 0.6rem}}@media (min-width:640px){body{width:60rem;margin:0 auto;padding:0}header{margin:0 0 3rem;padding:1.2rem 0}nav{margin:0;text-align:right}nav a{margin:0 0 0 1.2rem;display:inline}footer{text-align:right}.logo{margin:0;text-align:left}.logo a{float:left;font-size:1.8rem}}
\ No newline at end of file
+img{max-width:100%}html{font-size:62.5%}body{font-size:1.6rem;color:#000}header{border-bottom:0.2rem solid #000}nav{text-align:right}nav a{font-size:1.6rem;font-weight:bold;color:black;text-decoration:none;text-transform:uppercase}footer{margin-top:3rem;padding:1.2rem 0;border-top:0.2rem solid #000;font-size:1.2rem;color:#555}h1{font-size:2.4rem}h2{font-size:2rem}article .header{font-size:1.4rem;font-style:italic;color:#555}.logo a{font-weight:bold;color:#000;text-decoration:none}@media (max-width:319px){body{width:90%;margin:0;padding:0 5%}header{margin:4.2rem 0}nav{margin:0 auto 3rem;text-align:center}footer{text-align:center}.logo{text-align:center;margin:1rem auto 3rem}.logo a{font-size:2.4rem}nav a{display:block;line-height:1.6}}@media (min-width:320px){body{width:90%;margin:0;padding:0 5%}header{margin:4.2rem 0}nav{margin:0 auto 3rem;text-align:center}footer{text-align:center}.logo{text-align:center;margin:1rem auto 3rem}.logo a{font-size:2.4rem}nav a{display:inline;margin:0 0.6rem}}@media (min-width:640px){body{width:80rem;margin:0 auto;padding:0}header{margin:0 0 3rem;padding:1.2rem 0}nav{margin:0;text-align:right}nav a{margin:0 0 0 1.2rem;display:inline}footer{text-align:right}.logo{margin:0;text-align:left}.logo a{float:left;font-size:1.8rem}}
\ No newline at end of file
diff --git a/_site/cv.html b/_site/cv.html
index 5f85739..761914c 100644
--- a/_site/cv.html
+++ b/_site/cv.html
@@ -16,8 +16,9 @@
Home
- Contact
+ Projects
Archive
+ Contact
diff --git a/_site/index.html b/_site/index.html
index c12f2ed..8e014af 100644
--- a/_site/index.html
+++ b/_site/index.html
@@ -16,8 +16,9 @@
Home
- Contact
+ Projects
Archive
+ Contact
diff --git a/_site/posts/ising-apl.html b/_site/posts/ising-apl.html
index 076ce51..d9e7fb0 100644
--- a/_site/posts/ising-apl.html
+++ b/_site/posts/ising-apl.html
@@ -16,8 +16,9 @@
Home
- Contact
+ Projects
Archive
+ Contact
diff --git a/_site/posts/ising-model.html b/_site/posts/ising-model.html
index b7b73a6..5e7ea4b 100644
--- a/_site/posts/ising-model.html
+++ b/_site/posts/ising-model.html
@@ -16,8 +16,9 @@
Home
- Contact
+ Projects
Archive
+ Contact
diff --git a/_site/posts/lsystems.html b/_site/posts/lsystems.html
index e07aa59..8becbed 100644
--- a/_site/posts/lsystems.html
+++ b/_site/posts/lsystems.html
@@ -16,8 +16,9 @@
Home
- Contact
+ Projects
Archive
+ Contact
diff --git a/_site/projects.html b/_site/projects.html
new file mode 100644
index 0000000..690d6e4
--- /dev/null
+++ b/_site/projects.html
@@ -0,0 +1,77 @@
+
+
+
+
+
+
+ Dimitri Lozeve - Projects
+
+
+
+
+
+
+
+
+ Projects
+
+
+
+Monte Carlo simulation of the Ising model using Metropolis-Hastings.
+
+
+
+
+Generate and draw L-systems.
+
+
+
+
+Every allied bombing during WWII, mapped over the whole world. The data has been released by the U.S. Department of Defense here.
+
+
+
+
+Simple ARP spoofer, allowing for interception and modification of all communications between two targets. It sends ARP packets to perform a man-in-the-middle attack.
+
+
+
+
+N-body simulator.
+
+
+
+
+Community detection algorithms and applications to a large social network obtained from Prestashop data. Slides (in French).
+
+
+
+
+SAT solver, using the Davis-Putnam-Logemann-Loveland (DPLL) algorithm.
+
+
+
+
+Visualization of plane trajectories over Northeastern France. The data was gathered using a Software Defined Radio to listen to aircrafts.
+
+
+
+
+
+
+
+ Site proudly generated by
+ Hakyll
+
+
+
diff --git a/_site/projects/adsb.html b/_site/projects/adsb.html
new file mode 100644
index 0000000..05f94db
--- /dev/null
+++ b/_site/projects/adsb.html
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+ Dimitri Lozeve - ADS-B data visualization
+
+
+
+
+
+
+
+
+ ADS-B data visualization
+
+
+
+
+
+
+
+
+ Site proudly generated by
+ Hakyll
+
+
+
diff --git a/_site/projects/civilisation.html b/_site/projects/civilisation.html
new file mode 100644
index 0000000..7760a32
--- /dev/null
+++ b/_site/projects/civilisation.html
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+ Dimitri Lozeve - Civilisation
+
+
+
+
+
+
+
+
+ Civilisation
+
+
+
+
+
+
+
+
+ Site proudly generated by
+ Hakyll
+
+
+
diff --git a/_site/projects/community-detection.html b/_site/projects/community-detection.html
new file mode 100644
index 0000000..a614173
--- /dev/null
+++ b/_site/projects/community-detection.html
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+ Dimitri Lozeve - Community Detection
+
+
+
+
+
+
+
+
+ Community Detection
+
+
+
+
+
+
+
+
+ Site proudly generated by
+ Hakyll
+
+
+
diff --git a/_site/projects/ising-model.html b/_site/projects/ising-model.html
new file mode 100644
index 0000000..007cbfe
--- /dev/null
+++ b/_site/projects/ising-model.html
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+ Dimitri Lozeve - Ising model simulation
+
+
+
+
+
+
+
+
+ Ising model simulation
+
+
+
+
+
+
+
+
+ Site proudly generated by
+ Hakyll
+
+
+
diff --git a/_site/projects/lsystems.html b/_site/projects/lsystems.html
new file mode 100644
index 0000000..c7e4957
--- /dev/null
+++ b/_site/projects/lsystems.html
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+ Dimitri Lozeve - L-systems
+
+
+
+
+
+
+
+
+ L-systems
+
+
+
+
+
+
+
+
+ Site proudly generated by
+ Hakyll
+
+
+
diff --git a/_site/projects/orbit.html b/_site/projects/orbit.html
new file mode 100644
index 0000000..2aa7b7c
--- /dev/null
+++ b/_site/projects/orbit.html
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+ Dimitri Lozeve - Orbit
+
+
+
+
+
+
+
+
+ Orbit
+
+
+
+
+
+
+
+
+ Site proudly generated by
+ Hakyll
+
+
+
diff --git a/_site/projects/satrap.html b/_site/projects/satrap.html
new file mode 100644
index 0000000..e5ea917
--- /dev/null
+++ b/_site/projects/satrap.html
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+ Dimitri Lozeve - Satrap
+
+
+
+
+
+
+
+
+ Satrap
+
+
+
+
+
+
+
+
+ Site proudly generated by
+ Hakyll
+
+
+
diff --git a/_site/projects/ww2-bombings.html b/_site/projects/ww2-bombings.html
new file mode 100644
index 0000000..2de25b6
--- /dev/null
+++ b/_site/projects/ww2-bombings.html
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+ Dimitri Lozeve - WWII bombings visualization
+
+
+
+
+
+
+
+
+ WWII bombings visualization
+
+
+
+
+
+
+
+
+ Site proudly generated by
+ Hakyll
+
+
+
diff --git a/_site/skills.html b/_site/skills.html
index be07964..17eb61b 100644
--- a/_site/skills.html
+++ b/_site/skills.html
@@ -16,8 +16,9 @@
Home
- Contact
+ Projects
Archive
+ Contact
diff --git a/projects/adsb.md b/projects/adsb.md
new file mode 100644
index 0000000..5a3df7f
--- /dev/null
+++ b/projects/adsb.md
@@ -0,0 +1,8 @@
+---
+date: "2017-07-26"
+title: "ADS-B data visualization"
+summary: "Visualization of plane trajectories over Northeastern France. The data was gathered using a Software Defined Radio to listen to aircrafts."
+image_preview: "adsb.png"
+tags: ["visualization"]
+external_link: "https://dlozeve.github.io/adsb"
+---
diff --git a/projects/civilisation.md b/projects/civilisation.md
new file mode 100644
index 0000000..5c5d78e
--- /dev/null
+++ b/projects/civilisation.md
@@ -0,0 +1,10 @@
+---
+date: "2017-07-26"
+title: "Civilisation"
+summary: "SAT solver, using the Davis-Putnam-Logemann-Loveland (DPLL) algorithm."
+image_preview: "dpll.png"
+tags: ["algorithms","sat","logic"]
+external_link: "https://github.com/dlozeve/Civilisation-hs"
+math: true
+---
+
diff --git a/projects/community-detection.md b/projects/community-detection.md
new file mode 100644
index 0000000..dcb3154
--- /dev/null
+++ b/projects/community-detection.md
@@ -0,0 +1,8 @@
+---
+date: "2017-07-26"
+title: "Community Detection"
+summary: "Community detection algorithms and applications to a large social network obtained from Prestashop data. Slides (in French). "
+image_preview: "communities.png"
+tags: ["machine-learning","algorithms"]
+external_link: "https://github.com/dlozeve/community-detection"
+---
diff --git a/projects/ising-model.md b/projects/ising-model.md
new file mode 100644
index 0000000..3a6dae8
--- /dev/null
+++ b/projects/ising-model.md
@@ -0,0 +1,8 @@
+---
+date: "2018-02-04"
+title: "Ising model simulation"
+summary: "Monte Carlo simulation of the Ising model using Metropolis-Hastings."
+image_preview: "ising.gif"
+tags: ["algorithms","visualization","ising","simulation","montecarlo"]
+external_link: "https://github.com/dlozeve/ising-model"
+---
diff --git a/projects/lsystems.md b/projects/lsystems.md
new file mode 100644
index 0000000..0db94e7
--- /dev/null
+++ b/projects/lsystems.md
@@ -0,0 +1,8 @@
+---
+date: "2018-01-17"
+title: "L-systems"
+summary: "Generate and draw L-systems."
+image_preview: "lsystems/levyC.png"
+tags: ["algorithms","visualization","lsystems","curves","fractals","tilings"]
+external_link: "https://github.com/dlozeve/lsystems"
+---
diff --git a/projects/orbit.md b/projects/orbit.md
new file mode 100644
index 0000000..fe4e0b9
--- /dev/null
+++ b/projects/orbit.md
@@ -0,0 +1,9 @@
+---
+date: "2017-07-26"
+title: "Orbit"
+summary: "N-body simulator."
+image_preview: "orbit.png"
+tags: ["algorithms","physics","simulation","space"]
+external_link: "https://github.com/dlozeve/orbit"
+---
+
diff --git a/projects/satrap.md b/projects/satrap.md
new file mode 100644
index 0000000..36ffa3f
--- /dev/null
+++ b/projects/satrap.md
@@ -0,0 +1,8 @@
+---
+date: "2017-07-26"
+title: "Satrap"
+summary: "Simple ARP spoofer, allowing for interception and modification of all communications between two targets. It sends ARP packets to perform a man-in-the-middle attack."
+image_preview: "satrap.png"
+tags: ["other","hacking","network"]
+external_link: "https://github.com/dlozeve/Satrap"
+---
diff --git a/projects/ww2-bombings.md b/projects/ww2-bombings.md
new file mode 100644
index 0000000..ab9e19d
--- /dev/null
+++ b/projects/ww2-bombings.md
@@ -0,0 +1,8 @@
+---
+date: "2017-07-26"
+title: "WWII bombings visualization"
+summary: "Every allied bombing during WWII, mapped over the whole world. The data has been released by the U.S. Department of Defense here. "
+image_preview: "ww2-bombings.png"
+tags: ["visualization"]
+external_link: "https://dlozeve.github.io/ww2-bombings"
+---
diff --git a/site.hs b/site.hs
index 84407fc..821ded3 100644
--- a/site.hs
+++ b/site.hs
@@ -49,6 +49,25 @@ main = hakyll $ do
>>= loadAndApplyTemplate "templates/default.html" archiveCtx
>>= relativizeUrls
+ match "projects/*" $ do
+ route $ setExtension "html"
+ compile $ customPandocCompiler
+ >>= loadAndApplyTemplate "templates/project.html" postCtx
+ >>= loadAndApplyTemplate "templates/default.html" postCtx
+ >>= relativizeUrls
+
+ create ["projects.html"] $ do
+ route idRoute
+ compile $ do
+ posts <- recentFirst =<< loadAll "projects/*"
+ let archiveCtx =
+ listField "projects" postCtx (return posts) `mappend`
+ constField "title" "Projects" `mappend`
+ defaultContext
+ makeItem ""
+ >>= loadAndApplyTemplate "templates/projects.html" archiveCtx
+ >>= loadAndApplyTemplate "templates/default.html" archiveCtx
+ >>= relativizeUrls
match "index.html" $ do
route idRoute
diff --git a/templates/default.html b/templates/default.html
index 638121a..d614755 100644
--- a/templates/default.html
+++ b/templates/default.html
@@ -16,8 +16,9 @@
Home
- Contact
+ Projects
Archive
+ Contact
diff --git a/templates/project-list.html b/templates/project-list.html
new file mode 100644
index 0000000..d720b12
--- /dev/null
+++ b/templates/project-list.html
@@ -0,0 +1,6 @@
+$for(projects)$
+
+
+$summary$
+
+$endfor$
diff --git a/templates/project.html b/templates/project.html
new file mode 100644
index 0000000..732149b
--- /dev/null
+++ b/templates/project.html
@@ -0,0 +1,11 @@
+
+
+
+
diff --git a/templates/projects.html b/templates/projects.html
new file mode 100644
index 0000000..71ee038
--- /dev/null
+++ b/templates/projects.html
@@ -0,0 +1 @@
+$partial("templates/project-list.html")$