switch to dream
27
.build.yml
@ -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
@ -1,2 +1 @@
|
||||
src/site
|
||||
src/_build
|
||||
_build
|
||||
|
61
.ocamlformat
Normal 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
@ -0,0 +1 @@
|
||||
## unreleased
|
@ -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.
|
||||
|
||||
|
41
README.md
@ -1 +1,40 @@
|
||||
# www.zapashcanon.fr [](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
|
||||
|
19
doc/index.mld
Normal 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
@ -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
@ -0,0 +1,3 @@
|
||||
(executable
|
||||
(name main)
|
||||
(modules main))
|
1
example/main.ml
Normal file
@ -0,0 +1 @@
|
||||
let () = Format.printf "TODO@."
|
@ -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 !"
|
||||
|
@ -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 *)
|
7
src/content/assets/css/bootstrap.min.css
vendored
Normal file
16
src/content/assets/css/style.css
Normal 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;
|
||||
}
|
BIN
src/content/assets/img/favicon.png
Normal file
After Width: | Height: | Size: 37 KiB |
7
src/content/assets/js/bootstrap.bundle.min.js
vendored
Normal file
330
src/content/bookshelf.md
Normal 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
@ -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
@ -0,0 +1,5 @@
|
||||
# Dialogues
|
||||
|
||||
- [L'infini]
|
||||
|
||||
[L'infini]: /l-infini
|
11
src/content/history.md
Normal 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
@ -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/
|
||||
|
@ -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
@ -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 : puisqu’il "n’est 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, puisqu’il ne s’agit pas de droites. Dans un tel plan conforme à notre expérience, mais étiré avec tout ce qu'il contient à l’infini 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 à l’infini par leurs deux bouts. Ça, ce serait possible dans un espace infini, courbe et fermé dont ces droites feraient en quelque sorte le tour. L’intersection se trouverait chaque fois à l’opposé de l’observateur. Les propriétés qu’ont les cercles sur un plan localement seraient en fait les propriétés de cet espace en même temps fermé et infini (j’ai lu que ça existe, sans comprendre comment, sauf de la sorte, à l’instant).
|
||||
|
||||
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 à l’infini même dans un espace plat ? Pas sûr que j’ai compris où tu voulais en venir.
|
||||
J’avoue que les infinis dépassent largement mon cerveau local. Un mathématicien, à l’aise avec les symboles et capable de généralisations, ne s’empê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 d’une 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
|
||||
|
@ -1,3 +1,5 @@
|
||||
# Listen
|
||||
|
||||
### Ndrs - Dorian Me
|
||||
#### 2013 (work in progress)
|
||||
<audio controls>
|
211
src/content/movies.md
Normal 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
|
64
src/content/publication.md
Normal 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
@ -0,0 +1,3 @@
|
||||
# www.robotstxt.org
|
||||
|
||||
User-agent: *
|
86
src/content/software.md
Normal 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
|
19
src/content/transmission.md
Normal 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>
|
23
src/content/visual-arts.md
Normal 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/
|
@ -1,4 +0,0 @@
|
||||
<div class="row">
|
||||
<div class="col-md-2"></div>
|
||||
<div class="col-md-8 text-justify">
|
||||
<div class="text-justify">
|
@ -1,5 +0,0 @@
|
||||
<br />
|
||||
<br />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
@ -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
@ -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}))))
|
@ -1 +0,0 @@
|
||||
https://git.zapashcanon.fr/zapashcanon/bilan-cul/raw/branch/master/bookshelf.md
|
@ -1 +0,0 @@
|
||||
https://git.zapashcanon.fr/zapashcanon/contact/raw/branch/master/contact.md
|
2
src/pages/css/bootstrap.min.css
vendored
@ -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%;}
|
@ -1,2 +0,0 @@
|
||||
img{max-width:80%;height:auto;}
|
||||
iframe{max-width:80%;}
|
@ -1 +0,0 @@
|
||||
https://git.zapashcanon.fr/zapashcanon/dialogues/raw/branch/master/dialogues.md
|
@ -1 +0,0 @@
|
||||
https://git.zapashcanon.fr/zapashcanon/history/raw/branch/master/history.md
|
@ -1 +0,0 @@
|
||||
https://git.zapashcanon.fr/zapashcanon/host/raw/branch/master/host.md
|
Before Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 46 KiB |
Before Width: | Height: | Size: 3.0 KiB |
Before Width: | Height: | Size: 4.7 KiB |
Before Width: | Height: | Size: 9.3 KiB |
Before Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 36 KiB |
Before Width: | Height: | Size: 48 KiB |
Before Width: | Height: | Size: 6.3 KiB |
Before Width: | Height: | Size: 6.8 KiB |
Before Width: | Height: | Size: 9.3 KiB |
Before Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 53 KiB |
Before Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 876 B |
Before Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 1.1 KiB |
@ -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"
|
||||
}
|
||||
]
|
||||
}
|
Before Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 35 KiB |
Before Width: | Height: | Size: 114 KiB |
Before Width: | Height: | Size: 8.9 KiB |
7
src/pages/js/bootstrap.min.js
vendored
1
src/pages/js/ch.min.js
vendored
5
src/pages/js/jquery.min.js
vendored
@ -1 +0,0 @@
|
||||
https://git.zapashcanon.fr/zapashcanon/dialogues/raw/branch/master/l-infini.md
|
@ -1 +0,0 @@
|
||||
https://git.zapashcanon.fr/zapashcanon/bilan-cul/raw/branch/master/movies.md
|
@ -1 +0,0 @@
|
||||
https://git.zapashcanon.fr/zapashcanon/publication/raw/branch/master/it.md
|
@ -1,4 +0,0 @@
|
||||
# www.robotstxt.org/
|
||||
# www.google.com/support/webmasters/bin/answer.py?hl=en&answer=156449
|
||||
|
||||
User-agent: *
|
@ -1 +0,0 @@
|
||||
https://git.zapashcanon.fr/zapashcanon/software/raw/branch/master/software.md
|
@ -1 +0,0 @@
|
||||
https://git.zapashcanon.fr/zapashcanon/transmission/raw/branch/master/transmission.md
|
@ -1 +0,0 @@
|
||||
https://git.zapashcanon.fr/zapashcanon/visual-arts/raw/branch/master/visual_arts.md
|
86
src/template.eml.html
Normal 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
@ -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
|
1
test/main.ml
Normal file
@ -0,0 +1 @@
|
||||
let () = assert true (* TODO *)
|
27
www.opam
Normal 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}
|
||||
]
|
||||
]
|
@ -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
|
||||
|
||||
|