aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorneodarz <neodarz@neodarz.net>2020-06-20 13:25:07 +0200
committerneodarz <neodarz@neodarz.net>2020-06-26 21:01:01 +0200
commit3d48f4b17362d5141f04dc78d4aef55d84c02630 (patch)
tree93fedfbbae77da91ae73c109829f069c96c613f3
downloadwebsite-3d48f4b17362d5141f04dc78d4aef55d84c02630.tar.xz
website-3d48f4b17362d5141f04dc78d4aef55d84c02630.zip
Initial commit
-rw-r--r--.gitignore3
-rwxr-xr-xMakefile31
-rw-r--r--README.md12
-rw-r--r--poetry.lock563
-rw-r--r--pyproject.toml16
-rw-r--r--requirements.txt2
-rw-r--r--src/_locale/fr/LC_MESSAGES/associations.po72
-rw-r--r--src/_locale/fr/LC_MESSAGES/blog.po947
-rw-r--r--src/_locale/fr/LC_MESSAGES/contact.po102
-rw-r--r--src/_locale/fr/LC_MESSAGES/cv.po36
-rw-r--r--src/_locale/fr/LC_MESSAGES/gpg.po41
-rw-r--r--src/_locale/fr/LC_MESSAGES/index.po84
-rw-r--r--src/_locale/fr/LC_MESSAGES/notes.po110
-rw-r--r--src/_locale/fr/LC_MESSAGES/projects.po253
-rw-r--r--src/_locale/fr/LC_MESSAGES/sphinx.po85
-rw-r--r--src/_locale/fr/LC_MESSAGES/website.po31
-rw-r--r--src/_static/style.css3
-rw-r--r--src/_templates/collection.html54
-rw-r--r--src/associations.rst25
-rwxr-xr-xsrc/blog/2016-06-04-Mode-kiosk-sur-une-Raspberry-Pi-1.rst144
-rw-r--r--src/blog/2017-05-01-A-la-découverte-d-un-nouveau-langage.rst114
-rw-r--r--src/blog/2019-05-12-mysteredesportsusb.rst47
-rw-r--r--src/blog/2020-06-22-Hacking-a-datalogic-magellan-1100i.rst121
-rw-r--r--src/blog/2020-06-22-Hacking-a-datalogic-magellan-1100i/barecode_reader_close_detailed.pngbin0 -> 86834 bytes
-rw-r--r--src/blog/2020-06-22-Hacking-a-datalogic-magellan-1100i/barecode_reader_open.pngbin0 -> 57861 bytes
-rw-r--r--src/blog/index.rst10
-rwxr-xr-xsrc/conf.py355
-rwxr-xr-xsrc/contact.rst34
-rw-r--r--src/cv.rst129
-rw-r--r--src/gpg/4987E1338C1FA0D7C09650A0B0811718191581D5.rst192
-rw-r--r--src/gpg/9D006C6E30CEC9A888A6F804905EAB92577DA42C.rst151
-rw-r--r--src/gpg/corentin.breton@neodarz.net.public.asc143
-rw-r--r--src/gpg/neodarz@neodarz.net.public.asc184
-rw-r--r--src/index.html11
-rwxr-xr-xsrc/index.rst38
-rw-r--r--src/notes/2017-06-19-pulseaudio.rst73
-rw-r--r--src/notes/index.rst11
-rw-r--r--src/projects.rst96
-rw-r--r--src/robots.txt3
-rw-r--r--src/sitemap.xml9
-rwxr-xr-xsrc/website/contact.rst1
-rwxr-xr-xsrc/website/index.rst1
-rwxr-xr-xsrc/website/projets.rst1
43 files changed, 4338 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..c4bf4bf
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+build
+*.mo
+src/.doctrees
diff --git a/Makefile b/Makefile
new file mode 100755
index 0000000..cf6cda5
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,31 @@
+# Minimal makefile for Sphinx documentation
+#
+
+# You can set these variables from the command line, and also
+# from the environment for the first two.
+SPHINXOPTS ?=
+SPHINXBUILD ?= sphinx-build
+SOURCEDIR = src
+BUILDDIR = build
+
+# Put it first so that "make" without argument is like "make help".
+help:
+ @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
+
+.PHONY: help Makefile
+
+# Catch-all target: route all unknown targets to Sphinx using the new
+# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
+%: Makefile
+ @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
+
+locale:
+ make gettext
+ cd $(SOURCEDIR); sphinx-intl update -p ../$(BUILDDIR)/gettext -l fr; cd ..
+
+trad:
+ sphinx-build -b html -D language=fr $(SOURCEDIR) $(BUILDDIR)/html/fr
+ sphinx-build -b html -D language=en $(SOURCEDIR) $(BUILDDIR)/html/en
+ cp $(SOURCEDIR)/sitemap.xml $(BUILDDIR)/html
+ cp $(SOURCEDIR)/robots.txt $(BUILDDIR)/html
+ cp $(SOURCEDIR)/index.html $(BUILDDIR)/html
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..0e7a5a4
--- /dev/null
+++ b/README.md
@@ -0,0 +1,12 @@
+# Website
+
+The source of [my website](https://neodarz.net/en). It's use [sphinx-doc]()
+with [ablog plugin]() as engine. My custom theme is
+[here](https://git.neodarz.net/neodarz/website_theme.git)
+
+# License
+
+Code are in GPLv3 licence except some part indicated in the header of the
+concerned file.
+
+All articles and images are in CC-BY-SA unless otherwhise specified.
diff --git a/poetry.lock b/poetry.lock
new file mode 100644
index 0000000..edc5fc4
--- /dev/null
+++ b/poetry.lock
@@ -0,0 +1,563 @@
+[[package]]
+category = "main"
+description = "A Sphinx extension that converts any documentation or personal website project into a full-fledged blog."
+name = "ablog"
+optional = false
+python-versions = ">=3.6"
+version = "0.10.6"
+
+[package.dependencies]
+alabaster = "*"
+invoke = "*"
+python-dateutil = "*"
+sphinx = ">=2.0"
+sphinx-automodapi = "*"
+watchdog = "*"
+werkzeug = "<1"
+
+[package.extras]
+all = ["ipython", "nbsphinx (<0.5.0)"]
+dev = ["ipython", "nbsphinx (<0.5.0)"]
+notebook = ["ipython", "nbsphinx (<0.5.0)"]
+
+[[package]]
+category = "main"
+description = "A configurable sidebar-enabled Sphinx theme"
+name = "alabaster"
+optional = false
+python-versions = "*"
+version = "0.7.12"
+
+[[package]]
+category = "main"
+description = "Internationalization utilities"
+name = "babel"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+version = "2.8.0"
+
+[package.dependencies]
+pytz = ">=2015.7"
+
+[[package]]
+category = "main"
+description = "Python package for providing Mozilla's CA Bundle."
+name = "certifi"
+optional = false
+python-versions = "*"
+version = "2020.4.5.2"
+
+[[package]]
+category = "main"
+description = "Universal encoding detector for Python 2 and 3"
+name = "chardet"
+optional = false
+python-versions = "*"
+version = "3.0.4"
+
+[[package]]
+category = "main"
+description = "Composable command line interface toolkit"
+name = "click"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+version = "7.1.2"
+
+[[package]]
+category = "main"
+description = "Cross-platform colored terminal text."
+marker = "sys_platform == \"win32\""
+name = "colorama"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+version = "0.4.3"
+
+[[package]]
+category = "main"
+description = "Docutils -- Python Documentation Utilities"
+name = "docutils"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+version = "0.16"
+
+[[package]]
+category = "main"
+description = "Internationalized Domain Names in Applications (IDNA)"
+name = "idna"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+version = "2.9"
+
+[[package]]
+category = "main"
+description = "Getting image size from png/jpeg/jpeg2000/gif file"
+name = "imagesize"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+version = "1.2.0"
+
+[[package]]
+category = "main"
+description = "Pythonic task execution"
+name = "invoke"
+optional = false
+python-versions = "*"
+version = "1.4.1"
+
+[[package]]
+category = "main"
+description = "A very fast and expressive template engine."
+name = "jinja2"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+version = "2.11.2"
+
+[package.dependencies]
+MarkupSafe = ">=0.23"
+
+[package.extras]
+i18n = ["Babel (>=0.8)"]
+
+[[package]]
+category = "main"
+description = "Safely add untrusted strings to HTML/XML markup."
+name = "markupsafe"
+optional = false
+python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*"
+version = "1.1.1"
+
+[[package]]
+category = "main"
+description = "Core utilities for Python packages"
+name = "packaging"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+version = "20.4"
+
+[package.dependencies]
+pyparsing = ">=2.0.2"
+six = "*"
+
+[[package]]
+category = "main"
+description = "File system general utilities"
+name = "pathtools"
+optional = false
+python-versions = "*"
+version = "0.1.2"
+
+[[package]]
+category = "main"
+description = "Pygments is a syntax highlighting package written in Python."
+name = "pygments"
+optional = false
+python-versions = ">=3.5"
+version = "2.6.1"
+
+[[package]]
+category = "main"
+description = "Python parsing module"
+name = "pyparsing"
+optional = false
+python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
+version = "2.4.7"
+
+[[package]]
+category = "main"
+description = "Extensions to the standard Python datetime module"
+name = "python-dateutil"
+optional = false
+python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7"
+version = "2.8.1"
+
+[package.dependencies]
+six = ">=1.5"
+
+[[package]]
+category = "main"
+description = "World timezone definitions, modern and historical"
+name = "pytz"
+optional = false
+python-versions = "*"
+version = "2020.1"
+
+[[package]]
+category = "main"
+description = "Python HTTP for Humans."
+name = "requests"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+version = "2.24.0"
+
+[package.dependencies]
+certifi = ">=2017.4.17"
+chardet = ">=3.0.2,<4"
+idna = ">=2.5,<3"
+urllib3 = ">=1.21.1,<1.25.0 || >1.25.0,<1.25.1 || >1.25.1,<1.26"
+
+[package.extras]
+security = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)"]
+socks = ["PySocks (>=1.5.6,<1.5.7 || >1.5.7)", "win-inet-pton"]
+
+[[package]]
+category = "main"
+description = "Python 2 and 3 compatibility utilities"
+name = "six"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*"
+version = "1.15.0"
+
+[[package]]
+category = "main"
+description = "This package provides 26 stemmers for 25 languages generated from Snowball algorithms."
+name = "snowballstemmer"
+optional = false
+python-versions = "*"
+version = "2.0.0"
+
+[[package]]
+category = "main"
+description = "Python documentation generator"
+name = "sphinx"
+optional = false
+python-versions = ">=3.5"
+version = "3.1.1"
+
+[package.dependencies]
+Jinja2 = ">=2.3"
+Pygments = ">=2.0"
+alabaster = ">=0.7,<0.8"
+babel = ">=1.3"
+colorama = ">=0.3.5"
+docutils = ">=0.12"
+imagesize = "*"
+packaging = "*"
+requests = ">=2.5.0"
+setuptools = "*"
+snowballstemmer = ">=1.1"
+sphinxcontrib-applehelp = "*"
+sphinxcontrib-devhelp = "*"
+sphinxcontrib-htmlhelp = "*"
+sphinxcontrib-jsmath = "*"
+sphinxcontrib-qthelp = "*"
+sphinxcontrib-serializinghtml = "*"
+
+[package.extras]
+docs = ["sphinxcontrib-websupport"]
+lint = ["flake8 (>=3.5.0)", "flake8-import-order", "mypy (>=0.780)", "docutils-stubs"]
+test = ["pytest", "pytest-cov", "html5lib", "typed-ast", "cython"]
+
+[[package]]
+category = "main"
+description = "Sphinx extension for auto-generating API documentation for entire modules"
+name = "sphinx-automodapi"
+optional = false
+python-versions = "*"
+version = "0.12"
+
+[package.dependencies]
+sphinx = ">=1.7"
+
+[package.extras]
+test = ["pytest", "pytest-cov", "cython", "codecov", "coverage"]
+
+[[package]]
+category = "main"
+description = "Sphinx utility that make it easy to translate and to apply translation."
+name = "sphinx-intl"
+optional = false
+python-versions = ">=3.5"
+version = "2.0.1"
+
+[package.dependencies]
+babel = "*"
+click = "*"
+setuptools = "*"
+sphinx = "*"
+
+[package.extras]
+test = ["pytest", "mock"]
+transifex = ["transifex_client (>=0.11)"]
+
+[[package]]
+category = "main"
+description = "sphinxcontrib-applehelp is a sphinx extension which outputs Apple help books"
+name = "sphinxcontrib-applehelp"
+optional = false
+python-versions = ">=3.5"
+version = "1.0.2"
+
+[package.extras]
+lint = ["flake8", "mypy", "docutils-stubs"]
+test = ["pytest"]
+
+[[package]]
+category = "main"
+description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp document."
+name = "sphinxcontrib-devhelp"
+optional = false
+python-versions = ">=3.5"
+version = "1.0.2"
+
+[package.extras]
+lint = ["flake8", "mypy", "docutils-stubs"]
+test = ["pytest"]
+
+[[package]]
+category = "main"
+description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files"
+name = "sphinxcontrib-htmlhelp"
+optional = false
+python-versions = ">=3.5"
+version = "1.0.3"
+
+[package.extras]
+lint = ["flake8", "mypy", "docutils-stubs"]
+test = ["pytest", "html5lib"]
+
+[[package]]
+category = "main"
+description = "A sphinx extension which renders display math in HTML via JavaScript"
+name = "sphinxcontrib-jsmath"
+optional = false
+python-versions = ">=3.5"
+version = "1.0.1"
+
+[package.extras]
+test = ["pytest", "flake8", "mypy"]
+
+[[package]]
+category = "main"
+description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp document."
+name = "sphinxcontrib-qthelp"
+optional = false
+python-versions = ">=3.5"
+version = "1.0.3"
+
+[package.extras]
+lint = ["flake8", "mypy", "docutils-stubs"]
+test = ["pytest"]
+
+[[package]]
+category = "main"
+description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)."
+name = "sphinxcontrib-serializinghtml"
+optional = false
+python-versions = ">=3.5"
+version = "1.1.4"
+
+[package.extras]
+lint = ["flake8", "mypy", "docutils-stubs"]
+test = ["pytest"]
+
+[[package]]
+category = "main"
+description = "HTTP library with thread-safe connection pooling, file post, and more."
+name = "urllib3"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4"
+version = "1.25.9"
+
+[package.extras]
+brotli = ["brotlipy (>=0.6.0)"]
+secure = ["certifi", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "pyOpenSSL (>=0.14)", "ipaddress"]
+socks = ["PySocks (>=1.5.6,<1.5.7 || >1.5.7,<2.0)"]
+
+[[package]]
+category = "main"
+description = "Filesystem events monitoring"
+name = "watchdog"
+optional = false
+python-versions = "*"
+version = "0.10.2"
+
+[package.dependencies]
+pathtools = ">=0.1.1"
+
+[package.extras]
+watchmedo = ["PyYAML (>=3.10)", "argh (>=0.24.1)"]
+
+[[package]]
+category = "main"
+description = "The comprehensive WSGI web application library."
+name = "werkzeug"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+version = "0.16.1"
+
+[package.extras]
+dev = ["pytest", "coverage", "tox", "sphinx", "pallets-sphinx-themes", "sphinx-issues"]
+termcolor = ["termcolor"]
+watchdog = ["watchdog"]
+
+[metadata]
+content-hash = "ae9afdec0497c0e1afc08a687f57385e4ee23e17db908f96b1571a2d057dab51"
+python-versions = "^3.8"
+
+[metadata.files]
+ablog = [
+ {file = "ablog-0.10.6-py3-none-any.whl", hash = "sha256:67b69050796d4241401a42e762c48c4b86471532a366fd310db7342f1e0b0592"},
+ {file = "ablog-0.10.6.tar.gz", hash = "sha256:f9cb108e5d6cba1b10cd705c6a6410572e3305db105415d381a53cec583716da"},
+]
+alabaster = [
+ {file = "alabaster-0.7.12-py2.py3-none-any.whl", hash = "sha256:446438bdcca0e05bd45ea2de1668c1d9b032e1a9154c2c259092d77031ddd359"},
+ {file = "alabaster-0.7.12.tar.gz", hash = "sha256:a661d72d58e6ea8a57f7a86e37d86716863ee5e92788398526d58b26a4e4dc02"},
+]
+babel = [
+ {file = "Babel-2.8.0-py2.py3-none-any.whl", hash = "sha256:d670ea0b10f8b723672d3a6abeb87b565b244da220d76b4dba1b66269ec152d4"},
+ {file = "Babel-2.8.0.tar.gz", hash = "sha256:1aac2ae2d0d8ea368fa90906567f5c08463d98ade155c0c4bfedd6a0f7160e38"},
+]
+certifi = [
+ {file = "certifi-2020.4.5.2-py2.py3-none-any.whl", hash = "sha256:9cd41137dc19af6a5e03b630eefe7d1f458d964d406342dd3edf625839b944cc"},
+ {file = "certifi-2020.4.5.2.tar.gz", hash = "sha256:5ad7e9a056d25ffa5082862e36f119f7f7cec6457fa07ee2f8c339814b80c9b1"},
+]
+chardet = [
+ {file = "chardet-3.0.4-py2.py3-none-any.whl", hash = "sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691"},
+ {file = "chardet-3.0.4.tar.gz", hash = "sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae"},
+]
+click = [
+ {file = "click-7.1.2-py2.py3-none-any.whl", hash = "sha256:dacca89f4bfadd5de3d7489b7c8a566eee0d3676333fbb50030263894c38c0dc"},
+ {file = "click-7.1.2.tar.gz", hash = "sha256:d2b5255c7c6349bc1bd1e59e08cd12acbbd63ce649f2588755783aa94dfb6b1a"},
+]
+colorama = [
+ {file = "colorama-0.4.3-py2.py3-none-any.whl", hash = "sha256:7d73d2a99753107a36ac6b455ee49046802e59d9d076ef8e47b61499fa29afff"},
+ {file = "colorama-0.4.3.tar.gz", hash = "sha256:e96da0d330793e2cb9485e9ddfd918d456036c7149416295932478192f4436a1"},
+]
+docutils = [
+ {file = "docutils-0.16-py2.py3-none-any.whl", hash = "sha256:0c5b78adfbf7762415433f5515cd5c9e762339e23369dbe8000d84a4bf4ab3af"},
+ {file = "docutils-0.16.tar.gz", hash = "sha256:c2de3a60e9e7d07be26b7f2b00ca0309c207e06c100f9cc2a94931fc75a478fc"},
+]
+idna = [
+ {file = "idna-2.9-py2.py3-none-any.whl", hash = "sha256:a068a21ceac8a4d63dbfd964670474107f541babbd2250d61922f029858365fa"},
+ {file = "idna-2.9.tar.gz", hash = "sha256:7588d1c14ae4c77d74036e8c22ff447b26d0fde8f007354fd48a7814db15b7cb"},
+]
+imagesize = [
+ {file = "imagesize-1.2.0-py2.py3-none-any.whl", hash = "sha256:6965f19a6a2039c7d48bca7dba2473069ff854c36ae6f19d2cde309d998228a1"},
+ {file = "imagesize-1.2.0.tar.gz", hash = "sha256:b1f6b5a4eab1f73479a50fb79fcf729514a900c341d8503d62a62dbc4127a2b1"},
+]
+invoke = [
+ {file = "invoke-1.4.1-py2-none-any.whl", hash = "sha256:93e12876d88130c8e0d7fd6618dd5387d6b36da55ad541481dfa5e001656f134"},
+ {file = "invoke-1.4.1-py3-none-any.whl", hash = "sha256:87b3ef9d72a1667e104f89b159eaf8a514dbf2f3576885b2bbdefe74c3fb2132"},
+ {file = "invoke-1.4.1.tar.gz", hash = "sha256:de3f23bfe669e3db1085789fd859eb8ca8e0c5d9c20811e2407fa042e8a5e15d"},
+]
+jinja2 = [
+ {file = "Jinja2-2.11.2-py2.py3-none-any.whl", hash = "sha256:f0a4641d3cf955324a89c04f3d94663aa4d638abe8f733ecd3582848e1c37035"},
+ {file = "Jinja2-2.11.2.tar.gz", hash = "sha256:89aab215427ef59c34ad58735269eb58b1a5808103067f7bb9d5836c651b3bb0"},
+]
+markupsafe = [
+ {file = "MarkupSafe-1.1.1-cp27-cp27m-macosx_10_6_intel.whl", hash = "sha256:09027a7803a62ca78792ad89403b1b7a73a01c8cb65909cd876f7fcebd79b161"},
+ {file = "MarkupSafe-1.1.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:e249096428b3ae81b08327a63a485ad0878de3fb939049038579ac0ef61e17e7"},
+ {file = "MarkupSafe-1.1.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:500d4957e52ddc3351cabf489e79c91c17f6e0899158447047588650b5e69183"},
+ {file = "MarkupSafe-1.1.1-cp27-cp27m-win32.whl", hash = "sha256:b2051432115498d3562c084a49bba65d97cf251f5a331c64a12ee7e04dacc51b"},
+ {file = "MarkupSafe-1.1.1-cp27-cp27m-win_amd64.whl", hash = "sha256:98c7086708b163d425c67c7a91bad6e466bb99d797aa64f965e9d25c12111a5e"},
+ {file = "MarkupSafe-1.1.1-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:cd5df75523866410809ca100dc9681e301e3c27567cf498077e8551b6d20e42f"},
+ {file = "MarkupSafe-1.1.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:43a55c2930bbc139570ac2452adf3d70cdbb3cfe5912c71cdce1c2c6bbd9c5d1"},
+ {file = "MarkupSafe-1.1.1-cp34-cp34m-macosx_10_6_intel.whl", hash = "sha256:1027c282dad077d0bae18be6794e6b6b8c91d58ed8a8d89a89d59693b9131db5"},
+ {file = "MarkupSafe-1.1.1-cp34-cp34m-manylinux1_i686.whl", hash = "sha256:62fe6c95e3ec8a7fad637b7f3d372c15ec1caa01ab47926cfdf7a75b40e0eac1"},
+ {file = "MarkupSafe-1.1.1-cp34-cp34m-manylinux1_x86_64.whl", hash = "sha256:88e5fcfb52ee7b911e8bb6d6aa2fd21fbecc674eadd44118a9cc3863f938e735"},
+ {file = "MarkupSafe-1.1.1-cp34-cp34m-win32.whl", hash = "sha256:ade5e387d2ad0d7ebf59146cc00c8044acbd863725f887353a10df825fc8ae21"},
+ {file = "MarkupSafe-1.1.1-cp34-cp34m-win_amd64.whl", hash = "sha256:09c4b7f37d6c648cb13f9230d847adf22f8171b1ccc4d5682398e77f40309235"},
+ {file = "MarkupSafe-1.1.1-cp35-cp35m-macosx_10_6_intel.whl", hash = "sha256:79855e1c5b8da654cf486b830bd42c06e8780cea587384cf6545b7d9ac013a0b"},
+ {file = "MarkupSafe-1.1.1-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:c8716a48d94b06bb3b2524c2b77e055fb313aeb4ea620c8dd03a105574ba704f"},
+ {file = "MarkupSafe-1.1.1-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:7c1699dfe0cf8ff607dbdcc1e9b9af1755371f92a68f706051cc8c37d447c905"},
+ {file = "MarkupSafe-1.1.1-cp35-cp35m-win32.whl", hash = "sha256:6dd73240d2af64df90aa7c4e7481e23825ea70af4b4922f8ede5b9e35f78a3b1"},
+ {file = "MarkupSafe-1.1.1-cp35-cp35m-win_amd64.whl", hash = "sha256:9add70b36c5666a2ed02b43b335fe19002ee5235efd4b8a89bfcf9005bebac0d"},
+ {file = "MarkupSafe-1.1.1-cp36-cp36m-macosx_10_6_intel.whl", hash = "sha256:24982cc2533820871eba85ba648cd53d8623687ff11cbb805be4ff7b4c971aff"},
+ {file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:00bc623926325b26bb9605ae9eae8a215691f33cae5df11ca5424f06f2d1f473"},
+ {file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:717ba8fe3ae9cc0006d7c451f0bb265ee07739daf76355d06366154ee68d221e"},
+ {file = "MarkupSafe-1.1.1-cp36-cp36m-win32.whl", hash = "sha256:535f6fc4d397c1563d08b88e485c3496cf5784e927af890fb3c3aac7f933ec66"},
+ {file = "MarkupSafe-1.1.1-cp36-cp36m-win_amd64.whl", hash = "sha256:b1282f8c00509d99fef04d8ba936b156d419be841854fe901d8ae224c59f0be5"},
+ {file = "MarkupSafe-1.1.1-cp37-cp37m-macosx_10_6_intel.whl", hash = "sha256:8defac2f2ccd6805ebf65f5eeb132adcf2ab57aa11fdf4c0dd5169a004710e7d"},
+ {file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:46c99d2de99945ec5cb54f23c8cd5689f6d7177305ebff350a58ce5f8de1669e"},
+ {file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:ba59edeaa2fc6114428f1637ffff42da1e311e29382d81b339c1817d37ec93c6"},
+ {file = "MarkupSafe-1.1.1-cp37-cp37m-win32.whl", hash = "sha256:b00c1de48212e4cc9603895652c5c410df699856a2853135b3967591e4beebc2"},
+ {file = "MarkupSafe-1.1.1-cp37-cp37m-win_amd64.whl", hash = "sha256:9bf40443012702a1d2070043cb6291650a0841ece432556f784f004937f0f32c"},
+ {file = "MarkupSafe-1.1.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6788b695d50a51edb699cb55e35487e430fa21f1ed838122d722e0ff0ac5ba15"},
+ {file = "MarkupSafe-1.1.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:cdb132fc825c38e1aeec2c8aa9338310d29d337bebbd7baa06889d09a60a1fa2"},
+ {file = "MarkupSafe-1.1.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:13d3144e1e340870b25e7b10b98d779608c02016d5184cfb9927a9f10c689f42"},
+ {file = "MarkupSafe-1.1.1-cp38-cp38-win32.whl", hash = "sha256:596510de112c685489095da617b5bcbbac7dd6384aeebeda4df6025d0256a81b"},
+ {file = "MarkupSafe-1.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:e8313f01ba26fbbe36c7be1966a7b7424942f670f38e666995b88d012765b9be"},
+ {file = "MarkupSafe-1.1.1.tar.gz", hash = "sha256:29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b"},
+]
+packaging = [
+ {file = "packaging-20.4-py2.py3-none-any.whl", hash = "sha256:998416ba6962ae7fbd6596850b80e17859a5753ba17c32284f67bfff33784181"},
+ {file = "packaging-20.4.tar.gz", hash = "sha256:4357f74f47b9c12db93624a82154e9b120fa8293699949152b22065d556079f8"},
+]
+pathtools = [
+ {file = "pathtools-0.1.2.tar.gz", hash = "sha256:7c35c5421a39bb82e58018febd90e3b6e5db34c5443aaaf742b3f33d4655f1c0"},
+]
+pygments = [
+ {file = "Pygments-2.6.1-py3-none-any.whl", hash = "sha256:ff7a40b4860b727ab48fad6360eb351cc1b33cbf9b15a0f689ca5353e9463324"},
+ {file = "Pygments-2.6.1.tar.gz", hash = "sha256:647344a061c249a3b74e230c739f434d7ea4d8b1d5f3721bc0f3558049b38f44"},
+]
+pyparsing = [
+ {file = "pyparsing-2.4.7-py2.py3-none-any.whl", hash = "sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b"},
+ {file = "pyparsing-2.4.7.tar.gz", hash = "sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1"},
+]
+python-dateutil = [
+ {file = "python-dateutil-2.8.1.tar.gz", hash = "sha256:73ebfe9dbf22e832286dafa60473e4cd239f8592f699aa5adaf10050e6e1823c"},
+ {file = "python_dateutil-2.8.1-py2.py3-none-any.whl", hash = "sha256:75bb3f31ea686f1197762692a9ee6a7550b59fc6ca3a1f4b5d7e32fb98e2da2a"},
+]
+pytz = [
+ {file = "pytz-2020.1-py2.py3-none-any.whl", hash = "sha256:a494d53b6d39c3c6e44c3bec237336e14305e4f29bbf800b599253057fbb79ed"},
+ {file = "pytz-2020.1.tar.gz", hash = "sha256:c35965d010ce31b23eeb663ed3cc8c906275d6be1a34393a1d73a41febf4a048"},
+]
+requests = [
+ {file = "requests-2.24.0-py2.py3-none-any.whl", hash = "sha256:fe75cc94a9443b9246fc7049224f75604b113c36acb93f87b80ed42c44cbb898"},
+ {file = "requests-2.24.0.tar.gz", hash = "sha256:b3559a131db72c33ee969480840fff4bb6dd111de7dd27c8ee1f820f4f00231b"},
+]
+six = [
+ {file = "six-1.15.0-py2.py3-none-any.whl", hash = "sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"},
+ {file = "six-1.15.0.tar.gz", hash = "sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259"},
+]
+snowballstemmer = [
+ {file = "snowballstemmer-2.0.0-py2.py3-none-any.whl", hash = "sha256:209f257d7533fdb3cb73bdbd24f436239ca3b2fa67d56f6ff88e86be08cc5ef0"},
+ {file = "snowballstemmer-2.0.0.tar.gz", hash = "sha256:df3bac3df4c2c01363f3dd2cfa78cce2840a79b9f1c2d2de9ce8d31683992f52"},
+]
+sphinx = [
+ {file = "Sphinx-3.1.1-py3-none-any.whl", hash = "sha256:97c9e3bcce2f61d9f5edf131299ee9d1219630598d9f9a8791459a4d9e815be5"},
+ {file = "Sphinx-3.1.1.tar.gz", hash = "sha256:74fbead182a611ce1444f50218a1c5fc70b6cc547f64948f5182fb30a2a20258"},
+]
+sphinx-automodapi = [
+ {file = "sphinx-automodapi-0.12.tar.gz", hash = "sha256:a1338bc0a7f5c9bb317ecf7c7abd489c7cff452098205ef5110f733570516ac0"},
+ {file = "sphinx_automodapi-0.12-py2.py3-none-any.whl", hash = "sha256:83bef65c2862fc377c7758efddd9426a6a299bd6e55156389c00ae7216d8e4f4"},
+]
+sphinx-intl = [
+ {file = "sphinx-intl-2.0.1.tar.gz", hash = "sha256:b25a6ec169347909e8d983eefe2d8adecb3edc2f27760db79b965c69950638b4"},
+ {file = "sphinx_intl-2.0.1-py3.8.egg", hash = "sha256:2ff97cba0e4e43249e339a3c29dd2f5b63c25ce794050aabca320ad95f5c5b55"},
+]
+sphinxcontrib-applehelp = [
+ {file = "sphinxcontrib-applehelp-1.0.2.tar.gz", hash = "sha256:a072735ec80e7675e3f432fcae8610ecf509c5f1869d17e2eecff44389cdbc58"},
+ {file = "sphinxcontrib_applehelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:806111e5e962be97c29ec4c1e7fe277bfd19e9652fb1a4392105b43e01af885a"},
+]
+sphinxcontrib-devhelp = [
+ {file = "sphinxcontrib-devhelp-1.0.2.tar.gz", hash = "sha256:ff7f1afa7b9642e7060379360a67e9c41e8f3121f2ce9164266f61b9f4b338e4"},
+ {file = "sphinxcontrib_devhelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:8165223f9a335cc1af7ffe1ed31d2871f325254c0423bc0c4c7cd1c1e4734a2e"},
+]
+sphinxcontrib-htmlhelp = [
+ {file = "sphinxcontrib-htmlhelp-1.0.3.tar.gz", hash = "sha256:e8f5bb7e31b2dbb25b9cc435c8ab7a79787ebf7f906155729338f3156d93659b"},
+ {file = "sphinxcontrib_htmlhelp-1.0.3-py2.py3-none-any.whl", hash = "sha256:3c0bc24a2c41e340ac37c85ced6dafc879ab485c095b1d65d2461ac2f7cca86f"},
+]
+sphinxcontrib-jsmath = [
+ {file = "sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8"},
+ {file = "sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178"},
+]
+sphinxcontrib-qthelp = [
+ {file = "sphinxcontrib-qthelp-1.0.3.tar.gz", hash = "sha256:4c33767ee058b70dba89a6fc5c1892c0d57a54be67ddd3e7875a18d14cba5a72"},
+ {file = "sphinxcontrib_qthelp-1.0.3-py2.py3-none-any.whl", hash = "sha256:bd9fc24bcb748a8d51fd4ecaade681350aa63009a347a8c14e637895444dfab6"},
+]
+sphinxcontrib-serializinghtml = [
+ {file = "sphinxcontrib-serializinghtml-1.1.4.tar.gz", hash = "sha256:eaa0eccc86e982a9b939b2b82d12cc5d013385ba5eadcc7e4fed23f4405f77bc"},
+ {file = "sphinxcontrib_serializinghtml-1.1.4-py2.py3-none-any.whl", hash = "sha256:f242a81d423f59617a8e5cf16f5d4d74e28ee9a66f9e5b637a18082991db5a9a"},
+]
+urllib3 = [
+ {file = "urllib3-1.25.9-py2.py3-none-any.whl", hash = "sha256:88206b0eb87e6d677d424843ac5209e3fb9d0190d0ee169599165ec25e9d9115"},
+ {file = "urllib3-1.25.9.tar.gz", hash = "sha256:3018294ebefce6572a474f0604c2021e33b3fd8006ecd11d62107a5d2a963527"},
+]
+watchdog = [
+ {file = "watchdog-0.10.2.tar.gz", hash = "sha256:c560efb643faed5ef28784b2245cf8874f939569717a4a12826a173ac644456b"},
+]
+werkzeug = [
+ {file = "Werkzeug-0.16.1-py2.py3-none-any.whl", hash = "sha256:1e0dedc2acb1f46827daa2e399c1485c8fa17c0d8e70b6b875b4e7f54bf408d2"},
+ {file = "Werkzeug-0.16.1.tar.gz", hash = "sha256:b353856d37dec59d6511359f97f6a4b2468442e454bd1c98298ddce53cac1f04"},
+]
diff --git a/pyproject.toml b/pyproject.toml
new file mode 100644
index 0000000..211bf23
--- /dev/null
+++ b/pyproject.toml
@@ -0,0 +1,16 @@
+[tool.poetry]
+name = "ablog_website"
+version = "0.1.0"
+description = ""
+authors = ["neodarz <neodarz@neodarz.net>"]
+
+[tool.poetry.dependencies]
+python = "^3.8"
+ablog = "^0.10.6"
+sphinx-intl = "^2.0.1"
+
+[tool.poetry.dev-dependencies]
+
+[build-system]
+requires = ["poetry>=0.12"]
+build-backend = "poetry.masonry.api"
diff --git a/requirements.txt b/requirements.txt
new file mode 100644
index 0000000..2666589
--- /dev/null
+++ b/requirements.txt
@@ -0,0 +1,2 @@
+ablog
+sphinx-sitemap
diff --git a/src/_locale/fr/LC_MESSAGES/associations.po b/src/_locale/fr/LC_MESSAGES/associations.po
new file mode 100644
index 0000000..b6c1377
--- /dev/null
+++ b/src/_locale/fr/LC_MESSAGES/associations.po
@@ -0,0 +1,72 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) 2020, neodarz
+# This file is distributed under the same license as the neodarz's website
+# package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: neodarz's website \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-06-21 11:09+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.8.0\n"
+
+#: ../../src/associations.rst:2
+msgid "Associations"
+msgstr ""
+
+#: ../../src/associations.rst:4
+msgid "Little list of associations in which I participate or have participated."
+msgstr "Petite liste d’associations dans lesquelles je participe ou j’ai "
+"participé"
+
+#: ../../src/associations.rst:7
+msgid "HAUM"
+msgstr ""
+
+#: ../../src/associations.rst:9
+msgid ""
+"The HAUM is an hackerspace who, as specified on the web site, is a "
+"sarthoise association following the Do-it Yourself philosophy. It's a "
+"place of hacking and knowledge sharing based in the French cit of Le "
+"Mans."
+msgstr ""
+"Le HAUM est un hackerspace qui, comme indiqué sur le site web, est une "
+"association sarthoise adepte de la philosophie du “Faites-le vous même” "
+"(“Do-It Yourself” en anglais). C’est un lieu de bidouille, de partage de "
+"connaissances."
+
+#: ../../src/associations.rst:13
+msgid ":: More infos: `haum.org <https://haum.org>`_"
+msgstr ":: Plus d’info: `haum.org <https://haum.org>`_"
+
+#: ../../src/associations.rst:16
+msgid "TILIMA"
+msgstr ""
+
+#: ../../src/associations.rst:18
+msgid ""
+"Project to create an internet provider as a French non-profit "
+"organisation (french 1901 association law) in the French city of Le Mans."
+" Its based on the values of volunteerism, solidarity, democracy and the "
+"defence and promotion of net neutrality."
+msgstr ""
+"Projet de création d’un fournisseur d’accés à internet associatif basé sur "
+"les valeurs du bénévolat, de la solidarité, du fonctionnement démocratique "
+"et à but non lucratif ainsi que de la défense et promotion de la neutralité "
+"du Net."
+
+#: ../../src/associations.rst:23
+msgid ":: More infos: :strike:`tilima.fr`"
+msgstr ":: Plus d’info: :strike:`tilima.fr`"
+
+#: ../../src/associations.rst:25
+msgid ":: The project is dead, unfortunately."
+msgstr ":: Le projet n’est plus malheureusement"
diff --git a/src/_locale/fr/LC_MESSAGES/blog.po b/src/_locale/fr/LC_MESSAGES/blog.po
new file mode 100644
index 0000000..ad9c323
--- /dev/null
+++ b/src/_locale/fr/LC_MESSAGES/blog.po
@@ -0,0 +1,947 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) 2020, neodarz
+# This file is distributed under the same license as the neodarz's website
+# package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: neodarz's website \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-06-26 20:19+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.8.0\n"
+
+#: ../../src/blog/2016-06-04-Mode-kiosk-sur-une-Raspberry-Pi-1.rst:7
+msgid "Mode kiosk sur une Raspberry Pi 1"
+msgstr ""
+
+#: ../../src/blog/2016-06-04-Mode-kiosk-sur-une-Raspberry-Pi-1.rst:10
+msgid "Le système"
+msgstr ""
+
+#: ../../src/blog/2016-06-04-Mode-kiosk-sur-une-Raspberry-Pi-1.rst:12
+msgid ""
+"Pour l'un de mes stages il y a quelques semaines, je devais réaliser un "
+"écran connecté afin de faire un show room pour une entreprise mais le "
+"matériel fournis étant une Raspberry Pi 1, je me suis tout de suite douté"
+" qu'il risquait d'avoir des problèmes de performances. De plus pour faire"
+" cet écran connecté, le chef de projet avait décidé de le faire en web,"
+" peut être qu'il aurait été préférable de le faire avec une autre "
+"techno, je ne sais pas car je n'ai pas étudié la question."
+msgstr ""
+
+#: ../../src/blog/2016-06-04-Mode-kiosk-sur-une-Raspberry-Pi-1.rst:14
+msgid "Mais des problèmes de performances, oh que oui j'en ai rencontrés !"
+msgstr ""
+
+#: ../../src/blog/2016-06-04-Mode-kiosk-sur-une-Raspberry-Pi-1.rst:16
+msgid ""
+"Pour commencer, je ne connaissais pas les configurations déjà présentes "
+"sur la carte et dès que j'ai commencé à mettre en un peu de JS dans mon "
+"code pour la page web, le navigateur n'a pas arrété de crasher au "
+"démarrage de la rasp."
+msgstr ""
+
+#: ../../src/blog/2016-06-04-Mode-kiosk-sur-une-Raspberry-Pi-1.rst:18
+msgid ""
+"Bon, après le changement de la conf sur plusieurs navigateurs, de "
+"changement de gestionnaire de fenêtre j'ai ai eu marre et j'ai décidé de "
+"changer directement de distribution. Ah oui, car la rasp était de base "
+"sur une raspbian, alors j'ai installé un archlinux dessus et depuis elle "
+"va beaucoup mieux, par contre je ne vous cache pas que le JS est toujours"
+" lent mais fonctionnel."
+msgstr ""
+
+#: ../../src/blog/2016-06-04-Mode-kiosk-sur-une-Raspberry-Pi-1.rst:20
+msgid "EDIT: tinycorelinux aurait pus être une alternative aussi..."
+msgstr ""
+
+#: ../../src/blog/2016-06-04-Mode-kiosk-sur-une-Raspberry-Pi-1.rst:22
+msgid ""
+"Pour l'installation d'Archlinux, pas besoin d'expliquer comment faire, la"
+" doc sur leur site est très bien mais je vous mets quand même un "
+"[lien](https://archlinuxarm.org/platforms/armv6/raspberry-"
+"pi/#installation) car je suis gentil. ;)"
+msgstr ""
+
+#: ../../src/blog/2016-06-04-Mode-kiosk-sur-une-Raspberry-Pi-1.rst:26
+msgid ""
+"Avant d'aller plus loin, je vous conseille viviement de changer les mots "
+"de passe des comptes :samp:`root` et :samp:`alarm` !"
+msgstr ""
+
+#: ../../src/blog/2016-06-04-Mode-kiosk-sur-une-Raspberry-Pi-1.rst:28
+msgid "Après l'installation, j'ai dû installer quelques paquets, que voici :"
+msgstr ""
+
+#: ../../src/blog/2016-06-04-Mode-kiosk-sur-une-Raspberry-Pi-1.rst:30
+msgid "Pour la partie graphique :"
+msgstr ""
+
+#: ../../src/blog/2016-06-04-Mode-kiosk-sur-une-Raspberry-Pi-1.rst:32
+msgid "xorg-server"
+msgstr ""
+
+#: ../../src/blog/2016-06-04-Mode-kiosk-sur-une-Raspberry-Pi-1.rst:33
+msgid "xorg-xinit"
+msgstr ""
+
+#: ../../src/blog/2016-06-04-Mode-kiosk-sur-une-Raspberry-Pi-1.rst:34
+msgid "matchbox-window-manager"
+msgstr ""
+
+#: ../../src/blog/2016-06-04-Mode-kiosk-sur-une-Raspberry-Pi-1.rst:35
+msgid "xf86-video-fbdev"
+msgstr ""
+
+#: ../../src/blog/2016-06-04-Mode-kiosk-sur-une-Raspberry-Pi-1.rst:36
+msgid "xorg-xset"
+msgstr ""
+
+#: ../../src/blog/2016-06-04-Mode-kiosk-sur-une-Raspberry-Pi-1.rst:37
+msgid "fbset"
+msgstr ""
+
+#: ../../src/blog/2016-06-04-Mode-kiosk-sur-une-Raspberry-Pi-1.rst:38
+msgid "xwit (aur)"
+msgstr ""
+
+#: ../../src/blog/2016-06-04-Mode-kiosk-sur-une-Raspberry-Pi-1.rst:40
+msgid "Et pour la partie serveur web :"
+msgstr ""
+
+#: ../../src/blog/2016-06-04-Mode-kiosk-sur-une-Raspberry-Pi-1.rst:42
+msgid "php"
+msgstr ""
+
+#: ../../src/blog/2016-06-04-Mode-kiosk-sur-une-Raspberry-Pi-1.rst:43
+msgid "php-apache"
+msgstr ""
+
+#: ../../src/blog/2016-06-04-Mode-kiosk-sur-une-Raspberry-Pi-1.rst:44
+msgid "php-mcrypt"
+msgstr ""
+
+#: ../../src/blog/2016-06-04-Mode-kiosk-sur-une-Raspberry-Pi-1.rst:45
+msgid "apache"
+msgstr ""
+
+#: ../../src/blog/2016-06-04-Mode-kiosk-sur-une-Raspberry-Pi-1.rst:48
+msgid "Démarrage auto"
+msgstr ""
+
+#: ../../src/blog/2016-06-04-Mode-kiosk-sur-une-Raspberry-Pi-1.rst:50
+msgid ""
+"Bon avant d'automatiser le tout nous allons faire en sorte que notre "
+"interface graphique démarre sans encombre. Pour ça nous allons créer le "
+"fichier :samp:`.xinitrc` ou le modifier si celui-ci est déja présent, "
+"voila à quoi ressemble mon fichier de conf:"
+msgstr ""
+
+#: ../../src/blog/2016-06-04-Mode-kiosk-sur-une-Raspberry-Pi-1.rst:71
+msgid ""
+"Je précise que dans le cas actuel ma boucle permet de redémarer le "
+"navigateur en cas de crash de celui-ci au cas où... Et pour démarrer "
+"cette interface graphique un simple coup de :samp:`startx` et c'est plié."
+msgstr ""
+
+#: ../../src/blog/2016-06-04-Mode-kiosk-sur-une-Raspberry-Pi-1.rst:75
+msgid "Le navigateur"
+msgstr ""
+
+#: ../../src/blog/2016-06-04-Mode-kiosk-sur-une-Raspberry-Pi-1.rst:77
+msgid ""
+"On va s'occuper de l'étape où j'ai passé la plus part de mon temps, la "
+"configuration du navigateur. Car après m'être littéralement battu avec "
+"eux j'ai enfin trouvé la solution ! Sur la Raspberry Pi 1 seulement "
+"midori et firefox pouvaient tourner mais le problème est le suivant :"
+msgstr ""
+
+#: ../../src/blog/2016-06-04-Mode-kiosk-sur-une-Raspberry-Pi-1.rst:79
+msgid "Midori prend peu de ressources mais a quelques soucis avec le javascript;"
+msgstr ""
+
+#: ../../src/blog/2016-06-04-Mode-kiosk-sur-une-Raspberry-Pi-1.rst:80
+msgid ""
+"Firefox gère très bien le javascript mais prend trop de ressources pour "
+"la rasp -- je parle du cas où il y a des images plutôt lourdes à charger,"
+" ce qui était mon cas pour le projet malheureusement :/"
+msgstr ""
+
+#: ../../src/blog/2016-06-04-Mode-kiosk-sur-une-Raspberry-Pi-1.rst:82
+msgid ""
+"Midori pose aussi problème lorsqu'on éteint et qu'on redémmare la rasp de"
+" manière brutale, physiquement, le navigateur tente de recharger l'onglet"
+" fermé mais n'y arrive pas et du coup il faut rafraichir la page à la "
+"main mais je n'ai pas trouvé le moyen de désactiver ce fichu plugin "
+"malheureusement."
+msgstr ""
+
+#: ../../src/blog/2016-06-04-Mode-kiosk-sur-une-Raspberry-Pi-1.rst:84
+msgid ""
+"Donc j'ai opté pour firefox, par contre le mode kiosk n'est possible "
+"qu'en installant un plugin et cela ce fait de manière graphique, je n'ai "
+"pas encore regardé pour le faire via le terminal. Il faut commencer par "
+"modifier la config en tapant dans la bar d'adresse :samp:`about:config` "
+"et approuver qu'on ne va pas tout casser. Après on change l'option de "
+"vérifiction de la signature du plugin de true à false : je ne comprends "
+"pas trop"
+msgstr ""
+
+#: ../../src/blog/2016-06-04-Mode-kiosk-sur-une-Raspberry-Pi-1.rst:90
+msgid ""
+"Et maintenant on installe le "
+"[plugin](https://github.com/NeodarZ/r-kiosk/blob/master/build/r_kiosk.xpi)."
+msgstr ""
+
+#: ../../src/blog/2016-06-04-Mode-kiosk-sur-une-Raspberry-Pi-1.rst:92
+msgid ""
+"EDIT: luakit est une alternative à ne pas écarter mais "
+"[qutebrowser](https://qutebrowser.org) semble être une meilleur "
+"alternative... ;)"
+msgstr ""
+
+#: ../../src/blog/2016-06-04-Mode-kiosk-sur-une-Raspberry-Pi-1.rst:95
+msgid "Configuration du serveur web"
+msgstr ""
+
+#: ../../src/blog/2016-06-04-Mode-kiosk-sur-une-Raspberry-Pi-1.rst:97
+msgid ""
+"Une fois ceci configuré, il faut configurer le serveur web pour qu'il "
+"soit compatible avec php7, pour cela il faut éditer le fichier "
+":samp:`/etc/httpd/conf/httpd.conf` et commenter la ligne suivante :"
+msgstr ""
+
+#: ../../src/blog/2016-06-04-Mode-kiosk-sur-une-Raspberry-Pi-1.rst:103
+msgid "Afin de décommenter la ligne suivante :"
+msgstr ""
+
+#: ../../src/blog/2016-06-04-Mode-kiosk-sur-une-Raspberry-Pi-1.rst:109
+msgid "Ah et ne pas oublier de rajouter cette ligne à la fin :"
+msgstr ""
+
+#: ../../src/blog/2016-06-04-Mode-kiosk-sur-une-Raspberry-Pi-1.rst:116
+msgid "Mise en place de la connection automatique"
+msgstr ""
+
+#: ../../src/blog/2016-06-04-Mode-kiosk-sur-une-Raspberry-Pi-1.rst:118
+msgid ""
+"Maintenant que notre interface graphique démarre tranquillement, on va "
+"pouvoir automatiser le tout, pour cela on va commencer par faire en sorte"
+" que la connection soit automatique pour cela on crée le dossier suivant "
+": :samp:`/etc/systemd/system/getty@tty1.service.d/`"
+msgstr ""
+
+#: ../../src/blog/2016-06-04-Mode-kiosk-sur-une-Raspberry-Pi-1.rst:120
+msgid ""
+"Et enfin créer et modifier le fichier suivant : "
+":samp:`/etc/systemd/system/getty@tty1.service.d/override.conf` :"
+msgstr ""
+
+#: ../../src/blog/2016-06-04-Mode-kiosk-sur-une-Raspberry-Pi-1.rst:128
+msgid ""
+"On peut remarquer que j'ai mis deux fois :samp:`ExecStart=`, ce n'est pas"
+" une erreur, c'est juste que ma rasp ne voulait pas booter "
+"automatiquement avec un seul alors qu'avec deux, c'était nickel... Aller "
+"savoir pourquoi ^^"
+msgstr ""
+
+#: ../../src/blog/2016-06-04-Mode-kiosk-sur-une-Raspberry-Pi-1.rst:130
+msgid ""
+"Bon maintenant que notre session se lance il va faloir faire en sorte que"
+" notre belle interface graphique se lance toute seule comme une "
+"grande, alors pour ça il faut commencer par copier le fichier suivant : "
+":samp:`/etc/skel/.bash_profile` et ajouter à la fin :"
+msgstr ""
+
+#: ../../src/blog/2016-06-04-Mode-kiosk-sur-une-Raspberry-Pi-1.rst:136
+msgid ""
+"Et là on se dit, oui c'est fini ! Et bien non ! :p Ce serait trop facile."
+" Pour faire simple, il faut juste autoriser n'importe quel utilisateur à"
+" lancer le serveur Xorg. Pour cela il vous faut créer et modifier le "
+"fichier :samp:`/etc/X11/Xwrapper.config` et ajouter cette ligne :"
+msgstr ""
+
+#: ../../src/blog/2016-06-04-Mode-kiosk-sur-une-Raspberry-Pi-1.rst:143
+msgid ""
+"Et voila maintenant c'est bon, nous pouvons profiter de notre mode kiosk "
+"fraichement installé ! ;) Personnellement je ne vous cache pas que je me "
+"suis battu avec la conf de mon navigateur qui finalement démarre sans "
+"trop de difficulté..."
+msgstr ""
+
+#: ../../src/blog/2017-05-01-A-la-découverte-d-un-nouveau-langage.rst:7
+msgid "A la découverte d’un nouveau langage"
+msgstr ""
+
+#: ../../src/blog/2017-05-01-A-la-découverte-d-un-nouveau-langage.rst:9
+msgid ""
+"Lors de mon stage de seconde année, j’ai pu découvrir un nouveau langage "
+"de programmation. D’où le titre de cet article..."
+msgstr ""
+
+#: ../../src/blog/2017-05-01-A-la-découverte-d-un-nouveau-langage.rst:12
+msgid ""
+"J’ai donc pu me pencher sur le langage Elixir qui, en plus d’être un "
+"langage que je ne connaissais pas, m’a été ‘vendu’ par mon maître de "
+"stage, `Vincent Jousse <http://vincent.jousse.org/%C3%A0-propos/>`_, "
+"comme un langage avec un `paradigme fonctionnel "
+"<https://fr.wikipedia.org/wiki/Programmation_fonctionnelle>`_. J’ai donc "
+"été voir la page wikipédia et j’ai pu lire que finalement c’est un "
+"langage `multi-paradigme "
+"<https://fr.wikipedia.org/wiki/Paradigme_(programmation)>`_... Bon, "
+"super... Déjà que je ne voyais pas ce qu’était un paradigme en "
+"programmation ’ai pu voir qu’il y en avait plein et donc commencer la "
+"lecture des différentes pages wikipédia qui traitaient du sujet..."
+msgstr ""
+
+#: ../../src/blog/2017-05-01-A-la-découverte-d-un-nouveau-langage.rst:22
+msgid ""
+"Une fois cette lecture terminée j’ai pu lire (oui encore) de la "
+"documentation à propos de Elixir et du framework Phoenix. Malheureusement"
+" par manque de temps je ne me suis pas penché sur l’apprentissage du "
+"langage Elixir en lui même mais directement sur le framework. Sur lequel "
+"j’ai d’ailleurs passé la moitié de mon temps de stage pour en lire "
+"finalement que la moitié avant de pouvoir développer une API fonctionnel."
+msgstr ""
+
+#: ../../src/blog/2017-05-01-A-la-découverte-d-un-nouveau-langage.rst:29
+msgid ""
+"La documentation lue était sous forme de tutoriel par mini-projet, j’ai "
+"dû mettre en place l’envrionnement de développement avant de pouvoir "
+"réellement commencer. J’ai donc démarré par l’installation d’Erlang, qui "
+"est le langage de programmation sur lequelle est construit Elixir. Étant "
+"sur archlinux à l’origine il ma juste suffi d’installer directement le "
+"packet d’elixir via AUR. De plus celui-ci gère les dépendances donc il "
+"m’a automatiquement installé le packet d’erlang."
+msgstr ""
+
+#: ../../src/blog/2017-05-01-A-la-découverte-d-un-nouveau-langage.rst:41
+msgid ""
+"Mais lorsque j’ai voulu installer une version de démonstration sur le "
+"serveur de mon lycée pour mon épreuve oral de BTS, j’ai rencontré "
+"quelques difficultés pour l’installer... car certains packets comme celui"
+" d’erlang ou de node n’étaient soit pas à jour soit pas disponible..."
+msgstr ""
+
+#: ../../src/blog/2017-05-01-A-la-découverte-d-un-nouveau-langage.rst:46
+msgid ""
+"Il a donc fallu commencer par l’installation du repository d’Erlang via "
+"la commande suivante :"
+msgstr ""
+
+#: ../../src/blog/2017-05-01-A-la-découverte-d-un-nouveau-langage.rst:53
+msgid ""
+"Puis de mettre à jour la liste des packets et de commencer les "
+"installations nécessaires :"
+msgstr ""
+
+#: ../../src/blog/2017-05-01-A-la-découverte-d-un-nouveau-langage.rst:60
+msgid ""
+"Il faut ensuite installer la dernière version stable de node en la "
+"compilant depuis les sources ainsi que le packet postgresql."
+msgstr ""
+
+#: ../../src/blog/2017-05-01-A-la-découverte-d-un-nouveau-langage.rst:63
+msgid ""
+"Une fois les dépendances nécessaire installées, on peut passer à la mise "
+"en place de la base de donnée puis l’installation de l’API elle même."
+msgstr ""
+
+#: ../../src/blog/2017-05-01-A-la-découverte-d-un-nouveau-langage.rst:66
+msgid ""
+"Pour la base de donnée, l’ajour d’un utilisateur et l’autorisation de "
+"celui-ci pour la création de la base de données est nécessaire :"
+msgstr ""
+
+#: ../../src/blog/2017-05-01-A-la-découverte-d-un-nouveau-langage.rst:74
+msgid ""
+"Une fois le repository cloné via "
+"https://framagit.org/NeodarZ/the_transcriber_backend.git il faut modifier"
+" quelque fichier de configarations, nottament pour ce qui est de la "
+"connection à la base de données."
+msgstr ""
+
+#: ../../src/blog/2017-05-01-A-la-découverte-d-un-nouveau-langage.rst:79
+msgid ""
+"Si la base de données est en local, il suffit simplement de modifier les "
+"fichiers :samp:`config/dev.exs` et :samp:`config/test.exs` avec les "
+"paramètres suivant :"
+msgstr ""
+
+#: ../../src/blog/2017-05-01-A-la-découverte-d-un-nouveau-langage.rst:90
+msgid ""
+"Une fois la configuration terminée il faut installer l’API en commancant "
+"par l’installation des dépendances :"
+msgstr ""
+
+#: ../../src/blog/2017-05-01-A-la-découverte-d-un-nouveau-langage.rst:97
+msgid ""
+"Dans mon cas je n’ai pas installé hex qui est nécessaire lors de "
+"l’installation des dépendances mais, heuresement pour nous, les "
+"développeurs du framework Phoenix on pensé à tout et propose de "
+"l’installer pour nous :"
+msgstr ""
+
+#: ../../src/blog/2017-05-01-A-la-découverte-d-un-nouveau-langage.rst:106
+msgid ""
+"Une fois les dépendances installées, il nous que le framework créer les "
+"bases de données nécessaire à son bon fonctionnement."
+msgstr ""
+
+#: ../../src/blog/2017-05-01-A-la-découverte-d-un-nouveau-langage.rst:113
+msgid ""
+"Une fois toute les étapes passées sans erreur la simple commande mix mix "
+"phoenix.server devrait être necessaire au démarrage de l’API."
+msgstr ""
+
+#: ../../src/blog/2019-05-12-mysteredesportsusb.rst:7
+msgid "Mystère des ports USB"
+msgstr ""
+
+#: ../../src/blog/2019-05-12-mysteredesportsusb.rst:9
+msgid ""
+"Voila depuis quelque temps je trouvais que mes ports USB 2.0 et 3.0 "
+"étaient capricieux... Plus souvent c’était plus ceux de devant que ceux "
+"de derrière bizarrement."
+msgstr ""
+
+#: ../../src/blog/2019-05-12-mysteredesportsusb.rst:13
+msgid ""
+"Et bah j’ai réussi à élucider ce mystère en voulant jouer avec mes cartes"
+" graphiques ! Oai rien à voir, finalement si, mais c’était une histoire "
+"d’option à la con."
+msgstr ""
+
+#: ../../src/blog/2019-05-12-mysteredesportsusb.rst:17
+msgid ""
+"L’option en question c’est :samp:`iommu`. Ça permet de passer à une "
+"machine virtuelle de type HVM un périphérique PCI. Le rapport avec mon "
+"histoire de ports USB c’est que ça permet d’isoler les accès "
+"entrés/sorties."
+msgstr ""
+
+#: ../../src/blog/2019-05-12-mysteredesportsusb.rst:21
+msgid ""
+"J’ai donc été faire un tour dans le bios pour jouer avec cette option "
+"mais l’activer dans le bios sans l’activer dans GRUB fous le bordel."
+msgstr ""
+
+#: ../../src/blog/2019-05-12-mysteredesportsusb.rst:24
+msgid ""
+"Oui j’ai vraiment activé l’option dans le bios sans l’activer dans le "
+"grub et je comprenais pas pourquoi ça marchait pas..."
+msgstr ""
+
+#: ../../src/blog/2019-05-12-mysteredesportsusb.rst:27
+msgid ""
+"Enfin bref, un petit coup de vim dans le fichier "
+":samp:`/etc/default/grub` (toujours sans oublier de lancer un build de la"
+" config de grub via la commande :samp:`grub-mkconfig`) avec l’option "
+"suivante : :samp:`amd_iommu=on` du paramètre :samp:`GRUB_CMDLINUX_LINUX`."
+" Mais c’est pas finis car il faut aussi l’option :samp:`iommu`. Les "
+"paramètres sont :samp:`soft` ou :samp:`pt`."
+msgstr ""
+
+#: ../../src/blog/2019-05-12-mysteredesportsusb.rst:33
+msgid ""
+"Maintenant pour le partage de carte graphique dans une VM j’ai le message"
+" d’erreur suivant :"
+msgstr ""
+
+#: ../../src/blog/2019-05-12-mysteredesportsusb.rst:40
+msgid ""
+"Finalement d’après un `thread <https://www.linuxquestions.org/questions"
+"/linux-hardware-18/amd-iommuv2-functionality-not-available-on-this-"
+"system-4175589036/>`_ sur internet ceci n’est pas un message d’erreur "
+"mais un message informatif qui indique que seul :samp:`IOMMUv1` est "
+"supporté par cette carte mère. La mise en forme du message me fait plus "
+"penser à un message d’erreur mais bon..."
+msgstr ""
+
+#: ../../src/blog/2019-05-12-mysteredesportsusb.rst:44
+msgid ""
+"Je ne vais pas chercher plus loin pour le moment mais c’est une bonne "
+"nouvelle, je vais pouvoir continuer à rentrer plus dans les détails une "
+"autre fois. Notamment pour le choix du paramètre de l’option "
+":samp:`iommu`, pour le moment je vais rester sur :samp:`soft`."
+msgstr ""
+
+#: ../../src/blog/2020-06-22-Hacking-a-datalogic-magellan-1100i.rst:7
+msgid "Hacking a Datalogic Magellan 1100i"
+msgstr ""
+
+#: ../../src/blog/2020-06-22-Hacking-a-datalogic-magellan-1100i.rst:9
+msgid ""
+"Nothing very complicated but I want to share how to add a USB connector "
+"to a Datalogic Magellan 1100i barcode reader, for using it in keyboard "
+"mode."
+msgstr ""
+
+#: ../../src/blog/2020-06-22-Hacking-a-datalogic-magellan-1100i.rst:14
+msgid "I'm not responsible if your destroying your hardware!"
+msgstr ""
+
+#: ../../src/blog/2020-06-22-Hacking-a-datalogic-magellan-1100i.rst:16
+msgid ""
+"But first, some context about why I did this. I recently join the french "
+"`food cooperative <https://en.wikipedia.org/wiki/Food_cooperative>`_ `La "
+"Chouette Coop <https://lachouettecoop.fr/>`_ [fr] located at Toulouse. "
+"When I joined the co-op I had in mind to do nothing computer-related. But"
+" as soon I said I was a developer, I was asked to join the IT group "
+"because they were looking for people with experiences in this domain. So "
+"I said \"Why not?\" and I discover they're doing all they can to stay "
+"away from GAFAM and other companies who are a threat for our privacy."
+msgstr ""
+
+#: ../../src/blog/2020-06-22-Hacking-a-datalogic-magellan-1100i.rst:25
+msgid ""
+"The first project I did was to add a USB connector to a barcode reader "
+"without connector. An other person have already do some research and "
+"merge a USB cable lying around in a drawer to the barcode reader. But it "
+"was only powered and was not recognized by the computer where it was "
+"connected to. This is my starting point since the other person who did "
+"this has left to deal with something unrelated to this project."
+msgstr ""
+
+#: ../../src/blog/2020-06-22-Hacking-a-datalogic-magellan-1100i.rst:32
+msgid ""
+"After he tell me what he found and give me all the documents he have, I "
+"started searching and the solution was simple but not obvious."
+msgstr ""
+
+#: ../../src/blog/2020-06-22-Hacking-a-datalogic-magellan-1100i.rst:35
+msgid ""
+"The first thing to check is if the wiring is ok, all seems fine but the "
+"tricky part was to check the wiring for the cable in the barcode reader. "
+"With the correct tool I was able to easly open the part where the wire is"
+" connected to the barcode reader. I used a thin screwdriver and put it in"
+" the hole which I surrounded in red in the following picture."
+msgstr ""
+
+#: ../../src/blog/2020-06-22-Hacking-a-datalogic-magellan-1100i.rst:43
+msgid ""
+"Normally you have to feel a slight pressure as if you were pressing on "
+"something (which you are). Keep pressing with one hand (like indicaded "
+"with the arrow number 1) and with your other hand pull the cable out of "
+"the barcode reader (like indidcated with the arrow number 2)."
+msgstr ""
+
+#: ../../src/blog/2020-06-22-Hacking-a-datalogic-magellan-1100i.rst:48
+msgid "Now you should have something like this (If not, what have you done? ^^):"
+msgstr ""
+
+#: ../../src/blog/2020-06-22-Hacking-a-datalogic-magellan-1100i.rst:52
+msgid ""
+"In the image above we can see a connector who looks like an RJ45 "
+"connector but it's not. Based on my research this would be an RJ50-10 "
+"connector."
+msgstr ""
+
+#: ../../src/blog/2020-06-22-Hacking-a-datalogic-magellan-1100i.rst:55
+#, python-format
+msgid ""
+"Now make a mapping from the color linked to the pineout explained in the "
+"`barcode reader official documentation "
+"<https://www.barcodescanner.de/media/pdf/specials/Magellan%201100i.pdf>`_"
+" pages 175 and 176."
+msgstr ""
+
+#: ../../src/blog/2020-06-22-Hacking-a-datalogic-magellan-1100i.rst:59
+msgid ""
+"You can selected the pineout you want, it's not important for this part "
+"but keep in mind that some cables are not connected to the connector."
+msgstr ""
+
+#: ../../src/blog/2020-06-22-Hacking-a-datalogic-magellan-1100i.rst:62
+msgid ""
+"Here is the wiring mapping of my barecode reader (maybe it diferent for "
+"your):"
+msgstr ""
+
+#: ../../src/blog/2020-06-22-Hacking-a-datalogic-magellan-1100i.rst:78
+msgid ""
+"Yes, some are unknown because I only check the colors for the ``USB, USB "
+"Keyboard & USB COM`` pineout that we're going to use."
+msgstr ""
+
+#: ../../src/blog/2020-06-22-Hacking-a-datalogic-magellan-1100i.rst:81
+msgid ""
+"Now we know what color corresponds to which RJ50-10 connector pin, we can"
+" prepare our two cables for the merge."
+msgstr ""
+
+#: ../../src/blog/2020-06-22-Hacking-a-datalogic-magellan-1100i.rst:84
+msgid ""
+"You can found the USB cable color mapping on the internet easly but here "
+"it is:"
+msgstr ""
+
+#: ../../src/blog/2020-06-22-Hacking-a-datalogic-magellan-1100i.rst:93
+msgid "After that, just merge the two cables with the following mapping:"
+msgstr ""
+
+#: ../../src/blog/2020-06-22-Hacking-a-datalogic-magellan-1100i.rst:103
+msgid ""
+"Follow the kernel ring buffer with the command ``dmesg -w`` and you will "
+"see something like this *if* your merge is correct:"
+msgstr ""
+
+#: ../../src/blog/2020-06-22-Hacking-a-datalogic-magellan-1100i.rst:115
+msgid ""
+"Why *if*? The thing is, at start, I stayed too long on the mapping done "
+"by me colleague and it wasn't working. The solution was simply to inverse"
+" the white and the green wire of the USB cable like the mapping above and"
+" everthing works as desired."
+msgstr ""
+
+#: ../../src/blog/2020-06-22-Hacking-a-datalogic-magellan-1100i.rst:120
+msgid ""
+"Anyway. Now you can configure your barecode reader normally with the mode"
+" you want. I hope you'll find this useful."
+msgstr ""
+
+#: ../../src/blog/index.rst:2
+msgid "Blog"
+msgstr ""
+
+#: ../../src/blog/index.rst:4
+msgid "You can follow this blog via `rss <atom.xml>`_."
+msgstr "Vous pouvez suivre ce blog via `rss <atom.xml>`_."
+
+#~ msgid "Mode kiosk on Raspberry Pi 1"
+#~ msgstr ""
+
+#~ msgid ""
+#~ "Avant d'aller plus loin, je vous "
+#~ "conseille viviement de changer les mots"
+#~ " de passe des comptes `root` et "
+#~ "`alarm` !"
+#~ msgstr ""
+
+#~ msgid ""
+#~ "Bon avant d'automatiser le tout nous "
+#~ "allons faire en sorte que notre "
+#~ "interface graphique démarre sans encombre. "
+#~ "Pour ça nous allons créer le "
+#~ "fichier `.xinitrc` ou le modifier si "
+#~ "celui-ci est déja présent, voila à"
+#~ " quoi ressemble mon fichier de conf:"
+#~ msgstr ""
+
+#~ msgid "```sh #!/bin/sh while true; do"
+#~ msgstr ""
+
+#~ msgid "# Disable DPMS / Screen blanking xset -dpms xset s off"
+#~ msgstr ""
+
+#~ msgid ""
+#~ "# Reset the framebuffer's colour-depth"
+#~ " fbset -depth $( cat "
+#~ "/sys/module/*fb*/parameters/fbdepth );"
+#~ msgstr ""
+
+#~ msgid ""
+#~ "# Hide the cursor (move it to "
+#~ "the bottom-right, comment out if "
+#~ "you want mouse interaction) xwit -root"
+#~ " -warp $( cat /sys/module/*fb*/parameters/fbwidth"
+#~ " ) $( cat /sys/module/*fb*/parameters/fbheight"
+#~ " )"
+#~ msgstr ""
+
+#~ msgid ""
+#~ "# Démarre le gestionnaire de fenétre "
+#~ "(suprimer \"-use_cursor no\" si vous "
+#~ "vouler l'intégration de la souris) "
+#~ "matchbox-window-manager -use_titlebar no "
+#~ "-use_cursor no & midori -a "
+#~ "http://127.0.0.1/Magpie-box -e Fullscreen"
+#~ msgstr ""
+
+#~ msgid "done; ```"
+#~ msgstr ""
+
+#~ msgid ""
+#~ "Je précise que dans le cas actuel"
+#~ " ma boucle permet de redémarer le "
+#~ "navigateur en cas de crash de "
+#~ "celui-ci au cas où... Et pour "
+#~ "démarrer cette interface graphique un "
+#~ "simple coup de `startx` et c'est "
+#~ "plié."
+#~ msgstr ""
+
+#~ msgid "# Le navigateur"
+#~ msgstr ""
+
+#~ msgid ""
+#~ "Donc j'ai opté pour firefox, par "
+#~ "contre le mode kiosk n'est possible "
+#~ "qu'en installant un plugin et cela "
+#~ "ce fait de manière graphique, je "
+#~ "n'ai pas encore regardé pour le "
+#~ "faire via le terminal. Il faut "
+#~ "commencer par modifier la config en "
+#~ "tapant dans la bar d'adresse "
+#~ "`about:config` et approuver qu'on ne va"
+#~ " pas tout casser. Après on change "
+#~ "l'option de vérifiction de la signature"
+#~ " du plugin de true à false :"
+#~ " je ne comprends pas trop"
+#~ msgstr ""
+
+#~ msgid "``` sh xpinstall.signatures.required false ```"
+#~ msgstr ""
+
+#~ msgid ""
+#~ "Une fois ceci configuré, il faut "
+#~ "configurer le serveur web pour qu'il "
+#~ "soit compatible avec php7, pour cela "
+#~ "il faut éditer le fichier "
+#~ "`/etc/httpd/conf/httpd.conf` et commenter la "
+#~ "ligne suivante :"
+#~ msgstr ""
+
+#~ msgid "``` sh LoadModule mpm_event_module modules/mod_mpm_event.so ```"
+#~ msgstr ""
+
+#~ msgid "``` sh LoadModule mpm_prefork_module modules/mod_mpm_prefork.so ```"
+#~ msgstr ""
+
+#~ msgid "``` sh Include conf/extra/php7_module.conf ```"
+#~ msgstr ""
+
+#~ msgid "## Mise en place de la connection automatique"
+#~ msgstr ""
+
+#~ msgid ""
+#~ "Maintenant que notre interface graphique "
+#~ "démarre tranquillement, on va pouvoir "
+#~ "automatiser le tout, pour cela on "
+#~ "va commencer par faire en sorte "
+#~ "que la connection soit automatique pour"
+#~ " cela on crée le dossier suivant "
+#~ ": `/etc/systemd/system/getty@tty1.service.d/`"
+#~ msgstr ""
+
+#~ msgid ""
+#~ "Et enfin créer et modifier le "
+#~ "fichier suivant : "
+#~ "`/etc/systemd/system/getty@tty1.service.d/override.conf` :"
+#~ msgstr ""
+
+#~ msgid ""
+#~ "``` sh [Service] ExecStart= "
+#~ "ExecStart=-/sbin/agetty --autologin alarm --noclear"
+#~ " %I 38400 linux ```"
+#~ msgstr ""
+
+#~ msgid ""
+#~ "On peut remarquer que j'ai mis "
+#~ "deux fois `ExecStart=`, ce n'est pas "
+#~ "une erreur, c'est juste que ma "
+#~ "rasp ne voulait pas booter "
+#~ "automatiquement avec un seul alors "
+#~ "qu'avec deux, c'était nickel... Aller "
+#~ "savoir pourquoi ^^"
+#~ msgstr ""
+
+#~ msgid ""
+#~ "Bon maintenant que notre session se "
+#~ "lance il va faloir faire en sorte"
+#~ " que notre belle interface graphique "
+#~ "se lance toute seule comme une "
+#~ "grande, alors pour ça il faut "
+#~ "commencer par copier le fichier suivant"
+#~ " : `/etc/skel/.bash_profile` et ajouter à"
+#~ " la fin :"
+#~ msgstr ""
+
+#~ msgid "```sh [[ -z $DISPLAY && $XDG_VTNR -eq 1 ]] && exec startx ```"
+#~ msgstr ""
+
+#~ msgid ""
+#~ "Et là on se dit, oui c'est "
+#~ "fini ! Et bien non ! :p Ce"
+#~ " serait trop facile. Pour faire "
+#~ "simple, il faut juste autoriser "
+#~ "n'importe quel utilisateur à lancer le"
+#~ " serveur Xorg. Pour cela il vous "
+#~ "faut créer et modifier le fichier "
+#~ "`/etc/X11/Xwrapper.config` et ajouter cette "
+#~ "ligne :"
+#~ msgstr ""
+
+#~ msgid "``` sh allowed_users=anybody ```"
+#~ msgstr ""
+
+#~ msgid "New website"
+#~ msgstr ""
+
+#~ msgid "Hello, new website with sphinx doc"
+#~ msgstr ""
+
+#~ msgid ""
+#~ "Nothing very complicated but I want "
+#~ "to share how to convert a "
+#~ "Datalogic Magellan 1100i without connector "
+#~ "to a an USB Connector, for using"
+#~ " it as a simple keyboard."
+#~ msgstr ""
+
+#~ msgid ""
+#~ "But first some context about why I"
+#~ " do it this (I didn't need that"
+#~ " despit the fact I was testing "
+#~ "grocy at home is not mine "
+#~ "scanette). Recently I joined the french"
+#~ " food cooperative La Chouette Coop "
+#~ "located at Toulouse. Since I'm developer"
+#~ " I rapidely found peoples who take"
+#~ " care about the IT part of the"
+#~ " coop. Yes there is a big part"
+#~ " of IT work since most of the"
+#~ " cooperator don't want to use GAFAM"
+#~ " (or any other capitalist enterprise "
+#~ "of their kind...) and self-host "
+#~ "all we can."
+#~ msgstr ""
+
+#~ msgid ""
+#~ "But we also don't want to bye "
+#~ "new things when you can recycle? "
+#~ "So we searching second-hand barcode "
+#~ "reader on internet. The problematic is:"
+#~ " we cannot found barcode reader with"
+#~ " a usb connector but a lot with"
+#~ " different connectors."
+#~ msgstr ""
+
+#~ msgid ""
+#~ "So what's the tricks? Many of us"
+#~ " have some USB cable lying around "
+#~ "in a drawer, so we cut the "
+#~ "barcode reader and the USB cable "
+#~ "and merged the two."
+#~ msgstr ""
+
+#~ msgid ""
+#~ "This seems easy yes, I haven't "
+#~ "done the hardwork of searching the "
+#~ "informations. The person before me who"
+#~ " do this have done 99% of the"
+#~ " work, cable are merged but the "
+#~ "barcode-reader is up but my "
+#~ "computer don't see it (only garbage)."
+#~ msgstr ""
+
+#~ msgid ""
+#~ "After he tell me what he found "
+#~ "and all the document I started "
+#~ "searching and the solution was so "
+#~ "simple, not obious but simple."
+#~ msgstr ""
+
+#~ msgid ""
+#~ "The first thing to check is if "
+#~ "the wiring is ok, all seems fine"
+#~ " but with the correct tool I "
+#~ "was able to open the part where"
+#~ " the wire is connected to the "
+#~ "barcode reader. Use a thin screwdriver,"
+#~ " for example, and put in the "
+#~ "hole in this picture."
+#~ msgstr ""
+
+#~ msgid ""
+#~ "[PHOTO DE LA SCANETTE AVEC LE "
+#~ "CABLE CONNECTER, DESSINER UNE FLECHE "
+#~ "VERS LE TROU]"
+#~ msgstr ""
+
+#~ msgid ""
+#~ "Normally you have to feel like "
+#~ "pressed something, keep pressing with "
+#~ "one hand [1] and with other hand"
+#~ " pull the cable out of the "
+#~ "barcode reader. [2]"
+#~ msgstr ""
+
+#~ msgid "Now you have something like this (If not what have you done? ^^):"
+#~ msgstr ""
+
+#~ msgid "[PHOTO DU CABLE SEPARER DE LA SCANNETE]"
+#~ msgstr ""
+
+#~ msgid ""
+#~ "Here we can see a connector who"
+#~ " look like a RJ45 but it's not."
+#~ " Based on my research this would "
+#~ "be an RJ50-10 connector."
+#~ msgstr ""
+
+#~ msgid ""
+#~ "Now make a mapping from the color"
+#~ " linked to pineout explained in the"
+#~ " `barcode read official documentation "
+#~ "<https://www.barcodescanner.de/media/pdf/specials/Magellan%201100i.pdf>`_"
+#~ " page 175 and 176."
+#~ msgstr ""
+
+#~ msgid ""
+#~ "The pineout selected never mind for "
+#~ "the mapping but keep in mind that"
+#~ " some cable cannot be connected to"
+#~ " the connector port."
+#~ msgstr ""
+
+#~ msgid "Here is mine (maybe it diferent for your):"
+#~ msgstr ""
+
+#~ msgid ""
+#~ "Yes some are unknown because I "
+#~ "only check the colors for the "
+#~ "``USB, USB Keyboard & USB COM`` "
+#~ "pineout that we're going to use."
+#~ msgstr ""
+
+#~ msgid ""
+#~ "Now we know what color corresponds "
+#~ "to which RJ50-10 pin we can "
+#~ "prepare our USB cable."
+#~ msgstr ""
+
+#~ msgid "After that just merge the two wire with the following mapping:"
+#~ msgstr ""
+
+#~ msgid ""
+#~ "Why ``if``? The thing is, at "
+#~ "start, I stayed to long on the "
+#~ "mapping done by me colleague. The "
+#~ "solution was simply to inverse the "
+#~ "white and the green wire of the"
+#~ " USB cable like the mapping above "
+#~ "and everthing works as desired."
+#~ msgstr ""
+
+#~ msgid ""
+#~ "Anyway, it was just for the little"
+#~ " story, what I really wanted to "
+#~ "share is a little more documentation "
+#~ "on this barcode scanner because I "
+#~ "had a little trouble to find "
+#~ "something useful on the internet about"
+#~ " it."
+#~ msgstr ""
+
+#~ msgid "If it can be used for someone else time, it's better."
+#~ msgstr ""
+
diff --git a/src/_locale/fr/LC_MESSAGES/contact.po b/src/_locale/fr/LC_MESSAGES/contact.po
new file mode 100644
index 0000000..3bf1d03
--- /dev/null
+++ b/src/_locale/fr/LC_MESSAGES/contact.po
@@ -0,0 +1,102 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) 2020, neodarz
+# This file is distributed under the same license as the neodarz's website
+# package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: neodarz's website \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-06-24 21:35+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.8.0\n"
+
+#: ../../src/contact.rst:2
+msgid "Contact"
+msgstr ""
+
+#: ../../src/contact.rst:4
+msgid "XMPP: neodarz (at) neodarz (dot) net"
+msgstr "XMPP : neodarz (à) neodarz (point) net"
+
+#: ../../src/contact.rst:6
+msgid "IRC: neodarz (at) freenode (dot) org - neodarz (at) geeknode (dot) org"
+msgstr "IRC : neodarz (à) freenode (point) org - neodarz (à) geeknode (point) org"
+
+#: ../../src/contact.rst:8
+msgid ""
+"Mastodon: `neodarz (at) mastodon (dot) social "
+"<https://mastodon.social/@neodarz>`_"
+msgstr ""
+"Mastodon: `neodarz (à) mastodon (point) social "
+"<https://mastodon.social/@neodarz>`_"
+
+#: ../../src/contact.rst:10
+msgid "Personal e-mail:"
+msgstr "E-mail personnel :"
+
+#: ../../src/contact.rst:12
+msgid "neodarz (at) neodarz (dot) net"
+msgstr "neodarz (à) neodarz (point) net"
+
+#: ../../src/contact.rst:14
+msgid ""
+"GPG :doc:`4987 E133 8C1F A0D7 C096 50A0 B081 1718 1915 "
+"81D5<gpg/4987E1338C1FA0D7C09650A0B0811718191581D5>`"
+msgstr ""
+
+#: ../../src/contact.rst:16
+msgid "Professional e-mail:"
+msgstr "E-mail professionnel :"
+
+#: ../../src/contact.rst:18
+msgid "corentin (dot) breton (at) neodarz (dot) net"
+msgstr "corentin (point) breton (à) neodarz (point) net"
+
+#: ../../src/contact.rst:20
+msgid ""
+"GPG :doc:`9D00 6C6E 30CE C9A8 88A6 F804 905E AB92 577D "
+"A42C<gpg/9D006C6E30CEC9A888A6F804905EAB92577DA42C>`"
+msgstr ""
+
+#: ../../src/contact.rst:22
+msgid "You can also find ly keys on the following keyservers:"
+msgstr "Vous pouvez aussi trouver mes clées sur les serveurs de clées suivants :"
+
+#: ../../src/contact.rst:24
+msgid "SKS keyservers pool"
+msgstr ""
+
+#: ../../src/contact.rst:25
+msgid "keys.openpgp.org"
+msgstr ""
+
+#: ../../src/contact.rst:27
+msgid ""
+"However, be advised that I mainly use :samp:`keys.openpgp.org` for the "
+"moment."
+msgstr ""
+"Toutefois, soyze informé que j'utilise principalement "
+":samp:`key.opengpg.org` pour le moment"
+
+#: ../../src/contact.rst:31
+msgid ""
+"Arguing that you don't care about the right to privacy because you have "
+"nothing to hide is no different from saying you don't care about free "
+"speech because you have nothing to say."
+msgstr ""
+"Prétendre que vous ne vous souciez pas du droit à la vie privée parce que"
+" vous n'avez rien à cacher n'est pas différent de dire que vous ne vous "
+"souciez pas de la liberté d'expression parce que vous n'avez rien à dire."
+
+#: ../../src/contact.rst:34
+msgid "– Edward Snowden"
+msgstr ""
+
diff --git a/src/_locale/fr/LC_MESSAGES/cv.po b/src/_locale/fr/LC_MESSAGES/cv.po
new file mode 100644
index 0000000..61d7424
--- /dev/null
+++ b/src/_locale/fr/LC_MESSAGES/cv.po
@@ -0,0 +1,36 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) 2020, neodarz
+# This file is distributed under the same license as the neodarz's website
+# package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: neodarz's website \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-06-20 23:01+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.8.0\n"
+
+#: ../../src/cv.rst:2
+msgid "CV"
+msgstr ""
+
+#: ../../src/cv.rst:5
+msgid "EXPERIENCES"
+msgstr ""
+
+#: ../../src/cv.rst:53
+msgid "FORMATIONS"
+msgstr ""
+
+#: ../../src/cv.rst:93
+msgid "COMPÉTENCES"
+msgstr ""
+
diff --git a/src/_locale/fr/LC_MESSAGES/gpg.po b/src/_locale/fr/LC_MESSAGES/gpg.po
new file mode 100644
index 0000000..7bbb182
--- /dev/null
+++ b/src/_locale/fr/LC_MESSAGES/gpg.po
@@ -0,0 +1,41 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) 2020, neodarz
+# This file is distributed under the same license as the neodarz's website
+# package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: neodarz's website \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-06-20 23:01+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.8.0\n"
+
+#: ../../src/gpg/4987E1338C1FA0D7C09650A0B0811718191581D5.rst:2
+msgid "4987 E133 8C1F A0D7 C096 50A0 B081 1718 1915 81D5"
+msgstr ""
+
+#: ../../src/gpg/4987E1338C1FA0D7C09650A0B0811718191581D5.rst:4
+msgid ""
+"Download asc file :download:`here<neodarz@neodarz.net.public.asc>` for "
+"neodarz ( at ) neodarz (dot) net."
+msgstr ""
+
+#: ../../src/gpg/9D006C6E30CEC9A888A6F804905EAB92577DA42C.rst:2
+msgid "9D00 6C6E 30CE C9A8 88A6 F804 905E AB92 577D A42C"
+msgstr ""
+
+#: ../../src/gpg/9D006C6E30CEC9A888A6F804905EAB92577DA42C.rst:4
+msgid ""
+"Download asc file "
+":download:`here<corentin.breton@neodarz.net.public.asc>` for corentin "
+"(dot) breton ( at ) neodarz (dot) net."
+msgstr ""
+
diff --git a/src/_locale/fr/LC_MESSAGES/index.po b/src/_locale/fr/LC_MESSAGES/index.po
new file mode 100644
index 0000000..60e2f8c
--- /dev/null
+++ b/src/_locale/fr/LC_MESSAGES/index.po
@@ -0,0 +1,84 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) 2020, neodarz
+# This file is distributed under the same license as the neodarz's website
+# package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: neodarz's website \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-06-26 20:19+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.8.0\n"
+
+#: ../../src/index.rst:2
+msgid "neodarz"
+msgstr ""
+
+#: ../../src/index.rst:4
+msgid ""
+"My name is neodarz (Corentin Breton IRL) and I’m developper at Fullsave a"
+" French regional Telecom Operator."
+msgstr ""
+"Je m’apelle neodarz (alias Corentin Breton IRL), je suis développeur chez"
+" Fullsave."
+
+#: ../../src/index.rst:7
+msgid "Question? Feel free to :doc:`contact <contact>` me if you want!"
+msgstr ""
+"Une question ? N’hésitez pas à me :doc:`contacter <contact>` si vous êtes"
+" interressé !"
+
+#: ../../src/index.rst:9
+msgid ""
+"I put :doc:`here <notes/index>` some things mainly about computers, but I"
+" keep me free to write things who are not connected to this. :p"
+msgstr ""
+"Je stock :doc:`ici <notes/index>` quelques trucs, jusqu’à maintenant en "
+"rapport avec l’informatique, mais je me laisse librement le choix de "
+"poser des choses qui n’ont rien à voir. :p"
+
+#: ../../src/index.rst:12
+msgid ""
+"Sometimes, when I want to, I write :doc:`articles <blog/index>` on my "
+"blog."
+msgstr ""
+"Ça m’arrive aussi d’écrire des :doc:`articles <blog/index>` quand j’ai "
+"l’envie d’en prendre le temps."
+
+#: ../../src/index.rst:14
+msgid ""
+"I also share links via RSS flux on my `Shaarli instance "
+"<https://shaarli.neodarz.net/>`_."
+msgstr ""
+"Il m'arrive aussi de partager des liens qui via mon agrégateur de flux "
+"RSS et de les repartager vi mon instance Shaarli."
+
+#: ../../src/index.rst:17
+msgid ""
+"And I keep my code on my `personal git server "
+"<https://git.neodarz.net/>`_. I also have some account on another git "
+"servers like `Framagit <https://framagit.org/NeodarZ>`_ or `Github "
+"<https://github.com/NeodarZ>`_, but it’s mainly to contribute to other "
+"projects."
+msgstr ""
+"Et je stocke mon code sur mon `propre serveur git "
+"<https://git.neodarz.net/>`_.J'ai aussi des comptes sur d'autre serveurs "
+"git comme `Framagit <https://framagit.org/NeodarZ>`_ ou `Github "
+"<https://github.com/NeodarZ>`_, mais c'est principallement pour "
+"contribuer à divers projets."
+
+#: ../../src/index.rst:24
+msgid "Posts"
+msgstr ""
+
+#~ msgid "Why is there always a cat on whatever you’re editing?"
+#~ msgstr "Why is there always a cat on whatever you’re editing?"
+
diff --git a/src/_locale/fr/LC_MESSAGES/notes.po b/src/_locale/fr/LC_MESSAGES/notes.po
new file mode 100644
index 0000000..79feaba
--- /dev/null
+++ b/src/_locale/fr/LC_MESSAGES/notes.po
@@ -0,0 +1,110 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) 2020, neodarz
+# This file is distributed under the same license as the neodarz's website
+# package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: neodarz's website \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-06-20 23:01+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.8.0\n"
+
+#: ../../src/notes/2017-06-19-pulseaudio.rst:2
+msgid "Pulseaudio"
+msgstr ""
+
+#: ../../src/notes/2017-06-19-pulseaudio.rst:4
+msgid "Sources :"
+msgstr ""
+
+#: ../../src/notes/2017-06-19-pulseaudio.rst:6
+msgid "https://www.freedesktop.org/wiki/Software/PulseAudio/Backends/ALSA/Profiles/"
+msgstr ""
+
+#: ../../src/notes/2017-06-19-pulseaudio.rst:8
+msgid ""
+"https://wiki.archlinux.org/index.php/PulseAudio/Examples"
+"#Having_both_speakers_and_headphones_plugged_in_and_switching_in_software_on-"
+"the-fly"
+msgstr ""
+
+#: ../../src/notes/2017-06-19-pulseaudio.rst:10
+msgid "Connaître le nom de chaque entrées et sorties son du pc :"
+msgstr ""
+
+#: ../../src/notes/2017-06-19-pulseaudio.rst:29
+msgid ""
+"Une fois ceci fait, on modifie les fichiers (dans mon cas) "
+"/usr/share/pulseaudio/alsa-mixer/paths/analog-output-lineout.conf et "
+"/usr/share/pulseaudio/alsa-mixer/paths/analog-output-headphones.conf."
+msgstr ""
+
+#: ../../src/notes/2017-06-19-pulseaudio.rst:31
+msgid ""
+"Pour information j’ai une configuration un peu atypique car mon casque "
+"est branché à l’arrière alors que meshHaut parleurs à l’avant. Pourquoi ?"
+" Tout simplement que les appareils USB, type clé USB, branché à l’avant "
+"de ma tour ne sont pas bien détéctés alors qu’alors à l’arrière suelement"
+" un peu mieu... oui un peu (c’est un autre mystère à élucider et ca "
+"serait pour une prochaine fois ;) )"
+msgstr ""
+
+#: ../../src/notes/2017-06-19-pulseaudio.rst:33
+msgid ""
+"Du coup dans mon fichier analog-output-lineout.conf j’ai rajouter, avant "
+"l’include la ligne suivante:"
+msgstr ""
+
+#: ../../src/notes/2017-06-19-pulseaudio.rst:41
+msgid ""
+"Et dans le fichier analog-output-headphones.conf j’ai modifier selon les "
+"paramètres suivant :"
+msgstr ""
+
+#: ../../src/notes/2017-06-19-pulseaudio.rst:50
+msgid ""
+"Au passage on peut remarquer Line Out Phantom n’est pas dans la liste de "
+"nom des sorties du PC, c’est parcque j’ai jouée avec hdajackretask avant "
+"et ducoup des truc ont été modifié dans mon système... Encore un autre "
+"mystère à résoudre !"
+msgstr ""
+
+#: ../../src/notes/2017-06-19-pulseaudio.rst:52
+msgid ""
+"Et en bonus voici ma commande perso que je parramètre pour changer de "
+"sortie sur i3 (C’est la commande brut à copier coller dans votre "
+"terminal) :"
+msgstr ""
+
+#: ../../src/notes/2017-06-19-pulseaudio.rst:58
+msgid "Ou en format lisible, avec variables en bonus :"
+msgstr ""
+
+#: ../../src/notes/index.rst:2
+msgid "Notes"
+msgstr ""
+
+#: ../../src/notes/index.rst:4
+msgid ""
+"Je stocke ici tout un tas de notes sur différents trucs, généralement ce "
+"sont des astuces qui, soit ne valent pas le coup, soit je n’ai pas encore"
+" pu prendre le temps, de rédiger un article à leurs propos."
+msgstr ""
+
+#: ../../src/notes/index.rst:6
+msgid ""
+"D’autres notes sous forme de cheat codes, avec une explication très "
+"succincte voire inexistante, mais plus récentes sont disponible sur mon "
+"`répertoire git "
+"<https://git.neodarz.net/neodarz/conf/dotfiles_dotdrop.git/tree/dotfiles/cheat>`_."
+msgstr ""
+
diff --git a/src/_locale/fr/LC_MESSAGES/projects.po b/src/_locale/fr/LC_MESSAGES/projects.po
new file mode 100644
index 0000000..fdf220b
--- /dev/null
+++ b/src/_locale/fr/LC_MESSAGES/projects.po
@@ -0,0 +1,253 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) 2020, neodarz
+# This file is distributed under the same license as the neodarz's website
+# package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: neodarz's website \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-06-21 12:26+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.8.0\n"
+
+#: ../../src/projects.rst:2
+msgid "Projects"
+msgstr "Projets"
+
+#: ../../src/projects.rst:4
+msgid ""
+"Short list of projects I've been involved which are more or less "
+"complete..."
+msgstr ""
+"Petite liste de projets auxquels j’ai participé qui sont plus ou moins "
+"bien aboutis..."
+
+#: ../../src/projects.rst:7
+msgid "MARABUNTA · 24hc18"
+msgstr ""
+
+#: ../../src/projects.rst:9
+msgid ""
+"This project was realized with members of the HAUM association with the "
+"goal of proposing a subject for the \"24 heures du code\" of 2018 at Le "
+"Mans."
+msgstr ""
+"Ce projet à été réalisé avec des membres de l’association du HAUM dans "
+"l’objectif de proposer un sujet pour les 24 heures du code de 2018."
+
+#: ../../src/projects.rst:12
+msgid ""
+"For this subject we wanted to make a multi-agent game. After a "
+"brainstorming of several months we decided to make a game where the "
+"players have to control an ant colony by developing a simple weak "
+"artificial intelligence."
+msgstr ""
+"Pour ce sujet nous avions envie de faire un jeu multi-agent. Après un "
+"brainstorming de plusieurs mois nous avions décidé de faire un jeu où les "
+"joueurs doivent controller une fourmillière en développant une simple "
+"intelligence artificielle faible."
+
+#: ../../src/projects.rst:16
+msgid ""
+"The game is decomposed into several part, first of all there is the "
+"simulator, developed in C++, which is the arena of the game where the ant"
+" colonies compete against each other. Players have to develop a weak AI "
+"in the language they want from the list of those proposed."
+msgstr ""
+"Le jeu est décomposé en plusieurs parties, en premier lieu il y a le "
+"simulateur, développé en C++, qui est l’arène du jeu où s’affronte les "
+"fourmillières. Les joueurs doivent développer une IA faible dans le langage "
+"qu’ils veulent parmis la liste de ceux proposé."
+
+#: ../../src/projects.rst:21
+msgid ""
+"Secondly, there is a visual rendering with a 3D planet spinning on itself"
+" where you can see the ants fighting during the matches."
+msgstr ""
+"En second lieu il y a un rendu visuel avec une planète en 3D qui tourne sur "
+"elle même où l’on peut voir les fourmillières combattent lors des matches."
+
+#: ../../src/projects.rst:24
+msgid ""
+"The visual rendering may seem a bit useless, but it helped the teams to "
+"better understand their code."
+msgstr ""
+"Le rendu visuel peut paraître un peu inutile pourtant ça a parmis aux "
+"équipes de mieux comprendre leur code."
+
+#: ../../src/projects.rst:27
+msgid ""
+"We also had fun writing a little story about the game to give it a "
+"background. The detailed documenation can be found `here "
+"<https://github.com/haum/24hc18/tree/master/documentation>`_."
+msgstr ""
+"Nous nous somme aussi amusé a écrire une petit histoire autour du jeu, "
+"histoire de lui donner un background. La documentation en détail ce trouve "
+"`ici <https://github.com/haum/24hc18/tree/master/documentation>`_."
+
+#: ../../src/projects.rst:31
+msgid ""
+"During the project I was able to participate in the development of the "
+"engine as well as in the development of an AI to test and debug the "
+"engine."
+msgstr ""
+"Durant le projet j’ai pu participer au développement du moteur ainsi qu’au "
+"développement d’une IA pour tester et débugger ce dernier."
+
+#: ../../src/projects.rst:34
+msgid "The source code is available `here <https://github.com/haum/24hc18>`_."
+msgstr "Le code source est disponible `ici <https://github.com/haum/24hc18>`_."
+
+#: ../../src/projects.rst:37
+msgid "LAUMIO · 24hc17"
+msgstr ""
+
+#: ../../src/projects.rst:39
+msgid ""
+"This project was realized with members of the HAUM association with the "
+"goal of proposing a subject for the \"24 heures du code\" of 2017 at Le "
+"Mans."
+msgstr ""
+"Ce projet a été réalisé avec des membres de l’association du HAUM dans "
+"l’objectif de proposer un sujet pour les 24h du code de 2017."
+
+#: ../../src/projects.rst:42
+msgid ""
+"Before defining the purpose of the subject, the object itself muse be "
+"defined. This one is a glass of sphere bought at IKEA (we're not going to"
+" break our heads either :p) which is filled with 13 LEDs controllable via"
+" an arduino card (`WeMos D1 mini <https://www.wemos.cc/product/d1-mini-"
+"pro.html>`_) over WiFi. For a more detailed explanation you can check "
+"this `article <https://haum.org/pages/laumios.html>`_ directly on the "
+"HAUM webiste."
+msgstr ""
+"Avant de définir l’objectif du sujet, il faut définir l’objet en lui même. "
+"Celui-ci est une sphère en verre achetée chez IKEA (on ne va quand même pas "
+"se casser la tête non plus :p) qui est remplie de 13 LEDS controlables via "
+"une carte arduino (`WeMos D1 mini "
+"<https://www.wemos.cc/product/d1-mini-pro.html>`_) par wifi. Pour une "
+"explication plus poussée vous pouvez aller voir cet `article "
+"<https://haum.org/pages/laumios.html>`_ directement sur le site du HAUM."
+
+#: ../../src/projects.rst:49
+msgid ""
+"This object was not originally designed to be a \"24 heures du code\" "
+"subject. It was therefore necessary to modify it by first removing the "
+"WiFi module and make it able to communicate via the USB port (which is "
+"used at the same time to flash it)."
+msgstr ""
+"À l’origine cet objet n’a pas été conçu pour être un sujet des 24 heures du "
+"code. Il a donc fallu le modifier et donc commencer par retirer le module "
+"wifi et faire en sorte que celui-ci puisse communiquer via le port USB et "
+"qui sert par la même occasion à le flasher."
+
+#: ../../src/projects.rst:54
+msgid ""
+"To siplify, the goal of the players was that they had to communicate with"
+" the Laumio and solve the puzzles it proposed. Some were related to plays"
+" of light made with the Laumio while other was simple mathematical puzzle"
+" (sometimes not so simple by the way). The source code and blueprints of "
+"the system are available on `Github <https://github.com/haum/24hc17>`_ "
+"for more information."
+msgstr ""
+"Pour faire simple l’objectif des joueurs était qu’ils devaient communiquer "
+"avec le laumio et résoudre les énigmes que celui proposait, certaines "
+"étaient liées aux jeux de lumière réalisé avec celui alors que d’autres "
+"étaient de simple calcul (parfois pas si simple d’ailleur). Les sources du "
+"système sont disponibles sur `github <https://github.com/haum/24hc17>`_ pour "
+"plus d’information."
+
+#: ../../src/projects.rst:60
+msgid ""
+"During this project I was able to code some animations. I also took part "
+"in soldering some lamps with a bit of difficulty because I'm a little out"
+" of practice soldering, but at least I was able to learn some tricks to "
+"solder more easily and faster."
+msgstr ""
+"Au cours de ce projet j’ai pu coder quelques animations. J’ai aussi "
+"participé au soudage de quelques lampes avec un peu de difficulté car "
+"j’ai un peu perdu l’habitude de souder, mais au moins j’ai pu apprendre "
+"quelques astuces pour souder plus facilement et plus vite."
+
+#: ../../src/projects.rst:65
+msgid ""
+"Once the project was done, we had to be present for 24 hours without a "
+"break in order to supervise the players and keep the server in place... "
+"Because we had some small technical problems with it and we had to do "
+"some token resolution by hand... (For more info on this damn token story "
+"you have to go see this `article <https://haum.org/pages/24hc17.html>`_)."
+msgstr ""
+"Une fois le projet réalisé, il a fallut être présent pendant les 24 heures "
+"afin de superviser les joueurs et de maintenir le serveur en place... Car on "
+"a eu quelques petits soucis technique avec lui et on a dû faire de la "
+"résolution de token à la main... (Pour plus d’info sur cet histoire de "
+"foutus token il faut aller voir "
+"cet `article <https://haum.org/pages/24hc17.html>`_.)"
+
+#: ../../src/projects.rst:72
+msgid "RADIO-MALRAUX"
+msgstr ""
+
+#: ../../src/projects.rst:74
+msgid "Listen the radio: :strike:`http://radio.bts-malraux72.net/`"
+msgstr "Écouter la radio : :strike:`http://radio.bts-malraux72.net/`"
+
+#: ../../src/projects.rst:76
+msgid "This project has to objectives, one technical and the other social."
+msgstr "Ce projet a deux objectifs, l’un technique et l’autre social."
+
+#: ../../src/projects.rst:78
+msgid ""
+"Technical in the sense that setting up a web radio is not something that "
+"can be done in one day, you have to think about how to do it, with what "
+"and correctly. The challenge was to do it exclusively with Raspberry Pi "
+"in order to be able to host it locally at school and consume little "
+"energy."
+msgstr ""
+"Technique dans le sens où monter une web radio ne se fait pas du jour au "
+"landemain, il faut réfléchir sur comment faire, avec quoi et correctement. "
+"Le défit était de le faire exclusivement avec des Raspberry Pi afin de "
+"pouvoir l’héberger localement au lycée et consommer peu d’énergie."
+
+#: ../../src/projects.rst:83
+msgid ""
+"And socially in the sense, where loving free software and wishing to "
+"share it, we decided to distribute exclusively royalty-free music."
+msgstr ""
+"Et socialement dans le sens, où aimant les logiciels libres et souhaitant "
+"les partager, nous avons décidé de diffuser exclusivement de la musique "
+"libre de droit."
+
+#: ../../src/projects.rst:87
+msgid "ROBOT-CABLE"
+msgstr ""
+
+#: ../../src/projects.rst:89
+msgid ""
+"This project, realized over two years as part of the STI2D baccalaureate,"
+" consisted in creating a robot that could move an object from point A to "
+"point B via 4 motorized winches. This project was realized with Arduino "
+"electronic boards and Xbee modules."
+msgstr ""
+"Ce projet, réalisé sur deux ans dans le cadre du bac STI2D, consistait à "
+"créer un robot qui pouvait déplacer un objet d’un point A à un point B via 4 "
+"treuils motorisés. Ce projet a été réalisé avec des cartes éléctroniques "
+"Arduino ainsi que des modules Xbee."
+
+#: ../../src/projects.rst:94
+msgid ""
+"For more information, see directly the project :strike:`website` which "
+"contains a more detailed document. (Website down, see directly `the "
+"source code <https://git.neodarz.net/neodarz/school/Robot-Cable.git/>`_)"
+msgstr ""
+"Pour plus d’informations, voir directement le :strike:`site web` du projet "
+"qui contient un document plus détaillé. (Site web down, voir directement le "
+"`code source <https://git.neodarz.net/neodarz/school/Robot-Cable.git/>`_)"
diff --git a/src/_locale/fr/LC_MESSAGES/sphinx.po b/src/_locale/fr/LC_MESSAGES/sphinx.po
new file mode 100644
index 0000000..2d8566d
--- /dev/null
+++ b/src/_locale/fr/LC_MESSAGES/sphinx.po
@@ -0,0 +1,85 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) 2020, neodarz
+# This file is distributed under the same license as the neodarz's website
+# package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: neodarz's website \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-06-20 14:23+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.8.0\n"
+
+#: ../../../../../.virtualenvs/ablog_website/lib/python3.8/site-packages/ablog/templates/archives.html:2
+msgid "Archives"
+msgstr ""
+
+#: ../../../../../.virtualenvs/ablog_website/lib/python3.8/site-packages/ablog/templates/authors.html:2
+msgid "Authors"
+msgstr ""
+
+#: ../../../../../.virtualenvs/ablog_website/lib/python3.8/site-packages/ablog/templates/categories.html:2
+msgid "Categories"
+msgstr ""
+
+#: ../../../../../.virtualenvs/ablog_website/lib/python3.8/site-packages/ablog/templates/collection.html:48
+msgid "Read more ..."
+msgstr ""
+
+#: ../../../../../.virtualenvs/ablog_website/lib/python3.8/site-packages/ablog/templates/languages.html:2
+msgid "Languages"
+msgstr ""
+
+#: ../../../../../.virtualenvs/ablog_website/lib/python3.8/site-packages/ablog/templates/locations.html:2
+msgid "Locations"
+msgstr ""
+
+#: ../../../../../.virtualenvs/ablog_website/lib/python3.8/site-packages/ablog/templates/postcard2.html:2
+msgid "Update"
+msgstr ""
+
+#: ../../../../../.virtualenvs/ablog_website/lib/python3.8/site-packages/ablog/templates/postcard2.html:7
+msgid "Author"
+msgstr ""
+
+#: ../../../../../.virtualenvs/ablog_website/lib/python3.8/site-packages/ablog/templates/postcard2.html:16
+msgid "Location"
+msgstr ""
+
+#: ../../../../../.virtualenvs/ablog_website/lib/python3.8/site-packages/ablog/templates/postcard2.html:25
+msgid "Language"
+msgstr ""
+
+#: ../../../../../.virtualenvs/ablog_website/lib/python3.8/site-packages/ablog/templates/postcard2.html:34
+msgid "Category"
+msgstr ""
+
+#: ../../../../../.virtualenvs/ablog_website/lib/python3.8/site-packages/ablog/templates/postcard2.html:43
+#: ../../../../../.virtualenvs/ablog_website/lib/python3.8/site-packages/ablog/templates/tagcloud.html:2
+msgid "Tags"
+msgstr ""
+
+#: ../../../../../.virtualenvs/ablog_website/lib/python3.8/site-packages/ablog/templates/postcard2.html:44
+msgid "Tag"
+msgstr ""
+
+#: ../../../../../.virtualenvs/ablog_website/lib/python3.8/site-packages/ablog/templates/postnavy.html:7
+msgid "Previous"
+msgstr ""
+
+#: ../../../../../.virtualenvs/ablog_website/lib/python3.8/site-packages/ablog/templates/postnavy.html:17
+msgid "Next"
+msgstr ""
+
+#: ../../../../../.virtualenvs/ablog_website/lib/python3.8/site-packages/ablog/templates/recentposts.html:2
+msgid "Recent Posts"
+msgstr ""
+
diff --git a/src/_locale/fr/LC_MESSAGES/website.po b/src/_locale/fr/LC_MESSAGES/website.po
new file mode 100644
index 0000000..0e1d359
--- /dev/null
+++ b/src/_locale/fr/LC_MESSAGES/website.po
@@ -0,0 +1,31 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) 2020, neodarz
+# This file is distributed under the same license as the neodarz's website
+# package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: neodarz's website \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-06-21 12:48+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.8.0\n"
+
+#: ../../src/website/contact.rst:1
+msgid "New page is :doc:`here <../contact>`."
+msgstr "Nouvelle page est :doc:`ici <../contact>`."
+
+#: ../../src/website/index.rst:1
+msgid "New page is :doc:`here <../index>`."
+msgstr "Nouvelle page est :doc:`ici <../index>`."
+
+#: ../../src/website/projets.rst:1
+msgid "New page is :doc:`here <../projects>`."
+msgstr "Nouvelle page est :doc:`ici <../projects>`."
diff --git a/src/_static/style.css b/src/_static/style.css
new file mode 100644
index 0000000..fbee54f
--- /dev/null
+++ b/src/_static/style.css
@@ -0,0 +1,3 @@
+.strike {
+ text-decoration: line-through;
+}
diff --git a/src/_templates/collection.html b/src/_templates/collection.html
new file mode 100644
index 0000000..8e5a99f
--- /dev/null
+++ b/src/_templates/collection.html
@@ -0,0 +1,54 @@
+{# ablog license: https://github.com/sunpy/ablog/blob/master/LICENSE.rst #}
+{%- extends "page.html" %}
+{% block body %}
+ <div class="section collection">
+
+ <h1>
+ {% if archive_feed and fa %}
+ <a href="{{ pathto(collection.path, 1) }}/atom.xml"><i class="fa fa-rss fa-rotate-270"></i></a>{% endif %}
+ {{ header }}
+ {% if collection.href %}
+ <a href="{{ collection.href }}">{{ collection }}</a>
+ {% else %}
+ {{ collection }}
+ {% endif %}
+ </h1>
+ {% if ablog.blog_archive_titles %}
+ {% for post in collection %}
+ <div class="section">
+ <p>
+ {% if fa %}{% endif %}
+ {% if post.published %}
+ {{ post.date.strftime(ablog.post_date_format) }}
+ {% else %}
+ Draft
+ {% endif %}
+ - <a href="{{ pathto(post.docname) }}{{ anchor(post) }}">{{ post.title }}</a>
+ </p>
+ {% if 0 %}<ul class="ablog-archive">{% include "postcard2.html" %}</ul>{% endif %}
+ </div>
+ {% endfor %}
+ {% else %}
+ {% for post in collection %}
+
+ <div class="section">
+ <h2><a href="{{ pathto(post.docname) }}{{ anchor(post) }}">{{ post.title }}</a></h2>
+
+ <ul class="ablog-archive">
+ <li>{% if post.published %}
+ {% if fa %}<i class="fa fa-calendar"></i>{% endif %}
+ {{ post.date.strftime(ablog.post_date_format) }}
+ {% else %}
+ {% if fa %}<i class="fa fa-pencil"></i>{% endif %}
+ {% if post.date %}{{ post.date.strftime(ablog.post_date_format) }}
+ {% else %} Draft {% endif %}
+ {% endif %}
+ </li>
+ {% include "postcard2.html" %}</ul>
+ {{ post.to_html(collection.docname) }}
+ <p><a href="{{ pathto(post.docname) }}">{{ _("Read more ...") }}</a></p>
+ </div>
+ {% endfor %}
+ {% endif %}
+ </div>
+{% endblock %}
diff --git a/src/associations.rst b/src/associations.rst
new file mode 100644
index 0000000..c3648c1
--- /dev/null
+++ b/src/associations.rst
@@ -0,0 +1,25 @@
+Associations
+============
+
+Little list of associations in which I participate or have participated.
+
+HAUM
+----
+
+The HAUM is an hackerspace who, as specified on the web site, is a sarthoise
+association following the Do-it Yourself philosophy. It's a place of hacking
+and knowledge sharing based in the French cit of Le Mans.
+
+:: More infos: `haum.org <https://haum.org>`_
+
+TILIMA
+------
+
+Project to create an internet provider as a French non-profit organisation
+(french 1901 association law) in the French city of Le Mans.
+Its based on the values of volunteerism, solidarity, democracy and the
+defence and promotion of net neutrality.
+
+:: More infos: :strike:`tilima.fr`
+
+:: The project is dead, unfortunately.
diff --git a/src/blog/2016-06-04-Mode-kiosk-sur-une-Raspberry-Pi-1.rst b/src/blog/2016-06-04-Mode-kiosk-sur-une-Raspberry-Pi-1.rst
new file mode 100755
index 0000000..5d40174
--- /dev/null
+++ b/src/blog/2016-06-04-Mode-kiosk-sur-une-Raspberry-Pi-1.rst
@@ -0,0 +1,144 @@
+.. post:: Jun 04, 2016
+ :tags: hacking, raspberrypi, system
+ :language: fr
+ :author: neodarz
+
+Mode kiosk sur une Raspberry Pi 1
+=================================
+
+Le système
+----------
+
+Pour l'un de mes stages il y a quelques semaines, je devais réaliser un écran connecté afin de faire un show room pour une entreprise mais le matériel fournis étant une Raspberry Pi 1, je me suis tout de suite douté qu'il risquait d'avoir des problèmes de performances. De plus pour faire cet écran connecté, le chef de projet avait décidé de le faire en web, peut être qu'il aurait été préférable de le faire avec une autre techno, je ne sais pas car je n'ai pas étudié la question.
+
+Mais des problèmes de performances, oh que oui j'en ai rencontrés !
+
+Pour commencer, je ne connaissais pas les configurations déjà présentes sur la carte et dès que j'ai commencé à mettre en un peu de JS dans mon code pour la page web, le navigateur n'a pas arrété de crasher au démarrage de la rasp.
+
+Bon, après le changement de la conf sur plusieurs navigateurs, de changement de gestionnaire de fenêtre j'ai ai eu marre et j'ai décidé de changer directement de distribution. Ah oui, car la rasp était de base sur une raspbian, alors j'ai installé un archlinux dessus et depuis elle va beaucoup mieux, par contre je ne vous cache pas que le JS est toujours lent mais fonctionnel.
+
+EDIT: tinycorelinux aurait pus être une alternative aussi...
+
+Pour l'installation d'Archlinux, pas besoin d'expliquer comment faire, la doc sur leur site est très bien mais je vous mets quand même un [lien](https://archlinuxarm.org/platforms/armv6/raspberry-pi/#installation) car je suis gentil. ;)
+
+.. warning::
+
+ Avant d'aller plus loin, je vous conseille viviement de changer les mots de passe des comptes :samp:`root` et :samp:`alarm` !
+
+Après l'installation, j'ai dû installer quelques paquets, que voici :
+
+Pour la partie graphique :
+
+ * xorg-server
+ * xorg-xinit
+ * matchbox-window-manager
+ * xf86-video-fbdev
+ * xorg-xset
+ * fbset
+ * xwit (aur)
+
+Et pour la partie serveur web :
+
+ * php
+ * php-apache
+ * php-mcrypt
+ * apache
+
+Démarrage auto
+--------------
+
+Bon avant d'automatiser le tout nous allons faire en sorte que notre interface graphique démarre sans encombre. Pour ça nous allons créer le fichier :samp:`.xinitrc` ou le modifier si celui-ci est déja présent, voila à quoi ressemble mon fichier de conf:
+
+.. code:: bash
+
+ #!/bin/sh
+ while true; do
+ # Disable DPMS / Screen blanking
+ xset -dpms
+ xset s off
+
+ # Reset the framebuffer's colour-depth
+ fbset -depth $( cat /sys/module/*fb*/parameters/fbdepth );
+
+ # Hide the cursor (move it to the bottom-right, comment out if you want mouse interaction)
+ xwit -root -warp $( cat /sys/module/*fb*/parameters/fbwidth ) $( cat /sys/module/*fb*/parameters/fbheight )
+
+ # Démarre le gestionnaire de fenétre (suprimer "-use_cursor no" si vous vouler l'intégration de la souris)
+ matchbox-window-manager -use_titlebar no -use_cursor no &
+ midori -a http://127.0.0.1/Magpie-box -e Fullscreen
+ done;
+
+Je précise que dans le cas actuel ma boucle permet de redémarer le navigateur en cas de crash de celui-ci au cas où...
+Et pour démarrer cette interface graphique un simple coup de :samp:`startx` et c'est plié.
+
+Le navigateur
+-------------
+
+On va s'occuper de l'étape où j'ai passé la plus part de mon temps, la configuration du navigateur. Car après m'être littéralement battu avec eux j'ai enfin trouvé la solution ! Sur la Raspberry Pi 1 seulement midori et firefox pouvaient tourner mais le problème est le suivant :
+
+ * Midori prend peu de ressources mais a quelques soucis avec le javascript;
+ * Firefox gère très bien le javascript mais prend trop de ressources pour la rasp -- je parle du cas où il y a des images plutôt lourdes à charger, ce qui était mon cas pour le projet malheureusement :/
+
+Midori pose aussi problème lorsqu'on éteint et qu'on redémmare la rasp de manière brutale, physiquement, le navigateur tente de recharger l'onglet fermé mais n'y arrive pas et du coup il faut rafraichir la page à la main mais je n'ai pas trouvé le moyen de désactiver ce fichu plugin malheureusement.
+
+Donc j'ai opté pour firefox, par contre le mode kiosk n'est possible qu'en installant un plugin et cela ce fait de manière graphique, je n'ai pas encore regardé pour le faire via le terminal. Il faut commencer par modifier la config en tapant dans la bar d'adresse :samp:`about:config` et approuver qu'on ne va pas tout casser. Après on change l'option de vérifiction de la signature du plugin de true à false : je ne comprends pas trop
+
+.. code:: bash
+
+ xpinstall.signatures.required false
+
+Et maintenant on installe le [plugin](https://github.com/NeodarZ/r-kiosk/blob/master/build/r_kiosk.xpi).
+
+EDIT: luakit est une alternative à ne pas écarter mais [qutebrowser](https://qutebrowser.org) semble être une meilleur alternative... ;)
+
+Configuration du serveur web
+""""""""""""""""""""""""""""
+
+Une fois ceci configuré, il faut configurer le serveur web pour qu'il soit compatible avec php7, pour cela il faut éditer le fichier :samp:`/etc/httpd/conf/httpd.conf` et commenter la ligne suivante :
+
+.. code:: bash
+
+ LoadModule mpm_event_module modules/mod_mpm_event.so
+
+Afin de décommenter la ligne suivante :
+
+.. code:: bash
+
+ LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
+
+Ah et ne pas oublier de rajouter cette ligne à la fin :
+
+.. code:: bash
+
+ Include conf/extra/php7_module.conf
+
+Mise en place de la connection automatique
+""""""""""""""""""""""""""""""""""""""""""
+
+Maintenant que notre interface graphique démarre tranquillement, on va pouvoir automatiser le tout, pour cela on va commencer par faire en sorte que la connection soit automatique pour cela on crée le dossier suivant : :samp:`/etc/systemd/system/getty@tty1.service.d/`
+
+Et enfin créer et modifier le fichier suivant : :samp:`/etc/systemd/system/getty@tty1.service.d/override.conf` :
+
+.. code:: bash
+
+ [Service]
+ ExecStart=
+ ExecStart=-/sbin/agetty --autologin alarm --noclear %I 38400 linux
+
+On peut remarquer que j'ai mis deux fois :samp:`ExecStart=`, ce n'est pas une erreur, c'est juste que ma rasp ne voulait pas booter automatiquement avec un seul alors qu'avec deux, c'était nickel... Aller savoir pourquoi ^^
+
+Bon maintenant que notre session se lance il va faloir faire en sorte que notre belle interface graphique se lance toute seule comme une grande, alors pour ça il faut commencer par copier le fichier suivant : :samp:`/etc/skel/.bash_profile` et ajouter à la fin :
+
+.. code:: bash
+
+ [[ -z $DISPLAY && $XDG_VTNR -eq 1 ]] && exec startx
+
+Et là on se dit, oui c'est fini ! Et bien non ! :p
+Ce serait trop facile. Pour faire simple, il faut juste autoriser n'importe quel utilisateur à lancer le serveur Xorg. Pour cela il vous faut créer et modifier le fichier :samp:`/etc/X11/Xwrapper.config` et ajouter cette ligne :
+
+.. code:: bash
+
+ allowed_users=anybody
+
+Et voila maintenant c'est bon, nous pouvons profiter de notre mode kiosk fraichement installé ! ;)
+Personnellement je ne vous cache pas que je me suis battu avec la conf de mon navigateur qui finalement démarre sans trop de difficulté...
diff --git a/src/blog/2017-05-01-A-la-découverte-d-un-nouveau-langage.rst b/src/blog/2017-05-01-A-la-découverte-d-un-nouveau-langage.rst
new file mode 100644
index 0000000..94ddb70
--- /dev/null
+++ b/src/blog/2017-05-01-A-la-découverte-d-un-nouveau-langage.rst
@@ -0,0 +1,114 @@
+.. post:: Jun 01, 2017
+ :tags: code
+ :language: fr
+ :author: neodarz
+
+A la découverte d’un nouveau langage
+====================================
+
+Lors de mon stage de seconde année, j’ai pu découvrir un nouveau langage de
+programmation. D’où le titre de cet article...
+
+J’ai donc pu me pencher sur le langage Elixir qui, en plus d’être un langage
+que je ne connaissais pas, m’a été ‘vendu’ par mon maître de stage,
+`Vincent Jousse <http://vincent.jousse.org/%C3%A0-propos/>`_, comme un langage
+avec un `paradigme fonctionnel <https://fr.wikipedia.org/wiki/Programmation_fonctionnelle>`_.
+J’ai donc été voir la page wikipédia et j’ai pu lire que finalement c’est un
+langage `multi-paradigme <https://fr.wikipedia.org/wiki/Paradigme_(programmation)>`_...
+Bon, super... Déjà que je ne voyais pas ce qu’était un paradigme en programmation
+’ai pu voir qu’il y en avait plein et donc commencer la lecture des différentes
+pages wikipédia qui traitaient du sujet...
+
+Une fois cette lecture terminée j’ai pu lire (oui encore) de la documentation à
+propos de Elixir et du framework Phoenix. Malheureusement par manque de temps
+je ne me suis pas penché sur l’apprentissage du langage Elixir en lui même mais
+directement sur le framework. Sur lequel j’ai d’ailleurs passé la moitié de mon
+temps de stage pour en lire finalement que la moitié avant de pouvoir
+développer une API fonctionnel.
+
+La documentation lue était sous forme de tutoriel par mini-projet, j’ai dû
+mettre en place l’envrionnement de développement avant de pouvoir réellement
+commencer. J’ai donc démarré par l’installation d’Erlang, qui est le langage de
+programmation sur lequelle est construit Elixir. Étant sur archlinux à
+l’origine il ma juste suffi d’installer directement le packet d’elixir via AUR.
+De plus celui-ci gère les dépendances donc il m’a automatiquement installé le
+packet d’erlang.
+
+.. code:: bash
+
+ yaourt -S erlang
+
+Mais lorsque j’ai voulu installer une version de démonstration sur le serveur
+de mon lycée pour mon épreuve oral de BTS, j’ai rencontré quelques difficultés
+pour l’installer... car certains packets comme celui d’erlang ou de node
+n’étaient soit pas à jour soit pas disponible...
+
+Il a donc fallu commencer par l’installation du repository d’Erlang via la
+commande suivante :
+
+.. code:: bash
+
+ wget https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb && sudo dpkg -i erlang-solutions_1.0_all.deb
+
+Puis de mettre à jour la liste des packets et de commencer les installations
+nécessaires :
+
+.. code:: bash
+
+ sudo apt-get update && sudo apt-get install esl-erlang elixir
+
+Il faut ensuite installer la dernière version stable de node en la compilant
+depuis les sources ainsi que le packet postgresql.
+
+Une fois les dépendances nécessaire installées, on peut passer à la mise en
+place de la base de donnée puis l’installation de l’API elle même.
+
+Pour la base de donnée, l’ajour d’un utilisateur et l’autorisation de celui-ci
+pour la création de la base de données est nécessaire :
+
+.. code:: sql
+
+ CREATE USER demo WITH PASSWORD 'P@ssword';
+ ALTER USER demo CREATEDB;
+
+Une fois le repository cloné via
+https://framagit.org/NeodarZ/the_transcriber_backend.git il faut modifier
+quelque fichier de configarations, nottament pour ce qui est de la connection à
+la base de données.
+
+Si la base de données est en local, il suffit simplement de modifier les
+fichiers :samp:`config/dev.exs` et :samp:`config/test.exs` avec les paramètres
+suivant :
+
+.. code::
+
+ [...]
+ username: "demo",
+ password: "P@ssword",
+ [...]
+
+Une fois la configuration terminée il faut installer l’API en commancant par
+l’installation des dépendances :
+
+.. code::
+
+ mix deps.get
+
+Dans mon cas je n’ai pas installé hex qui est nécessaire lors de l’installation
+des dépendances mais, heuresement pour nous, les développeurs du framework
+Phoenix on pensé à tout et propose de l’installer pour nous :
+
+.. code::
+
+ Could not find Hex, which is needed to build dependency :phoenix
+ Shall I install Hex? (if running non-interactively, use: "mix local.hex --force") [Yn]
+
+Une fois les dépendances installées, il nous que le framework créer les bases
+de données nécessaire à son bon fonctionnement.
+
+.. code::
+
+ mix ecto.create && mix ecto.migrate
+
+Une fois toute les étapes passées sans erreur la simple commande mix mix
+phoenix.server devrait être necessaire au démarrage de l’API.
diff --git a/src/blog/2019-05-12-mysteredesportsusb.rst b/src/blog/2019-05-12-mysteredesportsusb.rst
new file mode 100644
index 0000000..a04dc95
--- /dev/null
+++ b/src/blog/2019-05-12-mysteredesportsusb.rst
@@ -0,0 +1,47 @@
+.. post:: May 12, 2019
+ :tags: system
+ :language: fr
+ :author: neodarz
+
+Mystère des ports USB
+=====================
+
+Voila depuis quelque temps je trouvais que mes ports USB 2.0 et 3.0 étaient
+capricieux... Plus souvent c’était plus ceux de devant que ceux de derrière
+bizarrement.
+
+Et bah j’ai réussi à élucider ce mystère en voulant jouer avec mes cartes
+graphiques ! Oai rien à voir, finalement si, mais c’était une histoire d’option
+à la con.
+
+L’option en question c’est :samp:`iommu`. Ça permet de passer à une machine
+virtuelle de type HVM un périphérique PCI. Le rapport avec mon histoire de
+ports USB c’est que ça permet d’isoler les accès entrés/sorties.
+
+J’ai donc été faire un tour dans le bios pour jouer avec cette option mais
+l’activer dans le bios sans l’activer dans GRUB fous le bordel.
+
+Oui j’ai vraiment activé l’option dans le bios sans l’activer dans le grub et
+je comprenais pas pourquoi ça marchait pas...
+
+Enfin bref, un petit coup de vim dans le fichier :samp:`/etc/default/grub`
+(toujours sans oublier de lancer un build de la config de grub via la commande
+:samp:`grub-mkconfig`) avec l’option suivante : :samp:`amd_iommu=on` du
+paramètre :samp:`GRUB_CMDLINUX_LINUX`. Mais c’est pas finis car il faut aussi
+l’option :samp:`iommu`. Les paramètres sont :samp:`soft` ou :samp:`pt`.
+
+Maintenant pour le partage de carte graphique dans une VM j’ai le message
+d’erreur suivant :
+
+.. code::
+
+ AMD-Vi: AMD IOMMUv2 functionnality not available on this system
+
+Finalement d’après un `thread <https://www.linuxquestions.org/questions/linux-hardware-18/amd-iommuv2-functionality-not-available-on-this-system-4175589036/>`_ sur internet ceci n’est pas un message d’erreur mais un message informatif
+qui indique que seul :samp:`IOMMUv1` est supporté par cette carte mère. La mise
+en forme du message me fait plus penser à un message d’erreur mais bon...
+
+Je ne vais pas chercher plus loin pour le moment mais c’est une bonne nouvelle,
+je vais pouvoir continuer à rentrer plus dans les détails une autre fois.
+Notamment pour le choix du paramètre de l’option :samp:`iommu`, pour le moment
+je vais rester sur :samp:`soft`.
diff --git a/src/blog/2020-06-22-Hacking-a-datalogic-magellan-1100i.rst b/src/blog/2020-06-22-Hacking-a-datalogic-magellan-1100i.rst
new file mode 100644
index 0000000..c048e19
--- /dev/null
+++ b/src/blog/2020-06-22-Hacking-a-datalogic-magellan-1100i.rst
@@ -0,0 +1,121 @@
+.. post:: Jun 22, 2020
+ :tags: hacking
+ :language: en
+ :author: neodarz
+
+Hacking a Datalogic Magellan 1100i
+===================================
+
+Nothing very complicated but I want to share how to add a USB connector to a
+Datalogic Magellan 1100i barcode reader, for using it in keyboard mode.
+
+.. warning::
+
+ I'm not responsible if your destroying your hardware!
+
+But first, some context about why I did this. I recently join the french `food
+cooperative <https://en.wikipedia.org/wiki/Food_cooperative>`_
+`La Chouette Coop <https://lachouettecoop.fr/>`_ [fr] located at
+Toulouse. When I joined the co-op I had in mind to do nothing computer-related.
+But as soon I said I was a developer, I was asked to join the IT group because
+they were looking for people with experiences in this domain. So I said
+"Why not?" and I discover they're doing all they can to stay away from GAFAM
+and other companies who are a threat for our privacy.
+
+The first project I did was to
+add a USB connector to a barcode reader without connector. An other person have
+already do some research and merge a USB cable lying around in a drawer to the
+barcode reader. But it was only powered and was not recognized by the
+computer where it was connected to. This is my starting point since the other
+person who did this has left to deal with something unrelated to this project.
+
+After he tell me what he found and give me all the documents he have, I started
+searching and the solution was simple but not obvious.
+
+The first thing to check is if the wiring is ok, all seems fine but the tricky
+part was to check the wiring for the cable in the barcode reader. With the
+correct tool I was able to easly open the part where the wire is connected to
+the barcode reader. I used a thin screwdriver and put it in the hole which I
+surrounded in red in the following picture.
+
+.. image:: 2020-06-22-Hacking-a-datalogic-magellan-1100i/barecode_reader_close_detailed.png
+
+Normally you have to feel a slight pressure as if you were pressing on
+something (which you are). Keep pressing with one hand (like indicaded with the
+arrow number 1) and with your other hand pull the cable out of the barcode
+reader (like indidcated with the arrow number 2).
+
+Now you should have something like this (If not, what have you done? ^^):
+
+.. image:: 2020-06-22-Hacking-a-datalogic-magellan-1100i/barecode_reader_open.png
+
+In the image above we can see a connector who looks like an RJ45 connector but
+it's not. Based on my research this would be an RJ50-10 connector.
+
+Now make a mapping from the color linked to the pineout explained in the
+`barcode reader official documentation <https://www.barcodescanner.de/media/pdf/specials/Magellan%201100i.pdf>`_
+pages 175 and 176.
+
+You can selected the pineout you want, it's not important for this part but
+keep in mind that some cables are not connected to the connector.
+
+Here is the wiring mapping of my barecode reader (maybe it diferent for your):
+
+.. code::
+
+ RJ50-10 connector Color code
+ 1 <----------------------> Not wired
+ 2 <----------------------> Green
+ 3 <----------------------> Not wired
+ 4 <----------------------> Blue
+ 5 <----------------------> Unknown
+ 6 <----------------------> Grey
+ 7 <----------------------> Unknown
+ 8 <----------------------> Yellow
+ 9 <----------------------> Black
+ 10 <----------------------> Unknown
+
+Yes, some are unknown because I only check the colors for the
+``USB, USB Keyboard & USB COM`` pineout that we're going to use.
+
+Now we know what color corresponds to which RJ50-10 connector pin, we can
+prepare our two cables for the merge.
+
+You can found the USB cable color mapping on the internet easly but here it is:
+
+.. code::
+
+ Black (GND)
+ Red (VIN)
+ White (D-)
+ Green (D+)
+
+After that, just merge the two cables with the following mapping:
+
+.. code::
+
+ Barcode reader wire USB wire
+ Black <--------------> Black
+ Yellow <--------------> Red
+ Blue <--------------> White
+ Grey <--------------> Green
+
+Follow the kernel ring buffer with the command ``dmesg -w`` and you will see
+something like this *if* your merge is correct:
+
+.. code::
+
+ [53441.314468] usb 2-1.1: new full-speed USB device number 29 using ehci-pci
+ [53441.484190] usb 2-1.1: New USB device found, idVendor=05f9, idProduct=4601, bcdDevice=18.71
+ [53441.484195] usb 2-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
+ [53441.484198] usb 2-1.1: Product: Point of Sale Handable Scanner
+ [53441.484200] usb 2-1.1: Manufacturer: PSC Inc.
+ [53441.484202] usb 2-1.1: SerialNumber: C10100756
+
+Why *if*? The thing is, at start, I stayed too long on the mapping done by me
+colleague and it wasn't working. The solution was simply to inverse the white
+and the green wire of the USB cable like the mapping above and everthing works
+as desired.
+
+Anyway. Now you can configure your barecode reader normally with the mode you
+want. I hope you'll find this useful.
diff --git a/src/blog/2020-06-22-Hacking-a-datalogic-magellan-1100i/barecode_reader_close_detailed.png b/src/blog/2020-06-22-Hacking-a-datalogic-magellan-1100i/barecode_reader_close_detailed.png
new file mode 100644
index 0000000..74e1921
--- /dev/null
+++ b/src/blog/2020-06-22-Hacking-a-datalogic-magellan-1100i/barecode_reader_close_detailed.png
Binary files differ
diff --git a/src/blog/2020-06-22-Hacking-a-datalogic-magellan-1100i/barecode_reader_open.png b/src/blog/2020-06-22-Hacking-a-datalogic-magellan-1100i/barecode_reader_open.png
new file mode 100644
index 0000000..790d894
--- /dev/null
+++ b/src/blog/2020-06-22-Hacking-a-datalogic-magellan-1100i/barecode_reader_open.png
Binary files differ
diff --git a/src/blog/index.rst b/src/blog/index.rst
new file mode 100644
index 0000000..6d34592
--- /dev/null
+++ b/src/blog/index.rst
@@ -0,0 +1,10 @@
+Blog
+====
+
+You can follow this blog via `rss <atom.xml>`_.
+
+
+.. postlist:: 5
+ :date: %Y-%m-%d
+ :format: [ {date} ] - {title}
+
diff --git a/src/conf.py b/src/conf.py
new file mode 100755
index 0000000..96d4550
--- /dev/null
+++ b/src/conf.py
@@ -0,0 +1,355 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+
+# neodarz's website build configuration file, created by
+# `ablog start` on Thu Jun 11 17:20:32 2020.
+#
+# Note that not all possible configuration values are present in this file.
+# All configuration values have a default; values that are commented out
+# serve to show the default.
+
+import os
+import sys
+import ablog
+import alabaster
+
+# -- General ABlog Options ----------------------------------------------------
+
+# A path relative to the configuration directory for blog archive pages.
+#blog_path = 'blog'
+
+# The "title" for the blog, used in active pages. Default is ``'Blog'``.
+blog_title = u'neodarz\'s website Blog'
+
+# Base URL for the website, required for generating feeds.
+# e.g. blog_baseurl = "http://example.com/"
+blog_baseurl = u'https://neodarz.net/'
+
+# Choose to archive only post titles. Archiving only titles can speed
+# up project building.
+#blog_archive_titles = False
+
+# -- Blog Authors, Languages, and Locations -----------------------------------
+
+# A dictionary of author names mapping to author full display names and
+# links. Dictionary keys are what should be used in ``post`` directive
+# to refer to the author. Default is ``{}``.
+blog_authors = {
+ 'neodarz': ('neodarz', None),
+}
+
+blog_languages = {
+ 'en': ('English', None),
+ 'fr': ('French', None)
+}
+
+blog_default_language = 'en'
+
+
+# A dictionary of language code names mapping to full display names and
+# links of these languages. Similar to :confval:`blog_authors`, dictionary
+# keys should be used in ``post`` directive to refer to the locations.
+# Default is ``{}``.
+#blog_languages = {
+# 'en': ('English', None),
+#}
+
+
+# A dictionary of location names mapping to full display names and
+# links of these locations. Similar to :confval:`blog_authors`, dictionary
+# keys should be used in ``post`` directive to refer to the locations.
+# Default is ``{}``.
+#blog_locations = {
+# 'Earth': ('The Blue Planet', 'https://en.wikipedia.org/wiki/Earth),
+#}
+
+# -- Blog Post Related --------------------------------------------------------
+
+# Format date for a post.
+#post_date_format = '%b %d, %Y'
+
+# Number of paragraphs (default is ``1``) that will be displayed as an excerpt
+# from the post. Setting this ``0`` will result in displaying no post excerpt
+# in archive pages. This option can be set on a per post basis using
+#post_auto_excerpt = 1
+
+# Index of the image that will be displayed in the excerpt of the post.
+# Default is ``0``, meaning no image. Setting this to ``1`` will include
+# the first image, when available, to the excerpt. This option can be set
+# on a per post basis using :rst:dir:`post` directive option ``image``.
+#post_auto_image = 0
+
+# Number of seconds (default is ``5``) that a redirect page waits before
+# refreshing the page to redirect to the post.
+#post_redirect_refresh = 5
+
+# When ``True``, post title and excerpt is always taken from the section that
+# contains the :rst:dir:`post` directive, instead of the document. This is the
+# behavior when :rst:dir:`post` is used multiple times in a document. Default
+# is ``False``.
+#post_always_section = False
+
+# When ``False``, the :rst:dir:`orphan` directive is not automatically set
+# for each post. Without this directive, Sphinx will warn about posts that
+# are not explicitly referenced via another document. :rst:dir:`orphan` can
+# be set on a per-post basis as well if this is false. Default is ``True``.
+#post_auto_orphan = True
+
+# -- ABlog Sidebars -------------------------------------------------------
+
+# There are seven sidebars you can include in your HTML output.
+# postcard.html provides information regarding the current post.
+# recentposts.html lists most recent five posts. Others provide
+# a link to a archive pages generated for each tag, category, and year.
+# In addition, there are authors.html, languages.html, and locations.html
+# sidebars that link to author and location archive pages.
+html_sidebars = {
+ '**': [ 'about.html',
+ 'navigation.html',
+ 'searchbox.html',
+ ],
+ }
+
+# -- Blog Feed Options --------------------------------------------------------
+
+# Turn feeds by setting :confval:`blog_baseurl` configuration variable.
+# Choose to create feeds per author, location, tag, category, and year,
+# default is ``False``.
+#blog_feed_archives = False
+
+# Choose to display full text in blog feeds, default is ``False``.
+#blog_feed_fulltext = False
+
+# Blog feed subtitle, default is ``None``.
+#blog_feed_subtitle = None
+
+# Choose to feed only post titles, default is ``False``.
+#blog_feed_titles = False
+
+# Specify number of recent posts to include in feeds, default is ``None``
+# for all posts.
+#blog_feed_length = None
+
+# -- Font-Awesome Options -----------------------------------------------------
+
+# ABlog templates will use of Font Awesome icons if one of the following
+# is ``True``
+
+# Link to `Font Awesome`_ at `Bootstrap CDN`_ and use icons in sidebars
+# and post footers. Default: ``None``
+#fontawesome_link_cdn = None
+
+# Sphinx_ theme already links to `Font Awesome`_. Default: ``False``
+#fontawesome_included = True
+
+# Alternatively, you can provide the path to `Font Awesome`_ :file:`.css`
+# with the configuration option: fontawesome_css_file
+# Path to `Font Awesome`_ :file:`.css` (default is ``None``) that will
+# be linked to in HTML output by ABlog.
+#fontawesome_css_file = None
+
+# -- Disqus Integration -------------------------------------------------------
+
+# You can enable Disqus_ by setting ``disqus_shortname`` variable.
+# Disqus_ short name for the blog.
+#disqus_shortname = None
+
+# Choose to disqus pages that are not posts, default is ``False``.
+#disqus_pages = False
+
+# Choose to disqus posts that are drafts (without a published date),
+# default is ``False``.
+#disqus_drafts = False
+
+# -- Sphinx Options -----------------------------------------------------------
+
+# If your project needs a minimal Sphinx version, state it here.
+needs_sphinx = '1.2'
+
+# Add any Sphinx extension module names here, as strings. They can be
+# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
+# ones.
+extensions = [
+ 'sphinx.ext.extlinks',
+ 'sphinx.ext.intersphinx',
+ 'sphinx.ext.todo',
+ 'sphinx_sitemap',
+ 'ablog',
+]
+
+# Add any paths that contain templates here, relative to this directory.
+templates_path = ['_templates', ablog.get_html_templates_path()]
+
+# The suffix(es) of source filenames.
+source_suffix = '.rst'
+
+# The encoding of source files.
+#source_encoding = 'utf-8-sig'
+
+# The master toctree document.
+master_doc = 'index'
+
+# General information about the project.
+project = u'neodarz'
+copyright = u'CC-BY-SA'
+author = u'neodarz'
+
+# The version info for the project you're documenting, acts as replacement for
+# |version| and |release|, also used in various other places throughout the
+# built documents.
+#
+# The short X.Y version.
+version = ''
+# The full version, including alpha/beta/rc tags.
+release = ''
+
+# The language for content autogenerated by Sphinx. Refer to documentation
+# for a list of supported languages.
+#
+# This is also used if you do content translation via gettext catalogs.
+# Usually you set "language" from the command line for these cases.
+language = None
+
+# There are two options for replacing |today|: either, you set today to some
+# non-false value, then it is used:
+#today = ''
+# Else, today_fmt is used as the format for a strftime call.
+#today_fmt = '%B %d, %Y'
+
+# List of patterns, relative to source directory, that match files and
+# directories to ignore when looking for source files.
+exclude_patterns = []
+
+# The reST default role (used for this markup: `text`) to use for all
+# documents.
+#default_role = None
+
+# If true, '()' will be appended to :func: etc. cross-reference text.
+#add_function_parentheses = True
+
+# If true, the current module name will be prepended to all description
+# unit titles (such as .. function::).
+#add_module_names = True
+
+# If true, sectionauthor and moduleauthor directives will be shown in the
+# output. They are ignored by default.
+#show_authors = False
+
+# The name of the Pygments (syntax highlighting) style to use.
+pygments_style = 'sphinx'
+
+# A list of ignored prefixes for module index sorting.
+#modindex_common_prefix = []
+
+# If true, keep warnings as "system message" paragraphs in the built documents.
+#keep_warnings = False
+
+# If true, `todo` and `todoList` produce output, else they produce nothing.
+todo_include_todos = False
+
+
+# -- Options for HTML output ----------------------------------------------
+
+# The theme to use for HTML and HTML Help pages. See the documentation for
+# a list of builtin themes.
+html_theme = 'ascii'
+
+# Theme options are theme-specific and customize the look and feel of a theme
+# further. For a list of options available for each theme, see the
+# documentation.
+html_theme_options = {
+ 'copyright_link': u'https://creativecommons.org/licenses/by-sa/4.0/legalcode',
+ 'source_link': u'https://git.neodarz.net/neodarz/website/website.git',
+}
+
+# Add any paths that contain custom themes here, relative to this directory.
+html_theme_path = [alabaster.get_path()]
+
+# The name for this set of Sphinx documents. If None, it defaults to
+# "<project> v<release> documentation".
+#html_title = None
+
+# A shorter title for the navigation bar. Default is the same as html_title.
+#html_short_title = None
+
+# The name of an image file (relative to this directory) to place at the top
+# of the sidebar.
+#html_logo = None
+
+# The name of an image file (within the static path) to use as favicon of the
+# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
+# pixels large.
+#html_favicon = None
+
+# Add any paths that contain custom static files (such as style sheets) here,
+# relative to this directory. They are copied after the builtin static files,
+# so a file named "default.css" will overwrite the builtin "default.css".
+html_static_path = ['_static']
+
+# Add any extra paths that contain custom files (such as robots.txt or
+# .htaccess) here, relative to this directory. These files are copied
+# directly to the root of the documentation.
+#html_extra_path = []
+
+# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
+# using the given strftime format.
+#html_last_updated_fmt = '%b %d, %Y'
+
+# If true, SmartyPants will be used to convert quotes and dashes to
+# typographically correct entities.
+#html_use_smartypants = True
+
+# Additional templates that should be rendered to pages, maps page names to
+# template names.
+#html_additional_pages = {}
+
+# If false, no module index is generated.
+#html_domain_indices = True
+
+# If false, no index is generated.
+#html_use_index = True
+
+# If true, the index is split into individual pages for each letter.
+#html_split_index = False
+
+# If true, links to the reST sources are added to the pages.
+#html_show_sourcelink = True
+
+# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
+#html_show_sphinx = True
+
+# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
+#html_show_copyright = True
+
+# If true, an OpenSearch description file will be output, and all pages will
+# contain a <link> tag referring to it. The value of this option must be the
+# base URL from which the finished HTML is served.
+#html_use_opensearch = ''
+
+# This is the file name suffix for HTML files (e.g. ".xhtml").
+#html_file_suffix = None
+
+# Language to be used for generating the HTML full-text search index.
+# Sphinx supports the following languages:
+# 'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja'
+# 'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr'
+#html_search_language = 'en'
+
+# A dictionary with options for the search language support, empty by default.
+# Now only 'ja' uses this config value
+#html_search_options = {'type': 'default'}
+
+# The name of a javascript file (relative to the configuration directory) that
+# implements a search results scorer. If empty, the default will be used.
+#html_search_scorer = 'scorer.js'
+
+# Output file base name for HTML help builder.
+htmlhelp_basename = 'neodarzswebsitedoc'
+
+locale_dirs = ['_locale/']
+
+rst_prolog = """
+.. role:: strike
+"""
+
+html_baseurl = 'https://neodarz.net/'
diff --git a/src/contact.rst b/src/contact.rst
new file mode 100755
index 0000000..d2817e8
--- /dev/null
+++ b/src/contact.rst
@@ -0,0 +1,34 @@
+Contact
+=======
+
+XMPP: neodarz (at) neodarz (dot) net
+
+IRC: neodarz (at) freenode (dot) org - neodarz (at) geeknode (dot) org
+
+Mastodon: `neodarz (at) mastodon (dot) social <https://mastodon.social/@neodarz>`_
+
+Personal e-mail:
+
+- neodarz (at) neodarz (dot) net
+
+- GPG :doc:`4987 E133 8C1F A0D7 C096 50A0 B081 1718 1915 81D5<gpg/4987E1338C1FA0D7C09650A0B0811718191581D5>`
+
+Professional e-mail:
+
+- corentin (dot) breton (at) neodarz (dot) net
+
+- GPG :doc:`9D00 6C6E 30CE C9A8 88A6 F804 905E AB92 577D A42C<gpg/9D006C6E30CEC9A888A6F804905EAB92577DA42C>`
+
+You can also find ly keys on the following keyservers:
+
+- SKS keyservers pool
+- keys.openpgp.org
+
+However, be advised that I mainly use :samp:`keys.openpgp.org` for the moment.
+
+.. note::
+
+ Arguing that you don't care about the right to privacy because you have
+ nothing to hide is no different from saying you don't care about free speech
+ because you have nothing to say.
+ – Edward Snowden
diff --git a/src/cv.rst b/src/cv.rst
new file mode 100644
index 0000000..95cd36f
--- /dev/null
+++ b/src/cv.rst
@@ -0,0 +1,129 @@
+CV
+==
+
+EXPERIENCES
+-----------
+
+.. code::
+
+ ^ +--------------------------+
+ | | Oct. 2019 - Auj. |
+ o--| · Toulouse · |
+ | | ─ Développeur chez ─ |
+ | | ─ Fullsave ─ |
+ | | ~·~ |
+ | +--------------------------+
+ |
+ +--------------------------+ |
+ | Nov. 2018 - Nov. 2018 | |
+ | · Toulouse · |--o
+ | ─ Développeur chez ─ | |
+ | - Home Sweet Com - | |
+ | ~.~ | |
+ +--------------------------+ |
+ | +--------------------------+
+ | | Sept. 2017 - Sept. 2018 |
+ o--| · Le Mans · |
+ | | ─ Alternant chez ─ |
+ | | ─ Happy-Dev ─ |
+ | | ~·~ |
+ | +--------------------------+
+ +--------------------------+ |
+ | Févr. 2017 - Mars 2017 | |
+ | · Le Mans · |--o
+ | ─ Stage chez Voxolab ─ | |
+ | | |
+ | Développement d'une | |
+ | API avec le framework | |
+ | Phoenix | |
+ +--------------------------+ |
+ |
+ | +--------------------------+
+ | | Juin 2016 |
+ o--| · Le Mans · |
+ | | ─ Stage chez ATC-IT ─ |
+ | | ~·~ |
+ | | Développement d'un site |
+ | | web avec symfony2 |
+ | | Project d'écran connecté |
+ | | avec une Raspberry PI2 |
+ | | et un site web |
+ | +--------------------------+
+FORMATIONS
+----------
+
+.. code::
+
+ ^ +--------------------------+
+ | | 2017 - 2018 |
+ o--| · Le Mans · |
+ | | ─ IMIE ─ |
+ | | ~.~ |
+ | | Concepteur développeur |
+ | | en projets numériques |
+ | | ~·~ |
+ | | Titre RNCP n°II |
+ | +--------------------------+
+ |
+ +--------------------------+ |
+ | 2015 - 2017 | |
+ | · Allones · |--o
+ | ─ Lycée Andrée Malraux ─ | |
+ | ~·~ | |
+ | BTS Service Informatique | |
+ | Service (SIO) | |
+ | ~·~ | |
+ | Développement logiciel | |
+ +--------------------------+ |
+ |
+ | +--------------------------+
+ | | 2013 - 2015 |
+ o--| · Nantes · |
+ | | ─ Lycée Livet ─ |
+ | | ~.~ |
+ | | Bac Sciences et |
+ | | Technologies de |
+ | | l’Industrie et du |
+ | | Développement (STI2D) |
+ | | ~·~ |
+ | | Spécialité SIN |
+ | +--------------------------+
+
+COMPÉTENCES
+-----------
+
+.. code::
+
+ +------------- IDE --------------+ +----------- Système ------------+
+ | · NeoVim (Actuel) | | · Archlinux (Desktop) |
+ | · Atom | | · Debian (Serveurs) |
+ | · CodeBlock::13 | | · Windows 7 |
+ | · Visual Studio 2013/2015 | | |
+ +--------------------------------+ +--------------------------------+
+
+ +-------- Base de données -------+ +--------- Méthodologie ---------+
+ | · Mysql | | · Git |
+ | · PostgreSQL | | · Mérise |
+ | · MongoDB | | |
+ +--------------------------------+ +--------------------------------+
+
+ +--------- Documentation --------+ +----------- Système ------------+
+ | · Latex | | · Administristation de serveur |
+ | · Markdown | | |
+ | · RestructuredText | | |
+ +--------------------------------+ +--------------------------------+
+
+ +-------------------- Langages étudié en formations ------------------+
+ | HTML/CSS |
+ | PHP |
+ | C# |
+ | Java |
+ +---------------------------------------------------------------------+
+
+ +-------------------- Langages étudié en auto-didacte ----------------+
+ | Python |
+ | C/C++ |
+ | HTML/CSS |
+ | PHP |
+ | Elixir |
+ +---------------------------------------------------------------------+
diff --git a/src/gpg/4987E1338C1FA0D7C09650A0B0811718191581D5.rst b/src/gpg/4987E1338C1FA0D7C09650A0B0811718191581D5.rst
new file mode 100644
index 0000000..f0005e0
--- /dev/null
+++ b/src/gpg/4987E1338C1FA0D7C09650A0B0811718191581D5.rst
@@ -0,0 +1,192 @@
+4987 E133 8C1F A0D7 C096 50A0 B081 1718 1915 81D5
+=================================================
+
+Download asc file :download:`here<neodarz@neodarz.net.public.asc>` for
+neodarz ( at ) neodarz (dot) net.
+
+.. code::
+
+ -----BEGIN PGP PUBLIC KEY BLOCK-----
+
+ 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
+ IfMZGahzKQi5HrM=
+ =xgmc
+ -----END PGP PUBLIC KEY BLOCK-----
diff --git a/src/gpg/9D006C6E30CEC9A888A6F804905EAB92577DA42C.rst b/src/gpg/9D006C6E30CEC9A888A6F804905EAB92577DA42C.rst
new file mode 100644
index 0000000..f4cd984
--- /dev/null
+++ b/src/gpg/9D006C6E30CEC9A888A6F804905EAB92577DA42C.rst
@@ -0,0 +1,151 @@
+9D00 6C6E 30CE C9A8 88A6 F804 905E AB92 577D A42C
+=================================================
+
+Download asc file :download:`here<corentin.breton@neodarz.net.public.asc>` for
+corentin (dot) breton ( at ) neodarz (dot) net.
+
+.. code::
+
+ -----BEGIN PGP PUBLIC KEY BLOCK-----
+
+ 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
+ WYH+POXCHgtH+w==
+ =me4b
+ -----END PGP PUBLIC KEY BLOCK-----
diff --git a/src/gpg/corentin.breton@neodarz.net.public.asc b/src/gpg/corentin.breton@neodarz.net.public.asc
new file mode 100644
index 0000000..8b9988d
--- /dev/null
+++ b/src/gpg/corentin.breton@neodarz.net.public.asc
@@ -0,0 +1,143 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+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
+WYH+POXCHgtH+w==
+=me4b
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/src/gpg/neodarz@neodarz.net.public.asc b/src/gpg/neodarz@neodarz.net.public.asc
new file mode 100644
index 0000000..c982896
--- /dev/null
+++ b/src/gpg/neodarz@neodarz.net.public.asc
@@ -0,0 +1,184 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+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
+IfMZGahzKQi5HrM=
+=xgmc
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/src/index.html b/src/index.html
new file mode 100644
index 0000000..665d6f1
--- /dev/null
+++ b/src/index.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta http-equiv="refresh"
+ content="0; url=/en/">
+</head>
+<body>
+ <p>The page has moved to:
+ <a href="/en/">this page</a></p>
+</body>
+</html>
diff --git a/src/index.rst b/src/index.rst
new file mode 100755
index 0000000..1912f08
--- /dev/null
+++ b/src/index.rst
@@ -0,0 +1,38 @@
+neodarz
+=======
+
+My name is neodarz (Corentin Breton IRL) and I’m developper at Fullsave a
+French regional Telecom Operator.
+
+Question? Feel free to :doc:`contact <contact>` me if you want!
+
+I put :doc:`here <notes/index>` some things mainly about computers, but I
+keep me free to write things who are not connected to this. :p
+
+Sometimes, when I want to, I write :doc:`articles <blog/index>` on my blog.
+
+I also share links via RSS flux on my
+`Shaarli instance <https://shaarli.neodarz.net/>`_.
+
+And I keep my code on my `personal git server <https://git.neodarz.net/>`_. I
+also have some account on another git servers like
+`Framagit <https://framagit.org/NeodarZ>`_ or
+`Github <https://github.com/NeodarZ>`_, but it’s mainly to contribute to other
+projects.
+
+Posts
+"""""
+
+.. postlist:: 5
+ :date: %Y-%m-%d
+ :format: [ {date} ] - {title}
+
+.. toctree::
+ :hidden:
+
+ associations.rst
+ contact.rst
+ cv.rst
+ projects.rst
+ blog/index.rst
+ notes/index.rst
diff --git a/src/notes/2017-06-19-pulseaudio.rst b/src/notes/2017-06-19-pulseaudio.rst
new file mode 100644
index 0000000..b08ffa6
--- /dev/null
+++ b/src/notes/2017-06-19-pulseaudio.rst
@@ -0,0 +1,73 @@
+Pulseaudio
+==========
+
+Sources :
+
+- https://www.freedesktop.org/wiki/Software/PulseAudio/Backends/ALSA/Profiles/
+
+- https://wiki.archlinux.org/index.php/PulseAudio/Examples#Having_both_speakers_and_headphones_plugged_in_and_switching_in_software_on-the-fly
+
+Connaître le nom de chaque entrées et sorties son du pc :
+
+.. code:: console
+
+ $ ls /proc/asound/card*/codec* | xargs grep "\[\(Jack\|Fixed\|Both\)"
+
+ /proc/asound/card0/codec#0: Pin Default 0x99430130: [Fixed] SPDIF Out at Int ATAPI
+ /proc/asound/card0/codec#0: Pin Default 0x01014010: [Jack] Line Out at Ext Rear
+ /proc/asound/card0/codec#0: Pin Default 0x01a19040: [Jack] Mic at Ext Rear
+ /proc/asound/card0/codec#0: Pin Default 0x02a19050: [Jack] Mic at Ext Front
+ /proc/asound/card0/codec#0: Pin Default 0x0181304f: [Jack] Line In at Ext Rear
+ /proc/asound/card0/codec#0: Pin Default 0x02214020: [Jack] HP Out at Ext Front
+ /proc/asound/card1/codec#0: Pin Default 0x185600f0: [Jack] Digital Out at Int HDMI
+ /proc/asound/card1/codec#0: Pin Default 0x185600f0: [Jack] Digital Out at Int HDMI
+ /proc/asound/card1/codec#0: Pin Default 0x185600f0: [Jack] Digital Out at Int HDMI
+ /proc/asound/card1/codec#0: Pin Default 0x185600f0: [Jack] Digital Out at Int HDMI
+ /proc/asound/card1/codec#0: Pin Default 0x185600f0: [Jack] Digital Out at Int HDMI
+ /proc/asound/card1/codec#0: Pin Default 0x185600f0: [Jack] Digital Out at Int HDMI
+
+Une fois ceci fait, on modifie les fichiers (dans mon cas) /usr/share/pulseaudio/alsa-mixer/paths/analog-output-lineout.conf et /usr/share/pulseaudio/alsa-mixer/paths/analog-output-headphones.conf.
+
+Pour information j’ai une configuration un peu atypique car mon casque est branché à l’arrière alors que meshHaut parleurs à l’avant. Pourquoi ? Tout simplement que les appareils USB, type clé USB, branché à l’avant de ma tour ne sont pas bien détéctés alors qu’alors à l’arrière suelement un peu mieu... oui un peu (c’est un autre mystère à élucider et ca serait pour une prochaine fois ;) )
+
+Du coup dans mon fichier analog-output-lineout.conf j’ai rajouter, avant l’include la ligne suivante:
+
+.. code::
+
+ [Element Front]
+ switch = off
+ volume = off
+
+Et dans le fichier analog-output-headphones.conf j’ai modifier selon les paramètres suivant :
+
+.. code::
+
+ [Jack Line Out Phantom]
+ state.plugged = yes // j'ai juste remplacé no par yes ici !
+ state.unplugged = unknow
+ required-any = any
+
+Au passage on peut remarquer Line Out Phantom n’est pas dans la liste de nom des sorties du PC, c’est parcque j’ai jouée avec hdajackretask avant et ducoup des truc ont été modifié dans mon système... Encore un autre mystère à résoudre !
+
+Et en bonus voici ma commande perso que je parramètre pour changer de sortie sur i3 (C’est la commande brut à copier coller dans votre terminal) :
+
+.. code::
+
+ if [[ $(echo $(pacmd list | grep "active port") | cut -d" " -f3 | cut -d"<" -f2 | cut -d">" -f1) == "analog-output-lineout" ]]; then pacmd set-sink-port 0 analog-output-headphones; elif [[ $(echo $(pacmd list | grep "active port") | cut -d" " -f3 | cut -d"<" -f2 | cut -d">" -f1) == "analog-output-headphones" ]]; then pacmd set-sink-port 0 analog-output-lineout; fi
+
+Ou en format lisible, avec variables en bonus :
+
+.. code:: bash
+
+ #/bin/sh
+
+ headphones="analog-output-headphones"
+ lineout="analog-output-lineout"
+
+ if [[ $(echo $(pacmd list | grep "active port") | cut -d" " -f3 | cut -d"<" -f2 | cut -d">" -f1) == $lineout ]]
+ then
+ pacmd set-sink-port 0 $headphones
+ elif [[ $(echo $(pacmd list | grep "active port") | cut -d" " -f3 | cut -d"<" -f2 | cut -d">" -f1) == $headphones ]]
+ then
+ pacmd set-sink-port 0 $lineout
+ fi
diff --git a/src/notes/index.rst b/src/notes/index.rst
new file mode 100644
index 0000000..2b04bea
--- /dev/null
+++ b/src/notes/index.rst
@@ -0,0 +1,11 @@
+Notes
+=====
+
+Je stocke ici tout un tas de notes sur différents trucs, généralement ce sont des astuces qui, soit ne valent pas le coup, soit je n’ai pas encore pu prendre le temps, de rédiger un article à leurs propos.
+
+D’autres notes sous forme de cheat codes, avec une explication très succincte voire inexistante, mais plus récentes sont disponible sur mon
+`répertoire git <https://git.neodarz.net/neodarz/conf/dotfiles_dotdrop.git/tree/dotfiles/cheat>`_.
+
+.. toctree::
+
+ 2017-06-19-pulseaudio.rst
diff --git a/src/projects.rst b/src/projects.rst
new file mode 100644
index 0000000..11c31d3
--- /dev/null
+++ b/src/projects.rst
@@ -0,0 +1,96 @@
+Projects
+========
+
+Short list of projects I've been involved which are more or less complete...
+
+MARABUNTA · 24hc18
+------------------
+
+This project was realized with members of the HAUM association with the
+goal of proposing a subject for the "24 heures du code" of 2018 at Le Mans.
+
+For this subject we wanted to make a multi-agent game. After a brainstorming of
+several months we decided to make a game where the players have to control an
+ant colony by developing a simple weak artificial intelligence.
+
+The game is decomposed into several part, first of all there is the simulator,
+developed in C++, which is the arena of the game where the ant colonies compete
+against each other. Players have to develop a weak AI in the language they want
+from the list of those proposed.
+
+Secondly, there is a visual rendering with a 3D planet spinning on itself where
+you can see the ants fighting during the matches.
+
+The visual rendering may seem a bit useless, but it helped the teams to better
+understand their code.
+
+We also had fun writing a little story about the game to give it a background.
+The detailed documenation can be found
+`here <https://github.com/haum/24hc18/tree/master/documentation>`_.
+
+During the project I was able to participate in the development of the engine
+as well as in the development of an AI to test and debug the engine.
+
+The source code is available `here <https://github.com/haum/24hc18>`_.
+
+LAUMIO · 24hc17
+---------------
+
+This project was realized with members of the HAUM association with the
+goal of proposing a subject for the "24 heures du code" of 2017 at Le Mans.
+
+Before defining the purpose of the subject, the object itself muse be defined.
+This one is a glass of sphere bought at IKEA (we're not going to break our
+heads either :p) which is filled with 13 LEDs controllable via an arduino
+card (`WeMos D1 mini <https://www.wemos.cc/product/d1-mini-pro.html>`_) over
+WiFi. For a more detailed explanation you can check this
+`article <https://haum.org/pages/laumios.html>`_ directly on the HAUM webiste.
+
+This object was not originally designed to be a "24 heures du code" subject.
+It was therefore necessary to modify it by first removing the WiFi module and
+make it able to communicate via the USB port (which is used at the same time to
+flash it).
+
+To siplify, the goal of the players was that they had to communicate with the
+Laumio and solve the puzzles it proposed. Some were related to plays of light
+made with the Laumio while other was simple mathematical puzzle (sometimes not
+so simple by the way). The source code and blueprints of the system are
+available on `Github <https://github.com/haum/24hc17>`_ for more information.
+
+During this project I was able to code some animations. I also took part in
+soldering some lamps with a bit of difficulty because I'm a little out of
+practice soldering, but at least I was able to learn some tricks to solder more
+easily and faster.
+
+Once the project was done, we had to be present for 24 hours without a break in
+order to supervise the players and keep the server in place... Because we had
+some small technical problems with it and we had to do some token resolution by
+hand... (For more info on this damn token story you have to go see this
+`article <https://haum.org/pages/24hc17.html>`_).
+
+RADIO-MALRAUX
+-------------
+
+Listen the radio: :strike:`http://radio.bts-malraux72.net/`
+
+This project has to objectives, one technical and the other social.
+
+Technical in the sense that setting up a web radio is not something that can be
+done in one day, you have to think about how to do it, with what and correctly.
+The challenge was to do it exclusively with Raspberry Pi in order to be able to
+host it locally at school and consume little energy.
+
+And socially in the sense, where loving free software and wishing to share it,
+we decided to distribute exclusively royalty-free music.
+
+ROBOT-CABLE
+-----------
+
+This project, realized over two years as part of the STI2D baccalaureate,
+consisted in creating a robot that could move an object from point A to point
+B via 4 motorized winches. This project was realized with Arduino electronic
+boards and Xbee modules.
+
+For more information, see directly the project :strike:`website` which contains
+a more detailed document. (Website down, see directly
+`the source code <https://git.neodarz.net/neodarz/school/Robot-Cable.git/>`_)
diff --git a/src/robots.txt b/src/robots.txt
new file mode 100644
index 0000000..217d678
--- /dev/null
+++ b/src/robots.txt
@@ -0,0 +1,3 @@
+User-agent: *
+
+Sitemap: https://neodarz.net/sitemap.xml
diff --git a/src/sitemap.xml b/src/sitemap.xml
new file mode 100644
index 0000000..aaa066a
--- /dev/null
+++ b/src/sitemap.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+ <sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
+ <sitemap>
+ <loc>https://neodarz.net/en/sitemap.xml</loc>
+ </sitemap>
+ <sitemap>
+ <loc>https://neodarz.net/fr/sitemap.xml</loc>
+ </sitemap>
+ </sitemapindex>
diff --git a/src/website/contact.rst b/src/website/contact.rst
new file mode 100755
index 0000000..8fce99e
--- /dev/null
+++ b/src/website/contact.rst
@@ -0,0 +1 @@
+New page is :doc:`here <../contact>`.
diff --git a/src/website/index.rst b/src/website/index.rst
new file mode 100755
index 0000000..4185a92
--- /dev/null
+++ b/src/website/index.rst
@@ -0,0 +1 @@
+New page is :doc:`here <../index>`.
diff --git a/src/website/projets.rst b/src/website/projets.rst
new file mode 100755
index 0000000..b18605b
--- /dev/null
+++ b/src/website/projets.rst
@@ -0,0 +1 @@
+New page is :doc:`here <../projects>`.