switch to dream

This commit is contained in:
zapashcanon 2021-11-23 22:48:46 +01:00
parent a840e4c8ab
commit 514230c83d
Signed by: zapashcanon
GPG Key ID: 8981C3C62D1D28F1
87 changed files with 1359 additions and 353 deletions

View File

@ -1,27 +0,0 @@
image: debian/unstable
packages:
- opam
- ocaml
- camlp4
- curl
- m4
- pkg-config
sources:
- https://git.zapashcanon.fr/zapashcanon/www.zapashcanon.fr
secrets:
- ec1f49cd-38dc-41d9-89f4-c3b6ecd7bcad # ssh deploy key
tasks:
- setup: |
opam init --disable-sandboxing -y
opam update -y
opam install -y stone
- build: |
cd www.zapashcanon.fr
eval "$(opam env)"
cd src
stone
cat site/bookshelf.html | grep Marx > /dev/null
- deploy: |
cd www.zapashcanon.fr
cd src
scp -o StrictHostKeyChecking=no -q -r site/* fs@zapashcanon.fr:/var/www/www.zapashcanon.fr/

3
.gitignore vendored
View File

@ -1,2 +1 @@
src/site
src/_build
_build

61
.ocamlformat Normal file
View File

@ -0,0 +1,61 @@
version=0.19.0
align-cases=false
align-constructors-decl=false
align-variants-decl=false
assignment-operator=end-line
break-before-in=fit-or-vertical
break-cases=all
break-collection-expressions=fit-or-vertical
break-fun-decl=wrap
break-fun-sig=wrap
break-infix=wrap
break-infix-before-func=false
break-separators=before
break-sequences=true
break-string-literals=auto
break-struct=force
cases-exp-indent=2
cases-matching-exp-indent=normal
disambiguate-non-breaking-match=false
doc-comments=before
doc-comments-padding=2
doc-comments-tag-only=default
dock-collection-brackets=false
exp-grouping=preserve
extension-indent=2
field-space=loose
function-indent=2
function-indent-nested=never
if-then-else=k-r
indent-after-in=0
indicate-multiline-delimiters=space
indicate-nested-or-patterns=unsafe-no
infix-precedence=indent
leading-nested-match-parens=false
let-and=sparse
let-binding-indent=2
let-binding-spacing=compact
let-module=compact
margin=80
match-indent=0
match-indent-nested=never
max-indent=68
module-item-spacing=sparse
nested-match=wrap
ocp-indent-compat=false
parens-ite=false
parens-tuple=always
parens-tuple-patterns=multi-line-only
parse-docstrings=true
sequence-blank-line=preserve-one
sequence-style=terminator
single-case=compact
space-around-arrays=true
space-around-lists=true
space-around-records=true
space-around-variants=true
stritem-extension-indent=0
type-decl=sparse
type-decl-indent=2
wrap-comments=false
wrap-fun-args=true

1
CHANGES.md Normal file
View File

@ -0,0 +1 @@
## unreleased

View File

@ -1,7 +1,7 @@
The ISC License (ISC)
=====================
Copyright © 2019, Léo Andrès
Copyright © 2021, TODO
Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

View File

@ -1 +1,40 @@
# www.zapashcanon.fr [![builds.sr.ht status](https://builds.sr.ht/~zapashcanon/www.zapashcanon.fr.svg)](https://builds.sr.ht/~zapashcanon/www.zapashcanon.fr?)
# www
www is an [OCaml] executable/library to TODO.
## Installation
`www` can be installed with [opam]:
```sh
opam install www
```
If you don't have `opam`, you can install it following the [how to install opam] guide.
If you can't or don't want to use `opam`, consult the [opam file] for build instructions.
## Quickstart
```ocaml
let () = Format.printf "TODO@."
```
For more, have a look at the [example] folder, at the [documentation] or at the [test suite].
## About
- [LICENSE]
- [CHANGELOG]
[CHANGELOG]: ./CHANGES.md
[example]: ./example/
[LICENSE]: ./LICENSE.md
[opam file]: ./www.opam
[test suite]: ./test/
[documentation]: TODO
[how to install opam]: https://opam.ocaml.org/doc/Install.html
[OCaml]: https://ocaml.org
[opam]: https://opam.ocaml.org/
[www]: TODO

3
doc/dune Normal file
View File

@ -0,0 +1,3 @@
(documentation
(package www)
(mld_files index))

19
doc/index.mld Normal file
View File

@ -0,0 +1,19 @@
{0 www}
{{:https://TODO} www} is an {{:https://ocaml.org} OCaml} library/executable to TODO.
{1:api API}
{!modules:
Www
}
{1:private_api Private API}
You shouldn't have to use any of these modules, they're used internally only.
{!modules:
TODO
}

25
dune-project Normal file
View File

@ -0,0 +1,25 @@
(lang dune 2.8)
(name www)
(license ISC)
(authors "TODO")
(maintainers "TODO")
;(source
; (github TODO/www))
(generate_opam_files true)
(package
(name www)
(synopsis "OCaml library/executable to TODO")
(description
"www is an OCaml library/executable to TODO.")
(tags
(www TODO TODO TODO TODO))
(depends
(ocaml
(>= 4.08))))

3
example/dune Normal file
View File

@ -0,0 +1,3 @@
(executable
(name main)
(modules main))

1
example/main.ml Normal file
View File

@ -0,0 +1 @@
let () = Format.printf "TODO@."

View File

@ -4,18 +4,11 @@ set -eu
( cd "$(dirname "$0")/../"
domain=www.zapashcanon.fr
sudo cp ./*.conf /etc/apache2/sites-available/
sudo mkdir -p /var/www/${domain}/
( cd src
stone
stone -c
stone
)
dune build @all
sudo cp -r ./src/site/* /var/www/${domain}/
dune install
sudo service apache2 restart
echo "Installed !"

View File

@ -1,77 +0,0 @@
Title = "zapashcanon"
Pages = [
("index.md.raw", "Home");
("contact.md.dist", "Contact");
("bookshelf.md.dist", "Bookshelf");
("history.md.dist", "History")
("host.md.dist", "Host")
("movies.md.dist", "Movies")
("publication_it.md.dist", "Publication");
("software.md.dist", "Software")
("musique_ecouter.md", "Écouter");
("transmission.md.dist", "Transmission")
("visual_arts.md.dist", "Visual Arts")
("dialogues.md.dist", "Dialogues")
("l-infini.md.dist", "L'infini")
]
(* Custom exporters for pages.
An exporter is a program that takes a page filename as
input, and outputs on stdout the corresponding html,
that will be inserted in the body of the template.
Exports holds a list of couples : the first element is
the extension of the files that should use the
exporter, the second element is the exporter's command
itself. The pattern %{file}% will be replaced by the
filename of the page.
You can override the built-in exporter for extensions
".md" and ".markdown".
Example:
The first exporter embeds html elements into the page,
the second uses mlorg to read and convert .org pages.
Exports = [
(".embed.html", "cat %{file}%");
(".org", "mlorg --set exporters.html.wrap=false --output - --backend html %{file}%")
]
*)
Exports = [
(".md.raw", "omd %{file}%")
(".md", "cat data/begin.html ; omd %{file}% ; cat data/end.html")
(".md.dist", "cat data/begin.html ; curl -s $(cat %{file}%) | omd ; cat data/end.html")
]
(* A list of couples that specify for a given document
the template to use. A template file must be placed
in the data/ directory.
Two templates are provided by default: template.html,
the default template, and org-template.html for
org-mode documents generated by mlorg using the
corresponding exporter.
For example, to use the org-template.html for page
doc.org, use :
PagesTemplates = [ ("doc.org", "org-template.html") ]
What documents to match for a given entry is specified
using a filename, or a regular expression. For example,
to match all the .org files and made them use the
org-mode template:
PagesTemplates = [ (".*\.org$", "org-template.html") ]
*)
(* The default template to use for pages that don't have an entry in PagesTemplates *)
DefaultTemplate = "template.html"
(* Permissions of the files & directories generated in site/ *)
DirPerm = 493 (* 0o755 *)
FilePerm = 420 (* 0o644 *)

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,16 @@
body {
padding-top: 3rem;
padding-bottom: 3rem;
color: #5a5a5a;
background-color: #EEEEEE;
line-height: 1.6;
font-size: 18px;
}
.featurette-divider {
margin: 5rem 0;
}
#page-title {
text-align: center;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

File diff suppressed because one or more lines are too long

330
src/content/bookshelf.md Normal file
View File

@ -0,0 +1,330 @@
# Bookshelf
## 2021
### Avril
- Un enlèvement - [François Bégaudeau]
## 2020
### Février
- [Le Lien] - [Vanessa Duriès]
- L'Étudiante - [Vanessa Duriès]
- [La valse aux adieux] - [Milan Kundera]
- [Extension du domaine de la lutte] - [Michel Houellebecq]
- [Tous les hommes n'habitent pas le monde de la même façon] - [Jean-Paul Dubois]
## 2019
### Décembre
- [Metzengerstein] - [Edgar Allan Poe]
- [Le Masque de la mort rouge] - [Edgar Allan Poe]
- [William Wilson] - [Edgar Allan Poe]
- [Le Chat noir] - [Edgar Allan Poe]
- Geng Er à Pékin - [Chen Jo-hsi]
- Les journalistes qui accompagnaient Nixon - [Chen Jo-hsi]
- Visite domiciliaire - [Chen Jo-hsi]
- Service de nuit - [Chen Jo-hsi]
- L'anniversaire de Jingjing - [Chen Jo-hsi]
- Le préfet Yin - [Chen Jo-hsi]
### Novembre
- [Gravé sur Chrome] - [William Gibson]
- [Duel aérien] - [Michael Swanwick] et [William Gibson]
- Le Marché d'hiver - [William Gibson]
- Hôtel New Rose - [William Gibson]
- Étoile rouge, blanche orbite - [William Gibson] et [Bruce Sterling]
- Hinterlands - [William Gibson]
- [Le Genre intégré] - [William Gibson] et [John Shirley]
- Fragments de rose en hologramme - [William Gibson]
- Le sauvage et l'ordinateur - [Jean-Marie Domenach]
### Octobre
- La Vie des elfes - [Muriel Barbery]
- [Ondine] - [Jean Giraudoux]
### Août
- [Aimez-vous Brahms…] - [Françoise Sagan]
### Juin
- [Johnny Mnemonic] - [William Gibson]
- Sur la dictature du prolétariat - [Karl Marx], [Friedrich Engels] et [Vladimir Ilitch Lénine]
- La fractale des raviolis - [Pierre Raufast]
- Histoire de ta bêtise - [François Bégaudeau]
- [Salaire, prix et profit] - [Karl Marx]
### Avril
- [Un certain sourire] - [Françoise Sagan]
- Les chiots - [Mario Vargas Llosa]
### Mars
- [Bonjour tristesse] - [Françoise Sagan]
- Si nous ne brûlons pas - [Justine Bo]
- Le Nouveau Désordre mondial : réflexions d'un Européen - [Tzvetan Todorov]
### Janvier
- [Opération Opale] - [Eoin Colfer]
## 2018
### Octobre
- [Code éternité] - [Eoin Colfer]
### Septembre
- [Mission Polaire] - [Eoin Colfer]
### Août
- [Artemis Fowl] - [Eoin Colfer]
### Juillet
- La remontée du fleuve - [Emmanuel Roblès]
- [Les Mains sales] - [Jean-Paul Sartre]
- Lettres choisies - [Sade]
### Juin
- Lui: Récit d'un inconnu - [Leonid Andreïev]
- Contes et libelles - [Wang Meng]
- Le vole voleur - Annie Taylor-Gauthier
- [Cœur de chien] - [Mikhaïl Boulgakov]
- [Les Violons parfois] - [Françoise Sagan]
- [Les Fruits d'Or] - [Nathalie Sarraute]
### Mai
- [La Nausée] - [Jean-Paul Sartre]
- [L'Exil et le Royaume] - [Albert Camus]
- [Du temps qu'on existait] - [Marien Defalvard]
### Avril
- [La théorie de l'information] - [Aurélien Bellanger]
- Requiem pour Lola rouge - [Pierre Ducrozet]
- [Le Pas du loup] - [Jacques-André Bertrand]
### Mars
- [Paname Underground] - [Zarca]
- [Zénith-Hôtel] - [Oscar Coop-Phane]
- [Tout cela n'a rien à voir avec moi] - [Monica Sabolo]
- Eroica - [Pierre Ducrozet]
- Les Bottes suédoises - [Henning Mankell]
### Février
- Toni - [Line Papin]
- Un jeune homme est passé - [Alain Rémond]
- Chaque jour est un adieu - [Alain Rémond]
- [Les Chaussures italiennes] - [Henning Mankell]
### Janvier
- [Annihilation] - [Jeff VanderMeer]
- Les années-poussière - Philippe Delannoy
- [La Séparation] - [Dan Franck]
- [Soie] - [Alessandro Baricco]
## 2017
### Décembre
- [Dans ces bras-là] - [Camille Laurens]
- Le temps des algorithmes - [Serge Abiteboul] et [Gilles Dowek]
- [L'Invention des corps] - [Pierre Ducrozet]
- Du silence - [David Le Breton]
### Novembre
- [La Ferme des animaux] - [George Orwell]
### Octobre
- [Le Zèbre] - [Alexandre Jardin]
- [Un homme effacé] - [Alexandre Postel]
- L'ascendant - [Alexandre Postel]
- [L'Ombre du vent] - [Carlos Ruiz Zafón]
### Septembre
- Un élément perturbateur - Olivier Chantraine
- [Le Parfum] - [Patrick Süskind]
### Août
- Comment j'ai vidé la maison de mes parents - [Lydia Flem]
- Comment je me suis séparée de ma fille et de mon quasi-fils - [Lydia Flem]
- L'éveil - [Line Papin]
### Juillet
- [Le Joueur] - [Fiodor Dostoïevski]
- [Le Vieux qui lisait des romans d'amour] - [Luis Sepúlveda]
### Juin
- Ciels Liquides - [Anne F. Garréta]
- [Mr. Vertigo] - [Paul Auster]
- [Entre les murs] - [François Bégaudeau]
- Emmaüs - [Alessandro Baricco]
- [Soumission] - [Michel Houellebecq]
### Mai
- [Les Grandes Blondes] - [Jean Echenoz]
- [L'Île des gauchers] - [Alexandre Jardin]
- Festivité locale - [David di Nota]
- Romance nerveuse - [Camille Laurens]
- [L'Élégance du hérisson] - [Muriel Barbery]
### Avril
- [L'Homme qui prenait sa femme pour un chapeau] - [Oliver Sacks]
### Mars
- [Manifeste du Parti communiste] - [Karl Marx] et [Friedrich Engels]
- Les Deux Pigeons - [Alexandre Postel]
- Du baroque - [Eugenio d'Ors]
### Février
- [Rue des Boutiques obscures] - [Patrick Modiano]
- [La Vie sexuelle de Catherine M.] - [Catherine Millet]
- Pourquoi et Comment - [Catherine Millet]
[La Vie Sexuelle de Catherine M.]: https://fr.wikipedia.org/wiki/La_Vie_sexuelle_de_Catherine_M.
[Rue des Boutiques obscures]: https://fr.wikipedia.org/wiki/Rue_des_Boutiques_obscures
[Manifeste du Parti communiste]: https://fr.wikipedia.org/wiki/Manifeste_du_Parti_communiste
[L'Homme qui prenait sa femme pour un chapeau]: https://fr.wikipedia.org/wiki/L%27Homme_qui_prenait_sa_femme_pour_un_chapeau
[L'Élégance du hérisson]: https://fr.wikipedia.org/wiki/L%27%C3%89l%C3%A9gance_du_h%C3%A9risson
[L'Île des gauchers]: https://fr.wikipedia.org/wiki/L%27%C3%8Ele_des_gauchers
[Les Grandes Blondes]: https://fr.wikipedia.org/wiki/Les_Grandes_Blondes
[Soumission]: https://fr.wikipedia.org/wiki/Soumission_(roman)
[Entre les murs]: https://fr.wikipedia.org/wiki/Entre_les_murs
[Mr. Vertigo]: https://fr.wikipedia.org/wiki/Mr_Vertigo
[Le Vieux qui lisait des romans d'amour]: https://fr.wikipedia.org/wiki/Le_Vieux_qui_lisait_des_romans_d%27amour
[Le Joueur]: https://fr.wikipedia.org/wiki/Le_Joueur_(roman)
[Le Parfum]: https://fr.wikipedia.org/wiki/Le_Parfum
[L'Ombre du vent]: https://fr.wikipedia.org/wiki/L%27Ombre_du_vent
[Un homme effacé]: https://fr.wikipedia.org/wiki/Un_homme_effac%C3%A9
[Le Zèbre]: https://fr.wikipedia.org/wiki/Le_Z%C3%A8bre_(roman)
[La Ferme des animaux]: https://fr.wikipedia.org/wiki/La_Ferme_des_animaux
[L'Invention des corps]: https://fr.wikipedia.org/wiki/L%27Invention_des_corps
[Dans ces bras-là]: https://fr.wikipedia.org/wiki/Dans_ces_bras-l%C3%A0
[Soie]: https://fr.wikipedia.org/wiki/Soie_(roman)
[La Séparation]: https://fr.wikipedia.org/wiki/La_S%C3%A9paration_(Dan_Franck)
[Annihilation]: https://fr.wikipedia.org/wiki/Annihilation_(roman_de_Jeff_VanderMeer)
[Les Chaussures italiennes]: https://fr.wikipedia.org/wiki/Les_Chaussures_italiennes
[Tout cela n'a rien à voir avec moi]: https://fr.wikipedia.org/wiki/Tout_cela_n%27a_rien_%C3%A0_voir_avec_moi
[Zénith-Hôtel]: https://fr.wikipedia.org/wiki/Z%C3%A9nith-H%C3%B4tel
[Paname Underground]: https://fr.wikipedia.org/wiki/Paname_Underground
[Le Pas du loup]: https://fr.wikipedia.org/wiki/Le_Pas_du_loup
[La théorie de l'information]: https://fr.wikipedia.org/wiki/La_Th%C3%A9orie_de_l%27information
[Du temps qu'on existait]: https://fr.wikipedia.org/wiki/Du_temps_qu%27on_existait
[L'Exil et le Royaume]: https://fr.wikipedia.org/wiki/L%27Exil_et_le_Royaume
[La Nausée]: https://fr.wikipedia.org/wiki/La_Naus%C3%A9e
[Les Fruits d'Or]: https://fr.wikipedia.org/wiki/Les_Fruits_d%27or
[Les Violons parfois]: https://fr.wikipedia.org/wiki/Les_Violons_parfois
[Cœur de chien]: https://fr.wikipedia.org/wiki/C%C5%93ur_de_chien
[Les Mains sales]: https://fr.wikipedia.org/wiki/Les_Mains_sales
[Artemis Fowl]: https://fr.wikipedia.org/wiki/Artemis_Fowl_(roman)
[Mission Polaire]: https://fr.wikipedia.org/wiki/Mission_polaire
[Code éternité]: https://fr.wikipedia.org/wiki/Code_%C3%89ternit%C3%A9
[Opération Opale]: https://fr.wikipedia.org/wiki/Op%C3%A9ration_Opale
[Bonjour tristesse]: https://fr.wikipedia.org/wiki/Bonjour_Tristesse
[Un certain sourire]: https://fr.wikipedia.org/wiki/Un_certain_sourire_(roman)
[Salaire, prix et profit]: https://fr.wikipedia.org/wiki/Salaire,_prix_et_plus-value
[Johnny Mnemonic]: https://fr.wikipedia.org/wiki/Johnny_Mnemonic_(nouvelle)
[Aimez-vous Brahms…]: https://fr.wikipedia.org/wiki/Aimez-vous_Brahms%E2%80%A6
[Ondine]: https://fr.wikipedia.org/wiki/Ondine_(Giraudoux)
[Le Genre intégré]: https://fr.wikipedia.org/wiki/Le_Genre_int%C3%A9gr%C3%A9
[Duel aérien]: https://fr.wikipedia.org/wiki/Duel_a%C3%A9rien
[Gravé sur Chrome]: https://fr.wikipedia.org/wiki/Grav%C3%A9_sur_chrome_(nouvelle)
[Le Chat noir]: https://fr.wikipedia.org/wiki/Le_Chat_noir_(nouvelle)
[William Wilson]: https://fr.wikipedia.org/wiki/William_Wilson
[Le Masque de la mort rouge]: https://fr.wikipedia.org/wiki/Le_Masque_de_la_mort_rouge
[Metzengerstein]: https://fr.wikipedia.org/wiki/Metzengerstein
[Tous les hommes n'habitent pas le monde de la même façon]: https://fr.wikipedia.org/wiki/Tous_les_hommes_n%27habitent_pas_le_monde_de_la_m%C3%AAme_fa%C3%A7on
[Extension du domaine de la lutte]: https://fr.wikipedia.org/wiki/Extension_du_domaine_de_la_lutte
[La valse aux adieux]: https://fr.wikipedia.org/wiki/La_Valse_aux_adieux
[Le Lien]: https://fr.wikipedia.org/wiki/Le_Lien_(roman)
[Serge Abiteboul]: https://fr.wikipedia.org/wiki/Serge_Abiteboul
[Edgar Allan Poe]: https://fr.wikipedia.org/wiki/Edgar_Allan_Poe
[Leonid Andreïev]: https://fr.wikipedia.org/wiki/Leonid_Andre%C3%AFev
[Paul Auster]: https://fr.wikipedia.org/wiki/Paul_Auster
[Muriel Barbery]: https://fr.wikipedia.org/wiki/Muriel_Barbery
[Alessandro Baricco]: https://fr.wikipedia.org/wiki/Alessandro_Baricco
[François Bégaudeau]: https://fr.wikipedia.org/wiki/Fran%C3%A7ois_B%C3%A9gaudeau
[Aurélien Bellanger]: https://fr.wikipedia.org/wiki/Aur%C3%A9lien_Bellanger
[Jacques-André Bertrand]: https://fr.wikipedia.org/wiki/Jacques-Andr%C3%A9_Bertrand
[Justine Bo]: https://fr.wikipedia.org/wiki/Justine_Bo
[Mikhaïl Boulgakov]: https://fr.wikipedia.org/wiki/Mikha%C3%AFl_Boulgakov
[Albert Camus]: https://fr.wikipedia.org/wiki/Albert_Camus
[Chen Jo-hsi]: https://fr.wikipedia.org/wiki/Chen_Ruoxi
[Eoin Colfer]: https://fr.wikipedia.org/wiki/Eoin_Colfer
[Oscar Coop-Phane]: https://fr.wikipedia.org/wiki/Oscar_Coop-Phane
[Marien Defalvard]: https://fr.wikipedia.org/wiki/Marien_Defalvard
[Jean-Marie Domenach]: https://fr.wikipedia.org/wiki/Jean-Marie_Domenach
[Fiodor Dostoïevski]: https://fr.wikipedia.org/wiki/Fiodor_Dosto%C3%AFevski
[Gilles Dowek]: https://fr.wikipedia.org/wiki/Gilles_Dowek
[Jean-Paul Dubois]: https://fr.wikipedia.org/wiki/Jean-Paul_Dubois
[Pierre Ducrozet]: https://fr.wikipedia.org/wiki/Pierre_Ducrozet
[Vanessa Duriès]: https://fr.wikipedia.org/wiki/Vanessa_Duries
[Jean Echenoz]: https://fr.wikipedia.org/wiki/Jean_Echenoz
[Friedrich Engels]: https://fr.wikipedia.org/wiki/Friedrich_Engels
[Lydia Flem]: https://fr.wikipedia.org/wiki/Lydia_Flem
[Dan Franck]: https://fr.wikipedia.org/wiki/Dan_Franck
[Anne F. Garréta]: https://fr.wikipedia.org/wiki/Anne_F._Garr%C3%A9ta
[William Gibson]: https://fr.wikipedia.org/wiki/William_Gibson
[Jean Giraudoux]: https://fr.wikipedia.org/wiki/Jean_Giraudoux
[Michel Houellebecq]: https://fr.wikipedia.org/wiki/Michel_Houellebecq
[Alexandre Jardin]: https://fr.wikipedia.org/wiki/Alexandre_Jardin
[Milan Kundera]: https://fr.wikipedia.org/wiki/Milan_Kundera
[Camille Laurens]: https://fr.wikipedia.org/wiki/Camille_Laurens_(%C3%A9crivain)
[David Le Breton]: https://fr.wikipedia.org/wiki/David_Le_Breton
[Vladimir Ilitch Lénine]: https://fr.wikipedia.org/wiki/Vladimir_Ilitch_L%C3%A9nine
[Henning Mankell]: https://fr.wikipedia.org/wiki/Henning_Mankell
[Karl Marx]: https://fr.wikipedia.org/wiki/Karl_Marx
[Catherine Millet]: https://fr.wikipedia.org/wiki/Catherine_Millet
[Patrick Modiano]: https://fr.wikipedia.org/wiki/Patrick_Modiano
[David di Nota]: https://fr.wikipedia.org/wiki/David_di_Nota
[Eugenio d'Ors]: https://fr.wikipedia.org/wiki/Eugenio_d%27Ors
[George Orwell]: https://fr.wikipedia.org/wiki/George_Orwell
[Line Papin]: https://fr.wikipedia.org/wiki/Line_Papin
[Alexandre Postel]: https://fr.wikipedia.org/wiki/Alexandre_Postel
[Pierre Raufast]: https://fr.wikipedia.org/wiki/Pierre_Raufast
[Alain Rémond]: https://fr.wikipedia.org/wiki/Alain_R%C3%A9mond
[Emmanuel Roblès]: https://fr.wikipedia.org/wiki/Emmanuel_Robl%C3%A8s
[Carlos Ruiz Zafón]: https://fr.wikipedia.org/wiki/Carlos_Ruiz_Zaf%C3%B3n
[Monica Sabolo]: https://fr.wikipedia.org/wiki/Monica_Sabolo
[Oliver Sacks]: https://fr.wikipedia.org/wiki/Oliver_Sacks
[Sade]: https://fr.wikipedia.org/wiki/Donatien_Alphonse_François_de_Sade
[Françoise Sagan]: https://fr.wikipedia.org/wiki/Fran%C3%A7oise_Sagan
[Nathalie Sarraute]: https://fr.wikipedia.org/wiki/Nathalie_Sarraute
[Jean-Paul Sartre]: https://fr.wikipedia.org/wiki/Jean-Paul_Sartre
[Luis Sepúlveda]: https://fr.wikipedia.org/wiki/Luis_Sep%C3%BAlveda
[John Shirley]: https://fr.wikipedia.org/wiki/John_Shirley
[Bruce Sterling]: https://fr.wikipedia.org/wiki/Bruce_Sterling
[Patrick Süskind]: https://fr.wikipedia.org/wiki/Patrick_S%C3%BCskind
[Michael Swanwick]: https://fr.wikipedia.org/wiki/Michael_Swanwick
[Tzvetan Todorov]: https://fr.wikipedia.org/wiki/Tzvetan_Todorov
[Jeff VanderMeer]: https://fr.wikipedia.org/wiki/Jeff_VanderMeer
[Mario Vargas Llosa]: https://fr.wikipedia.org/wiki/Mario_Vargas_Llosa
[Wang Meng]: https://fr.wikipedia.org/wiki/Wang_Meng_(%C3%A9crivain)
[Zarca]: https://fr.wikipedia.org/wiki/Johann_Zarca

24
src/content/contact.md Normal file
View File

@ -0,0 +1,24 @@
# Contact
* [e-mail] : `<contact@ndrs.fr>`, [PGP] key `0x2D1D28F1`, fingerprint `539B 50E2 2112 21DB 29D8 F7CD 8981 C3C6 2D1D 28F1`, [full key]
* [matrix] : `@zapashcanon:matrix.org`
* [IRC] : `zapashcanon` on [freenode] (I'm in `#zapashcanon`), [OFTC] and [PowaneT]
* [mail] : ask me for my address in private
* [telephone] : ask me for my number in private, I'm using [silence]
* [oral conversation] : ask me for one of my favorite bars in private, if I'm in Paris it'll probably be [Au Chat Noir] or [Au Lèche-Vin]
[Au Chat Noir]: https://www.openstreetmap.org/node/416560240
[Au Lèche-Vin]: https://www.openstreetmap.org/node/906036878
[e-mail]: https://en.wikipedia.org/wiki/Email
[freenode]: https://freenode.net/
[full key]: https://git.zapashcanon.fr/zapashcanon/my-pgp-key/raw/branch/master/mykey.asc
[IRC]: https://en.wikipedia.org/wiki/Internet_Relay_Chat
[mail]: https://en.wikipedia.org/wiki/Mail
[matrix]: https://matrix.org
[OFTC]: https://www.oftc.net/
[oral conversation]: https://en.wikipedia.org/wiki/Conversation
[PGP]: https://en.wikipedia.org/wiki/Pretty_Good_Privacy
[PowaneT]: http://www.powanet.org/
[silence]: https://silence.im/
[telephone]: https://en.wikipedia.org/wiki/Telephone

5
src/content/dialogues.md Normal file
View File

@ -0,0 +1,5 @@
# Dialogues
- [L'infini]
[L'infini]: /l-infini

11
src/content/history.md Normal file
View File

@ -0,0 +1,11 @@
# History
## La Commune de Paris (1871)
- la [série d'émissions La Commune de Paris] par [Henri Guillemin]
- le [blog La Commune de Paris] par [Michèle Audin]
[blog La Commune de Paris]: https://macommunedeparis.com/
[Henri Guillemin]: https://fr.wikipedia.org/wiki/Henri_Guillemin
[Michèle Audin]: https://fr.wikipedia.org/wiki/Mich%C3%A8le_Audin
[série d'émissions La Commune de Paris]: https://peertube.zapashcanon.fr/videos/watch/playlist/25fa8cef-b08e-4723-b9ca-e630467c0a82

119
src/content/host.md Normal file
View File

@ -0,0 +1,119 @@
# Host
## Notice
I'm hosting many services on this server. A lot of them are open to registrations : *don't be stupid*, *be nice*. If I notice any abuse, I'll delete all your accounts without any notice, ban you and eventually write a music piece that will serve as a curse to make your soul (assuming you have one) being the perpetual target of all sources of entropy in the Universe.
## [bomberman.zapashcanon.fr]
An instance of [bomberscript]. You're free to use it.
## [coverage.zapashcanon.fr]
Hosting for [code coverage] reports of softwares I wrote. If you want to put some stuff there you can [contact me].
## [doc.zapashcanon.fr]
Hosting for documentation of softwares I wrote. If you want to put some stuff there you can [contact me].
## [fs.zapashcanon.fr]
A public read-only file system. If you want to put some stuff there you can [contact me].
## [funkwhale.zapashcanon.fr]
A [Funkwhale] instance. Registrations are closed because I generally try to avoid going to jail as it's not the best place to program in [OCaml]. You can [contact me] and I may be willing to give you an invitation.
## [git.zapashcanon.fr]
A [Gitea] instance. You're free to create an account.
## [giteart.zapashcanon.fr]
A [Giteart] instance, [contact me] if you want to use it. Giteart is made by my friend [delthas].
## [invidious.zapashcanon.fr]
An [invidious] instance. You're free to create an account.
## [linx.zapashcanon.fr]
A [linx] instance. You're free to use it.
## [mastodon.zapashcanon.fr]
A [Mastodon] instance. Registrations are open but as I didn't configured the e-mail server, you'll never receive the confirmation e-mail and won't be able to use it. I can fix that for you if you [contact me].
## [mobilizon.zapashcanon.fr]
A [Mobilizon] instance. Registrations are open, confirmation links will probably end-up in your spams.
## [peertube.zapashcanon.fr]
A [PeerTube] instance. Registrations are open, I'm not even checking your e-mail address. By default you can't upload any video, but you're still allowed to follow channels, comment and like videos. You can [contact me] if you want to be allowed to upload videos.
## [radicale.zapashcanon.fr]
A [radicale] instance, a [CalDAV] and [CardDAV] server. If you want an account, [contact me].
## [rss.zapashcanon.fr]
A [Miniflux] instance. Registrations are closed, but that's only because there's no way to open them. I can create an account for you if you [contact me].
## [searx.zapashcanon.fr]
A [searx] instance. You're free to use it.
## [webmail.zapashcanon.fr]
A [RainLoop] instance, you're free to use it. If your e-mail address domain isn't in the whitelist, [contact me] and I'll fix that. My friend [emersion] recently started [koushin], I plan to switch to it once it's ready.
## [www.zapashcanon.fr]
My personal website.
## [znc.zapashcanon.fr]
A [ZNC] instance. If you [contact me] I can create an account for you.
[bomberman.zapashcanon.fr]: https://bomberman.zapashcanon.fr
[bomberscript]: https://git.zapashcanon.fr/zapashcanon/bomberscript
[CalDAV]: https://en.wikipedia.org/wiki/CalDAV
[CardDAV]: https://en.wikipedia.org/wiki/CardDAV
[code coverage]: https://en.wikipedia.org/wiki/Code_coverage
[contact me]: https://www.zapashcanon.fr/contact.html
[coverage.zapashcanon.fr]: https://coverage.zapashcanon.fr
[delthas]: https://delthas.fr
[doc.zapashcanon.fr]: https://doc.zapashcanon.fr
[emersion]: https://emersion.fr
[fs.zapashcanon.fr]: https://fs.zapashcanon.fr
[funkwhale.zapashcanon.fr]: https://funkwhale.zapashcanon.fr
[funkwhale]: https://funkwhale.audio
[git.zapashcanon.fr]: https://git.zapashcanon.fr
[Gitea]: https://gitea.io
[giteart.zapashcanon.fr]: https://giteart.zapashcanon.fr
[Giteart]: https://git.saucisseroyale.cc/delthas/giteart
[koushin]: https://git.sr.ht/~emersion/koushin
[invidious.zapashcanon.fr]: https://invidious.zapashcanon.fr
[invidious]: https://github.com/omarroth/invidious
[linx.zapashcanon.fr]: https://linx.zapashcanon.fr
[linx]: https://github.com/andreimarcu/linx-server
[mastodon.zapashcanon.fr]: https://mastodon.zapashcanon.fr
[Mastodon]: https://joinmastodon.org
[mobilizon.zapashcanon.fr]: https://mobilizon.zapashcanon.fr
[Mobilizon]: https://joinmobilizon.org
[Miniflux]: https://miniflux.app
[OCaml]: https://ocaml.org
[peertube.zapashcanon.fr]: https://peertube.zapashcanon.fr
[PeerTube]: https://joinpeertube.org
[radicale]: https://radicale.org
[radicale.zapashcanon.fr]: https://radicale.zapashcanon.fr
[RainLoop]: https://www.rainloop.net
[rss.zapashcanon.fr]: https://rss.zapashcanon.fr
[searx.zapashcanon.fr]: https://searx.zapashcanon.fr
[searx]: https://asciimoo.github.io/searx
[webmail.zapashcanon.fr]: https://webmail.zapashcanon.fr
[www.zapashcanon.fr]: https://www.zapashcanon.fr
[znc.zapashcanon.fr]: https://znc.zapashcanon.fr
[ZNC]: https://znc.in/

View File

@ -1,20 +1,15 @@
<br />
<br />
<br />
<div class="row">
<div class="col-md-6">
<h1 class="hidden">Léo Andrès (zapashcanon)</h1>
<h1>Léo Andrès</h1>
<div class="text-justify">
<p class="lead">
Léo Andrès (zapashcanon)<br />
<a href="https://git.zapashcanon.fr/zapashcanon">gitea</a>
| <a href="https://github.com/zapashcanon">github</a>
| <a href="https://mastodon.zapashcanon.fr/@zapashcanon">mastodon</a>
| <a href="https://peertube.zapashcanon.fr/accounts/zapashcanon@peertube.zapashcanon.fr">peertube</a>
<a href="https://git.zapashcanon.fr/zapashcanon">git</a>
| <a href="https://mastodon.zapashcanon.fr/@deepo">mastodon</a>
| <a href="https://peertube.zapashcanon.fr/accounts/correia@peertube.zapashcanon.fr">peertube</a>
| <a href="https://fr.wikipedia.org/wiki/Sp%C3%A9cial:Contributions/Zapashcanon">wikipedia</a>
</p>
<blockquote>
Il était une fois un artiste qui sauva des gens de leur vie.
<blockquote class="blockquote">
<p>Il était une fois un artiste qui sauva des gens de leur vie.</p>
</blockquote>
</div>
</div>

69
src/content/l-infini.md Normal file
View File

@ -0,0 +1,69 @@
# L'infini
## 2015-05-21
Salut Ruben !
Je t'envoie la preuve pour convaincre ton père. Je me suis personnellement rendu à l'infini (il se trouve au Havre) et j'ai vérifié que les parallèles s'y joignent.
La photo montre qu'il y a même des flèches qui t'indiquent la direction par où t'es venu et par où tu dois revenir, car quand c'est à l'infini, on ne connaît pas.
Quelques centaines de mètres plus loin il y avait un autre infini, un raté cette fois-ci, où les parallèles n'ont pas réussi à se joindre : on voit que, franchement, c'est n'importe quoi.
T'imagines ce que cela donnerait comme point de fuite dans un tableau avec une perspective ? Ce qui prouve que les parallèles *doivent* se joindre, sinon c'est le *bordel* !
Voilà.
A+
Octave
![l-infini-1][l-infini-1]
![l-infini-2][l-infini-2]
![l-infini-3][l-infini-3]
![l-infini-4][l-infini-4]
![l-infini-5][l-infini-5]
![l-infini-6][l-infini-6]
## 2015-08-20
Salut Octave,
Si deux droites parallèles se rejoignent à l'infini et si elles se rejoignent au Havre, alors c'est que le Havre est à l'infini. Ou alors qu'il y a plusieurs infinis. Ce qui ne me gêne pas, mais en l'occurrence le compactifié d'Alexandrov et son unicité ont du plomb dans l'aile. C'est embêtant. Je me souviens être passé au Havre, c'est pas mal, mais c'est pas l'infini. Houston, on a un problème...
Entre temps j'ai trouvé une autre façon de visualiser la chose. Il s'agit de prendre deux cercles se coupant en un point et de les étirer, à l'infini ! Une animation est en pièce-jointe.
À plus tard !
![l-infini-cercles][l-infini-cercles]
## 2015-09-11
Cher Ruben, tu as probablement raison : celui qui est au Havre ne doit pas être le vrai infini. Le vrai infini se trouve sûrement beaucoup plus loin, au moins à 500 km.
Pour ce qui est de ton GIF, en y réfléchissant avec mon cerveau à moi : puisquil "nest pas possible" (= contraire à notre intuition) que deux droites parallèles se rejoignent au même point simultanément par leurs extrèmités opposées, alors les deux cercles, même infiniment grands, doivent garder leurs propriétés et toujours rester des cercles. Leurs arcs tendent vers le parallélisme uniquement localement, sans jamais devenir parallèles, puisquil ne sagit pas de droites. Dans un tel plan conforme à notre expérience, mais étiré avec tout ce qu'il contient à linfini dans ses deux dimensions, donc infiniment vaste, de tels cercles devraient se confondre quelque soit leur différence de rayon.
Mais peut-être que la première prémisse est fausse et il existe des parallèles se rejoignant en un seul point à linfini par leurs deux bouts. Ça, ce serait possible dans un espace infini, courbe et fermé dont ces droites feraient en quelque sorte le tour. Lintersection se trouverait chaque fois à lopposé de lobservateur. Les propriétés quont les cercles sur un plan localement seraient en fait les propriétés de cet espace en même temps fermé et infini (jai lu que ça existe, sans comprendre comment, sauf de la sorte, à linstant).
Donc : soit on a des cercles qui restent des cercles dans un espace plat, soit on a des droites parallèles dans un espace courbe et fermé. Ton .gif est censé de prouver que les parallèles se rejoignent à linfini même dans un espace plat ? Pas sûr que jai compris où tu voulais en venir.
Javoue que les infinis dépassent largement mon cerveau local. Un mathématicien, à laise avec les symboles et capable de généralisations, ne sempêtre pas dans les exemples et peut raisonner à grande échelle, de façon abstraite, à l'abri des intuitions trompeuses.
Mais même comme ça, en réfléchissant avec les moyens du bord, on aura au moins compris que l'on ne peut pas raisonner sur l'infini géométrique sans prendre en considération la topologie de l'espace considéré. Finalement, ce sont nos prémisses, devenues axiomes, qui définissent les propriétés topologiques de cet espace.
Donc, pour réfléchir sur tes cercles, il nous manque quelque chose. S'il y a un problème, alors son énoncé est incomplet.
En attendant l'élucidation définitive du mystère de l'infini, je te soumets aux fins détude un tableau digne dune thèse concernant un tout autre sujet, voir PJ.
O.
![l-infini-metal][l-infini-metal]
[l-infini-1]: https://fs.zapashcanon.fr/img/l-infini/l-infini-1.jpg
[l-infini-2]: https://fs.zapashcanon.fr/img/l-infini/l-infini-2.jpg
[l-infini-3]: https://fs.zapashcanon.fr/img/l-infini/l-infini-3.jpg
[l-infini-4]: https://fs.zapashcanon.fr/img/l-infini/l-infini-4.jpg
[l-infini-5]: https://fs.zapashcanon.fr/img/l-infini/l-infini-5.jpg
[l-infini-6]: https://fs.zapashcanon.fr/img/l-infini/l-infini-6.jpg
[l-infini-cercles]: https://fs.zapashcanon.fr/img/l-infini/l-infini-cercles.gif
[l-infini-metal]: https://fs.zapashcanon.fr/img/l-infini/l-infini-metal.jpg

View File

@ -1,3 +1,5 @@
# Listen
### Ndrs - Dorian Me
#### 2013 (work in progress)
<audio controls>

211
src/content/movies.md Normal file
View File

@ -0,0 +1,211 @@
# Movies
## 2020
### Avril
- [Dora ou Les Névroses sexuelles de nos parents] - [Stina Werenfels]
- [Wittgenstein] - [Derek Jarman]
- [White Bird] - [Gregg Araki]
- [Le Tombeau des lucioles] - [Isao Takahata]
- [Après la pluie] - [Takashi Koizumi]
- [White Girl] - Elizabeth Wood
- [Les Bruits de Recife] - [Kleber Mendonça Filho]
- [Precious] - [Lee Daniels]
- [Melancholia] - [Lars von Trier]
- [Extension du domaine de la lutte] - [Philippe Harel]
- [Apnée] - Jean-Christophe Meurisse
- [Augustine] - [Alice Winocour]
- [Les Particules élémentaires] - [Oskar Roehler]
### Mars
- [L'Enlèvement de Michel Houellebecq] - [Guillaume Nicloux]
- [Have a Nice Day] - [Liu Jian]
- [American Psycho] - [Mary Harron]
- [Sorry We Missed You] - [Ken Loach]
- [Les Nouveaux Chiens de garde] - [Gilles Balbastre] et [Yannick Kergoat]
- [Sophia Antipolis] - [Virgil Vernier]
- [Born to Be Blue] - Robert Budreau
### Février
- [Joker] - [Todd Phillips]
## 2019
### Décembre
- [Star Wars, épisode IX : L'Ascension de Skywalker] - [J. J. Abrams]
- [D'un château l'autre] - Emmanuel Marre
- Beautiful Loser - Maxime Roy
- [L'Incompris] - [Luigi Comencini]
- [Araf, quelque part entre deux] - [Yeşim Ustaoğlu]
- [Clair-obscur] - [Yeşim Ustaoğlu]
- La Sirène et le Géologue - Antoine Bailly
- Algorithm - Jon Schiefer
- Hier était une journée extraordinaire - Antoine Bailly
- L'autre bout du monde - Antoine Bailly
- [Mille nuances de pluie] - Isabel Prahl
- Thirty - Simona Kostova
- Psychobitch - [Martin Lund]
- [Solo: A Star Wars Story] - [Ron Howard]
- [D'une vie à l'autre] - [Georg Maas]
### Novembre
- Des profondeurs - Jamie Helmer et Miachael Leonard
- [Soleil battant] - Clara Laperrousaz et Laura Laperrousaz
- Hot Nasty Teen - Jens Assur
- L'attente - Clara Stern
- Invisible - Lotus Hannon
- [Crache cœur] - [Julia Kowalski]
- Arrière-plan - Toni Bestard
- Le premier qui pleure - Benjamin Leichtenstern
- Jus de pastèque - Irene Moray
- Lucía en el Limbo - Valentina Maurel
- Nuestros Muertos - Jacques Toulemonde
- La légende - Manon Eyriey
- Le sujet - [Patrick Bouchard]
- FIFO - Sacha Ferbus et Jeremy Puffet
- [Accord parental] - Benjamin Belloir
### Octobre
- Bigoudis - Marta Gennari
- Masmelos - Duván Duque
- [Lady Chatterley] - [Pascale Ferran]
- [Le Charme discret de la bourgeoisie] - [Luis Buñuel]
### Septembre
- [Le Rayon vert] - [Éric Rohmer]
### Août
- [Oh My God!] - [Tanya Wexler]
- [Mr. Long] - [Sabu]
- [Madame Claude] - [Just Jaeckin]
- [Au-delà des montagnes] - [Jia Zhangke]
- La Pierre et la Plume - Renan Recouvreur
- [Tigre et Dragon] - [Ang Lee]
- [Brazil] - [Terry Gilliam]
- [Totally Fucked Up] - [Gregg Araki]
### Juillet
- [The Doom Generation] - [Gregg Araki]
### Juin
- [2001, l'Odyssée de l'espace] - [Stanley Kubrick]
## 2017
### Août
- [Terre battue] - [Stéphane Demoustier]
- L'annonce - Halit Ruhat Yildiz
- [Félix et Meira] - [Maxime Giroux]
- [Mon fils] - [Eran Riklis]
### Juillet
- [A Girl at My Door] - [July Jung]
- [Ghost in the Shell] - [Rupert Sanders]
- [More] - [Barbet Schroeder]
[More]: https://fr.wikipedia.org/wiki/More_(film)
[Ghost in the Shell]: https://fr.wikipedia.org/wiki/Ghost_in_the_Shell_(film,_2017)
[A Girl at My Door]: https://fr.wikipedia.org/wiki/A_Girl_at_My_Door
[Mon fils]: https://fr.wikipedia.org/wiki/Mon_fils
[Félix et Meira]: https://fr.wikipedia.org/wiki/F%C3%A9lix_et_Meira
[Terre battue]: https://fr.wikipedia.org/wiki/Terre_battue_(film)
[2001, l'Odyssée de l'espace]: https://fr.wikipedia.org/wiki/2001,_l%27Odyss%C3%A9e_de_l%27espace
[The Doom Generation]: https://fr.wikipedia.org/wiki/The_Doom_Generation
[Totally Fucked Up]: https://fr.wikipedia.org/wiki/Totally_Fucked_Up
[Brazil]: https://fr.wikipedia.org/wiki/Brazil_(film,_1985)
[Tigre et Dragon]: https://fr.wikipedia.org/wiki/Tigre_et_Dragon
[Au-delà des montagnes]: https://fr.wikipedia.org/wiki/Au-del%C3%A0_des_montagnes
[Madame Claude]: https://fr.wikipedia.org/wiki/Madame_Claude_(film)
[Mr. Long]: https://fr.wikipedia.org/wiki/Mr._Long
[Oh My God!]: https://fr.wikipedia.org/wiki/Oh_My_God!_(film)
[Le Rayon vert]: https://fr.wikipedia.org/wiki/Le_Rayon_vert_(film,_1986)
[Le Charme discret de la bourgeoisie]: https://fr.wikipedia.org/wiki/Le_Charme_discret_de_la_bourgeoisie
[Lady Chatterley]: https://fr.wikipedia.org/wiki/Lady_Chatterley_(film,_2006)
[Accord parental]: https://fr.wikipedia.org/wiki/Accord_parental
[Crache cœur]: https://fr.wikipedia.org/wiki/Crache_c%C5%93ur
[Soleil battant]: https://fr.wikipedia.org/wiki/Soleil_battant
[D'une vie à l'autre]: https://fr.wikipedia.org/wiki/D%27une_vie_%C3%A0_l%27autre_(film,_2012)
[Solo: A Star Wars Story]: https://fr.wikipedia.org/wiki/Solo:_A_Star_Wars_Story
[Mille nuances de pluie]: https://fr.wikipedia.org/wiki/Mille_nuances_de_pluie
[Clair-obscur]: https://fr.wikipedia.org/wiki/Clair-obscur_(film,_2016)
[Araf, quelque part entre deux]: https://fr.wikipedia.org/wiki/Araf_(film,_2012)
[L'Incompris]: https://fr.wikipedia.org/wiki/L%27Incompris
[D'un château l'autre]: https://fr.wikipedia.org/wiki/D%27un_ch%C3%A2teau_l%27autre_(film,_2018)
[Star Wars, épisode IX : L'Ascension de Skywalker]: https://fr.wikipedia.org/wiki/Star_Wars,_%C3%A9pisode_IX_:_L%27Ascension_de_Skywalker
[Joker]: https://fr.wikipedia.org/wiki/Joker_(film,_2019)
[Born to Be Blue]: https://fr.wikipedia.org/wiki/Born_to_Be_Blue
[Sophia Antipolis]: https://fr.wikipedia.org/wiki/Sophia_Antipolis_(film)
[Les Nouveaux Chiens de garde]: https://fr.wikipedia.org/wiki/Les_Nouveaux_Chiens_de_garde_(film)
[Sorry We Missed You]: https://fr.wikipedia.org/wiki/Sorry_We_Missed_You
[American Psycho]: https://fr.wikipedia.org/wiki/American_Psycho_(film)
[Have a Nice Day]: https://fr.wikipedia.org/wiki/Have_a_Nice_Day_(film)
[L'Enlèvement de Michel Houellebecq]: https://fr.wikipedia.org/wiki/L%27Enl%C3%A8vement_de_Michel_Houellebecq
[Les Particules élémentaires]: https://fr.wikipedia.org/wiki/Les_Particules_%C3%A9l%C3%A9mentaires_(film)
[Augustine]: https://fr.wikipedia.org/wiki/Augustine_(film)
[Apnée]: https://fr.wikipedia.org/wiki/Apn%C3%A9e_(film)
[Extension du domaine de la lutte]: https://fr.wikipedia.org/wiki/Extension_du_domaine_de_la_lutte_(film)
[Melancholia]: https://fr.wikipedia.org/wiki/Melancholia_(film,_2011)
[Precious]: https://fr.wikipedia.org/wiki/Precious_(film)
[Les Bruits de Recife]: https://fr.wikipedia.org/wiki/Les_Bruits_de_Recife
[White Girl]: https://fr.wikipedia.org/wiki/White_Girl
[Après la pluie]: https://fr.wikipedia.org/wiki/Apr%C3%A8s_la_pluie_(film,_1999)
[Le Tombeau des lucioles]: https://fr.wikipedia.org/wiki/Le_Tombeau_des_lucioles
[White Bird]: https://fr.wikipedia.org/wiki/White_Bird
[Wittgenstein]: https://fr.wikipedia.org/wiki/Wittgenstein_(film)
[Dora ou Les Névroses sexuelles de nos parents]: https://fr.wikipedia.org/wiki/Dora_ou_Les_N%C3%A9vroses_sexuelles_de_nos_parents
[J. J. Abrams]: https://fr.wikipedia.org/wiki/J._J._Abrams
[Ang Lee]: https://fr.wikipedia.org/wiki/Ang_Lee
[Gregg Araki]: https://fr.wikipedia.org/wiki/Gregg_Araki
[Gilles Balbastre]: https://fr.wikipedia.org/wiki/Gilles_Balbastre
[Patrick Bouchard]: https://fr.wikipedia.org/wiki/Patrick_Bouchard
[Luis Buñuel]: https://fr.wikipedia.org/wiki/Luis_Bu%C3%B1uel
[Luigi Comencini]: https://fr.wikipedia.org/wiki/Luigi_Comencini
[Lee Daniels]: https://fr.wikipedia.org/wiki/Lee_Daniels_(r%C3%A9alisateur)
[Stéphane Demoustier]: https://fr.wikipedia.org/wiki/St%C3%A9phane_Demoustier
[Pascale Ferran]: https://fr.wikipedia.org/wiki/Pascale_Ferran
[Terry Gilliam]: https://fr.wikipedia.org/wiki/Terry_Gilliam
[Maxime Giroux]: https://fr.wikipedia.org/wiki/Maxime_Giroux
[Philippe Harel]: https://fr.wikipedia.org/wiki/Philippe_Harel
[Mary Harron]: https://fr.wikipedia.org/wiki/Mary_Harron
[Ron Howard]: https://fr.wikipedia.org/wiki/Ron_Howard
[Just Jaeckin]: https://fr.wikipedia.org/wiki/Just_Jaeckin
[Derek Jarman]: https://fr.wikipedia.org/wiki/Derek_Jarman
[Jia Zhangke]: https://fr.wikipedia.org/wiki/Jia_Zhangke
[July Jung]: https://fr.wikipedia.org/wiki/July_Jung
[Yannick Kergoat]: https://fr.wikipedia.org/wiki/Yannick_Kergoat
[Takashi Koizumi]: https://fr.wikipedia.org/wiki/Takashi_Koizumi
[Julia Kowalski]: https://fr.wikipedia.org/wiki/Julia_Kowalski
[Stanley Kubrick]: https://fr.wikipedia.org/wiki/Stanley_Kubrick
[Liu Jian]: https://fr.wikipedia.org/wiki/Liu_Jian_(r%C3%A9alisateur)
[Ken Loach]: https://fr.wikipedia.org/wiki/Ken_Loach
[Martin Lund]: https://fr.wikipedia.org/wiki/Martin_Lund
[Georg Maas]: https://fr.wikipedia.org/wiki/Georg_Maas
[Kleber Mendonça Filho]: https://fr.wikipedia.org/wiki/Kleber_Mendon%C3%A7a_Filho
[Guillaume Nicloux]: https://fr.wikipedia.org/wiki/Guillaume_Nicloux
[Todd Phillips]: https://fr.wikipedia.org/wiki/Todd_Phillips
[Eran Riklis]: https://fr.wikipedia.org/wiki/Eran_Riklis
[Oskar Roehler]: https://fr.wikipedia.org/wiki/Oskar_Roehler
[Éric Rohmer]: https://fr.wikipedia.org/wiki/%C3%89ric_Rohmer
[Sabu]: https://fr.wikipedia.org/wiki/Sabu_(r%C3%A9alisateur)
[Rupert Sanders]: https://fr.wikipedia.org/wiki/Rupert_Sanders
[Barbet Schroeder]: https://fr.wikipedia.org/wiki/Barbet_Schroeder
[Isao Takahata]: https://fr.wikipedia.org/wiki/Isao_Takahata
[Lars von Trier]: https://fr.wikipedia.org/wiki/Lars_von_Trier
[Yeşim Ustaoğlu]: https://fr.wikipedia.org/wiki/Ye%C5%9Fim_Ustao%C4%9Flu
[Virgil Vernier]: https://fr.wikipedia.org/wiki/Virgil_Vernier
[Stina Werenfels]: https://fr.wikipedia.org/wiki/Stina_Werenfels
[Tanya Wexler]: https://fr.wikipedia.org/wiki/Tanya_Wexler
[Alice Winocour]: https://fr.wikipedia.org/wiki/Alice_Winocour

View File

@ -0,0 +1,64 @@
# Publication
## Rapports
### Dddddml, une forme pour les écrire tous
Ce document est un rapport de mon stage chez [OCamlPro], effectué dans le cadre de ma formation en Master 2 FIIL à l'[Université Paris-Saclay]. J'y présente *dddddml*, un langage où l'on tente d'imposer une forme canonique sur les programmes afin de détecter et d'éviter la duplication de code. J'ai été encadré par [Pierre Chambart].
Un pdf est disponible: [internship-report-ocp.pdf]. Le code source aussi: [internship-report-ocp].
### Vérification par preuve formelle de propriétés fonctionnelles d'algorithmes de classification
Ce document est un rapport de mes travaux en tant qu'ingénieur d'étude sur le sujet *Vérification par preuve formelle de propriétés fonctionnelles d'algorithmes de classification*, effectués dans le cadre de ma formation en Magistère 2 d'Informatique à l'Université Paris-Sud. J'y présente la preuve formelle par vérification déductive de propriétés des algorithmes de Parcoursup' au moyen de Why3. J'ai été encadré par [Jean-Christophe Filliâtre].
Un pdf est disponible: [internship-report-parcoursup.pdf]. Le code source aussi: [internship-report-parcoursup].
### Partage d'implémentation, implémentation du partage: une bibliothèque fonctorisée de diagrammes de décision binaires
Ce document est un rapport de mes travaux de recherche sur le sujet *Partage d'implémentation, implémentation du partage: une bibliothèque fonctorisée de diagrammes de décision binaires*, effectués dans le cadre de ma formation en Master 1 Informatique à l'Université Paris-Saclay, j'ai été encadré par [Jean-Christophe Filliâtre].
Un pdf est disponible: [ter-report.pdf]. Le code source aussi: [ter-report].
### Le psittacisme pour permettre l'oubli motivé : implémentation et vérification du lambda lifting pour le compilateur CakeML
Ce document est un rapport de mon stage *Le psittacisme pour permettre l'oubli motivé : implémentation et vérification du lambda-lifting dans le compilateur CakeML*, effectué dans le cadre de ma formation en Master 1 Jacques Herbrand à l'École Normale Supérieure Paris-Saclay. Ce stage s'est déroulé sous la direction conjointe de [Scott Owens] et de [Hugo Férée].
Un pdf est disponible: [internship-report-cakeml.pdf]. Le code source aussi: [internship-report-cakeml].
### Vérification de compilation de requêtes SQL à base de traces
Ce document est un rapport de mon stage *Vérification de compilation de requêtes SQL à base de traces*, effectué dans le cadre de ma formation en Magistère 1 à l'Université Paris-Sud. Ce stage s'est déroulé sous la direction conjointe de [Véronique Benzaken], [Évelyne Contejean] et [Chantal Keller].
Un pdf est disponible: [internship-report-datacert.pdf]. Le code source aussi: [internship-report-datacert].
## Posters
### Deep specification and verification of SQL compilation chain
Ce document est un poster que j'ai réalisé et qui a été présenté par Raphaël Cornet à la [Junior Conference on Data Science and Engineering 2017]. Il porte sur le travail effectué au cours de mon stage *Vérification de compilation de requêtes SQL à base de traces*, ainsi que sur les stages de Raphaël Cornet et d'Eunice Martins.
Un pdf est disponible: [poster-jdse-2017.pdf]. Le code source aussi: [poster-jdse-2017].
[Chantal Keller]: https://www.lri.fr/~keller/
[Évelyne Contejean]: https://www.lri.fr/~contejea/
[Hugo Férée]: https://www.cs.kent.ac.uk/people/staff/hf216/
[internship-report-cakeml]: https://git.zapashcanon.fr/zapashcanon/internship-report-cakeml
[internship-report-cakeml.pdf]: https://fs.zapashcanon.fr/pdf/internship-report-cakeml.pdf
[internship-report-datacert]: https://git.zapashcanon.fr/zapashcanon/internship-report-datacert
[internship-report-datacert.pdf]: https://fs.zapashcanon.fr/pdf/internship-report-datacert.pdf
[internship-report-ocp]: https://git.zapashcanon.fr/zapashcanon/internship-report-ocp
[internship-report-ocp.pdf]: https://fs.zapashcanon.fr/pdf/internship-report-ocp.pdf
[internship-report-parcoursup]: https://git.zapashcanon.fr/zapashcanon/internship-report-parcoursup
[internship-report-parcoursup.pdf]: https://fs.zapashcanon.fr/pdf/internship-report-parcoursup.pdf
[Jean-Christophe Filliâtre]: https://www.lri.fr/~filliatr/
[Junior Conference on Data Science and Engineering 2017]: https://bigmine.github.io/jDSEParis17/
[OCamlPro]: https://www.ocamlpro.com/
[Pierre Chambart]: https://dblp.org/pers/c/Chambart:Pierre.html
[poster-jdse-2017]: https://git.zapashcanon.fr/zapashcanon/poster-jdse-2017
[poster-jdse-2017.pdf]: https://fs.zapashcanon.fr/pdf/poster-jdse-2017.pdf
[Scott Owens]: https://www.cs.kent.ac.uk/people/staff/sao/
[ter-report]: https://git.zapashcanon.fr/zapashcanon/ter-report
[ter-report.pdf]: https://fs.zapashcanon.fr/pdf/ter-report.pdf
[Université Paris-Saclay]: https://www.universite-paris-saclay.fr/
[Véronique Benzaken]: https://www.lri.fr/~benzaken/

3
src/content/robots.txt Normal file
View File

@ -0,0 +1,3 @@
# www.robotstxt.org
User-agent: *

86
src/content/software.md Normal file
View File

@ -0,0 +1,86 @@
# Software
## Games
### Bomberscript
This is a pure JavaScript implementation of a bomberman-like game.
Online instance: [bomberscript-online]. Source code: [bomberscript-git].
## Command-line tools
### so
A tool written in [OCaml] to quickly open files depending on their extensions.
Source code: [so-git].
Documentation: [so-doc].
## Libraries
### bdd
An [OCaml] library for [binary decision diagram].
Source code: [bdd-git].
Documentation: [bdd-doc].
### exit
An [OCaml] library to get [exit status] as declared in `stdlib.h`.
Source code: [exit-git].
Documentation: [exit-doc].
### hc
An [OCaml] library for [hash consing].
Source code: [hc-git].
Documentation: [hc-doc].
### memo
An [OCaml] library for [memoïzation].
Source code: [memo-git].
Documentation: [memo-doc].
### omg
An [OCaml] library to generate random text using [Markov chains].
Source code: [omg-git].
Documentation: [omg-doc].
### opazl
An [OCaml] library to parse [ZNC] logs.
Source code: [opazl-git].
Documentation: [opazl-doc].
[bdd-doc]: https://doc.zapashcanon.fr/bdd/
[bdd-git]: https://git.zapashcanon.fr/zapashcanon/bdd/
[binary decision diagram]: https://en.wikipedia.org/wiki/Binary_decision_diagram
[bomberscript-online]: https://bomberman.zapashcanon.fr/
[bomberscript-git]: https://git.zapashcanon.fr/zapashcanon/bomberscript/
[exit-doc]: https://doc.zapashcanon.fr/exit/
[exit-git]: https://git.zapashcanon.fr/zapashcanon/exit/
[exit status]: https://en.wikipedia.org/wiki/Exit_status
[hc-doc]: https://doc.zapashcanon.fr/hc/
[hc-git]: https://git.zapashcanon.fr/zapashcanon/hc/
[hash consing]: https://en.wikipedia.org/wiki/Hash_consing
[Markov chains]: https://en.wikipedia.org/wiki/Markov_chain
[memo-doc]: https://doc.zapashcanon.fr/memo/
[memo-git]: https://git.zapashcanon.fr/zapashcanon/memo/
[memoïzation]: https://en.wikipedia.org/wiki/Memoization
[OCaml]: https://en.wikipedia.org/wiki/OCaml
[omg-doc]: https://doc.zapashcanon.fr/omg/
[omg-git]: https://git.zapashcanon.fr/zapashcanon/omg/
[opazl-doc]: https://doc.zapashcanon.fr/opazl/
[opazl-git]: https://git.zapashcanon.fr/zapashcanon/opazl/
[so-doc]: https://doc.zapashcanon.fr/so/
[so-git]: https://git.zapashcanon.fr/zapashcanon/so/
[ZNC]: https://en.wikipedia.org/wiki/ZNC

View File

@ -0,0 +1,19 @@
# Transmission
> «C'est chez moi, raconte Nara Leão, qu'est née la bossa nova. Dans l'appartement où je vivais avec mes parents, au numéro 2856, Edifício des Champs-Élysées, sur le front de mer de Copacabana. Tous les artistes de la bossa nova - de ce qui allait devenir la bossa nova - se réunissaient chez moi, en 1957, alors que j'avais à peine quinze ans. Il faut dire que mes parents étaient très libéraux. J'avais été élevée d'une façon très indépendante: je pouvais faire ce que je voulais et recevoir qui je voulais, sans aucun problème.
>
> «Et c'est comme ça que, peu à peu, tout le monde a fini par se retrouver chez moi. Toute une *rapaziada* [une bande de jeunes gens]. C'était de la folie: les gens poussaient la porte, s'installaient, faisaient de la musique et, quelquefois, il nous arrivait de passer jusqu'à trois jours et trois nuits sans dormir une seule minute.
>
> «Mes parents, eux, entraient et sortaient comme si de rien n'était. Simplement, ils disaient en partant: "Je vais au travail" et en revenant: "Je rentre du travail" ! C'est tout.
>
> «Et nous, on continuait à faire de la musique, à parler et à rire. Quand on avait faim (que ce soit à trois heures de l'après-midi ou à cinq heures du matin), on préparait une bonne *macaronada*, un bon plat de pâtes. On dévorait ça et, immédiatement, on recommençait à faire de la musique.
>
> «C'était une maison ouverte, je te dis ! Dès que quelqu'un arrivait, il n'avait qu'à pousser la porte et il venait s'installer au piano. Ou alors, il prenait la guitare et il jouait tout ce qu'il voulait: classique, samba, jazz... On mélangeait tous les genres et on pouvait jouer de tout. C'était comme ça, sans arrêt: musique, musique et musique. Sans arrêt.
>
> «Les gens qui venaient chez moi s'appelaient João Gilberto, Vinícius de Moraes, Tom Jobim, Ronaldo Bôscoli, Roberto Menescal, Baden Powell, Oscar Castro Never (qui a d'ailleurs cassé toutes mes guitares tellement il était fou, agité, nerveux !) et d'autres encore...»
<cite>
Jean-Paul Delfino,
Brasil Bossa Nova,
Edisud - 1988 - Grand Prix du Label France Brésil Préface de Georges Moustaki
</cite>

View File

@ -0,0 +1,23 @@
# Visual Arts
## Mathias Auster
- [Mathias Auster]
## Mœbius
- [Jean Giraud] sur Wikipédia
- [sélection de dessins de Mœbius]
- [Mœbius Production]
## Richard Friend
- [Richard Friend]
- [sélection de peintures de Richard Friend]
[Jean Giraud]: https://fr.wikipedia.org/wiki/Jean_Giraud
[Mathias Auster]: https://mathiasauster.com
[Mœbius Production]: https://www.moebius.fr/
[Richard Friend]: http://www.richandframers.com/
[sélection de dessins de Mœbius]: https://fs.zapashcanon.fr/img/moebius/
[sélection de peintures de Richard Friend]: https://fs.zapashcanon.fr/img/richard_friend/

View File

@ -1,4 +0,0 @@
<div class="row">
<div class="col-md-2"></div>
<div class="col-md-8 text-justify">
<div class="text-justify">

View File

@ -1,5 +0,0 @@
<br />
<br />
</div>
</div>
</div>

View File

View File

@ -1,114 +0,0 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>$PAGE_TITLE$ - $SITE_TITLE$</title>
<meta name="description" content="Léo Andrès de mon nom d'humain, zapashcanon sur les internets. Je parle de mathématiques, d'informatique, de musique, de philosophie et de littérature." />
<meta name="keywords" content="Léo Andrès, zapashcanon, mathématiques, logique, informatique, ocaml, debian, compilation, méthodes formelles, musique, bach, MAO, théorie, philosophie, wittgenstein, spinoza, littérature" />
<meta name="author" content="Léo Andrès (zapashcanon)" />
<link href="css/bootstrap.min.css" rel="stylesheet">
<link href="css/starter.css" rel="stylesheet">
<link href="css/templateMain.css" rel="stylesheet">
<link rel="icon" type="image/x-icon" href="img/favicon/favicon.ico" />
<link rel="apple-touch-icon" sizes="57x57" href="img/favicon/apple-icon-57x57.png" />
<link rel="apple-touch-icon" sizes="60x60" href="img/favicon/apple-icon-60x60.png" />
<link rel="apple-touch-icon" sizes="72x72" href="img/favicon/apple-icon-72x72.png" />
<link rel="apple-touch-icon" sizes="76x76" href="img/favicon/apple-icon-76x76.png" />
<link rel="apple-touch-icon" sizes="114x114" href="img/favicon/apple-icon-114x114.png" />
<link rel="apple-touch-icon" sizes="120x120" href="img/favicon/apple-icon-120x120.png" />
<link rel="apple-touch-icon" sizes="144x144" href="img/favicon/apple-icon-144x144.png" />
<link rel="apple-touch-icon" sizes="152x152" href="img/favicon/apple-icon-152x152.png" />
<link rel="apple-touch-icon" sizes="180x180" href="img/favicon/apple-icon-180x180.png" />
<link rel="icon" type="image/png" sizes="192x192" href="img/favicon/android-icon-192x192.png" />
<link rel="icon" type="image/png" sizes="32x32" href="img/favicon/favicon-32x32.png" />
<link rel="icon" type="image/png" sizes="96x96" href="img/favicon/favicon-96x96.png" />
<link rel="icon" type="image/png" sizes="16x16" href="img/favicon/favicon-16x16.png" />
<link rel="manifest" href="img/favicon/manifest.json" />
<meta name="msapplication-TileColor" content="#ffffff">
<meta name="msapplication-TileImage" content="img/favicon/ms-icon-144x144.png" />
<meta name="theme-color" content="#ffffff">
</head>
<body>
<nav class="navbar navbar-inverse navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="index.html" title="Retour à l'accueil du site.">
<img src="https://fs.zapashcanon.fr/img/avatar_28px.png" alt="Avatar zapashcanon" height="28" width="28"/>
</a>
</div>
<div id="navbar" class="collapse navbar-collapse">
<ul class="nav navbar-nav">
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Bilan cul'<span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="bookshelf.html" title="Bookshelf">Bookshelf</a></li>
<li><a href="movies.html" title="Movies">Movies</a></li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Informatique<span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="host.html">Host</a></li>
<li><a href="publication_it.html" title="Consulter la liste de mes publications">Publication</a></li>
<li><a href="software.html">Software</a></li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Musique<span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="musique_ecouter.html" title="Un peu de musique.">Écouter</a></li>
<li><a href="transmission.html">Transmission</a></li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Various<span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="dialogues.html">Dialogues</a></li>
<li><a href="history.html">History</a></li>
<li><a href="visual_arts.html">Visual Arts</a></li>
</ul>
</li>
<li><a href="contact.html" title="Pour me contacter !">Contact</a></li>
</ul>
</div>
</div>
</nav>
<div class="container" id="top">
<div class="starter-template">
<section>
<h1>$PAGE_TITLE$</h1>
<br />
$CONTENT$
</section>
</div>
</div>
<footer class="footer">
<div class="container">
<div class="row">
<p class="text-muted text-center">
<a title='Retourner en haut de la page.' href='#top'>🔝</a>
| <a href="https://git.zapashcanon.fr/zapashcanon/www.zapashcanon.fr">source code</a>
</p>
</div>
</div>
</footer>
<script src="js/jquery.min.js"></script>
<script src="js/bootstrap.min.js"></script>
</body>
</html>

25
src/dune Normal file
View File

@ -0,0 +1,25 @@
(executable
(public_name www)
(modules content www template)
(libraries
dream
ezcurl
omd
lambdasoup)
(preprocess
(pps lwt_ppx)))
(rule
(targets template.ml)
(deps template.eml.html)
(action
(run dream_eml %{deps} --workspace %{workspace_root})))
(rule
(target content.ml)
(deps
(source_tree content))
(action
(with-stdout-to
%{null}
(run ocaml-crunch -m plain content -o %{target}))))

View File

@ -1 +0,0 @@
https://git.zapashcanon.fr/zapashcanon/bilan-cul/raw/branch/master/bookshelf.md

View File

@ -1 +0,0 @@
https://git.zapashcanon.fr/zapashcanon/contact/raw/branch/master/contact.md

File diff suppressed because one or more lines are too long

View File

@ -1,8 +0,0 @@
.starter-template{padding:40px 15px;text-align:center;}
html{position:relative;min-height:100%;}
body{padding-top:50px;margin-bottom:60px;}
.footer{position:absolute;bottom:0;width:100%;height:60px;background-color:#f5f5f5;}
body > .container{padding:60px 15px 0;}
.container .text-muted{margin:20px 0;}
.footer > .container{padding-right:15px;padding-left:15px;}
code{font-size:80%;}

View File

@ -1,2 +0,0 @@
img{max-width:80%;height:auto;}
iframe{max-width:80%;}

View File

@ -1 +0,0 @@
https://git.zapashcanon.fr/zapashcanon/dialogues/raw/branch/master/dialogues.md

View File

@ -1 +0,0 @@
https://git.zapashcanon.fr/zapashcanon/history/raw/branch/master/history.md

View File

@ -1 +0,0 @@
https://git.zapashcanon.fr/zapashcanon/host/raw/branch/master/host.md

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 876 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -1,41 +0,0 @@
{
"name": "App",
"icons": [
{
"src": "\/android-icon-36x36.png",
"sizes": "36x36",
"type": "image\/png",
"density": "0.75"
},
{
"src": "\/android-icon-48x48.png",
"sizes": "48x48",
"type": "image\/png",
"density": "1.0"
},
{
"src": "\/android-icon-72x72.png",
"sizes": "72x72",
"type": "image\/png",
"density": "1.5"
},
{
"src": "\/android-icon-96x96.png",
"sizes": "96x96",
"type": "image\/png",
"density": "2.0"
},
{
"src": "\/android-icon-144x144.png",
"sizes": "144x144",
"type": "image\/png",
"density": "3.0"
},
{
"src": "\/android-icon-192x192.png",
"sizes": "192x192",
"type": "image\/png",
"density": "4.0"
}
]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 114 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.9 KiB

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

View File

@ -1 +0,0 @@
https://git.zapashcanon.fr/zapashcanon/dialogues/raw/branch/master/l-infini.md

View File

@ -1 +0,0 @@
https://git.zapashcanon.fr/zapashcanon/bilan-cul/raw/branch/master/movies.md

View File

@ -1 +0,0 @@
https://git.zapashcanon.fr/zapashcanon/publication/raw/branch/master/it.md

View File

@ -1,4 +0,0 @@
# www.robotstxt.org/
# www.google.com/support/webmasters/bin/answer.py?hl=en&answer=156449
User-agent: *

View File

@ -1 +0,0 @@
https://git.zapashcanon.fr/zapashcanon/software/raw/branch/master/software.md

View File

@ -1 +0,0 @@
https://git.zapashcanon.fr/zapashcanon/transmission/raw/branch/master/transmission.md

View File

@ -1 +0,0 @@
https://git.zapashcanon.fr/zapashcanon/visual-arts/raw/branch/master/visual_arts.md

86
src/template.eml.html Normal file
View File

@ -0,0 +1,86 @@
let render ~title ~content =
<!DOCTYPE html>
<html lang="en">
<head>
<title><%s title %></title>
<link rel="icon" type="image/svg+xml" href="/assets/img/favicon.png">
<link href="/assets/css/bootstrap.min.css" rel="stylesheet"/>
<link href="/assets/css/style.css" rel="stylesheet">
</head>
<body>
<header>
<nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
<div class="container-fluid">
<a class="navbar-brand" href="/"><img src="/assets/img/favicon.png" alt="zapashcanon" height="42" /></a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarCollapse">
<ul class="navbar-nav me-auto mb-2 mb-md-0">
<li class="nav-item">
<a class="nav-link" href="/">Home</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" id="navbarDarkDropdownMenuLink" role="button" data-bs-toggle="dropdown" aria-expanded="false">
Bilan cul'
</a>
<ul class="dropdown-menu dropdown-menu-dark" aria-labelledby="navbarDarkDropdownMenuLink">
<li><a class="dropdown-item" href="/bookshelf">Bookshelf</a></li>
<li><a class="dropdown-item" href="/movies">Movies</a></li>
</ul>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" id="navbarDarkDropdownMenuLink" role="button" data-bs-toggle="dropdown" aria-expanded="false">
Informatique
</a>
<ul class="dropdown-menu dropdown-menu-dark" aria-labelledby="navbarDarkDropdownMenuLink">
<li><a class="dropdown-item" href="/host">Host</a></li>
<li><a class="dropdown-item" href="/publication">Publication</a></li>
<li><a class="dropdown-item" href="/software">Software</a></li>
</ul>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" id="navbarDarkDropdownMenuLink" role="button" data-bs-toggle="dropdown" aria-expanded="false">
Musique
</a>
<ul class="dropdown-menu dropdown-menu-dark" aria-labelledby="navbarDarkDropdownMenuLink">
<li><a class="dropdown-item" href="/listen">Écouter</a></li>
<li><a class="dropdown-item" href="/transmission">Transmission</a></li>
</ul>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" id="navbarDarkDropdownMenuLink" role="button" data-bs-toggle="dropdown" aria-expanded="false">
Various
</a>
<ul class="dropdown-menu dropdown-menu-dark" aria-labelledby="navbarDarkDropdownMenuLink">
<li><a class="dropdown-item" href="/dialogues">Dialogues</a></li>
<li><a class="dropdown-item" href="/history">History</a></li>
<li><a class="dropdown-item" href="/visual-arts">Visual Arts</a></li>
</ul>
</li>
<li class="nav-item">
<a class="nav-link" href="/contact" title="Pour me contacter !">Contact</a>
</li>
</ul>
</div>
</div>
</nav>
</header>
<br />
<br />
<br />
<br />
<main>
<div class="container">
<%s! content %>
</div>
<hr class="featurette-divider">
<footer class="container">
<p>zapashcanon
| <a href="https://git.zapashcanon.fr/zapashcanon/www.zapashcanon.fr">source code</a>
</p>
</footer>
</main>
<script src="/assets/js/bootstrap.bundle.min.js"></script>
</body>
</html>

53
src/www.ml Normal file
View File

@ -0,0 +1,53 @@
let render content =
let title =
let open Soup in
try
let soup = content |> parse in
let title = soup $ "h1" |> R.leaf_text in
Format.sprintf "%s | zapashcanon" title
with Failure _e -> "zapashcanon"
in
Dream.html @@ Template.render ~title ~content
let asset_loader _root path _request =
match Content.read ("assets/" ^ path) with
| None -> Dream.empty `Not_Found
| Some asset -> Dream.respond asset
let given_page name _request =
match Content.read (name ^ ".md") with
| None -> Dream.empty `Not_Found
| Some page ->
let content = Omd.of_string page |> Omd.to_html in
render content
let page request =
let name = Dream.param "page" request in
given_page name request
let page_dist url _request =
match Ezcurl.get ~url () with
| Error (code, msg) ->
let content = Format.sprintf "curl error: code `%s` (%s)" (Curl.strerror code) msg in
render content
| Ok response ->
let content = Omd.of_string response.body |> Omd.to_html in
render content
let robots_txt _request =
match Content.read "robots.txt" with
| None -> Dream.empty `Not_Found
| Some content -> Dream.respond content
let mk_dist_url project file =
Format.sprintf "https://git.zapashcanon.fr/zapashcanon/%s/raw/branch/master/%s" project file
let () =
Dream.run @@ Dream.logger
@@ Dream.router
[ Dream.get "/" (given_page "index")
; Dream.get "/assets/**" (Dream.static ~loader:asset_loader "")
; Dream.get "/robots.txt" robots_txt
; Dream.get "/:page" page
]
@@ Dream.not_found

3
test/dune Normal file
View File

@ -0,0 +1,3 @@
(test
(name main)
(modules main))

1
test/main.ml Normal file
View File

@ -0,0 +1 @@
let () = assert true (* TODO *)

27
www.opam Normal file
View File

@ -0,0 +1,27 @@
# This file is generated by dune, edit dune-project instead
opam-version: "2.0"
synopsis: "OCaml library/executable to TODO"
description: "www is an OCaml library/executable to TODO."
maintainer: ["TODO"]
authors: ["TODO"]
license: "ISC"
tags: ["www" "TODO" "TODO" "TODO" "TODO"]
depends: [
"dune" {>= "2.8"}
"ocaml" {>= "4.08"}
"odoc" {with-doc}
]
build: [
["dune" "subst"] {dev}
[
"dune"
"build"
"-p"
name
"-j"
jobs
"@install"
"@runtest" {with-test}
"@doc" {with-doc}
]
]

View File

@ -1,13 +1,12 @@
Define short_name www
Define server_name ${short_name}.zapashcanon.fr
Define admin_mail contact@ndrs.fr
Define cert_name ${server_name}
Define cert_dir /etc/letsencrypt/live
Define cert_name ${server_name}
Define log_dir /var/log/apache2
Define log_file ${log_dir}/${short_name}
Define error_log_file ${log_file}.error.log
Define access_log_file ${log_file}.access.log
Define doc_root /var/www/${server_name}/
<VirtualHost *:443>
@ -40,6 +39,10 @@ Define doc_root /var/www/${server_name}/
Allow from All
</Directory>
ProxyPass / http://127.0.0.1:3069/
ProxyPassReverse / http://127.0.0.1:3069/
ProxyRequests Off
ErrorLog ${error_log_file}
CustomLog ${access_log_file} combined