Compare commits

..

No commits in common. "master" and "lang" have entirely different histories.
master ... lang

46 changed files with 1032 additions and 1196 deletions

View file

@ -1,14 +1,14 @@
FROM nginx
WORKDIR /app
COPY header.html .
COPY footer.html .
COPY generate.sh .
COPY lang/ lang/
COPY img/ img/
COPY css/ css/
COPY patches/ patches/
COPY lang/ lang/
COPY generate.sh .
COPY header.html .
COPY footer.html .
RUN ./generate.sh
RUN ./generate.sh -o
RUN cp -r www/* /usr/share/nginx/html/
EXPOSE 80

View file

@ -2,44 +2,12 @@ Dépot git de mon site web. Contient des scripts permettant de générer les
fichiers html, à partir de fichiers ou org ainsi que de lier la partie annuaire
avec le reste.
**/!\ Le script `generate.sh` est pensé pour mon utilisation. /!\\** Vous pouvez
essayer de l'utiliser pour votre site mais c'est à vos risques et périles.
N'hésitez pas à utiliser `generate.sh -h` pour voir comment l'utiliser.
# Dépendances
* `htmlize` et `org` (par défaut dans Emacs).
* Docker si vous souhaitez tester le site en local avec les images.
Dans Emacs: `M-x` package-install `RET` htmlize `RET`
# Construire le site
`./generate.sh`
# Rajouter des liens / langues
## Langues
Pour rajouter des langues, il suffit de créer un dossier dans `lang`. Il faut
ensuite modifier le fichier `header.html` en rajoutant la langue dans la `div`
lang. La ligne doit ressembler à ceci (où `lang` est le nom de la nouvelle
langue) :
```html
<a href="/lang/%file%">LANG</a>
```
Le fichier `lang/links.config` contient des colognes indiquant les différents
noms de fichiers entre les différentes langues, permettant ainsi le bouton pour
changer de langue en haut à droite des différentes pages.
## Liens dans le menu
Pour rajouter des liens dans le menu principal, il faut écrire dans le fichier
`lang/<langue>/header.link`, dans la liste `%links`. Il est possible de mettre
une ligne en commentaire en la commencant avec `#`. Il faut sinon suivre cette
structure : `fichier.html : nom du lien dans le menu`.
Il est aussi possible de changer le sous-titre du site dans la balise
`%subtitle`.

View file

@ -1,19 +0,0 @@
.infos-livre {
font-weight: bold;
}
.gras {
font-weight: bold;
}
.titre {
font-style: italic;
}
.spoil {
background-color: black;
}
.spoil:hover {
background-color: transparent;
}

View file

@ -13,24 +13,4 @@ tr:nth-child(even) {
td {
border-left: 1px dotted black;
}
.finished {
color: blueviolet;
font-weight: bold;
}
.archived {
color: red;
font-weight: bold;
}
.working {
color: limegreen;
font-weight: bold;
}
.hiatus {
color: orange;
font-weight: bold;
}
}

View file

@ -4,8 +4,7 @@ body {
flex-direction: column;*/
display: grid;
min-height: 100vh;
/*grid-template-rows: auto 1fr auto;*/
grid-template-columns: 0.2fr 1fr;
grid-template-rows: auto 1fr auto;
}
header {
@ -21,38 +20,22 @@ header a {
color: black;
}
#header-glider {
display: flex;
}
#header-glider img {
margin-top: 20px;
margin-left: 10px;
}
header h2 {
margin-top: 0;
}
#lang {
margin-top: 20px;
display: grid;
grid-auto-flow: column;
grid-column-gap: 1em;
grid-template-rows: fit-content(100%);
}
#lang a {
font-weight: bold;
font-size: 150%;
#lang img {
border: 2px solid black;
filter: brightness(50%);
}
#lang #choose {
color: #4970E1;
filter: brightness(100%);
}
#lang a:hover {
color: #FA4DBA;
#lang img:hover {
filter: brightness(100%);
border-color: cyan;
}
#header-links {
@ -73,14 +56,14 @@ header h2 {
}
#main {
margin: 2em 3em 5em 1em;
margin: 2em 3em 5em 3em;
}
footer {
background-color: #304B99;
padding: 1em;
padding-bottom: 0;
grid-column: 1/4;
grid-column: 1/3;
}
#buttons {
@ -91,15 +74,9 @@ footer {
text-align: right;
}
/* boutons avant la liste des 88x31. bien alignés au centre de la div */
.pred-buttons {
margin-top: auto;
margin-bottom: auto;
}
#footer-main {
display: grid;
grid-template-columns: 25% 50% 10% 15%;
grid-template-columns: 0.25fr 0.5fr 0.25fr;
}
#footer-text p {

View file

@ -1,7 +0,0 @@
services:
gyiwr:
build: .
restart: 'always'
ports:
- "42569:80"

View file

@ -1,20 +1,17 @@
<footer>
<div id="footer-main">
<div class="pred-buttons">
<div>
<a href="https://git.gyiwr.tf/gyiwr/tree/LICENSE">
<img alt="logo GPL3" src="/img/gplv3-or-later.png" />
</a>
</div>
<div id="footer-text">
<p>Site sans cookie, ni JS, ni tracker.</p>
<p><a href="https://git.gyiwr.tf/gyiwr/tree/%gitfile%">Code source de la page</a></p>
<p><a href="https://git.gyiwr.tf/gyiwr/tree/%file%">Code source de la page</a></p>
<p id="footer-contact">2023 (c) rick <span id="footer-link-email">&lt;rick [at] gnous [dot] eu&gt;</span></p>
</div>
<a class="pred-buttons" href="https://www.gnu.org/gnu40">
<img height=70px alt="Celebrer les 40 ans de GNU!" src="/img/GNU40_badge.svg" />
</a>
<a id="fsf" class="pred-buttons" href="https://my.fsf.org/join">
<a id="fsf" href="https://my.fsf.org/join">
<img alt="Membre de la FSF depuis décembre 2019" src="/img/fsf.png" />
</a>
</div>
@ -24,9 +21,6 @@
<img alt="Edited with vim, Improved & Free. I love my editor" src="/img/vim.gif" />
</a>
<img alt="This site is certified 100% cookie free!" src="/img/no-cookie.png" />
<a href="https://jigsaw.w3.org/css-validator/validator?uri=gyiwr.tf&profile=css3svg&usermedium=all&warning=2">
<img alt="Valid CSS!" src="/img/vcss.gif" />
</a>
<a href="http://www.mabsland.com/Adoption.html">
<img alt="Panda - Web G" src="/img/Censor_Gc.gif" />
</a>
@ -34,7 +28,6 @@
<a href="https://web3isgoinggreat.com/">
<img alt="Sat no to WEB3 - Keep the web Free" src="/img/keep.gif" />
</a>
<img alt="Under Construction" src="/img/under_construction.png" />
</div>
<div>

View file

@ -1,4 +1,4 @@
#!/usr/bin/env bash
#!/bin/bash
################################################################################
# Génère les fichiers HTML de mon site
@ -18,84 +18,36 @@
# this program. If not, see <https://www.gnu.org/licenses/>.
################################################################################
set -e
# liste des fichiers html à générer
langDir="lang"
#files="autres.html copaings.html index.html ou.html projets.html rss.html apropos.html"
files="lang"
tmpHeader="/tmp/header.html"
annexes="css img patches"
annexes="css img"
pathLinks="/home/site/a/"
target="www"
defaultLang="fr"
header="header.html"
footer="footer.html"
org=0
testDocker=0
org=1
################################################################################
# Génère un message d'aide
################################################################################
function print_help {
cat << EOF
Utilisation :
$(basename $0) [options] [<dossier>]
génère les fichiers HTML du site. Il est possible de changer le dossier de
destination ($target par défaut).
Options :
-h génère ce message et arrête le script
-c nettoie les fichiers générés
-t lance un docker pour pouvoir tester le site
Les options suivantes seront codées dans un futur proche :
-d défini la langue par défaut (son index sera mit à la racine);
fr par défaut
-n génère la langue dans le nom du fichier et non dans le chemin
(example.org/fr/index.html -> example.org/index.fr.html)
-o génère les fichiers org
EOF
echo "usage : generate.sh [options] [<dossier>]"
echo -e "\tgénère les fichiers HTML du site. Il est possible de changer"
echo -e "\tle dossier de destination (www par défaut)."
echo
echo -e "\t-h\tgénère ce message et arrête le script."
echo -e "\t-c\tnettoie les fichiers générés"
echo -e "\t-o\tne génère pas les fichiers org"
echo -e "\t-n\tgénère la langue dans le nom du fichier et non dans le chemin."
echo -e "\t\t(example.org/fr/index.html -> example.org/index.fr.html)"
echo -e "\t-d\tdéfini la langue par défaut (son index sera mit à la racine)"
echo -e "\t-t\tlance un docker pour pouvoir tester le site"
}
# pas besoin de continuer si on demande juste l'aide
if [[ $@ =~ "-h" ]]
then
print_help
exit 0
fi
# vérification des arguments passés
while [ -n "$1" ]
do
case $1 in
"-o") # génération des fichiers org
org=1
;;
"-c") # on nettoie les fichiers
# TODO si on précise un dossier, nettoyer ce dossier
echo "Nettoyage de $target"
rm -rf $target
exit 0
;;
"-t") # lancer un docker de test
testDocker=1
;;
"-d") ;&
"-n")
echo "Commande non implémentée."
exit 1
;;
"-"*)
print_help
exit 2
;;
*) target=$1 ;;
esac
shift
done
###############################################################################
# Génère un fichier header propre à une langue
#
@ -127,22 +79,32 @@ function generate_header {
echo -e " </div>\n" >> $tmpHeader
}
if [ $testDocker -eq 1 ]
# vérification des arguments passés
if [[ $@ =~ "-h" ]]
then
docker build . --tag site && echo -e \
"\n\033[32mSite de test déployé sur l'adresse" \
"localhost:8080\033[0m" || exit 1
echo -e "\033[32mC-c pour quitter\033[0m\n"
print_help
exit 0
fi
if [[ $@ =~ "-c" ]]
then
rm -rf www
exit 0
fi
if [[ $@ =~ "-t" ]]
then
docker build . --tag site && echo -e "\n\033[32mC-c pour quitter\033[0m\n" || exit 1
docker run --rm -p 8080:80 site
docker rmi site
exit 0
fi
if [[ $@ =~ "-o" ]]
then
org=0
fi
if [ -d $target ]
then
# TODO demander à l'utilisateur
@ -151,12 +113,12 @@ fi
mkdir $target
for l in $(find $langDir -mindepth 1 -type d -prune -printf "%P\n")
for l in $(ls $files)
do
generate_header lang/$l/header.link
echo "Create folder $l in $target..."
mkdir "$target/$l"
for i in $(find $langDir/$l -type f -name "*.html" -printf "%P\n")
for i in $(ls $files/$l)
do
echo "[$l] Generate $i..."
file="$target/$l/$i"
@ -164,14 +126,8 @@ do
cat $tmpHeader > $file
# on extrait le bloc contenant les link, on les enlève et rajoute
# <link />
# merci
# https://www.theunixschool.com/2012/12/sed-10-examples-to-print-lines-from-file.html
# https://stackoverflow.com/questions/68573654/copy-a-content-from-one-file-and-need-to-replace-in-another-file-using-sed
# https://unix.stackexchange.com/questions/26284/how-can-i-use-sed-to-replace-a-multi-line-string
# TODO pouvoir mettre plusieurs lignes link
newHeader=$(sed -n -e "/%link%/,/%endlink%/p" $langDir/$l/$i | \
sed -e "/%link%/d;/%endlink%/d" -e 's/\//\\\//g' -e "i<link " \
-e 'a\ \\\/>' | tr -d "\n")
newHeader=$(sed -n -e "/%link%/,/%endlink%/p" $files/$l/$i | sed -e "/%link%/d;/%endlink%/d" -e 's/\//\\\//g' -e "i<link " -e 'a\ \\\/>' | tr -d "\n")
# je suppose que s'il y a moins de 10 caractères, alors on ne prend pas
# en compte le nouveau link.
@ -184,61 +140,20 @@ do
sed -i -e "/%links%/a$newHeader" $file
fi
cat $langDir/$l/$i $footer >> $file
cat $files/$l/$i >> $file
cat $footer >> $file
# nettoyage des balises précédemment utilisées
sed -i -e "/%links%/d" $file
sed -i -e "/%link%/,/%endlink%/d" $file
sed -i -e "s/>${l^^}<\/a>/ id=\"choose\">${l^^}<\/a>/" $file
sed -i -e "s/img alt=\"$l/img id=\"choose\" alt=\"$l/" $file
sed -i -e "s/%file%/$i/" $file
sed -i -e "s/%gitfile%/lang\/$l\/$i/" $file
sed -i -e "s/%gitfile%/$l\/$i/" $file
sed -i -e "s/%lang%/$l/" $file
done
done
echo "Header links translation..."
# cf. la page info 4.2 du manuel Bash (transforme un fichier en tableau)
mapfile translateHeader < $langDir/links.config
langs=${translateHeader[0]}
nbLang=$(echo "$langs" | grep -c "|")
for (( i=1; i<${#translateHeader[@]}; i++ ))
do
# pour chaque langue
for j in $(seq 0 $nbLang)
do
t=$(( $j + 1 ))
currentLang=$(echo ${translateHeader[0]} | cut -d\| -f $t | tr -d " ")
currentFile=$(echo ${translateHeader[$i]} | cut -d\| -f $t | tr -d " ")
# on doit modifier son lien de traduction
for k in $(seq 0 $nbLang)
do
[[ $k -eq $j ]] && continue
t=$(( $k + 1 ))
lang=$(echo ${translateHeader[0]} | cut -d\| -f $t | tr -d " ")
file=$(echo ${translateHeader[$i]} | cut -d\| -f $t | tr -d " ")
sed -i -e "s/href=\"\/$lang\/.*\.html/href=\"\/$lang\/$file.html/"\
$target/$currentLang/$currentFile.html
done
done
done
# pour chaque fichier, on vérifie s'il n'est pas dans le fichier links.config
# ou en double dans d'autres langues.
# TODO le faire de manière plus fine pour ne mettre que les langues traduites
echo "Remove useless lang header..."
for f in $(find $target -type f -name "*.html")
do
if [[ $(grep -c $(basename $f | cut -d. -f1) $langDir/links.config) -eq 0 ]] && \
[[ $(find $target -name $(basename $f) | grep -c \n) -eq 0 ]]
then
sed -i -e '/id="lang"/,/\/div/d' $f
fi
done
echo "Copy $annexes in $target..."
cp -t $target -r $annexes
@ -257,7 +172,7 @@ for c in $(awk 'BEGIN {
} if (code) {
print NR
}
}' $target/index.html)
}' www/index.html)
do
sed -i -e "$c s/href=\"/href=\"$defaultLang\//" $target/index.html
done
@ -268,5 +183,5 @@ ln -s $pathLinks $target
if [ $org -eq 1 ]
then
echo "Generate org files..."
#emacs -u $USER --script publish.el
emacs -u $USER --script publish.el
fi

View file

@ -2,24 +2,19 @@
<html lang="%lang%">
<head>
<meta charset="UTF-8" />
<meta http-equiv="Content-Security-Policy" content="default-src 'self';">
<link rel="icon" href="/img/favicon.gif" type="image/gif" />
<link rel="stylesheet" href="/css/style.css" />
%links%
</head>
<body>
<header>
<div>
<div id="header-glider">
<h1><a href="index.html">gyiwr dot tf</a></h1>
<img alt="glider" src="/img/glider.png" height=40 />
</div>
<h1><a href="index.html">gyiwr dot tf</a></h1>
<h2>%subtitle%</h2>
</div>
<div id="lang">
<a href="/fr/%file%">FR</a>
<a href="/en/%file%">EN</a>
<!--<a href="/toki/%file%"><img alt="toki" src="/img/fr.svg" height=35 /></a>-->
<a href="/fr/%file%"><img alt="fr" src="/img/fr.svg" height=35px /></a>
<a href="/en/%file%"><img alt="en" src="/img/en.svg" height=35px /></a>
<!--<a href="/toki/%file%"><img alt="toki" src="/img/fr.svg" width=50px /></a>-->
</div>
</header>

View file

@ -1,306 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
id="svg2"
width="1061.76"
height="865.91998"
viewBox="0 0 1061.76 865.91998"
sodipodi:docname="GNU_40th_badge-GNU.svg"
inkscape:version="0.92.1 r15371">
<metadata
id="metadata8">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs6" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1012"
id="namedview4"
showgrid="false"
showguides="false"
inkscape:guide-bbox="true"
inkscape:zoom="0.88388348"
inkscape:cx="270.87867"
inkscape:cy="427.6768"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="layer1">
<sodipodi:guide
position="486,771"
orientation="0,1"
id="guide820"
inkscape:locked="false" />
<sodipodi:guide
position="379.5,760.5"
orientation="1,0"
id="guide822"
inkscape:locked="false" />
<sodipodi:guide
position="479.25,743"
orientation="1,0"
id="guide824"
inkscape:locked="false" />
<sodipodi:guide
position="509,741.75"
orientation="1,0"
id="guide826"
inkscape:locked="false" />
<sodipodi:guide
position="929.49999,738.75"
orientation="1,0"
id="guide828"
inkscape:locked="false" />
<sodipodi:guide
position="665.74999,385.5"
orientation="1,0"
id="guide830"
inkscape:locked="false" />
<sodipodi:guide
position="582.74999,278.25"
orientation="0,1"
id="guide832"
inkscape:locked="false" />
<sodipodi:guide
position="776.99999,388"
orientation="1,0"
id="guide834"
inkscape:locked="false" />
<sodipodi:guide
position="783.24999,591.75"
orientation="0,1"
id="guide836"
inkscape:locked="false" />
<sodipodi:guide
position="94.999999,204.25"
orientation="1,0"
id="guide838"
inkscape:locked="false" />
<sodipodi:guide
position="963.99999,123"
orientation="0,1"
id="guide840"
inkscape:locked="false" />
<sodipodi:guide
position="217.75,356"
orientation="0,1"
id="guide844"
inkscape:locked="false" />
<sodipodi:guide
position="335,393.25"
orientation="1,0"
id="guide846"
inkscape:locked="false" />
<sodipodi:guide
position="250.5,379"
orientation="1,0"
id="guide848"
inkscape:locked="false" />
<sodipodi:guide
position="286.25,479.25"
orientation="0,1"
id="guide850"
inkscape:locked="false" />
</sodipodi:namedview>
<g
inkscape:groupmode="layer"
id="layer1"
inkscape:label="acoplado"
style="display:inline">
<path
id="path1557"
style="display:inline;fill:#5da2de;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 353.5,132.41998 31.25,17 14.5,7.25 c 0,0 5.75,-5.75 17.75,-13 12,-7.25 25.25,-14.75 38.5,-18.25 13.25,-3.5 23.75,-4 23.75,-4 v 621.5 h -5.5 c 0,0 -7.25,-4.875 -8.25,-5.375 -1,-0.5 -5,-0.125 -5,-0.125 l 2,5.5 -68.625,-0.625 -14.875,-10.125 0.5,-144.5 -157.25,-0.25 c 0,0 -3.75,-2 -6.25,-8.75 -2.5,-6.75 -2.75,-14.5 0,-16.25 2.75,-1.75 10.25,-3.25 10,-7.5 -0.25,-4.25 -4.75,-4.75 -9,-5 -4.25,-0.25 -10.25,1.75 -13.5,-0.5 -3.25,-2.25 -4.75,-7.75 -5,-11.5 -0.25,-3.75 -2.75,-5.75 -5.25,-6.25 -2.5,-0.5 -13.75,-0.25 -19,-5 -5.25,-4.75 -4.5,-14 -5.25,-21.5 -0.75,-7.5 0,-7.25 -2.25,-9.75 -2.25,-2.5 -11.25,-3.75 -14,-8.75 -2.75,-5 -0.5,-17 -0.5,-22 0,-5 -2,-14.25 -2.25,-16 -0.25,-1.75 -2,-13 -2,-13 l -0.5,-3.75 z m -18.5,254.25 -84.5,123.25 H 335 Z" />
<path
style="display:inline;fill:#5da2de;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 508.50009,121.16998 c 0,0 17,1.25 28.5,4.5 11.5,3.25 37,14.75 47,22 10,7.25 22.75,18.75 32.25,27.5 9.5,8.75 23.5,23.75 29.5,30.25 6,6.5 20,19 31,27.5 11,8.5 25,13 28,14.25 3,1.25 29,6.75 42,-8 13,-14.75 16.25,-19 20.75,-44 4.5,-25 -4.5,-42 -10,-50.5 -5.5,-8.5 -18.75,-24.75 -24.25,-29 -5.5,-4.25 -12.25,-9.25 -21.25,-13.75 -9,-4.499997 -16.75,-6.999997 -16.75,-6.999997 l 139.5,0.25 c 0,0 8.25,6.499997 14.75,15.999997 6.5,9.5 13.75,20.75 16.75,27 3,6.25 10.25,30.25 11,68.25 0.75,38 -12.5,59.5 -23.75,74.75 -11.25,15.25 -21.5,30.25 -41,43 -19.5,12.75 -36,21 -36,21 l 0.4999,-71 h -111.25 l -0.05,119.65 -0.44991,7.1 c 0,0 -6.5,-3.25 -12.5,-4.25 -6,-1 -21.25,-4.25 -31.25,-7.25 -10,-3 -23.5,-11.75 -33.5,-16.25 -10,-4.5 -12,-2.75 -12,-2.75 0,0 -1.75,1.25 0.75,4.75 2.5,3.5 3,5.75 4.5,12.25 1.5,6.5 1,13 4.25,18.25 3.25,5.25 4.75,7.5 10,9 5.25,1.5 11,0 17,-0.75 6,-0.75 18.25,-5 28.75,-0.5 10.5,4.5 14.5,15.25 16.25,26 1.75,10.75 0.25,22.75 -3.25,29.25 -3.5,6.5 -18.75,17 -29,22 -10.25,5 -17.5,9 -18,11.5 -0.5,2.5 1.75,6.5 4.75,8.25 3,1.75 13,7.25 17.75,11.25 4.75,4 4.75,13 2.5,16.5 -2.25,3.5 -12.75,8.5 -18.75,10.25 -6,1.75 -16,4.25 -16.75,6 -0.75,1.75 0.5,5 1,9 0.5,4 -0.5,13.75 -1,19.25 -0.5,5.5 -3.5,13.25 -7.25,16 -3.75,2.75 -16.75,2.5 -22.5,2.25 -5.75,-0.25 -24.5,0.5 -30.75,3.25 -6.25,2.75 -10.75,9 -12.75,11.5 -2,2.5 -2.25,7.75 -1.25,10.75 1,3 4.25,7 7.5,13 3.25,6 4.25,13 4,17.25 -0.25,4.25 -13.75,15.25 -13.75,15.25 l -11.08342,5.61111 z"
id="path1978"
inkscape:connector-curvature="0"
sodipodi:nodetypes="csssssssssssccssssscccccssscssssssssssssssssssssssssccc" />
<path
id="path852"
style="display:inline;fill:#3465a3;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 250.5,509.91998 84.5,-123.25 v 123.25 z m 129,-415 h 99.75 v 648 H 379.5 v -155.25 H 95 v -78.75 z"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
id="path852-7"
style="display:inline;fill:#5da2de;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 250.5,509.91998 84.5,-123.25 v 123.25 z m 103,-377.49995 31.25,17 14.5,7.25 c 0,0 5.75,-5.75 17.75,-13 12,-7.25 25.25,-14.75 38.5,-18.25 13.25,-3.5 23.75,-4 23.75,-4 v 621.49995 h -5.5 c 0,0 -7.25,-4.875 -8.25,-5.375 -1,-0.5 -5,-0.125 -5,-0.125 l 2,5.5 -68.625,-0.625 -14.875,-10.125 0.5,-144.5 -157.2499,-0.25 c 0,0 -3.75,-2 -6.25,-8.75 -2.49996,-6.75 -2.74996,-14.5 0,-16.25 2.75,-1.75 10.25,-3.25 10,-7.5 -0.25,-4.25 -4.75,-4.75 -9,-5 -4.24996,-0.25 -10.24996,1.75 -13.49996,-0.5 -3.25,-2.25 -4.75,-7.75 -5,-11.5 -0.25,-3.75 -2.75,-5.75 -5.25,-6.25 -2.5,-0.5 -13.75,-0.25 -19,-5 -5.25,-4.75 -4.5,-14 -5.25,-21.5 -0.75,-7.5 0,-7.25 -2.25,-9.75 -2.25,-2.5 -11.25,-3.75 -14,-8.75 -2.75,-5 -0.5,-17 -0.5,-22 0,-5 -2,-14.25 -2.25,-16 -0.25,-1.75 -2,-13 -2,-13 l -0.5,-3.75 z" />
<path
id="path856"
style="display:inline;fill:#3465a3;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 665.74999,274.16998 h 111.25 v 313.5 h -111.25 z m -157.45,-179.75 421.2,0.5 V 742.92 h -420.5 z"
inkscape:connector-curvature="0" />
<path
style="display:inline;fill:#5da2de;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 508.50009,121.16998 c 0,0 17,1.25 28.5,4.5 11.5,3.25 37,14.75 47,22 10,7.25 22.75,18.75 32.25,27.5 9.5,8.75 23.5,23.75 29.5,30.25 6,6.5 20,19 31,27.5 11,8.5 25,13 28,14.25 3,1.25 29,6.75 42,-8 13,-14.75 16.25,-19 20.75,-44 4.5,-25 -4.5,-42 -10,-50.5 -5.5,-8.5 -18.75,-24.75 -24.25,-29 -5.5,-4.25 -12.25,-9.25 -21.25,-13.75 -9,-4.5 -16.75,-7 -16.75,-7 l 139.5,0.25 c 0,0 8.25,6.5 14.75,16 6.5,9.5 13.75,20.75 16.75,27 3,6.25 10.25,30.25 11,68.25 0.75,38 -12.5,59.5 -23.75,74.75 -11.25,15.25 -21.5,30.25 -41,43 -19.5,12.75 -36,21 -36,21 l 0.4999,-71 h -111.25 l -0.7499,119.5 0.25,7.25 c 0,0 -6.5,-3.25 -12.5,-4.25 -6,-1 -21.25,-4.25 -31.25,-7.25 -10,-3 -23.5,-11.75 -33.5,-16.25 -10,-4.5 -12,-2.75 -12,-2.75 0,0 -1.75,1.25 0.75,4.75 2.5,3.5 3,5.75 4.5,12.25 1.5,6.5 1,13 4.25,18.25 3.25,5.25 4.75,7.5 10,9 5.25,1.5 11,0 17,-0.75 6,-0.75 18.25,-5 28.75,-0.5 10.5,4.5 14.5,15.25 16.25,26 1.75,10.75 0.25,22.75 -3.25,29.25 -3.5,6.5 -18.75,17 -29,22 -10.25,5 -17.5,9 -18,11.5 -0.5,2.5 1.75,6.5 4.75,8.25 3,1.75 13,7.25 17.75,11.25 4.75,4 4.75,13 2.5,16.5 -2.25,3.5 -12.75,8.5 -18.75,10.25 -6,1.75 -16,4.25 -16.75,6 -0.75,1.75 0.5,5 1,9 0.5,4 -0.5,13.75 -1,19.25 -0.5,5.5 -3.5,13.25 -7.25,16 -3.75,2.75 -16.75,2.5 -22.5,2.25 -5.75,-0.25 -24.5,0.5 -30.75,3.25 -6.25,2.75 -10.75,9 -12.75,11.5 -2,2.5 -2.25,7.75 -1.25,10.75 1,3 4.25,7 7.5,13 3.25,6 4.25,13 4,17.25 -0.25,4.25 -13.75,15.25 -13.75,15.25 l -11.08342,5.61111 z"
id="path1978-6"
inkscape:connector-curvature="0"
sodipodi:nodetypes="csssssssssssccssssscccccssscssssssssssssssssssssssssccc" />
<path
style="display:inline;fill:#0b2869;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 454.2,152.31998 c 0,0 6.4,-2 10.6,-3 4.2,-1 8,-2.2 10.4,-2.2 2.4,0 4,-0.2 4,-0.2 l 0.1,19.4 c 0,0 -7.3,-4 -13.9,-7 -6.6,-3 -9.6,-4.2 -10.4,-4.8 -0.8,-0.6 -0.8,-2.2 -0.8,-2.2 z"
id="path1596"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cssccssc" />
<path
style="display:inline;fill:#0b2869;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 452.4,447.91998 c 0,0 3.2,3.8 1.2,8.2 -2,4.4 -12,5.4 -18.6,3 -6.6,-2.4 -11,-6.4 -10.6,-13 0.4,-6.6 8.6,-9.8 15.4,-10.4 6.8,-0.6 15.2,0.4 22.8,2.8 7.6,2.4 16.8,7.6 16.8,7.6 l -0.1,12.6 c 0,0 -7.3,-5 -14.1,-8.6 -6.8,-3.6 -12.8,-2.2 -12.8,-2.2 z"
id="path1637"
inkscape:connector-curvature="0"
sodipodi:nodetypes="csssssccsc" />
<path
style="display:inline;fill:#0b2869;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 375.2,360.11998 c 0,0 10,-3.2 12.8,-5.2 2.8,-2 5.2,-4.4 5.6,-7.4 0.4,-3 1.6,-7.4 1.6,-7.4 0,0 0,-2.4 0.2,-0.6 0.2,1.8 1,9.8 0.2,12.4 -0.8,2.6 -4.6,6 -6.4,7 -1.8,1 -8.6,1.6 -8.6,1.6 l -5.6,0.4 z"
id="path1641"
inkscape:connector-curvature="0" />
<path
style="display:inline;fill:#0b2869;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 508.6,547.71998 c 0,0 8,-2 15.6,-3.6 7.6,-1.6 25.2,-2.4 33.2,-2.6 8,-0.2 31.6,0.8 37.4,0.8 5.8,0 18.4,-3 23.4,-5.4 5,-2.4 5,-8.6 4,-10.8 -1,-2.2 -7.4,-5.4 -10.6,-6.6 -3.2,-1.2 -10.8,-7.2 -11.6,-8.6 -0.8,-1.4 -3.8,-4.6 -3.8,-4.6 0,0 -7.2,1.8 -12,1.8 -4.8,0 -15.2,1 -15.2,1 0,0 -10.8,0.8 -12.2,0.4 -1.4,-0.4 -4.8,-0.8 -1.6,-1.6 3.2,-0.8 20.6,-6 31.8,-9 11.2,-3 28.6,-11.4 31.8,-13 3.2,-1.6 21.6,-15.4 24.6,-19.4 3,-4 5.6,-7.2 5.2,-17.2 -0.4,-10 -0.6,-15.6 -2.2,-20 -1.6,-4.4 -3,-8 -10.6,-9.8 -7.6,-1.8 -12.4,-1.2 -18.8,0.2 -6.4,1.4 -15.4,4.6 -25.6,-0.4 -10.2,-5 -19.8,-11.2 -24.8,-16.8 -5,-5.6 -7.4,-11.8 -12.8,-19.8 -5.4,-8 -14,-19.2 -16,-21.8 -2,-2.6 -10.2,-11.6 -17,-18.2 -6.8,-6.6 -12,-11 -12,-11 v -13.4 l 5.4,5.2 3.4,2.6 c 0,0 0,-6 1.4,-8.4 1.4,-2.4 2,-3.8 2,-3.8 0,0 -3.2,-0.2 -4.8,-0.4 -1.6,-0.2 -7.6,1.2 -7.6,1.2 l -0.1,-8.6 c 0,0 10.1,-3.2 13.7,-4.4 3.6,-1.2 11.6,-1 16.8,-1 5.2,0 9.2,2 11.8,0.4 2.6,-1.6 4.8,-4.2 4.8,-4.2 0,0 3.8,-3.4 5,-5.8 1.2,-2.4 1.2,-7 1.2,-12.2 0,-5.2 -1.4,-10.6 -3.4,-14.2 -2,-3.6 -5,-6.4 -9.6,-9 -4.6,-2.6 -12.2,-7 -14.8,-12.2 -2.6,-5.2 -3.6,-11 -4.4,-13 -0.8,-2 -2.2,-7.8 -2.8,-8.8 -0.6,-1 0.2,-0.6 -1.6,-2.2 -1.8,-1.6 -8.6,-1.8 -8.6,-1.8 h -8.2 l 0.1,-72 c 0,0 15.9,2.2 22.3,4.2 6.4,2 28.8,12.4 38.2,17.4 9.4,5 22.8,16.4 30,23.2 7.2,6.8 29.8,28.8 35.4,33.8 5.6,5 16.6,13.8 20.6,16.4 4,2.6 14.6,10.2 20,12.4 5.4,2.2 19.6,6.6 24.2,9 4.6,2.4 10.8,6.6 10.8,6.6 l 8.6,6 -52.85001,-0.55 -0.94999,30.95 c 0,0 -2.4,-8.8 -2.8,-10 -0.4,-1.2 -3.2,-6.2 -4.2,-7.8 -1,-1.6 -5.8,-9.4 -9.6,-13 -3.8,-3.6 -11.4,-12.8 -17.6,-18.2 -6.2,-5.4 -11.2,-9.2 -15.6,-12.4 -4.4,-3.2 -18.4,-9 -24.4,-11.8 -6,-2.8 -19.6,-4.8 -30.2,-5.6 -10.6,-0.8 -15,0.6 -17.8,3.8 -2.8,3.2 -1.6,9.6 -0.6,10.6 1,1 5.2,5.8 7.8,7.8 2.6,2 8.4,5.4 12,9.4 3.6,4 6.4,9.2 7.6,15 1.2,5.8 -0.6,15.8 -1.2,18.6 -0.6,2.8 -4.8,7.8 -6,8.2 -1.2,0.4 -5,3.8 -5,3.8 0,0 2.4,1.6 5.6,3.2 3.2,1.6 4.8,1.4 7.2,4.2 2.4,2.8 4.2,8.2 4.6,9.8 0.4,1.6 0.2,1.8 0,3.2 -0.2,1.4 -1.4,2.4 -1.4,2.4 l -4.2,-0.8 c 0,0 -4.6,-2.4 -5.4,-3.4 -0.8,-1 -1,-2.2 -3.2,-3.2 -2.2,-1 -6,-1.6 -6,-1.6 l -1.4,1.2 c 0,0 1.6,5.2 0.8,8.8 -0.8,3.6 -4.4,7 -6.8,7.6 -2.4,0.6 -12.2,1.2 -12.2,1.2 h -7.4 c 0,0 0.2,0.2 0.6,1.6 0.4,1.4 5.2,5.2 8.4,5 3.2,-0.2 9.4,-1 11,-2 1.6,-1 9.2,-3.2 11.6,-4.8 2.4,-1.6 8.4,-2.4 10.6,-2.8 2.2,-0.4 5.6,-0.6 5.2,0.2 -0.4,0.8 -0.6,1.2 -2,2.2 -1.4,1 -4.6,2 -6.6,3.6 -2,1.6 -3,1.6 -2.6,3.6 0.4,2 2.2,2.6 3,5.4 0.8,2.8 3.8,7.6 4.2,8.6 0.4,1 3.6,4.2 4.6,4.8 1,0.6 8,4 13.2,5.8 5.2,1.8 15.6,6.2 17.6,8.2 2,2 13,5.8 15.8,7.2 2.8,1.4 10.2,3.4 13.6,4.4 3.4,1 11,1.4 14.8,2.4 3.8,1 8.4,2 8.4,2 l 6.9,2.3 -0.1,8.45 c 0,0 -14.4,-3.75 -18.4,-5.15 -4,-1.4 -19,-4.2 -22.2,-5.2 -3.2,-1 -13.8,-4.6 -16.8,-6.4 -3,-1.8 -18.4,-10.6 -18.4,-10.6 0,0 -9.8,-3.8 -11.4,-4.2 -1.6,-0.4 -2.2,0.8 -2.2,0.8 0,0 1.4,-0.4 2.8,3 1.4,3.4 3.2,9.8 3.4,11.8 0.2,2 0.8,5 1.4,9.8 0.6,4.8 2.4,8.6 4.6,11.4 2.2,2.8 5.4,5.8 10.4,6.4 5,0.6 12.4,-1.2 18,-2 5.6,-0.8 14.7,-2.4 23.7,0.8 9,3.2 13.1,9.6 15.3,17 2.2,7.4 3.8,16.8 2.8,27 -1,10.2 -7,18.4 -21.6,27.8 -14.6,9.4 -20,12.6 -23.2,14 -3.2,1.4 -5.8,2.2 -5.8,3 0,0.8 0.2,2.4 1.4,4.4 1.2,2 6.6,5.2 8.6,6.6 2,1.4 9.6,5.2 12.2,8 2.6,2.8 5,8.8 4,13.4 -1,4.6 -8,10.6 -13.2,12.8 -5.2,2.2 -12.6,3.6 -14.6,4.4 -2,0.8 -6.8,2.6 -8,3.2 -1.2,0.6 -2.6,1.2 -1.8,3.8 0.8,2.6 3.6,14.6 0.2,27.2 -3.4,12.6 -6.6,13.8 -12.2,15.6 -5.6,1.8 -26.8,2.4 -33.4,2 -6.6,-0.4 -14.2,1.6 -19.2,5.2 -5,3.6 -8.2,8.8 -8.8,12.2 -0.6,3.4 0.8,9.4 2.4,11.4 1.6,2 5.6,8.4 7.2,11 1.6,2.6 2.8,11.6 1.4,15.2 -1.4,3.6 -7.6,9.4 -10.4,11.4 -2.8,2 -7,5 -9,5.8 -2,0.8 -5.88333,2.41111 -5.88333,2.41111 L 509,665.56998 c 0,0 11.8,-3.85 13.2,-10.85 1.4,-7 -1.6,-12.4 -4.8,-16.6 -3.2,-4.2 -8.47778,-8.98889 -8.47778,-8.98889 L 508.8,594.11998 c 0,0 9.8,-0.2 20.2,-1.2 10.4,-1 20.6,-1.8 29.2,-0.6 8.6,1.2 12.4,1.6 17.8,0.6 5.4,-1 8.8,-1.8 10.6,-7.2 1.8,-5.4 2.4,-13 1.4,-18.2 -1,-5.2 -0.4,-5.8 -1.4,-8 -1,-2.2 1,-3.8 -2.4,-4 -3.4,-0.2 -9.8,-0.2 -11.6,-0.4 -1.8,-0.2 -23.4,-1.2 -26,-1.6 -2.6,-0.4 -19.2,1.2 -22.4,0.8 -3.2,-0.4 -15.6,1.8 -15.6,1.8 z"
id="path1645"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cssssssscscssssssssssssssccccscsccssscsssssssscccsssssssccccsssssssssssssscssssccssccssccssssssssssssssssscccssscscssssssssssssssssssssssssssssssccssccsssssssssscc" />
<path
style="display:inline;fill:#0b2869;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 508.6,253.11998 c 0,0 -0.4,-1.2 8,-2.2 8.4,-1 12,1 14,3 2,2 2,7.2 0,8.6 -2,1.4 -10.6,5.8 -11.6,8.2 -1,2.4 -2.2,4.4 -1,5 1.2,0.6 6.8,0 12.4,0.6 5.6,0.6 9.2,2 11.2,3.8 2,1.8 2.6,4 2.6,4 0,0 1,1.8 -0.6,1.4 -1.6,-0.4 -1.8,-1.4 -4,-3.2 -2.2,-1.8 -8,-3.2 -12.6,-2.6 -4.6,0.6 -7,-0.2 -9,1.4 -2,1.6 -2.6,1.2 -2.8,2.2 -0.2,1 -1.6,2.2 -1.8,3.4 -0.2,1.2 0.2,1.4 -0.6,2.6 -0.8,1.2 -4.4,5.4 -4.4,5.4 v -41 z"
id="path1653"
inkscape:connector-curvature="0" />
<path
style="display:inline;fill:#0b2869;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 723.8,274.51998 53.19999,-0.35 -0.39999,27.55 c 0,0 4,2.8 6.6,4.4 2.6,1.6 6.8,4.2 6.8,4.2 0,0 -4,-11.2 -4.2,-12.2 -0.2,-1 -1.6,-8.2 -1.6,-8.2 0,0 11.8,0.8 13.4,0.8 1.6,0 10.2,1.4 10.2,1.4 0,0 3.4,1.4 2.2,-0.6 -1.2,-2 -9.8,-11.2 -9.8,-11.2 l -1.6,-3 h 23 l -3.4,-5.8 -6.2,-8.2 -3.8,-4.6 v -1.4 c 0,0 5,-0.8 9.4,-1.2 4.4,-0.4 10.4,-1.6 10.4,-1.6 0,0 -0.6,-1.2 -3,-3.6 -2.4,-2.4 -9,-9.6 -9,-9.6 l -2.4,-3.4 c 0,0 4.6,-2.2 9.8,-3.4 5.2,-1.2 7.4,-1.8 10.2,-2.4 2.8,-0.6 5.6,0 4.8,-1.4 -0.8,-1.4 -10,-7.8 -10,-7.8 l -9,-6.8 -2.2,-2.4 c 0,0 8.8,-5.2 11.2,-6.6 2.4,-1.4 7.4,-4.4 7.4,-4.4 l 1.4,-0.8 c 0,0 0.6,-0.6 -0.2,-1.2 -0.8,-0.6 -3.6,-2.6 -3.6,-2.6 l -7.6,-4 c 0,0 -3.2,-2 -3.2,-2.8 0,-0.8 0.8,-1.6 1.2,-2.8 0.4,-1.2 5.4,-5.8 6.8,-7.2 1.4,-1.4 5.4,-4.6 5.4,-4.6 0,0 1.6,-1 1.2,-2.2 -0.4,-1.2 -1.2,-2 -2.6,-3.2 -1.4,-1.2 -6.2,-5.4 -7.6,-7 -1.4,-1.6 -5.4,-6 -5.4,-6 0,0 -1.2,-1.4 -0.8,-2.6 0.4,-1.2 2.6,-8.6 2.6,-8.6 l 1.6,-3.4 c 0,0 1,-1.2 1.2,-2.6 0.2,-1.4 -0.8,-3.6 -0.8,-3.6 0,0 -1.6,-1.6 -2.8,-2.2 -1.2,-0.6 -6.8,-4.6 -6.8,-4.6 l -2.6,-2.8 c 0,0 -0.4,-0.8 -0.8,-2.4 -0.4,-1.6 -2,-8 -2,-9.6 0,-1.6 -2,-8.4 -2,-8.4 0,0 -0.8,-0.6 -1.4,-1.4 -0.6,-0.8 -8.2,-4.6 -8.2,-4.6 l -7,-3.999997 -2.4,-2.6 -49.8,0.6 2.4,5.399997 c 0,0 19.2,4.6 21.6,5.4 2.4,0.8 3.4,4.4 3.8,5.4 0.4,1 0.2,12.8 0.2,13.8 0,1 -1,3.2 2.6,4.2 3.6,1 12.6,5.2 13.8,6.6 1.2,1.4 0.2,8.2 0,9.4 -0.2,1.2 -4.4,8.8 -3.4,12.2 1,3.4 5.6,7.8 7,9.2 1.4,1.4 5.4,5.4 5.8,8 0.4,2.6 0.4,3.8 0.4,4.6 0,0.8 -5,8 -6.2,9.8 -1.2,1.8 -4.8,3.8 -3.6,6.2 1.2,2.4 8.6,8.2 10,10.4 1.4,2.2 2,4.2 0.6,5.2 -1.4,1 -8.8,3 -11.2,4.6 -2.4,1.6 -3,1.4 -3,3.8 0,2.4 0.2,7.6 1,12.8 0.8,5.2 1.6,10.4 0.8,10.8 -0.8,0.4 -14.2,2.6 -14.2,2.6 l -4.4,1.6 c 0,0 0.2,-0.4 -0.4,0.6 -0.6,1 -3.4,8.4 -3.4,10.8 0,2.4 -0.6,4.2 -1,5.2 -0.4,1 -0.6,2.2 -1.4,2.4 -0.8,0.2 -21.8,-2.2 -22.8,-1.8 -1,0.4 -5,3.8 -5.6,4.8 -0.6,1 -5.2,5 -5.2,5 z"
id="path1655"
inkscape:connector-curvature="0" />
<path
style="display:inline;fill:#0b2869;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 776.8,336.91998 c 0.8,-0.2 16.4,-8.6 23.8,-13.2 7.4,-4.6 25.8,-21.4 30.8,-27 5,-5.6 17,-21.2 20,-26.2 3,-5 13.8,-28.4 15,-34.2 1.2,-5.8 2.6,-19.8 2.8,-29.6 0.2,-9.8 -0.4,-30.4 -2.6,-40.4 -2.2,-10 -8.8,-27.8 -12.4,-34.2 -3.6,-6.4 -11,-15 -16.2,-21.2 -5.2,-6.2 -15.4,-15.799997 -15.4,-15.799997 l 11.9,0.299999 c 0,0 8.3,5.899998 12.9,11.699998 4.6,5.8 13.2,17.8 18.4,30.4 5.2,12.6 8.2,22.8 10,37.4 1.8,14.6 2.6,27.6 2.4,31.2 -0.2,3.6 1.2,24.6 -7.8,48.4 -9,23.8 -21.8,36.2 -35.4,50.6 -13.6,14.4 -31.4,26.8 -38.8,30.8 -7.4,4 -19.95,9.5 -19.95,9.5 z"
id="path1657"
inkscape:connector-curvature="0" />
<path
style="display:inline;fill:#0b2869;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 696,95.169982 14.8,0.150001 c 0,0 7.6,2 20,11.399997 12.4,9.4 21,14 33,38.2 12,24.2 10.6,39.2 10.2,49.8 -0.4,10.6 -5.2,26.6 -14.4,39.2 -9.2,12.6 -21.6,17 -32.6,19 -11,2 -21.8,1.8 -36.2,-6.6 -14.4,-8.4 -29.6,-18.8 -37.6,-26.8 -8,-8 -21,-21 -27,-26.8 -6,-5.8 -17.4,-20.8 -39,-36 -21.6,-15.2 -33.8,-21 -46.2,-24.6 -12.4,-3.6 -19.8,-5.2 -27,-5.6 -7.2,-0.4 -5.5,-0.1 -5.5,-0.1 l -0.2,-6.8 c 0,0 10.7,1.5 25.5,4.7 14.8,3.2 25.6,8.6 42,16.8 16.4,8.2 26.4,19.6 36.4,28.2 10,8.6 22.6,21.6 30.4,29 7.8,7.4 34.8,35.2 51.2,42.6 16.4,7.4 28,8.6 40.6,2.8 12.6,-5.8 22.2,-16.8 25,-22.8 2.8,-6 7.2,-15.8 7,-33 -0.2,-17.2 -3.6,-31.2 -8.2,-39.6 -4.6,-8.4 -9.2,-17.6 -24.4,-30.2 -15.2,-12.6 -22.8,-16.2 -27.6,-18.599997 -4.8,-2.4 -10.2,-4.350001 -10.2,-4.350001 z"
id="path1659"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccsssssssssssccsssssssssssc" />
<path
style="display:inline;fill:#0a2869;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 293.4,292.11998 c 0,0 4.8,-4.2 11.8,-7.6 7,-3.4 20.4,-6.6 26.4,-7.8 6,-1.2 15.2,-0.8 20.6,-0.8 5.4,0 11.8,1 16.2,6.4 4.4,5.4 6.4,14.6 7.4,18 1,3.4 0.8,5.4 2.6,7.2 1.8,1.8 5.2,3.8 5.6,5 0.4,1.2 -1.4,5.8 -1.4,5.8 0,0 1.6,-1.8 -2,-4.6 -3.6,-2.8 -12.2,-2.6 -13.4,-2.6 -1.2,0 -9.4,1.8 -9.4,1.8 0,0 5.6,4.6 7,11.8 1.4,7.2 -5.6,11.2 -19.2,13.2 -13.6,2 -20.6,-6.8 -21.4,-8.8 -0.8,-2 0.6,-9 -0.8,-9.8 -1.4,-0.8 -6.4,-0.6 -10.8,0 -4.4,0.6 -11.4,3 -12,4.4 -0.6,1.4 -1.6,0.4 -0.6,3 1,2.6 3.6,5.2 6.6,7.2 3,2 11.2,6.2 17,7.8 5.8,1.6 15.8,3 23.8,3.4 8,0.4 17.6,-0.6 22.2,-1.8 4.6,-1.2 7.4,-3.6 10.2,-6.6 2.8,-3 3.4,-8.2 3.4,-8.2 0,0 2.8,4 -1.8,10.8 -4.6,6.8 -13.2,7.4 -23.4,9.2 -10.2,1.8 -23,1.2 -35,-2 -12,-3.2 -27,-8.6 -31.4,-15.2 -4.4,-6.6 -6.6,-14.8 -1.8,-19 4.8,-4.2 20.8,-7.4 33.2,-8.2 12.4,-0.8 22.8,0.6 30.6,-0.4 7.8,-1 10.4,1.2 11.2,-3.8 0.8,-5 2.2,-8.8 -2.4,-14 -4.6,-5.2 -3,-4.4 -12.2,-5.6 -9.2,-1.2 -19.6,0.4 -30.6,3 -11,2.6 -26.2,8.8 -26.2,8.8 z"
id="path2016"
inkscape:connector-curvature="0" />
<path
style="display:inline;fill:#0a2869;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 366.2,243.91998 c 3.8,0.8 6.2,2.2 11.6,4.2 5.4,2 5.6,2.6 9.2,1.8 3.6,-0.8 6.4,-4.2 8.6,-2.8 2.2,1.4 7,11.6 8.4,15.4 1.4,3.8 6.2,11.2 8.4,15.2 2.2,4 3.2,5.4 6.6,7.2 3.4,1.8 2.2,-0.2 5,3.6 2.8,3.8 5.6,15.8 6,17 0.4,1.2 3,9 3.8,10.2 0.8,1.2 4.6,5 4,6 -0.6,1 -5.8,-5.8 -9.8,-8.6 -4,-2.8 -11.2,-13.2 -12,-15.8 -0.8,-2.6 -2.4,-7.6 -3,-9 -0.6,-1.4 -8.6,-15 -9.4,-16.4 -0.8,-1.4 -5.8,-8.2 -6.8,-8.6 -1,-0.4 -6.4,1 -10.4,-0.4 -4,-1.4 -8.4,-3 -13.6,-5.6 -5.2,-2.6 -6.6,-13.4 -6.6,-13.4 z"
id="path2018"
inkscape:connector-curvature="0" />
<path
style="display:inline;fill:#0a2869;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 276.8,245.51998 c 0,0 7,-1.2 11.8,-3.4 4.8,-2.2 4.8,-2.6 7.8,-4.8 3,-2.2 2.8,-4.4 4.2,-4.2 1.4,0.2 1,7.8 1.2,11.4 0.2,3.6 -4,16.8 -7.2,22 -3.2,5.2 -11,9.6 -15.4,12.6 -4.4,3 -16.2,6.6 -18.8,7.4 -2.6,0.8 -4.4,1.2 -3.6,0 0.8,-1.2 2.8,-4 3.6,-6.8 0.8,-2.8 1.2,-7 1.2,-8.4 0,-1.4 -0.2,-5.8 -0.2,-5.8 z"
id="path2020"
inkscape:connector-curvature="0" />
<path
style="display:inline;fill:#0a2869;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 292.2,223.51998 c 0,0 11.4,1.2 19.6,1.2 8.2,0 14,-0.4 19.2,-2.8 5.2,-2.4 25,-8.4 28,-9.4 3,-1 17.8,-2 19,-2.2 1.2,-0.2 2.4,0.2 2.4,0.2 0,0 1.2,-1 2,1 0.8,2 -0.8,10.6 10.4,18.4 11.2,7.8 17.4,8.8 22.2,10.2 4.8,1.4 16.2,3.6 21.4,4.8 5.2,1.2 14,4.2 16.2,7.8 2.2,3.6 2.8,4.2 0.8,7 -2,2.8 -7.8,3.8 -8.8,4 -1,0.2 -3,0.2 -4.4,0.2 -1.4,0 -3.6,0.6 -2.4,1 1.2,0.4 6.2,2.2 8.6,2.8 2.4,0.6 13,1.2 16.4,0.8 3.4,-0.4 11.6,-4.4 12.6,-9.6 1,-5.2 3.2,-3.2 0.2,-8.2 -3,-5 -12.4,-9.6 -14,-12 -1.6,-2.4 1.6,-8.4 6.2,-11 4.6,-2.6 11.4,-5.4 11.4,-5.4 v -8.3 c 0,0 -11.8,6.9 -12.8,7.5 -1,0.6 -11.8,6.6 -13.2,9.4 -1.4,2.8 -0.6,8.4 0.4,10.4 1,2 0.8,2.6 4.4,4 3.6,1.4 10,4.6 10.6,7.4 0.6,2.8 1,4.2 -0.2,6.4 -1.2,2.2 -4.6,4.2 -6,4.8 -1.4,0.6 -7.6,0.4 -7.6,0.4 0,0 8,-2.8 7.6,-7.8 -0.4,-5 -5,-8.4 -11,-12.2 -6,-3.8 -24.6,-5.8 -32.4,-9 -7.8,-3.2 -22.6,-10 -25.4,-14 -2.8,-4 -5.6,-15 -6,-16.8 -0.4,-1.8 -0.6,-15.8 -0.2,-20.6 0.4,-4.8 0.6,-5.6 2,-8 1.4,-2.4 1.4,-3.8 0.4,-2.8 l -3.6,3.6 c 0,0 -2.2,2.2 -4.6,0.8 -2.4,-1.4 -15.8,-11.6 -26.2,-16.8 -10.4,-5.2 -15.4,-7.8 -15.4,-7.8 l -49,70.8 z"
id="path2022"
inkscape:connector-curvature="0"
sodipodi:nodetypes="csssscsssssssssssssssccssssssscsssssssscssccc" />
<path
style="display:inline;fill:#0a2869;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 349,138.71998 c 0,0 13.2,6.4 18.6,9.4 5.4,3 17,9.6 20.8,14.2 3.8,4.6 11.4,5 13.4,4 2,-1 10.6,-2.4 19,2 8.4,4.4 19,15.2 19.2,16 0.2,0.8 0.8,11.8 1.4,13.8 0.6,2 -0.6,4 2,6.6 2.6,2.6 8.2,5.4 10.4,6.6 2.2,1.2 4.4,3.4 4.6,4.2 0.2,0.8 2.2,2.4 2.4,0.2 0.2,-2.2 -3.2,-7.6 -5,-8.6 -1.8,-1 -7.2,-4.2 -7.6,-6 -0.4,-1.8 0.8,-10.2 0.2,-14.2 -0.6,-4 0,-7.6 -4.2,-12.8 -4.2,-5.2 -7.4,-7.4 -9.8,-8.4 -2.4,-1 -13.6,-5.2 -15.6,-5.8 -2,-0.6 -2.8,-1.6 -2,-2 0.8,-0.4 16.6,2.8 22.4,5 5.8,2.2 17.6,6.6 22,8.8 4.4,2.2 12.6,7.6 12.6,7.6 l 5.4,3.8 0.2,-13.2 c 0,0 -28.4,-13.4 -32,-15.4 -3.6,-2 -20.8,-3.2 -21.2,-5.4 -0.4,-2.2 -0.4,-2.6 -0.4,-2.6 0,0 11.4,-6.4 18.2,-10 6.8,-3.6 14.2,-6 16.8,-7 2.6,-1 7.8,-2 9,-2.2 1.2,-0.2 9.3,-1 9.3,-1 l 0.2,-6.45 c 0,0 -19.9,3.25 -29.9,7.05 -10,3.8 -24.6,12 -30.8,14.8 -6.2,2.8 -17.45,9.45001 -18.4,12.2 -0.95,2.75 -9.4,-0.8 -10,-2 -0.6,-1.2 6.05009,4.30631 -18.2,-10.6 -8.32795,-5.11911 -18.5,-8.9 -18.5,-8.9 z"
id="path2024"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cssssssssssssssssssscccsscsssccsscsscc" />
<path
style="display:inline;fill:#0a2869;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 398,456.31998 c 0,0 -13.2,-11.4 -16.4,-18 -3.2,-6.6 -2.8,-17.2 3.4,-25 6.2,-7.8 13.2,-12.4 26,-14.6 12.8,-2.2 23,-2.8 31.2,-2.2 8.2,0.6 16,1.6 22.2,3.4 6.2,1.8 14.9,5.1 14.9,5.1 v 9.4 c 0,0 -11.1,-5.7 -18.7,-8.3 -7.6,-2.6 -18,-3.2 -28.4,-2.6 -10.4,0.6 -19.8,2 -26.6,5.4 -6.8,3.4 -11.4,10 -12.6,13 -1.2,3 -1.2,3.4 -0.4,4 0.8,0.6 1.6,2.6 2.8,-0.2 1.2,-2.8 4,-5.6 12.6,-8.2 8.6,-2.6 19,-2 23.2,0.4 4.2,2.4 6.4,6 7,7.2 0.6,1.2 1,3 1,3 0,0 -1.4,1.2 -3.8,-1.2 -2.4,-2.4 -7.6,-4.8 -12,-4 -4.4,0.8 -13.8,3.6 -14.6,5.4 -0.8,1.8 -2.6,3.2 -2.2,7.8 0.4,4.6 -3.4,8 -5.2,7.6 -1.8,-0.4 -4,-1.6 -4,-1.6 0,0 -2.2,0.8 -1.8,3 0.4,2.2 1.4,3.4 1.6,6.4 0.2,3 0.8,4.8 0.8,4.8 z"
id="path2026"
inkscape:connector-curvature="0"
sodipodi:nodetypes="csssssccssssssssscssssscssc" />
<path
style="display:inline;fill:#0a2869;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 335,470.51998 c 0,0 4.4,-1 10.6,3.2 6.2,4.2 11.8,13.6 14,16.2 2.2,2.6 4,7 6.2,7 2.2,0 5.2,-6.4 5.4,-8 0.2,-1.6 2.4,-8.2 5.4,-11.2 3,-3 6,-5.6 7.2,-6 1.2,-0.4 4,-1 4,-1 0,0 2,-0.4 0.8,0.4 -1.2,0.8 -4.2,3.8 -5.6,6.2 -1.4,2.4 -4,5.2 -5.8,10 -1.8,4.8 -2.8,6.2 -3.4,9.4 -0.6,3.2 -1.4,5.8 -1.4,8.4 0,2.6 10.2,10.4 15.8,17.4 5.6,7 17.6,17 22,20 4.4,3 22.4,8.8 29.6,9.2 7.2,0.4 29.6,0.2 29.6,0.2 l 9.4,-0.4 0.2,10.2 c 0,0 -29.6,2 -39,0 -9.4,-2 -25.8,-6.8 -33,-9.8 -7.2,-3 -25,-20 -28.2,-22.8 -3.2,-2.8 -16.6,-21.6 -21.4,-30.2 -4.8,-8.6 -15.2,-21.2 -18.4,-22.8 -3.2,-1.6 -3.96667,-1.81111 -3.96667,-1.81111 z"
id="path2028"
inkscape:connector-curvature="0"
sodipodi:nodetypes="csssssscsssssssscccssssscc" />
<path
style="display:inline;fill:#0a2869;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 419,608.71998 c 0,0 11.8,-4.6 19,-6.2 7.2,-1.6 29.6,-3.8 29.6,-3.8 l 11.7,-1 0.1,17.6 c 0,0 -6,0.6 -8,1.4 -2,0.8 -7.2,2.2 -14.6,0.6 -7.4,-1.6 -13.8,-6.4 -17.8,-6.8 -4,-0.4 -20,-1.8 -20,-1.8 z"
id="path2030"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cscccsssc" />
<path
style="display:inline;fill:#0a2869;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 479.2,644.11998 c 0,2.2 -0.4,12.4 -5,19.4 -4.6,7 -18.2,14 -25.2,16.4 -7,2.4 -24.4,7.2 -30,13.8 -5.6,6.6 -5.6,8.8 -5,13 0.6,4.2 3.6,8.8 5.6,11.4 2,2.6 4.2,5.6 4.2,5.6 0,0 -7.4,-3.4 -14,-7.8 -6.6,-4.4 -9.4,-10.6 -10.6,-14.6 -1.2,-4 -0.8,-14.8 -0.6,-16.4 0.2,-1.6 -0.2,-0.8 -6.8,-4.8 -6.6,-4 -12.2,-5.4 -12.2,-5.4 l -0.2,2.2 -0.4,55.25 9.2,7.35 7,3.4 h 67.3 l -1.25,-4.25 c 0,0 0.95,-1.95 5.55,0.25 4.6,2.2 6.95,4 6.95,4 h 5.5 l -0.05,-65 -3.4,1.4 1.4,-3.4 2,-3.4 z"
id="path2032"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cssssscsssscccccccsccccccc" />
<path
style="display:inline;fill:#0a2869;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 95.069466,559.03564 95,587.66998 l 12.58023,0.0499 -6.60538,-12.27939 z"
id="path2034"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
<path
style="display:inline;fill:#0a2869;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 145.664,435.15053 c 0.84853,1.9799 3.95979,12.72792 4.24264,14.14214 0.28284,1.41421 0.28284,10.18234 0,16.97056 -0.28285,6.78823 -0.56569,19.23331 1.9799,21.77889 5.09116,7.63675 12.16223,6.22254 14.42497,8.20244 1.41422,4.24264 1.69706,13.29361 2.26275,19.51614 0.56568,6.22254 1.93416,10.80055 4.52548,13.01077 16.05035,13.68985 17.81909,1.13137 22.34458,8.48528 4.52548,7.35391 4.52547,9.61665 9.3338,13.2936 4.80833,3.67696 15.27351,-2.82842 19.51615,1.97991 4.24264,4.80832 -3.67695,6.22254 -5.09117,7.07107 -1.41421,0.84852 -6.78822,3.67695 -6.22254,10.18233 0.56569,6.50539 3.67696,11.8794 3.67696,11.8794 l 4.39248,5.95692 45.10499,-0.0344 c 0,0 -13.57645,1.43137 -24.60731,-4.22549 -11.03087,-5.65685 -16.12204,-9.61665 -14.14214,-14.42498 1.9799,-4.80832 9.8995,-6.22253 12.44508,-11.87939 2.54558,-5.65685 0.56569,-9.89949 -2.54558,-12.16224 -3.11127,-2.26274 -7.07107,-2.54558 -8.48529,-2.82842 -1.41421,-0.28285 -14.70782,0.28284 -16.12203,-1.9799 -1.41421,-2.26274 1.41421,-5.65686 -4.80833,-13.29361 -6.22254,-7.63675 -19.79899,-3.11127 -22.62741,-5.09117 -2.82843,-1.9799 -5.65686,-5.65685 -5.65686,-14.14213 0,-8.48529 2.26274,-9.8995 -0.28284,-14.99067 -2.54558,-5.09117 -6.22254,-5.37401 -11.31371,-9.61665 -5.09117,-4.24264 -2.26274,-13.01076 -2.82843,-16.40488 -0.56568,-3.39411 0,-6.78822 -1.13137,-12.44508 -1.13137,-5.65685 -3.95979,-14.42497 -3.39411,-19.51614 0.56569,-5.09117 -1.13137,-5.9397 0.84853,-10.74803 1.9799,-4.80832 15.83919,-10.74802 22.06173,-15.55635 6.22254,-4.80832 18.38478,-15.55634 20.08183,-17.2534 1.69706,-1.69706 8.76813,-10.18234 8.76813,-10.18234 0,0 2.54558,-2.54558 5.37401,1.13137 2.82843,3.67696 4.52548,12.44508 9.05097,18.38478 4.52548,5.9397 5.65685,8.20244 10.74802,11.87939 5.09117,3.67696 11.03086,9.8995 11.03086,9.8995 l -8.76812,-12.72792 c 0,0 -9.05097,-11.31371 -11.31371,-17.25341 -2.26274,-5.9397 -2.54558,-18.95046 -2.26274,-27.43574 0.28284,-8.48528 6.22254,-25.73869 6.50538,-29.69849 0.28285,-3.9598 0,-14.99066 0,-14.99066 v -11.03087 l -3.39411,4.52549 c 0,0 -0.56569,15.83919 -3.11127,23.1931 -2.54558,7.35391 -10.74802,23.1931 -17.53625,32.24407 -6.78822,9.05096 -16.12203,18.95046 -22.06173,23.47594 -5.9397,4.52549 -14.14214,11.8794 -14.14214,11.8794 l -8.76812,4.52548 z"
id="path2036"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccccssccccccccssccsscssscscsccccccccssccccsscccc" />
<path
style="display:inline;fill:#5da3de;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 544.47222,352.56046 c 0,0 -0.70711,0 7.07107,-1.41421 7.77817,-1.41422 12.72792,9.19238 14.84924,13.43503 2.12132,4.24264 2.82843,6.36396 4.24264,13.43502 1.41422,7.07107 2.82843,9.19239 3.53554,13.43503 0.7071,4.24264 7.07106,12.02082 7.07106,12.02082 0,0 -12.02081,-8.48528 -14.14213,-14.14214 -2.12132,-5.65685 -10.6066,-16.97056 -12.72792,-20.50609 -2.12132,-3.53554 -9.8995,-16.26346 -9.8995,-16.26346 z"
id="path2083"
inkscape:connector-curvature="0" />
<path
style="display:inline;fill:#0a2869;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 508.6,418.91998 c 0,0 4.2,2.8 9.2,5.2 5,2.4 12.6,7.4 17.6,10.4 5,3 7,7.2 11.8,7.8 4.8,0.6 16.6,2.2 16.6,2.2 0,0 -4,1.8 -8.2,1.8 -4.2,0 -11.6,-1.8 -15.6,-3 -4,-1.2 -12.6,-5.4 -16.4,-8 -3.8,-2.6 -14.9,-7.9 -14.9,-7.9 z"
id="path2086"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cssscssscc" />
<path
style="display:inline;fill:#0a2869;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 508.8,707.71998 0.2,35.2 19.2,0.2 c 0,0 10.4,-5.4 13.4,-7.4 3,-2 14.6,-9.6 15.8,-11.2 1.2,-1.6 7.2,-7.6 7.6,-8.4 0.4,-0.8 3.4,-5.8 3.4,-5.8 0,0 -9.4,6 -11.6,7.4 -2.2,1.4 -13.2,5.6 -13.2,5.6 l -10.8,2.8 c 0,0 7,-6.2 8.8,-8 1.8,-1.8 3.6,-6.2 3.6,-6.2 0,0 -9.4,1.8 -12.6,1.8 -3.2,0 -11.2,-1.2 -12.6,-1.8 -1.4,-0.6 -11.2,-4.2 -11.2,-4.2 z"
id="path2088"
inkscape:connector-curvature="0" />
<path
d="m 177.01399,728.89684 q -8.32102,6.7636 -17.27769,10.1455 -8.95663,3.38174 -18.49112,3.38174 -21.55379,0 -34.15084,-20.09766 -12.59716,-20.19435 -12.59716,-54.68887 0,-34.88111 12.82828,-54.88219 12.82822,-20.00103 35.13319,-20.00103 8.60993,0 16.46866,2.70547 7.91653,2.70543 14.90853,8.01975 v 29.85663 q -7.22312,-6.86027 -14.38851,-10.24201 -7.10743,-3.38186 -14.27282,-3.38186 -13.2905,0 -20.51362,12.46444 -7.16528,12.36776 -7.16528,35.4608 0,22.89977 6.93411,35.36421 6.93422,12.46439 19.70464,12.46439 3.46711,0 6.41415,-0.67637 3.00481,-0.77295 5.37398,-2.3189 v -28.02084 h -13.57942 v -24.92887 h 34.67092 z"
id="path5458"
inkscape:connector-curvature="0"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:30.66666603px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans Bold';letter-spacing:0px;word-spacing:0px;display:inline;opacity:1;fill:#00004d;fill-opacity:1;stroke:none;stroke-width:4.99012899px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
d="m 196.54521,595.36317 h 24.84756 l 31.37713,98.94247 v -98.94247 h 21.09151 v 144.25886 h -24.84747 l -31.37718,-98.94242 v 98.94242 h -21.09155 z"
id="path5460"
inkscape:connector-curvature="0"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:30.66666603px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans Bold';letter-spacing:0px;word-spacing:0px;display:inline;opacity:1;fill:#00004d;fill-opacity:1;stroke:none;stroke-width:4.99012899px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
d="m 295.70415,595.36317 h 22.24708 v 86.47798 q 0,17.8754 3.46716,25.60525 3.52484,7.63327 11.44137,7.63327 7.97431,0 11.44136,-7.63327 3.52491,-7.72985 3.52491,-25.60525 v -86.47798 h 22.24718 v 86.47798 q 0,30.62973 -9.18779,45.60633 -9.18785,14.9766 -28.02566,14.9766 -18.78013,0 -27.96787,-14.9766 -9.18774,-14.9766 -9.18774,-45.60633 z"
id="path5462"
inkscape:connector-curvature="0"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:30.66666603px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans Bold';letter-spacing:0px;word-spacing:0px;display:inline;opacity:1;fill:#00004d;fill-opacity:1;stroke:none;stroke-width:4.99012899px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 35 KiB

9
img/en.svg Normal file
View file

@ -0,0 +1,9 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 30" width="1000" height="600">
<clipPath id="t">
<path d="M25,15h25v15zv15h-25zh-25v-15zv-15h25z"/>
</clipPath>
<path d="M0,0v30h50v-30z" fill="#012169"/>
<path d="M0,0 50,30M50,0 0,30" stroke="#fff" stroke-width="6"/>
<path d="M0,0 50,30M50,0 0,30" clip-path="url(#t)" stroke="#C8102E" stroke-width="4"/>
<path d="M-1 11h22v-12h8v12h22v8h-22v12h-8v-12h-22z" fill="#C8102E" stroke="#FFF" stroke-width="2"/>
</svg>

After

Width:  |  Height:  |  Size: 477 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

6
img/fr.svg Normal file
View file

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" width="900" height="600">
<rect width="900" height="600" fill="#CE1126"/>
<rect width="600" height="600" fill="#FFFFFF"/>
<rect width="300" height="600" fill="#002654"/>
</svg>

After

Width:  |  Height:  |  Size: 262 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 724 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 262 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 626 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

View file

@ -3,23 +3,16 @@
<h2>Font</h2>
<p>I use the default browser's font.</p>
<h2>Favicon</h2>
<p>GIF drawn by <a href="https://linktr.ee/VioletCross">VioletCross</a> (all rights reserved, but it's my furso). The <a href="/img/original.gif">original</a> (264kB).</p>
<h2>Header</h2>
<p>The Glider comes from <a href="http://www.catb.org/hacker-emblem/">catb website</a>.</p>
<h2>Web buttons in footer</h2>
<p>The links on the buttons are often websites where I found them.</p>
<ul>
<li><a href="https://www.vim.org/buttons.php">Vim</a></li>
<li><a href="https://88by31.neocities.org/web.html">NFT, Paws, Cookies and Construction</a></li>
<li><a href="https://88by31.neocities.org/web.html">NFT, Paws and Cookies</a></li>
<li><a href="http://www.mabsland.com/Adoption.html">Censor Panda</a></li>
<li><a href="https://www.gnu.org/graphics/license-logos.html">GPL3</a></li>
<li><a href="https://my.fsf.org/member-benefits">FSF membership</a> (you must have a FSF account)</li>
<li><a href="https://www.w3.org/QA/Tools/Icons">W3C Validation (CSS)</a></li>
</ul>
<!--

14
lang/en/autres.html Normal file
View file

@ -0,0 +1,14 @@
<div id="main">
<p>Vous pouvez ici retrouver des liens vers des pages contenant parfois certaines pensées fugaces et autres (d'où le nom, habile). Comme ce format se rapproche presque du blog, j'ai préféré les écrire et générer ces pages avec OrgMode, afin d'avoir une lecture plus fluide (et moins de choses à écrire).</p>
<p>La page <a href="apropos.html">à propos</a> référence les différentes ressources externes que je peux utiliser sur ce site et qui ne sont pas forcément sous licence GPL3 (contrairement au code).</p>
<h2>Prises de notes</h2>
<p>J'ai pu suivre quelques MOOCs ou conférences en ligne (et je prévois de continuer). Je prends des notes et j'essaie de faire des résumés ensuite de ces prises de notes. Vous pouvez retrouver ici des résumés de ces conférences.</p>
<ul>
<li><a href="nec/sitemap.html">résumés & cheatsheets</a></li>
<!--<li><a href="autres/gpg.html">Clés GPG</a></li>-->
<!--<li><a href="inspiration.html">inspiration</a>: pourquoi avoir fait ce site comme ça ?</li>-->
<!--<li><a href=""></a></li>-->
</ul>
</div>

View file

@ -3,30 +3,23 @@ rel="stylesheet" href="/css/copaings.css"
%endlink%
<div id="main">
<p>You can find here lots of links to the personnal websites of people I know (more or less, sometimes it's just a cool site I've found with a tweet, a toot, an RSS feed...) You can contact me to add you in this list (or remove you / change link, a name). I only accept personnal websites or blogs, no project or association.</p>
<p>Discover the web and new things !</p>
<p>Vous pouvez trouver ici pleins de liens vers les sites personnels de personnes que je connais (plus ou moins, parfois trouvé au détour d'un tweet, d'un pouet, d'un flux RSS...). Vous pouvez me contacter pour que je puisse vous y ajouter (ou vous retirer / modifier un lien, un nom). Je n'accepte cependant que les sites personnels ou les blogs, pas les projets ou associations qui iront plutot dans l'annuaire.</p>
<p>Laissez vous maintenant porter au hasard du clic vers de nouveaux horizons !</p>
<ul>
<li><a href="https://enpls.org">outout</a></li>
<!--<li><a href="https://bensuperpc.org/">bensuperpc</a></li>-->
<li><a href="http://heartathack.club/">alol</a></li>
<li><a href="https://eban.eu.org">eban</a></li>
<li><a href="https://patchli.fr/">patch</a></li>
<li><a href="http://harlock.tor.d0p1.eu/">d0p1</a></li>
<li><a href="https://whiterose-infosec.super.site/">whiterose</a></li>
<li><a href="https://vixenchroma.com/">alyx</a></li>
<li><a href="https://n0x.cc/">nox</a></li>
<li><a href="https://silou.fr/">silou</a></li>
<li><a href="https://hippie.cat/">hippie</a></li>
<li><a href="https://ada.wf">ada</a></li>
<li><a href="https://ramle.be">ramle</a></li>
<li><a href="https://www.cyp.sh/">cyp</a></li>
<li><a href="https://vulpinecitrus.info">Lux</a></li>
<li><a href="https://l4p1n.ch/">l4p1n</a></li>
<li><a href="https://www.woody.sh/">w00dy</a></li>
<li><a href="https://itarow.github.io/">itarow</a></li>
<!--<li><a href="https://atao.re/">atao</a></li>-->
<li><a href="https://ratakor.com/">ratakor</a></li>
<!--<li><a href="https://seesmakoto.000webhostapp.com/">makoto</a></li>-->
<li><a href="https://atao.re/">atao</a></li>
</ul>
<hr />
<ul>

View file

@ -3,11 +3,10 @@ rick's website
%endsubtitle%
%links%
where.html : where to find me
friends.html : friends & co
projects.html : projects
patches.html : patches
ou.html : where you can find me
copaings.html : friends & co
projets.html : projects
#a/ : annuaire
rss.html : my rss feeds
others.html : others
autres.html : others
%endlinks%

View file

@ -3,13 +3,13 @@ rel="stylesheet" href="/css/index.css"
%endlink%
<div id="main">
<p>Welcome to my small place on Internet visitor ! Let me introduce myself.</p>
<p>Developer on GNU+Linux, I use Gentoo to work and Arch to play. I also use some others distributions and kernels (as Void, OpenBSD or GNU/Hurd). I'm trying to learn the GNU/Guix ecosystem. If my main IDE is Unix with Vim as text editor, I use Emacs as agenda and TODO list with Orgmode. Libre-softwares enjoyer, I'm also for a digital sobriety, for personal pc or Internet and WorldWideWeb.</p>
<p>I'm admin for the <a href="https://gnous.eu">Gnous.eu</a> community. I moderate the services and some others things.</p>
<p>I'm developing in Rust and C. I've learned Java, Python, HTML/CSS, PHP, JavaScript (NodeJS, React Native...), Go, Bash, Z80 ASM and C++. I've learned them by myself or at the university.</p>
<p>On the cyber security side, I like to RE things, forensic and steganographie; but I'm mainly a developer.</p>
<p>I'm also reading some fiction (like SF with Asimov). I'm an achiviements hunter, I try to finish my game at 100% (on Steam).</p>
<p>The source code of this site can be found on my own git or Gnous's git, under GPL3 license. The content is under CC-BY-SA license. Some parts, as the font or the images, can be under different licenses.</p>
<h1>SOON IN ENGLISH !!!!!</h1>
<p>Bienvenue sur mon petit bout d'Internet visiteur ! Laissez-moi me présenter.</p>
<p>Développeur et étudiant sous GNU+Linux, j'utilise Arch, Void et Gentoo quotidiennement. J'essaie d'apprendre l'écosystème de GNU/Guix. Si mon IDE principal est Vim, Emacs m'est utile comme agenda et TODO liste avec Orgmode. Grand amateur de logiciels libres, je suis aussi pour une sobriété numérique, aussi bien pour les PCs personnels que pour Internet et le WorldWideWeb.</p>
<p>Je suis admin pour la communauté <a href="https://gnous.eu">Gnous.eu</a>. Je m'occupe principalement de la modération des différents services.</p>
<p>Je développe principalement en Rust et j'apprends l'assembleur Z80 et le C++ pour des projets personnels. J'ai aussi appris et utilisé le Java, le Python, le HTML/CSS/PHP, le JavaScript (NodeJS, React Native), le C, le Go et le Bash. Je les ai appris sur le tas ou étudié à l'université.</p>
<p>En plus du développement, j'aime lire de la science-fiction (Asimov entre autres). Je suis aussi un chasseur de succès, je m'amuse à finir à 100% des jeux. À coté, je joue beaucoup à CounterStrike: Global Offensive où je suis actuellement DMG.</p>
<p>Le code source de ce site est trouvable sur mon git personnel ainsi que sur le git de Gnous sous licence GPL3. Le contenu de ce site est sous licence CC-BY-SA. Certaines parties, tel que les images ou la police, peuvent être sous des licences différentes.</p>
<p></p>
<!--
@ -24,15 +24,9 @@ rel="stylesheet" href="/css/index.css"
<h2>News</h2>
<p>I'll add the interesting news of my website here. Read the commits to have more informations about the small changes of the site !</p>
<div id="news">
<p><code>04-04-2024:</code> use ISO norm instead of flags for languages.</p>
<p><code>25-10-2023:</code> translate everything \o/ (unless ??).</p>
<p><code>04-10-2023:</code> moving to a VPS at <a href="https://contabo.com">Contabo</a>.</p>
<p><code>29-09-2023:</code> nice favicon :).</p>
<p><code>27-09-2023:</code> projects page in english !! a first step before the rest of the site.</p>
<p><code>30-05-2023:</code> a better CSP to avoid <a href="https://im-in.space/@kdy/110429056346185564">trackers injections</a>.</p>
<p><code>13-01-2023:</code> hon hon baguette & bri'ish.</p>
<p><code>14-11-2022:</code> I'm moving my site and my cgit to <a href="https://www.aquilenet.fr/">aquilenet</a>.</p>
<p><code>19-05-2022:</code> I'm leaving <a href="https://enpls.org">enpls</a> for <a href="https://ada.wf">ada.wf</a>.</p>
<p><code>19-05-2022:</code> I'm leaving <a href="https://enpls.org">enpls</a> for <a href="https://ramle.be">ramle.be</a>.</p>
<p><code>13-04-2022:</code> add this section.</p>
</div>

View file

@ -1,12 +0,0 @@
<div id="main">
<p>Here you'll find links to pages which contain silly thoughts.</p>
<!--<p>Vous pouvez ici retrouver des liens vers des pages contenant parfois certaines pensées fugaces et autres (d'où le nom, habile). Comme ce format se rapproche presque du blog, j'ai préféré les écrire et générer ces pages avec OrgMode, afin d'avoir une lecture plus fluide (et moins de choses à écrire).</p>-->
<p>The <a href="about.html">about</a> page contains externals sources which I use on my site. They can be under other licences than GPL3 (unlike the code).</p>
<h2>Reverse WriteUp</h2>
<p>You can find some write ups about crackmes I wrote in French and English.</p>
<ul>
<li><a href="/org/reverse.html#org3d3e6e6">some WUs</a></li>
</ul>
</div>

View file

@ -2,11 +2,10 @@
<h2>Sites</h2>
<h3>Blog</h3>
<ul>
<li><a href="https://blogue.gyiwr.tf">blogue.gyiwr.tf</a> (in French)</li>
<li><a href="https://tilde.team/~rickg/blog/">tilde.team/~rickg/blog</a> (in French too)</li>
<li><a href="https://blogue.gyiwr.tf">blogue.gyiwr.tf</a></li>
</ul>
<h3>Git</h3>
<p>You can find all my projects on Gnous's git. I make mirrors on others git. I've also my own git with cgit. I begin to use it as my main git server and others as mirror.</p>
<p>Vous pourrez retrouver tous mes projets sur le git de Gnous. Je fais des mirroirs ensuite sur différents git. J'ai aussi commencé à faire mon propre git personnel avec cgit. Je prévois de n'utiliser plus que lui comme git principal et le reste comme mirroir.</p>
<ul>
<li><a href="https://git.gyiwr.tf">git.gyiwr.tf</a></li>
<li><a href="https://git.gnous.eu/Rick">git.gnous.eu/Rick</a></li>
@ -14,36 +13,35 @@
<li><a href="https://gitlab.com/gnousrick">gitlab.com/gnousrick</a></li>
</ul>
<hr />
<h2>Contact</h2>
<h3>Chat</h3>
<h2>Me contacter</h2>
<h3>Chat textuel</h3>
<h4>IRC</h4>
<ul>
<li>rick : irc.gnous.eu</li>
<li>gnousrick : irc.libera.chat</li>
</ul>
<h4>Matrix</h4>
<ul>
<li>@rick:exarius.org</li>
</ul>
<h4>Discord</h4>
<p>I try to avoid Discord. Please, contact me on IRC or Matrix. If you must use it, contact me with mail or something so I can send you my ID.</p>
<ul>
<li>Demandez Rick sur le Discord de GnousEU.</li>
<li>Rick#1734</li>
</ul>
<hr />
<h3>Audio</h3>
<p>I'm more comfortable with text. Send me a text message to prepare an audio chat !</p>
<h3>Chat vocal</h3>
<p>Je suis davantage disponible en textuel. Si vous voulez vraiment faire un chat vocal, prévenez moi en premier !</p>
<h4>Mumble</h4>
<ul>
<li>rick : mumble.gnous.eu</li>
</ul>
<h4>Matrix & Discord</h4>
<p>cf. previous section</p>
<h4>Discord</h4>
<p>cf. section précédente</p>
<hr />
<h3>Mail</h3>
<ul>
<li>rick [at] gnous [dot] eu</li>
</ul>
<hr />
<h3>Social networks</h3>
<p>I'm trying to minimize my presence on social networks. Please, use my blog or my email to contact me or take news</p>
<h3>Réseaux sociaux</h3>
<p>J'essaie de réduire ma présence sur les réseaux sociaux. Privilégiez mon blog ou un moyen cité plus haut pour me contacter ou prendre des nouvelles.</p>
<h4>Mastodon</h4>
<ul>
<li><a href="https://toot.gnous.eu/@rick">@rick@toot.gnous.eu</a></li>

View file

@ -1,35 +0,0 @@
%link%
rel="stylesheet" href="/css/projets.css"
%endlink%
<div id="main">
<p>You can find here a list of patches which I've written on some softwares. They are small and/or only fix some issues for me. If they are integrated or become useless (because of an update), they will be removed from this page.</p>
<div class="tableau">
<table>
<thead>
<tr>
<th>Software</th>
<th>Patch description</th>
<th>Patch</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="https://github.com/lxc/distrobuilder">distrobuilder</a></td>
<td>Use <code>mkisofs</code> instead of <code>genisoimage</code>.</td>
<td><a href="/patches/distrobuilder-mkisofs.patch"><code>distrobuilder-mkisofs.patch</code></a></td>
</tr>
<!--
<tr>
<td><a href=""></a></td>
<td></td>
<td><a href="/patches/"></a></td>
</tr>
-->
</tbody>
</table>
</div>
</div>

View file

@ -1,199 +0,0 @@
%link%
rel="stylesheet" href="/css/projets.css"
%endlink%
<div id="main">
<p>You can fin all my personnal side projects on <a href="https://git.gnous.eu/Rick">the Gnous's git</a> or only those I find most interesting on <a href="https://git.gyiwr.tf">my own git</a>. However, a lot of code has french comments. Further down, you can find a list of my <a href="#projects">projects</a>, as their status.</p>
<h2>Thanks to</h2>
<p>I would like to thank all the people who helped me with my projects, who made me think and discover new things throught the code. Maintainers who have been benevolent, contributors who made my projects progress, and all other people.</p>
<p>Thanks to : lucie "soaring sparks" aka Jikhai, valsept, Bensuperpc, d0p1, outout, alol, mbahal, eban, ada, kernoeb, romain, Lunki, KeetKhat, solaris38.</p>
<p>I'll update this list in the futur. If I've forgotten you (sorry !), send me an email to solve it. You can send one too if you want to change your name or be removed from this list.</p>
<h2>Other contributions</h2>
<p>You can find below a list of projects to which I've contributed :</p>
<div class="tableau">
<table>
<thead>
<tr>
<th>Project</th>
<th>Description</th>
<th>Language used in my contributions</th>
<th>Maintainer / Contributor</th>
<th>My last contribution</th>
<th>License</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="https://github.com/kohi-gnu/barista/">barista</a></td>
<td>packages manager for Kohi-GNU</td>
<td>Perl</td>
<td>d0p1</td>
<td><a href="https://github.com/kohi-gnu/barista/commit/3c5acc23649b857b4649124ec8529a0bef7f96fc">3c5acc2</a></td>
<td><a href="https://github.com/kohi-gnu/barista/commit/78f4d57886cc4112c8aedd222223d62881a20603#diff-c693279643b8cd5d248172d9c22cb7cf4ed163a3c98c8a3f69c2717edd3eacb7">BSD3 Clause licence</a></td>
</tr>
<tr>
<td><a href="https://github.com/Chasseur-de-Succes">CDS</a></td>
<td>All the repositories used for the CDS Discord server</td>
<td>Docker, JS</td>
<td>Kekwel, TobiBiotex</td>
<td></td>
<td></td>
</tr>
<tr>
<td><a href="https://gitweb.gentoo.org/repo/gentoo.git/">Gentoo (paquet)</a></td>
<td>Packages for Gentoo</td>
<td>ebuild file</td>
<td>Marek Szuba (for xdotool) and Gentoo community</td>
<td><a href="https://gitweb.gentoo.org/repo/gentoo.git/commit/x11-misc/xdotool/xdotool-3.20211022.1.ebuild?id=a0d1e0007bcc8908755106352221ff5845a97124">xdotool</a></td>
<td><a href="https://gitweb.gentoo.org/repo/gentoo.git/tree/x11-misc/xdotool/xdotool-3.20211022.1.ebuild?id=a0d1e0007bcc8908755106352221ff5845a97124#n2">GNU GPL v2</a></td>
</tr>
<tr>
<td><a href="https://git.gnous.eu/gnouseu/">gnous</a></td>
<td>Organization with the code of GnousEU's projects</td>
<td></td>
<td>Outout, Romain</td>
<td></td>
<td></td>
</tr>
<tr>
<td><a href="https://ilearned.eu/">I Learned</a></td>
<td>community blog (in French)</td>
<td>Markdown</td>
<td>ILearned contributors</td>
<td><a href="https://ilearned.eu/comprendre-licences.html">Comprendre les différentes licences</a></td>
<td><a href="https://ilearned.eu/about.html#licence">CC-BY-NC-SA</a></td>
</tr>
<tr>
<td><a href="https://github.com/orgalan/">Orgalan</a></td>
<td>Organization with some tools to manage LAN, plane mirror</td>
<td></td>
<td>Lunki</td>
<td></td>
<td></td>
</tr>
<tr>
<td><a href="https://github.com/patternfly-yew/patternfly-yew">Patternfly-yew</a></td>
<td>crate to use Patternfly library with Yew</td>
<td>Rust</td>
<td>ctron and 7 contributors</td>
<td><a href="https://github.com/patternfly-yew/patternfly-yew/commit/f6ee9d0746583182bfe08f57992dacde67c7e3ad">f6ee9d0</a></td>
<td><a href="https://github.com/patternfly-yew/patternfly-yew/blob/main/LICENSE">Apache 2.0</a></td>
</tr>
<tr>
<td><a href="https://github.com/patternfly-yew/patternfly-yew-quickstart">Patterfly-yew-quickstart</a></td>
<td>crate with examples for Patternfly-Yew</td>
<td>Rust</td>
<td>ctron and 5 contributors</td>
<td><a href="https://github.com/patternfly-yew/patternfly-yew-quickstart/commit/0e9db7141a792ad96d1e1de2d0bd94a50da6dc70">0e9db71</a></td>
<td><a href="https://github.com/patternfly-yew/patternfly-yew-quickstart/blob/main/LICENSE">Apache 2.0</a></td>
</tr>
<tr>
<td><a href="https://github.com/mantisbt-plugins/source-integration">source-integration</a></td>
<td>MantisBT plugin to add commits coming from Git servers.</td>
<td>PHP</td>
<td>MantisBT Team and more than 50 contributors</td>
<td><a href="https://github.com/mantisbt-plugins/source-integration/commit/7ae74a0596b840528ae2b5efce47e21647f85b98">7ae74a0</a></td>
<td><a href="https://github.com/mantisbt-plugins/source-integration/blob/master/LICENSE">MIT</a></td>
</tr>
<tr>
<td><a href="https://gitlab.com/gnousrick/super-russrt">super russrt</a></td>
<td>web RSS aggregator</td>
<td>Rust</td>
<td>Alol, Mbahal</td>
<td><a href="https://gitlab.com/gnousrick/super-russrt/-/commit/5f569c2d348e46c089b1a001c4695ee52b9718d4">5f569c2d</a></td>
<td><a href="https://gitlab.com/gnousrick/super-russrt/-/blob/master/LICENSE">GNU GPLv3</a></td>
</tr>
<tr>
<td><a href="https://git.gnous.eu/RSV_Studio/Surprise_Dungeon">Surprise_Dungeon</a></td>
<td>Game inspired by Binding of Isaac, coded for the Yogscast Game Jam 2020</td>
<td>Game Maker Language</td>
<td>solaris38, Valsept</td>
<td><a href="https://git.gnous.eu/RSV_Studio/Surprise_Dungeon/commit/45221f99b8fa79517fb99dfe19908a41a649e0fa">45221f99b8</a></td>
<td><a href="https://git.gnous.eu/RSV_Studio/Surprise_Dungeon/src/branch/master/LICENCE">GNU GPLv3</a></td>
</tr>
<tr>
<td>███████</td>
<td>Crate █████████████████████████████████████</td>
<td>Rust</td>
<td>█████████████████████████</td>
<td>███████</td>
<td>Apache 2.0 or MIT</td>
</tr>
<tr>
<td>████████</td>
<td>Crate █████████████████████████████</td>
<td>Rust</td>
<td>█████████████████████</td>
<td>███████</td>
<td>Apache 2.0 or MIT</td>
</tr>
<!--
<tr>
<td><a href=""></a></td>
<td></td>
<td></td>
<td></td>
<td><a href=""></a></td>
<td><a href=""></a></td>
</tr>
-->
</tbody>
</table>
</div>
<h3>Notes</h3>
<h4>Gentoo</h4>
<p>I've only, for now, contribute to the xdotool package. I'll list all my patches if I submit more here.</p>
<h4>source-integration</h4>
<p>The next commit is mine too, but dregad seems to make small modifications on the REGEX. I prefer to put only the commits who have been authored by me.</p>
<h4>CDS</h4>
<p>The Discord server "Chasseurs De Succès" (Achievements Hunters) uses two (2) bots to check new achievements and set up appointments to play. I manage the infrastructure, with Docker containers deployments and data base. You can find more informations on <a href="https://blogue.gyiwr.tf/category/chasseurs-de-succes.html">my blog</a> (in French).</p>
<h4>Redacted projects</h4>
<p>Some lines of this table are censored. They contain some projects on which I've contributed with a secondary account, used for work or class projects. As you can find my identity with it, I prefer to avoid informations about them.</p>
<h2 id="projects">Projects</h2>
<p><span class="working">WORKING</span> means that I'm working on it.</p>
<p><span class="finished">FINISHED</span> means that the project is considered finished and will not receive any big update (unless I've a big idea).</p>
<p><span class="hiatus">HIATUS</span> means that I've paused the development (waiting to read some documentation, motivation...).</p>
<p><span class="archived">ARCHIVED</span> means that the project is archived and will not be updated at all. You can considered it as abandoned or a polished one.</p>
<ul>
<li>
<p><a href="https://git.gnous.eu/Rick/definitely-not-NVGs">definitely-not-NVGs</a> [<span class="working">WORKING</span>]</p>
</li>
<li>
<p><a href="https://git.gnous.eu/Rick/juniper-config-to-set">juniper-config-to-set</a> [<span class="finished">FINISHED</span>]</p>
</li>
<li>
<p><a href="https://git.gnous.eu/Rick/mastodon-icone">mastodon-icone</a> [<span class="archived">ARCHIVED</span>]</p>
</li>
<li>
<p><a href="https://git.gnous.eu/Rick/partage-notes">partage-notes</a> [<span class="archived">ARCHIVED</span>]</p>
<p>A simple web server with a generation script for Org files. However, a generation script and a simple copy in a folder servec by Nginx is enought.</p>
</li>
<!--
<li>
<p><a href=""></a> [<span class=""> </span>]</p>
<p></p>
</li>
-->
</ul>
</div>

162
lang/en/projets.html Normal file
View file

@ -0,0 +1,162 @@
%link%
rel="stylesheet" href="/css/projets.css"
%endlink%
<div id="main">
<p>Vous pouvez retrouver tous mes projets sur <a href="https://git.gnous.eu/Rick">le git de Gnous</a> ou juste ceux que je trouve les plus intéressants sur <a href="https://git.gyiwr.tf">mon git personnel</a>.</p>
<h2>Remerciements</h2>
<p>J'aimerai remercier tous ceux qui m'ont aidé dans mes projets, qui m'ont fait avancer, réfléchir, découvrir via le code de nouvelles choses. Que ce soit des mainteneurs et mainteneuses qui ont été bienveillants, des contributrices ou contributeurs qui ont fait avancer mes projets et ceux d'autres personnes.</p>
<p>Merci à : lucie "soaring sparks" aka Jikhai, valsept, Bensuperpc, d0p1, outout, alol, mbahal, eban, ramle, kernoeb, romain, Lunki, KeetKhat, solaris38.</p>
<p>Cette liste sera mise à jour au fur et à mesure. Si je vous ai oublié (désolé !), envoyez moi un petit message pour régler ce soucis. Idem si vous voulez ne plus apparaitre / changer de nom ou pseudo.</p>
<h2>Autres contributions</h2>
<p>Vous pouvez retrouver ci-dessous une liste des projets auxquels j'ai pu contribuer :</p>
<div class="tableau">
<table>
<thead>
<tr>
<th>Projet</th>
<th>Description</th>
<th>Langage utilisé pour mes contributions</th>
<th>Mainteneur / Contributeur</th>
<th>Ma dernière contribution</th>
<th>Licence</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="https://github.com/kohi-gnu/barista/">barista</a></td>
<td>gestionnaire de paquets pour Kohi-GNU</td>
<td>Perl</td>
<td>d0p1</td>
<td><a href="https://github.com/kohi-gnu/barista/commit/3c5acc23649b857b4649124ec8529a0bef7f96fc">3c5acc2</a></td>
<td><a href="https://github.com/kohi-gnu/barista/commit/78f4d57886cc4112c8aedd222223d62881a20603#diff-c693279643b8cd5d248172d9c22cb7cf4ed163a3c98c8a3f69c2717edd3eacb7">BSD3 Clause licence</a></td>
</tr>
<tr>
<td><a href="https://github.com/TobiBiotex/CDS-BOT">CDS-BOT</a></td>
<td>Bot Discord pour le Discord CDS</td>
<td>JS</td>
<td>Kekwel, TobiBiotex</td>
<td><a href="https://github.com/TobiBiotex/CDS-BOT/commit/da748d5fcf3c345a03c1342a36a3517ed134ecb3">da748d5</a></td>
<td><a href="https://github.com/TobiBiotex/CDS-BOT/commit/08fabd7d736fc4e4411f7da4c538946e7274e97c#diff-c693279643b8cd5d248172d9c22cb7cf4ed163a3c98c8a3f69c2717edd3eacb7">GNU GPLv3</a></td>
</tr>
<tr>
<td><a href="https://gitweb.gentoo.org/repo/gentoo.git/">Gentoo (paquet)</a></td>
<td>Paquets pour la distribution Gentoo</td>
<td>Fichier ebuild</td>
<td>Marek Szuba (pour xdotool) et communauté Gentoo</td>
<td><a href="https://gitweb.gentoo.org/repo/gentoo.git/commit/x11-misc/xdotool/xdotool-3.20211022.1.ebuild?id=a0d1e0007bcc8908755106352221ff5845a97124">xdotool</a></td>
<td><a href="https://gitweb.gentoo.org/repo/gentoo.git/tree/x11-misc/xdotool/xdotool-3.20211022.1.ebuild?id=a0d1e0007bcc8908755106352221ff5845a97124#n2">GNU GPL v2</a></td>
</tr>
<tr>
<td><a href="https://git.gnous.eu/gnouseu/">gnous</a></td>
<td>Organisation regroupant le code des projets GnousEU</td>
<td></td>
<td>Outout, Romain</td>
<td></td>
<td></td>
</tr>
<tr>
<td><a href="https://ilearned.eu/">I Learned</a></td>
<td>blog communautaire</td>
<td>Markdown</td>
<td>Contributeurs de ILearned</td>
<td><a href="https://ilearned.eu/comprendre-licences.html">Comprendre les différentes licences</a></td>
<td><a href="https://ilearned.eu/about.html#licence">CC-BY-NC-SA</a></td>
</tr>
<tr>
<td><a href="https://github.com/orgalan/">Orgalan</a></td>
<td>Organisation contenant du code pour gérer des LANs, miroir de plane</td>
<td></td>
<td>Lunki</td>
<td></td>
<td></td>
</tr>
<tr>
<td><a href="https://github.com/ctron/patternfly-yew">Patterfly-yew</a></td>
<td>crate pour utiliser la bibliothèque Patternfly avec Yew</td>
<td>Rust</td>
<td>ctron et 3 autres contributeurs</td>
<td><a href="https://github.com/ctron/patternfly-yew/commit/f6ee9d0746583182bfe08f57992dacde67c7e3ad">f6ee9d0</a></td>
<td><a href="https://github.com/ctron/patternfly-yew/blob/main/LICENSE">Apache 2.0</a></td>
</tr>
<tr>
<td><a href="https://github.com/ctron/patternfly-yew-quickstart">Patterfly-yew-quickstart</a></td>
<td>crate pour illustrer l'utilisation de la crate Patternfly-yew</td>
<td>Rust</td>
<td>ctron et 2 autres contributeurs</td>
<td><a href="https://github.com/ctron/patternfly-yew-quickstart/commit/0e9db7141a792ad96d1e1de2d0bd94a50da6dc70">0e9db71</a></td>
<td><a href="https://github.com/ctron/patternfly-yew-quickstart/blob/main/LICENSE">Apache 2.0</a></td>
</tr>
<tr>
<td><a href="https://github.com/mantisbt-plugins/source-integration">source-integration</a></td>
<td>Plugin MantiBT pour ajouter les commits venant de serveurs Git</td>
<td>PHP</td>
<td>MantisBT Team et plus de 50 personnes</td>
<td><a href="https://github.com/mantisbt-plugins/source-integration/commit/7ae74a0596b840528ae2b5efce47e21647f85b98">7ae74a0</a></td>
<td><a href="https://github.com/mantisbt-plugins/source-integration/blob/master/LICENSE">MIT</a></td>
</tr>
<tr>
<td><a href="https://gitlab.com/gnousrick/super-russrt">super russrt</a></td>
<td>aggrégateur RSS web</td>
<td>Rust</td>
<td>Alol, Mbahal</td>
<td><a href="https://gitlab.com/gnousrick/super-russrt/-/commit/5f569c2d348e46c089b1a001c4695ee52b9718d4">5f569c2d</a></td>
<td><a href="https://gitlab.com/gnousrick/super-russrt/-/blob/master/LICENSE">GNU GPLv3</a></td>
</tr>
<tr>
<td><a href="https://git.gnous.eu/RSV_Studio/Surprise_Dungeon">Surprise_Dungeon</a></td>
<td>Jeu inspiré de Binding of Isaac fait lors de la Yogscast Game Jam 2020</td>
<td>Game Maker Language</td>
<td>solaris38, Valsept</td>
<td><a href="https://git.gnous.eu/RSV_Studio/Surprise_Dungeon/commit/45221f99b8fa79517fb99dfe19908a41a649e0fa">45221f99b8</a></td>
<td><a href="https://git.gnous.eu/RSV_Studio/Surprise_Dungeon/src/branch/master/LICENCE">GNU GPLv3</a></td>
</tr>
<tr>
<td>███████</td>
<td>Crate █████████████████████████████████████</td>
<td>Rust</td>
<td>█████████████████████████</td>
<td>███████</td>
<td>Apache 2.0 ou MIT</td>
</tr>
<tr>
<td>████████</td>
<td>Crate █████████████████████████████</td>
<td>Rust</td>
<td>█████████████████████</td>
<td>███████</td>
<td>Apache 2.0 ou MIT</td>
</tr>
<!--
<tr>
<td><a href=""></a></td>
<td></td>
<td></td>
<td></td>
<td><a href=""></a></td>
<td><a href=""></a></td>
</tr>
-->
</tbody>
</table>
<h2>Notes</h2>
<h3>Gentoo</h3>
<p>Je n'ai, pour l'instant, contribué qu'au paquet xdotool. Si je soumets d'autres patchs, je ferais une liste de tous les paquets ici.</p>
<h3>source-integration</h3>
<p>Le commit suivant est aussi de mon ressort mais dregad semble avoir remodifié en plus la REGEX. Je préfère mettre du coup uniquement les commits que j'ai écrit.</p>
<h3>Projets censurés</h3>
<p>Certaines lignes de ce tableau sont censurées. Elles contiennent des projets sur lesquels j'ai contribué avec un compte secondaire me servant lors de projets tournant autour du travail ou des cours. Comme vous pouvez y retrouver ma vraie identité, je préfère passer sous silence les informations le permettant.</p>
</div>
</div>

View file

@ -3,23 +3,16 @@
<h2>Police</h2>
<p>J'utilise la police par défaut de votre navigateur.</p>
<h2>Favicon</h2>
<p>GIF dessiné par <a href="https://linktr.ee/VioletCross">VioletCross</a> (tous droits réservés, mais c'est mon furso, et toc). L'<a href="/img/original.gif">original</a> (264ko).</p>
<h2>Header</h2>
<p>Le Glider vient du site de <a href="http://www.catb.org/hacker-emblem/">catb</a>.</p>
<h2>Boutons web dans le footer</h2>
<p>Les liens des boutons sont souvent les sites sur lesquels j'ai pu trouver les boutons.</p>
<ul>
<li><a href="https://www.vim.org/buttons.php">Vim</a></li>
<li><a href="https://88by31.neocities.org/web.html">NFT, Paws, Cookies et Construction</a></li>
<li><a href="https://88by31.neocities.org/web.html">NFT, Paws et Cookies</a></li>
<li><a href="http://www.mabsland.com/Adoption.html">Panda de censure</a></li>
<li><a href="https://www.gnu.org/graphics/license-logos.html">GPL3</a></li>
<li><a href="https://my.fsf.org/member-benefits">Membre de la FSF</a> (vous devez avoir un compte FSF)</li>
<li><a href="https://www.w3.org/QA/Tools/Icons">Validation du W3C (CSS)</a></li>
</ul>
<h2>Annuaire</h2>

View file

@ -6,8 +6,7 @@
<h2>Prises de notes</h2>
<p>J'ai pu suivre quelques MOOCs ou conférences en ligne (et je prévois de continuer). Je prends des notes et j'essaie de faire des résumés ensuite de ces prises de notes. Vous pouvez retrouver ici des résumés de ces conférences.</p>
<ul>
<li><a href="/org/notes.html">mes notes</a></li>
<li><a href="livres.html">critiques de livres</a></li>
<li><a href="nec/sitemap.html">résumés & cheatsheets</a></li>
<!--<li><a href="autres/gpg.html">Clés GPG</a></li>-->
<!--<li><a href="inspiration.html">inspiration</a>: pourquoi avoir fait ce site comme ça ?</li>-->
<!--<li><a href=""></a></li>-->

View file

@ -8,25 +8,18 @@ rel="stylesheet" href="/css/copaings.css"
<ul>
<li><a href="https://enpls.org">outout</a></li>
<!--<li><a href="https://bensuperpc.org/">bensuperpc</a></li>-->
<li><a href="http://heartathack.club/">alol</a></li>
<li><a href="https://eban.eu.org">eban</a></li>
<li><a href="https://patchli.fr/">patch</a></li>
<li><a href="http://harlock.tor.d0p1.eu/">d0p1</a></li>
<li><a href="https://whiterose-infosec.super.site/">whiterose</a></li>
<li><a href="https://vixenchroma.com/">alyx</a></li>
<li><a href="https://n0x.cc/">nox</a></li>
<li><a href="https://silou.fr/">silou</a></li>
<li><a href="https://hippie.cat/">hippie</a></li>
<li><a href="https://ada.wf">ada</a></li>
<li><a href="https://ramle.be">ramle</a></li>
<li><a href="https://www.cyp.sh/">cyp</a></li>
<li><a href="https://vulpinecitrus.info">lux</a></li>
<li><a href="https://l4p1n.ch/">l4p1n</a></li>
<li><a href="https://www.woody.sh/">w00dy</a></li>
<li><a href="https://itarow.github.io/">itarow</a></li>
<!--<li><a href="https://atao.re/">atao</a></li>-->
<li><a href="https://ratakor.com/">ratakor</a></li>
<!--<li><a href="https://seesmakoto.000webhostapp.com/">makoto</a></li>-->
<li><a href="https://atao.re/">atao</a></li>
</ul>
<hr />
<ul>

View file

@ -6,8 +6,8 @@ le site de rick
ou.html : où me retrouver
copaings.html : copains & co
projets.html : projets
patches.html : patches
#a/ : annuaire
a/ : annuaire
rss.html : mes flux rss
autres.html : autres
#coucou.html : coucou
%endlinks%

View file

@ -3,13 +3,12 @@ rel="stylesheet" href="/css/index.css"
%endlink%
<div id="main">
<p>Bienvenue sur mon petit bout d'Internet, visiteur ! Laissez-moi me présenter.</p>
<p>Développeur sous GNU+Linux, j'utilise Gentoo pour travailler et Arch pour jouer, entre autres distributions et noyaux (tel que Void, OpenBSD ou encore GNU/Hurd). J'essaie d'apprendre l'écosystème de GNU/Guix. Si mon IDE principal est Unix avec Vim comme éditeur de texte, Emacs m'est utile comme agenda et TODO liste avec Orgmode. Grand amateur de logiciels libres, je suis aussi pour une sobriété numérique, aussi bien pour les PCs personnels que pour Internet et le WorldWideWeb.</p>
<p>Je suis admin pour la communauté <a href="https://gnous.eu">Gnous.eu</a>. Je m'occupe de la modération des différents services, entre autres choses.</p>
<p>Je développe principalement en Rust et en C. J'ai aussi appris et utilisé le Java, le Python, le HTML/CSS/PHP, le JavaScript (NodeJS, React Native...), le Go, le Bash, l'assembleur Z80 et le C++. Je les ai appris sur le tas ou étudiés à l'université.</p>
<p>Du côté cyber sécurité, je m'amuse à faire de la rétro intégénierie, un peu de forensic et de stéganographie; mais sans plus.</p>
<p>À côté de l'informatique, j'aime lire de la science-fiction (Asimov entre autres). Je suis aussi un chasseur de succès, je m'amuse à finir à 100% des jeux.</p>
<p>Le code source de ce site est trouvable sur mon git personnel ainsi que sur le git de Gnous sous licence AGPL3. Le contenu de ce site est sous licence CC-BY-SA sauf certaines parties, tel que les images ou la police, qui peuvent être sous des licences différentes. Vérifiez auprès des auteurs les sources de ces dernières.</p>
<p>Bienvenue sur mon petit bout d'Internet visiteur ! Laissez-moi me présenter.</p>
<p>Développeur et étudiant sous GNU+Linux, j'utilise Arch, Void et Gentoo quotidiennement. J'essaie d'apprendre l'écosystème de GNU/Guix. Si mon IDE principal est Vim, Emacs m'est utile comme agenda et TODO liste avec Orgmode. Grand amateur de logiciels libres, je suis aussi pour une sobriété numérique, aussi bien pour les PCs personnels que pour Internet et le WorldWideWeb.</p>
<p>Je suis admin pour la communauté <a href="https://gnous.eu">Gnous.eu</a>. Je m'occupe principalement de la modération des différents services.</p>
<p>Je développe principalement en Rust et j'apprends l'assembleur Z80 et le C++ pour des projets personnels. J'ai aussi appris et utilisé le Java, le Python, le HTML/CSS/PHP, le JavaScript (NodeJS, React Native), le C, le Go et le Bash. Je les ai appris sur le tas ou étudié à l'université.</p>
<p>En plus du développement, j'aime lire de la science-fiction (Asimov entre autres). Je suis aussi un chasseur de succès, je m'amuse à finir à 100% des jeux. À coté, je joue beaucoup à CounterStrike: Global Offensive où je suis actuellement DMG.</p>
<p>Le code source de ce site est trouvable sur mon git personnel ainsi que sur le git de Gnous sous licence GPL3. Le contenu de ce site est sous licence CC-BY-SA. Certaines parties, tel que les images ou la police, peuvent être sous des licences différentes.</p>
<p></p>
<!--
@ -24,22 +23,14 @@ rel="stylesheet" href="/css/index.css"
<h2>Nouveautés</h2>
<p>Je rajouterai les nouveautés intéressantes du site ici. Lisez les commits pour avoir plus de détails sur les petites modifications du site !</p>
<div id="news">
<p><code>04-04-2024:</code> utilisation de la norme ISO au lieu de drapeaux pour les langues.</p>
<p><code>04-10-2023:</code> migration vers un VPS chez <a href="https://contabo.com">Contabo</a>.</p>
<p><code>29-09-2023:</code> un joli favicon :).</p>
<p><code>30-05-2023:</code> une meilleure CSP pour éviter <a href="https://im-in.space/@kdy/110429056346185564">les injections de trackers</a>.</p>
<p><code>02-04-2023:</code> ajout de la page livres et suppression des drapeaux sur les pages sans traductions.</p>
<p><code>18-01-2023:</code> suppression de l'annuaire (temporaire).</p>
<p><code>13-01-2023:</code> rance & rosbeef.</p>
<p><code>14-11-2022:</code> je déménage mon site et mon cgit chez <a href="https://www.aquilenet.fr/">aquilenet</a>.</p>
<p><code>19-05-2022:</code> je quitte <a href="https://enpls.org">enpls</a> pour <a href="https://ada.wf">ada.wf</a>.</p>
<p><code>19-05-2022:</code> je quitte <a href="https://enpls.org">enpls</a> pour <a href="https://ramle.be">ramle.be</a>.</p>
<p><code>13-04-2022:</code> ajout de cette section.</p>
</div>
<hr />
<!--
<h2>L'annuaire est temporairement supprimé.</h2>
<h3>A propos de l'annuaire</h3>
<p>Vous pouvez trouver un lien vers mon annuaire. Sachez tout d'abord <strong>que vous avez besoin de JS</strong> pour accéder à ce site et qu'il fait des appels vers <strong>bootstrapcdn</strong> et <strong>code.jquery</strong>. Ce service n'a pas été codé par moi (je hais boostrap et les appels à du code externe) mais je le trouve beau et pratique. J'ai donc décidé de fermer les yeux sur les quelques défauts et plutot le chouchouter en le gavant de liens. Vous pouvez trouver <a href="https://github.com/sadgrlonline/yesterlinks">le code source de l'application</a> sur Github. Elle a été développée par <a href="https://sadgrl.online/">Sadness</a>, n'hésitez pas à aller voir <a href="https://links.yesterweb.org/">le site officiel</a>.</p>
<p><strong>Vous pouvez utiliser le site sans avoir de JS.</strong> Vous ne pourrez juste plus accéder aux filtres et à la recherche. Il est par ailleurs déjà rempli avec les liens du site officiel. Je suis en train de "nettoyer" un peu, pour ne garder que des liens que je trouve pertinent (de mon point de vue).</p>
@ -47,7 +38,6 @@ rel="stylesheet" href="/css/index.css"
<h4>Mais qu'ests ce que c'est qu'un annuaire ?</h4>
<p>Une fois la prévention faite pour les allergiques de JS et la présentation du service et de son code source, je peux expliquer ce qu'est un annuaire.</p>
<p>Avant l'arrivée des moteurs de recherches, il y avait les annuaires. Des grosses listes de sites avec une description et une catégorie pour facilement la trouver. Avec le temps, ils se sont perdus mais maintenant, en 2022, lorsque le web n'est devenu qu'un amat de sites centralisés truffés de Single Point Failure, ils redeviennent importants. Nous ne naviguons plus sur le web, on se contente d'aller sur Twitter, Instagram et TIktok, de temps en temps d'autres sites pour regarder des vidéos ou faire de la paperasse.</p>
<p>Ces annuaires permettent de redécouvrir le web. Tout comme les webrings. Après avoir regardé les sites intéressants de l'annuaire, allez voir les sites des copains ou de personnes que j'ai trouvé ici et là dans <a href="/fr/copaings.html">la catégorie "copains & co"</a>.</p>
<p>Ces annuaires permettent de redécouvrir le web. Tout comme les webrings. Après avoir regardé les sites intéressants de l'annuaire, allez voir les sites des copains ou de personnes que j'ai trouvé ici et là dans <a href="copaings.html">la catégorie "copains & co"</a>.</p>
<p>Il s'agit là <strong>d'un webring</strong>. Une chaine du web où tout le monde lie son site avec des amis ou des inconnus. J'ai d'ailleurs prévu d'en rejoindre qui permettent de parcourir plus facilement la chaine. Ils seront ajoutés en bas de la page copains.</p>
-->
</div>

View file

@ -1,110 +0,0 @@
%link%
rel="stylesheet" href="/css/livres.css"
%endlink%
<div id="main">
<p>J'étais un grand lecteur avant d'entrer dans les études supérieures. Mais avec le temps, j'ai peu à peu perdu de cette superbe. J'ai continué à lire beaucoup, mais ce n'était que de la documentation ou des articles de journaux et de blogs. Ce n'est pas la mort non plus.</p>
<p>Un jour, alors que je lisais le site de Stallman, je suis tombé sur un paragraphe qui m'a laissé songeur. Je me suis dit, après quelque temps de réflexions, que ce n'était pas une mauvaise idée. De lire dans les transports en commun, ou en attendant son train, ses bagages... Et cela tombe bien, je dois ces derniers temps me coltiner 1h de transports en commun par jour. Au lieu de rester cramponner à mon téléphone, pourquoi ne pas replonger dans la lecture ?</p>
<p>Vous pourrez donc retrouver ici quelques livres que j'ai lus et dont j'ai eu l'inspiration de faire une rapide revue pour vous les présenter. Je mettrai potentiellement des extraits ou le résumé, l'édition ou juste le titre du livre.</p>
<!-- https://developer.mozilla.org/en-US/docs/Web/HTML/Element/blockquote -->
<figure>
<blockquote cite="https://stallman.org/rms-lifestyle.html">
<p>
[...]. So I always carry a computer and a book. When I have a few minutes to wait and can sit down, I get work done. When I have to stand, or the wait isn't long enough to do anything useful on the computer, I read. [...]
</p>
<p>
[...] I notice the people around me, waiting anxiously [...]. They would be happier if they did as I do.
</p>
</blockquote>
<figcaption>Richard Mathew Stallman, <cite>RMS lifestyle</cite></figcaption>
</figure>
<hr />
<div>
<p class="infos-livre"><span class="titre">Mémoires vives</span>, Edward J. Snowden (2019)</p>
<p class="gras"><span class="">TLPL:</span> Autobiographie de Snowden, de son enfance à son exil en passant par révélations sur la NSA. À lire pour se rendre compte de la force mentale qu'il faut pour oser dévoiler tous ces secrets.</p>
<br />
<p>Le livre peut être vu en 3 grandes parties. L'enfance, l'entrée dans les services secrets et la vie de lanceur d'alerte. Je ne parlerais pas trop des 2 premières parties. La 3e est la plus intéressante. On se rend compte du système mit en place par la NSA (qui va se retourner en quelque sorte contre elle). C'est assez marrant de voir que tout ça a été causé par le fruit du hasard (le mauvais dossier sur le bureau de la mauvaise personne). Un passage raconte les différents niveaux de secrets, et notamment celui de ce dossier. Et voir que les politiciens, même avec l'accréditation la plus haute, ne pouvaient lire les dossiers me donne froid dans le dos. On dirait une mafia, un État dans l'État. J'espère que nous n'en sommes pas à ce niveau-là en France.</p>
<p>J'ai aussi été beaucoup touché de voir Snowden préparer sa fuite et le futur pour sa femme et sa mère. Il y a des extraits du journal intime de sa femme à la fin qui permet de mieux se rendre compte de ce que vivent les proches des lanceurs d'alerte (menaces, harcèlements, pression des autorités...). Il explique aussi les choix qu'il a dû faire, WikiLeaks ou pas ? Contacter quels journalistes ? Ce ne sont pas des questions que l'on se pose forcément mais voir l'envers du décor pour la diffusion de ce genre de documents est captivant.</p>
<p>On voit aussi une certaine frustration de Snowden par rapport à ses amis, collègues et concitoyens. Frustration que je partage aussi.</p>
<figure>
<blockquote cite="Mémoires Vives">
<p>
À quoi bon me mettre dans tous mes états concernant la surveillance exercée par le pouvoir si mes amis, mes voisins et mes concitoyens ne demandaient qu'à inviter les grosses sociétés à les épier chez eux et leur permettaient de regarder aussi efficacement dans leurs placards que s'ils naviguaient sur Internet ?
</p>
</blockquote>
<figcaption>Edward J. Snowden, <cite>Mémoires Vives</cite></figcaption>
</figure>
<p>Après cette lecture, j'éprouve davantage de respect envers cet ancien espion qui a fait un travail titanesque pour pouvoir montrer au monde l'étendue des manigances des services secrets américains (et aussi des 5 yeux). Snowden finit quand même sur une note d'espoir, en montrant quelques actions entreprises par le Sénat américain et les institutions européennes pour réduire cette surveillance de masse. On peut cependant se demander si tout le monde n'a pas déjà oublié les révélations et <a href="https://www.laquadrature.net/2023/03/23/la-france-premier-pays-deurope-a-legaliser-la-surveillance-biometrique/">si cela est toujours d'actualité en 2023</a>.</p>
<hr />
</div>
<!--
<div>
<p class="infos-livre"><span class="titre">Printeurs</span>, Ploum (2020)</p>
<p class="gras"><span class="">TLPL:</span> </p>
<p></p>
<hr />
</div>
<div>
<p class="infos-livre"><span class="titre">Le mage du Kremlin</span>, ()</p>
<p class="gras"><span class="">TLPL:</span> </p>
<p></p>
<hr />
</div>
<div>
<p class="infos-livre"><span class="titre">Ravage</span>, (1943)</p>
<p class="gras"><span class="">TLPL:</span> </p>
<p></p>
<hr />
</div>
<div>
<p class="infos-livre"><span class="titre">La société poisson rouge</span>, ()</p>
<p class="gras"><span class="">TLPL:</span> </p>
<p>très optismite (trop ?). vision un peu "vieux" (les amis d'internet qui ne sont pas de vrais amis rofl). bonne mise en garde. je ne suis pas d'accord sur tous les points mais je le trouve juste sur beaucoup d'autres</p>
<hr />
</div>
-->
<div>
<p class="infos-livre"><span class="titre">Métro 2033</span>, (2002)</p>
<p class="gras"><span class="">TLPL:</span> Un bon livre de catastrophe qui, même avec des défauts d'écritures, nous transporte dans un métro étouffant. Les aventures de Artyom sont très agréables à suivre, je conseille !</p>
<p>On sent que l'auteur est un débutant, et il s'agit en effet de son premier livre. Il a été publié sous forme de feuilleton sur <a href="http://www.glukhovsky.ru/">son site</a> en premier (ça a son importance dans le reste de la critique). Le style est un peu décousu et on retrouve quelques incohérences. Tout d'abord, le roman se passe environ 20 ans après l'apocalypse nucléaire. Si en 20 ans, beaucoup de choses ont changé, on reste proche de la guerre et de nombreuses personnes doivent avoir un souvenir marqué du monde d'avant. Être un peu rationnel. On se retrouve quand même avec une société qui est effrayé au nom "bibliothécaire" et qui se donne des noms indiens pour désigner des castes. Pourquoi pas, mais seulement 20 ans après l'apocalypse, le monde aurait pu basculer à ce point dans certaines parties du métro ? Parmi les plus intellectuels en plus ? Ça me semble un peu trop gros.</p>
<p>Une impression de mystification de l'apocalypse alors que les adultes de 30 ans se souviennent bien de la vie d'avant. D'une station à une autre, les discours sont radicalement différents, on a l'impression de passer de vieux nostalgiques à de vieux fous. Peut-être que c'était pour symboliser la différence de vécu entre les personnes.</p>
<p>J'ai aussi des impressions de Deus Ex Machina régulièrement. On passe d'une situation X à Y en 2 lignes, on perd la personne dont on avait besoin et on en retrouve une autre qui va pile poil mettre dans la bonne direction parce qu'il faut faire avancer l'histoire. Certes, il faut ça dans un livre pour avancer, mais l'impression de voir ça toutes les 10 pages parce que l'auteur souhaite montrer une station spécifique et la folie qui s'en dégage... Ça devient vite lourd.</p>
<p>Je trouve aussi la fin un peu stupide. <span class="spoil">Le fait que les Noirs (disons-le, des fourmis mutantes), continuent à rendre fous les gens en essayant de rentrer en contact... Elles auraient pu comprendre qu'il fallait attendre ou trouver un autre moyen de communication</span>. Cette partie mise à part, la fin est très chouette, je l'ai bien aimé. Et elle se suffit à elle-même ! Pas besoin de lire les 2 autres tomes pour pouvoir apprécier l'histoire. Et je ne pense pas acheter les autres tomes.</p>
<p>J'ai commencé à jouer au jeu après la lecture du livre. Je trouve que c'est mieux dans ce sens que dans l'autre. On a déjà toutes les clés en main pour comprendre l'histoire qui est un peu survolée.</p>
<p>Pour conclure, allez sur le site de l'auteur si vous savez parler russe. Vous pourrez retrouver le texte intégral de Métro 2033 !</p>
<hr />
</div>
<!--
<div>
<p></p>
<hr />
</div>
-->
<!--
<div>
<p class="infos-livre"><span class="titre"></span>, ()</p>
<p class="gras"><span class="">TLPL:</span> </p>
<p></p>
<hr />
</div>
-->
<p>À venir (seront lus mais pas forcément ajoutés ici): Le voyage fantastique, La prophétie des abeilles, La société industrielle et son avenir, Ces guerres qui nous attendent (saisons 1 et 2), La peste...</p>
<p>Liste de souhait: Stagiaire au spatioport Omega 3000 et autres joyeusetés que nous réserve le futur</p>
</div>

View file

@ -3,7 +3,6 @@
<h3>Blog</h3>
<ul>
<li><a href="https://blogue.gyiwr.tf">blogue.gyiwr.tf</a></li>
<li><a href="https://tilde.team/~rickg/blog/">tilde.team/~rickg/blog</a></li>
</ul>
<h3>Git</h3>
<p>Vous pourrez retrouver tous mes projets sur le git de Gnous. Je fais des mirroirs ensuite sur différents git. J'ai aussi commencé à faire mon propre git personnel avec cgit. Je prévois de n'utiliser plus que lui comme git principal et le reste comme mirroir.</p>
@ -21,12 +20,11 @@
<li>rick : irc.gnous.eu</li>
<li>gnousrick : irc.libera.chat</li>
</ul>
<h4>Matrix</h4>
<ul>
<li>@rick:exarius.org</li>
</ul>
<h4>Discord</h4>
<p>J'essaie d'éviter Discord. Essayez plutôt Matrix ou IRC. Si cela ne peux pas être autrement, contactez moi avec un autre moyen pour que je vous fournisse mon ID.</p>
<ul>
<li>Demandez Rick sur le Discord de GnousEU.</li>
<li>Rick#1734</li>
</ul>
<hr />
<h3>Chat vocal</h3>
<p>Je suis davantage disponible en textuel. Si vous voulez vraiment faire un chat vocal, prévenez moi en premier !</p>
@ -34,7 +32,7 @@
<ul>
<li>rick : mumble.gnous.eu</li>
</ul>
<h4>Matrix & Discord</h4>
<h4>Discord</h4>
<p>cf. section précédente</p>
<hr />
<h3>Mail</h3>

View file

@ -1,35 +0,0 @@
%link%
rel="stylesheet" href="/css/projets.css"
%endlink%
<div id="main">
<p>Vous pouvez retrouver ici une liste de patches que j'ai pu faire sur différents logiciels. Ils sont minimes ou ne règlent un problème qui ne concerne que moi. S'ils sont intégrés dans le logiciel ou deviennent inutiles, ils seront supprimés de cette page.</p>
<div class="tableau">
<table>
<thead>
<tr>
<th>Logiciel</th>
<th>Description du patch</th>
<th>Patch</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="https://github.com/lxc/distrobuilder">distrobuilder</a></td>
<td>Utilisation de <code>mkisofs</code> au lieu de <code>genisoimage</code>.</td>
<td><a href="/patches/distrobuilder-mkisofs.patch"><code>distrobuilder-mkisofs.patch</code></a></td>
</tr>
<!--
<tr>
<td><a href=""></a></td>
<td></td>
<td><a href="/patches/"></a></td>
</tr>
-->
</tbody>
</table>
</div>
</div>

View file

@ -3,17 +3,17 @@ rel="stylesheet" href="/css/projets.css"
%endlink%
<div id="main">
<p>Vous pouvez retrouver tous mes projets sur <a href="https://git.gnous.eu/Rick">le git de Gnous</a> ou juste ceux que je trouve les plus intéressants sur <a href="https://git.gyiwr.tf">mon git personnel</a>. Plus bas, vous pouvez trouver la liste de mes <a href="#projets">projets</a>, ainsi que leur état.</p>
<p>Vous pouvez retrouver tous mes projets sur <a href="https://git.gnous.eu/Rick">le git de Gnous</a> ou juste ceux que je trouve les plus intéressants sur <a href="https://git.gyiwr.tf">mon git personnel</a>.</p>
<h2>Remerciements</h2>
<p>J'aimerai remercier tous ceux qui m'ont aidé dans mes projets, qui m'ont fait avancer, réfléchir, découvrir via le code de nouvelles choses. Que ce soit des mainteneurs et mainteneuses qui ont été bienveillants, des contributrices ou contributeurs qui ont fait avancer mes projets et ceux d'autres personnes.</p>
<p>Merci à : lucie "soaring sparks" aka Jikhai, valsept, Bensuperpc, d0p1, outout, alol, mbahal, eban, ada, kernoeb, romain, Lunki, KeetKhat, solaris38.</p>
<p>Merci à : lucie "soaring sparks" aka Jikhai, valsept, Bensuperpc, d0p1, outout, alol, mbahal, eban, ramle, kernoeb, romain, Lunki, KeetKhat, solaris38.</p>
<p>Cette liste sera mise à jour au fur et à mesure. Si je vous ai oublié (désolé !), envoyez moi un petit message pour régler ce soucis. Idem si vous voulez ne plus apparaitre / changer de nom ou pseudo.</p>
<h2>Contributions</h2>
<h2>Autres contributions</h2>
<p>Vous pouvez retrouver ci-dessous une liste des projets auxquels j'ai pu contribuer :</p>
@ -39,12 +39,12 @@ rel="stylesheet" href="/css/projets.css"
<td><a href="https://github.com/kohi-gnu/barista/commit/78f4d57886cc4112c8aedd222223d62881a20603#diff-c693279643b8cd5d248172d9c22cb7cf4ed163a3c98c8a3f69c2717edd3eacb7">BSD3 Clause licence</a></td>
</tr>
<tr>
<td><a href="https://github.com/Chasseur-de-Succes">CDS</a></td>
<td>Dépôts des différents codes utilisés pour le serveur Discord CDS</td>
<td>Docker, JS</td>
<td><a href="https://github.com/TobiBiotex/CDS-BOT">CDS-BOT</a></td>
<td>Bot Discord pour le Discord CDS</td>
<td>JS</td>
<td>Kekwel, TobiBiotex</td>
<td></td>
<td></td>
<td><a href="https://github.com/TobiBiotex/CDS-BOT/commit/da748d5fcf3c345a03c1342a36a3517ed134ecb3">da748d5</a></td>
<td><a href="https://github.com/TobiBiotex/CDS-BOT/commit/08fabd7d736fc4e4411f7da4c538946e7274e97c#diff-c693279643b8cd5d248172d9c22cb7cf4ed163a3c98c8a3f69c2717edd3eacb7">GNU GPLv3</a></td>
</tr>
<tr>
<td><a href="https://gitweb.gentoo.org/repo/gentoo.git/">Gentoo (paquet)</a></td>
@ -79,24 +79,24 @@ rel="stylesheet" href="/css/projets.css"
<td></td>
</tr>
<tr>
<td><a href="https://github.com/patternfly-yew/patternfly-yew">Patternfly-yew</a></td>
<td><a href="https://github.com/ctron/patternfly-yew">Patterfly-yew</a></td>
<td>crate pour utiliser la bibliothèque Patternfly avec Yew</td>
<td>Rust</td>
<td>ctron et 7 autres contributeurs</td>
<td><a href="https://github.com/patternfly-yew/patternfly-yew/commit/e3a60c74cdeac7be5bdbc317d9a6c550f4e107a0">e3a60c7</a></td>
<td><a href="https://github.com/patternfly-yew/patternfly-yew/blob/main/LICENSE">Apache 2.0</a></td>
<td>ctron et 3 autres contributeurs</td>
<td><a href="https://github.com/ctron/patternfly-yew/commit/f6ee9d0746583182bfe08f57992dacde67c7e3ad">f6ee9d0</a></td>
<td><a href="https://github.com/ctron/patternfly-yew/blob/main/LICENSE">Apache 2.0</a></td>
</tr>
<tr>
<td><a href="https://github.com/patternfly-yew/patternfly-yew-quickstart">Patternfly-yew-quickstart</a></td>
<td><a href="https://github.com/ctron/patternfly-yew-quickstart">Patterfly-yew-quickstart</a></td>
<td>crate pour illustrer l'utilisation de la crate Patternfly-yew</td>
<td>Rust</td>
<td>ctron et 5 autres contributeurs</td>
<td><a href="https://github.com/patternfly-yew/patternfly-yew-quickstart/commit/41c4b87643975271a110d57d9b4f55eddcce4270">41c4b87</a></td>
<td><a href="https://github.com/patternfly-yew/patternfly-yew-quickstart/blob/main/LICENSE">Apache 2.0</a></td>
<td>ctron et 2 autres contributeurs</td>
<td><a href="https://github.com/ctron/patternfly-yew-quickstart/commit/0e9db7141a792ad96d1e1de2d0bd94a50da6dc70">0e9db71</a></td>
<td><a href="https://github.com/ctron/patternfly-yew-quickstart/blob/main/LICENSE">Apache 2.0</a></td>
</tr>
<tr>
<td><a href="https://github.com/mantisbt-plugins/source-integration">source-integration</a></td>
<td>Plugin MantisBT pour ajouter les commits venant de serveurs Git</td>
<td>Plugin MantiBT pour ajouter les commits venant de serveurs Git</td>
<td>PHP</td>
<td>MantisBT Team et plus de 50 personnes</td>
<td><a href="https://github.com/mantisbt-plugins/source-integration/commit/7ae74a0596b840528ae2b5efce47e21647f85b98">7ae74a0</a></td>
@ -150,50 +150,13 @@ rel="stylesheet" href="/css/projets.css"
</tbody>
</table>
<h2>Notes</h2>
<h3>Gentoo</h3>
<p>Je n'ai, pour l'instant, contribué qu'au paquet xdotool. Si je soumets d'autres patchs, je ferais une liste de tous les paquets ici.</p>
<h3>source-integration</h3>
<p>Le commit suivant est aussi de mon ressort mais dregad semble avoir remodifié en plus la REGEX. Je préfère mettre du coup uniquement les commits que j'ai écrit.</p>
<h3>Projets censurés</h3>
<p>Certaines lignes de ce tableau sont censurées. Elles contiennent des projets sur lesquels j'ai contribué avec un compte secondaire me servant lors de projets tournant autour du travail ou des cours. Comme vous pouvez y retrouver ma vraie identité, je préfère passer sous silence les informations le permettant.</p>
</div>
<h3>Notes</h3>
<h4>Gentoo</h4>
<p>Je n'ai, pour l'instant, contribué qu'au paquet xdotool. Si je soumets d'autres patchs, je ferais une liste de tous les paquets ici.</p>
<h4>source-integration</h4>
<p>Le commit suivant est aussi de mon ressort mais dregad semble avoir remodifié en plus la REGEX. Je préfère mettre du coup uniquement les commits que j'ai écrit.</p>
<h4>CDS</h4>
<p>Le serveur Discord Chasseurs De Succès utilise plusieurs bots pour pouvoir suivre l'ajout de succès sur des jeux Steam ainsi qu'organiser des rendez-vous réguliers pour pouvoir jouer. Je m'occupe principalement de l'infrastructure, avec la mise en place de conteneurs Docker pour pouvoir orchestrer le bon déploiement de ces bots ainsi que de la base de donénes. Vous pouvez trouver plus d'informations sur <a href="https://blogue.gyiwr.tf/category/chasseurs-de-succes.html">mon blog</a>.</p>
<h4>Projets censurés</h4>
<p>Certaines lignes de ce tableau sont censurées. Elles contiennent des projets sur lesquels j'ai contribué avec un compte secondaire me servant lors de projets tournant autour du travail ou des cours. Comme vous pouvez y retrouver ma vraie identité, je préfère passer sous silence les informations le permettant.</p>
<h2 id="projets">Projets</h2>
<p><span class="working">EN COURS</span> signifie que je suis en train de travailler sur le projet.</p>
<p><span class="finished">FINI</span> signifie que le projet est considéré comme fini et ne recevra plus de grosses mises à jours, sauf idée soudaine.</p>
<p><span class="hiatus">HIATUS</span> signifie que le projet est en pause (attente de documentation, motivation...).</p>
<p><span class="archived">ARCHIVÉ</span> signifie que le projet est archivé et ne sera plus mis à jour du tout. Il est possible de le considérer comme abandonné ou dans un état satisfaisant que je peux geler.</p>
<ul>
<li>
<p><a href="https://git.gnous.eu/Rick/definitely-not-NVGs">definitely-not-NVGs</a> [<span class="working">EN COURS</span>]</p>
</li>
<li>
<p><a href="https://git.gnous.eu/Rick/juniper-config-to-set">juniper-config-to-set</a> [<span class="finished">FINI</span>]</p>
</li>
<li>
<p><a href="https://git.gnous.eu/Rick/mastodon-icone">mastodon-icone</a> [<span class="archived">ARCHIVÉ</span>]</p>
</li>
<li>
<p><a href="https://git.gnous.eu/Rick/partage-notes">partage-notes</a> [<span class="archived">ARCHIVÉ</span>]</p>
<p>Un simple serveur web avec un script de génération pour les fichiers Org. Cependant, un script de génération et une copie dans un dossier servi par Nginx suffit.</p>
</li>
<!--
<li>
<p><a href=""></a> [<span class=""> </span>]</p>
<p></p>
</li>
-->
</ul>
</div>

View file

@ -1,6 +0,0 @@
fr |en
apropos |about
autres |others
copaings|friends
ou |where
projets |projects

View file

@ -0,0 +1,99 @@
#+title: Au delà des couleurs, des interfaces adaptées au daltonisme
#+date: <2021-10-22 ven.>
#+html_link_up:../roadmap.html
* Introduction
[[https://devfest2019.gdgnantes.com/sessions/au_dela_des_couleurs__des_interfaces_adaptees_au_daltonisme/][Conférence DevFest 2019]] - [[https://twitter.com/Laoraw][Twitter]]
Conférence faite par Laura Wacrenier, UX Designer chez SonarSource (éditeur de SonarQube).
* Le daltonisme
Le daltonisme touche 8% de la population masculine caucasienne, 7% et 4% dans les populations asiatique et africaine. Seul 0.5% des femmes sont touchées par le daltonisme.
Cela s'explique par le fait que le gêne responsable du daltonisme est le gêne X.
Dans un oeil normal, des connes bleu, vert et rouge tapissent le fond de la rétine. Le daltonisme va faire muter ou disparaitre un ou des connes.
La forme de daltonisme la plus courante est celle qui affecte le conne vert: enrivon 6% des hommes dans le monde sont touchés.
Les couleurs vertes se fondent avec les couleurs jaunes et rouges, le violet disparait aussi.
* Bonnes pratiques
** Contrastes
*** Des textes
**** C'est quoi ?
Le contraste est la différence de couleur entre la couleur du texte et celle de son arrière plan.
Il existe des recommendations pour l'accessibilité: les WCAG (Web Content Accessiblity Guidelines). Ils ont fait plusieurs notes pour savoir si un site est accessible:
- A :: note minimum pour avoir un texte lisible
- AAA :: tout le monde peut lire le texte
**** Les outils
Il existe de nombreux sites web qui permettent de voir le contraste sur son site:
- webaim color contrast checker
- tanaguru contrast finder : conseille des palettes
- les outils intégrés aux navigateurs
- plugins pour les outils de design
*** Des éléments non textuels
Il est aussi possible de s'appuyer sur les WCAG en utilisant 2 couleurs proches. Un bon exemple est les routes sur l'interface de GMaps (bande de couleurs collées les unes aux autres).
Pour se rendre compte rapidement si des éléments non textuels sont accessibles, il suffit de mettre l'interface avec un filtre noir et blanc. Si on ne s'y retrouve plus, il n'y a pas
assez de contraste. Il existe aussi des outils pour ce faire:
- plugins pour les outils de design
- Let's get colorblind :: plugin FireFox
- Color Oracle :: logiciel pour passer l'interface du PC en noir et blanc (a aussi des filtres pour les différents types de daltonisme)
*La couleur n'est qu'une information supplémentaire et ne doit pas la contenir.*
*** Des Formes
Rajouter des formes pour préciser des informations, mettre le bouton en valeur avec une icone et un fond. Exemples:
- Spotify et le cercle en dessous du mode aléatoire s'il est sélectionné.
- SonarQube et les espaces blancs entre 2 couleurs sur des diagrammes camemberts
** Iconographie
Mettre une icone symbolisant l'action / le message. Rajouter du texte pour expliquer en cas de soucis et non pas juste encadrer le soucis en rouge.
** Labels / Description de couleur
Mettre la légende du graphique directement dans les parties concernées. Rajouter /le nom basique/ de la couleur sous celle-ci lorsqu'on peut en choisir plusieurs.
** Web 2.0
Le standart du web 2.0 souhaite qu'on souligne les liens. Cela permet de les rendre plus visibles.
** Le mode spécial daltonien
Il ne devrait pas exister ou du moins être activé par défaut. Les daltoniens n'ont pas forcément le temps / envie de chercher dans les paramètres.
** En conclusion
- contraste texte minimum AA
- ne pas utiliser les couleurs comme signifiant
- utiliser la texture, icones, labels, contraste de formes à la place
- liens soulignés
* Comment convaincre l'équipe
Les personnes en situation de handicap sont une minorité, cela peut freiner les supérieurs à faire des aménagements pour moins de 5% des utilisateurs. Cependant,
*ces améliorations sont bénéfiques à tout le monde*. Personne ne se plaint d'un site web trop facile à lire.
#+BEGIN_QUOTE
Solve for one, extend to many. ---Microsoft Inclusive Design
#+END_QUOTE
Exemples de cas où une interface accessible bénificie à tout le monde:
- handicape temporaire (cataracte...)
- indiquation de la couleur pour la chemise noir et bleue foncée pour éviter de se tromper avec une mauvaise luminosité
- contraste fort sur gmaps pour pouvoir voir rapidement l'application lorsqu'il y a beaucoup de soleil
*Tout le monde peut-être distrait ou impatient. Tout le monde vieillit.* La mise en place d'un standart maintenant permet de nous faciliter la vie dans plusieurs années.
Les designs trop simples sont l'équivalent d'un auto-sabotage.

View file

@ -0,0 +1,46 @@
#+title: Promouvoir son projet open-source comme une rock star !
#+date: <2021-10-25 lun.>
#+html_link_up:../roadmap.html
* Introduction
[[https://devfest2019.gdgnantes.com/sessions/promouvoir_son_projet_open_source_comme_une_rock_star__/][Conférence DevFest 2019]] - [[https://github.com/zenika-open-source/promote-open-source-project][Slides et cheatsheet]] - [[https://twitter.com/tbetous][Twitter]] - [[https://twitter.com/FranckAbgrali][Twitter]]
Conférence résumant ce que les auteurs ont vécu pour promouvoir leur projet. (@tbetous @FranckAbgrali).
* Le README
Le nom du projet ne doit pas être trop long ou avoir trop de "buzzname" dedans.
On peut ajouter la licence à la fin du README et *le structurer avec des éléments de formatage* du Markdown (ou autre format utilisé pour le fichier). Cela permet d'avoir
un README plus attractif et jolie. *Il est aussi recommandé de faire des sections* afin de pouvoir guider facilement l'utilisateur. L'ajout d'un GIF de démo est aussi utile
pour montrer comment utiliser le logiciel.
Les badges permettent aussi d'indiquer rapidement des informations.
** La documentation
Ajouter la documentation dans le README peut s'avérer lourd sur le long terme. Il vaut mieux utiliser un service externe (wiki de GitHub, Vuepress avec Netifly, Docz, Docusaurus...).
* Les stars
Le nombre de stars influence indirectement l'avis des utilisateurs (plus de stars = bonne santé du projet).
1. Communiquer le projet aux proches / collègues afin d'avoir une première base de stars
2. Communiquer ensuite le projet aux autres via des canaux de communications comme Reddit, HackerNews, Human Coders, Decto, ProductHunt...
3. Communiquer sur toutes les plateformes d'un coup pour profiter d'un coup de buzz
4. Ne pas négliger les petits canaux de communications
La meilleure période de la semaine pour communiquer se situe entre mardi et jeudi.
Comme pour les recommandations Youtube, GitHub Trending met en avant des projets via un algorithme (qu'on ne connait pas).
* Et après ?
Pour continuer à communiquer sur le projet, il faut faire:
- faire des articles (sur les technos du projet, quel problème il résout...)
- faire des conférences dessus
- des mises à jours régulières (pour montrer que le projet est actif)
- *organiser les issues pour permettre aux personnes de voir facilement comment contribuer*
- *remercier les contributeurs (tweet, section dans le README...)*
- construire sa communauté sur Slack, Discord... pour pouvoir mieux communiquer avec les utilisateurs et contributeurs

View file

@ -0,0 +1,118 @@
#+title: Le sommeil, à la recherche du temps perdu
#+date: <2021-10-21 jeu.>
#+html_link_up:../roadmap.html
* Introduction
[[https://devfest2019.gdgnantes.com/sessions/le_sommeil__a_la_recherche_du_temps_perdu/][Conférence DevFest 2019]] -- [[https://github.com/joow/sommeil][Dépôt Git de la conférence]]
Cette conférence n'a pas été faite par un professionnel mais se base sur les travaux scientifiques les plus récents sur le sommeil.
* Qu'est ce que le sommeil ?
Le sommeil est un état physiologique où on perd la notion du monde extérieur. C'est une état partagé par la quasi totalité des espèces.
Il permet de récupérer aussi bien au niveau physique que mental.
* Pourquoi on s'endort ?
** La Synchronisation
*On s'endort afin de synchroniser notre horloge interne.* Notre corps base sa synchronisation sur la lumière, c'est l'équivalent du [[https://fr.wikipedia.org/wiki/Network_Time_Protocol][protocole NTP]] pour les humains.
Au XXe siècle, 2 scientifiques se sont enfermés dans une installation sans lumière. Ils ont commencé à avoir un cycle de sommeil de 15h et 9h d'éveil.
Le rythme circadien humain est basé sur un cycle de 24h et la lumière permet de resynchroniser ce cycle.
Environ 40% de la population se couche tôt et 30% se couche tard. Cette particularité est génétique et héréditaire.
Si on se réveille avant l'heure de fixé par notre système, le cerveau n'est pas encore complètement allumé. Certaines parties peuvent ne pas "marcher", par exemple: le controle des émotions.
** La Molécule
Le corp génère une molécule tout au long de la période d'éveil: *l'adénosine*. À partir d'une certaine concentration, cela signale au corp qu'il faut aller se coucher.
*C'est un moyen de pression pour aller dormir.*
* Les différentes phases du sommeil
Il existe 2 grandes phases:
- sommeil lent (NREM[fn:1])
- sommeil paradoxal (REM[fn:2])
Le sommeil est découpé en cycle durant lesquels on passe du sommeil léger à profond puis à nouveaux léger avant de passer en sommeil paradoxal.
On a entre 3 et 6 cycles par nuit de ce type.
** Sommeil lent
Il se déroule en 3 phases:
1. endormissement (5 à 20 minutes)
2. sommeil léger (50% du temps de sommeil[fn:3])
3. sommeil profond (la phase qui nous permet de récupérer le plus)
*** Sommeil profond
Cette phase permet de consolider sa mémoire.
L'humain a une RAM qui stocke toutes les informations de la journée: l'hippocampe. L'équivalent du disque dur, la mémoire à long termes, est le cortex.
Losque l'on dort, cela permet de vider sa RAM dans son disque dur et de se souvenir des différents éléments de la journée.
*Ne pas dormir assez empeche de vider complètement la RAM.* Certaines informations seront perdues en plus parce qu'elles ne seront pas stockées dans le cortex.
De plus, on va pouvoir retenir moins de choses pendant la journée parce que la RAM est déjà en partie remplie.
** Sommeil Paradoxal
Lors de cette phase, le corp est paralysé et les yeux bougent sous les paupières. Il y a une forte acitvité cérébrale, parfois plus intense qu'en journée. Cela est dû aux nombreuses
communiquations qui se font entre les différentes parties du cerveau.
C'est aussi durant cette phase qu'on fait des rêves. Freud était le premier a avoir émis l'hypothèse que le cerveau produisait les rêves.
Si l'on pensait avant que les rêves étaient constitués des différents moments de la journée, des études récences ont montré qu'ils sont en fait constitué des émotions ressenties
mis en scène dans des situations différentes.
Cela permet d'évacuer les émotions de la journée et de créer de nouvelles connexions synaptiques.
* Combien de temps doit on dormir ?
Il faut dormir entre *7 et 9 heures*. Le meilleur temps de sommeil est 8 heures. Il faut bien sûr plus de temps pour les enfants et encore plus pour les nourrissons.
Si on ne dort pas assez, cela génère *une dette du sommeil* qui n'est pas récupérable (cf. [[*Sommeil profond]]).
** Et la sieste ?
La sieste est une bonne béquille si on dort bien. La NASA a autorisé la sieste pour tout son personnel. Elle ne sert cependant à rien si le sommeil est mauvais.
* Comment bien dormir ?
Si on dort mal, il faut aller voir le médecin mais éviter de prendre les somnifères s'il en prescrit. Il est préférable de suivre une thérapie comportementale.
Il faut :
- avoir des heures régulières de couchés (même le week-end)
- avoir une activité physique régulière
- se détendre
- ne pas prendre de caféine ou d'alcool
- pas de lumières, d'appareil électronique (la lumière bleue..)
* Et l'informatique ?
Il faut faire des applications avec moins de notifications. Utiliser les capteurs et les maisons connectées pour détecter le meilleur moment pour aller dormir.
Cela permettrait de réguler la température et la luminosité pour optimiser le sommeil.
* Ressources pour aller plus loin
** Livre
Un livre est recommandé à la fin de la conférence: *The Sleep Solution*.
** Liens
Ces liens sont disponibles en fin de slides.
- [[https://peterattiamd.com/matthewwalker1/][Why we sleep (podcasts)]]
- [[https://arxiv.org/abs/1805.02544][Need for Sleep: the Impact of a Night of Sleep Deprivation on Novice Developers' Performance]]
- [[https://qz.com/1301123/why-eight-hours-a-night-isnt-enough-according-to-a-leading-sleep-scientist/][Why eight hours a night isnt enough, according to a leading sleep scientist]]
- [[https://www.inserm.fr/dossier/sommeil/][Faire la lumière sur notre activité nocturne]]
* Footnotes
[fn:1] Not Rapid Eye movement
[fn:2] Rapid Eye Movement
[fn:3] Il ne précise pas s'il s'agit du temps total de sommeil ou juste de cette phase

View file

@ -0,0 +1,80 @@
#+TYP_TODO: TODO VU EnCours | DONE PasDeNotes
Fichier contenant les différentes conférences et vidéos que je prévois de regarder. Elles sont triées par ordre d'importance et par évènements.
* DevFest
** 2019
*** 21 octobre
**** PasDeNotes [[https://devfest2019.gdgnantes.com/sessions/comment_j_ai_fini_par_deployer_a_2h_du_matin_une_application_sur_aws_pour_piloter_des_voitures_electriques_avec_un_velo_d_appartement_/][Comment j'ai fini par déployer à 2h du matin une application sur AWS pour piloter des voitures électriques avec un vélo d'appartement.]]
**** EnCours [[https://devfest2019.gdgnantes.com/sessions/privacy_granted_by_maths/][Privacy granted by maths]]
**** DONE [[file:2019/opensource_promotion.org][Promouvoir son projet open-source comme une rock star !]]
**** TODO [[https://devfest2019.gdgnantes.com/sessions/success_in_programming/][Success in Programming]]
**** VU [[https://devfest2019.gdgnantes.com/sessions/pair_design___un_moyen_de_concevoir_a_deux_ou_plus/][Pair Design : Un moyen de concevoir à deux ou plus]]
**** TODO [[https://devfest2019.gdgnantes.com/sessions/le_web__ses_frameworks_et_ses_standards___deconstruire_pour_mieux__re__construire/][Le Web, ses frameworks et ses standards : déconstruire pour mieux (re?)construire]]
**** TODO [[https://devfest2019.gdgnantes.com/sessions/duniter___la_blockchain_ecolo/][Duniter : la blockchain écolo]]
**** TODO [[https://devfest2019.gdgnantes.com/sessions/tu_packages__comment___bazel_bazel_bazel___/][Tu packages comment ? Bazel bazel bazel !]]
**** TODO [[https://devfest2019.gdgnantes.com/sessions/null__undefined_and_maybe__a_tale_of_uncertainty/][# Null, undefined and maybe, a tale of uncertainty]]
**** TODO [[https://devfest2019.gdgnantes.com/sessions/gpgpu__utiliser_la_carte_graphique_pour_accelerer_vos_applications_/][GPGPU: Utiliser la carte graphique pour accélérer vos applications!]]
**** TODO [[https://devfest2019.gdgnantes.com/sessions/l_epopee_des_polices_css_de_comic_sans_aux_fontes_variables/][L'épopée des polices CSS de Comic Sans aux fontes variables]]
**** TODO [[https://devfest2019.gdgnantes.com/sessions/dr_gopher__anatomie_du_scheduler_golang/][Dr Gopher, Anatomie du Scheduler Golang]]
**** TODO [[https://devfest2019.gdgnantes.com/sessions/performance_tuning_of_go_applications_in_cloud/][Performance tuning of Go applications in Cloud]]
**** TODO [[https://devfest2019.gdgnantes.com/sessions/interactive_web_animation_with_svg/][Interactive web animation with SVG]]
**** TODO [[https://devfest2019.gdgnantes.com/sessions/les_specificites_des_jeux_de_societe_numeriques/][Les spécificités des jeux de société numériques]]
**** TODO [[https://devfest2019.gdgnantes.com/sessions/react_en_2019/][React en 2019]]
**** TODO [[https://devfest2019.gdgnantes.com/sessions/creer_votre_device_iot_connecte_en_quelques_heures/][Créer votre device IoT connecté en quelques heures]]
**** TODO [[https://devfest2019.gdgnantes.com/sessions/go_serverless_with_cloud_functions_for_firebase/][Go “serverless” with Cloud Functions for Firebase]]
**** TODO [[https://devfest2019.gdgnantes.com/sessions/apprenez_a_securiser_votre_cluster_kubernetes_par_la_pratique/][Apprenez à sécuriser votre cluster kubernetes par la pratique]]
**** TODO [[https://devfest2019.gdgnantes.com/sessions/docker__kubernetes___istio___tips__tricks___tools/][Docker, Kubernetes & Istio : Tips, tricks & tools]]
**** TODO [[https://devfest2019.gdgnantes.com/sessions/make_your_data_fabulous/][Make Your Data FABulous]]
**** TODO [[https://devfest2019.gdgnantes.com/sessions/decouvrez_micronaut__le_framework_qui_va_faire_du_bien_a_la_jvm__/][Découvrez Micronaut, le framework qui va faire du bien à la JVM !]]
**** TODO [[https://devfest2019.gdgnantes.com/sessions/workshop___kotlin_multiplatform___mutualiser_du_code_sur_ios_et_android/][Workshop - Kotlin Multiplatform : mutualiser du code sur iOS et Android]]
**** TODO [[https://devfest2019.gdgnantes.com/sessions/project_fugu__reaching_parity_with_native/][Project FUGU, reaching parity with native]]
**** TODO [[https://devfest2019.gdgnantes.com/sessions/le_graal_d_aws___decouverte_et_prise_en_main_de_chalice/][Le graal d'AWS : Découverte et prise en main de Chalice]]
**** TODO [[https://devfest2019.gdgnantes.com/sessions/understand_your_code_with_machine_learning_on_source_code/][Understand your code with Machine Learning on Source Code]]
**** TODO [[https://devfest2019.gdgnantes.com/sessions/la_guitare_lag_hyvibe/][La guitare Lâg HyVibe]]
**** TODO [[https://devfest2019.gdgnantes.com/sessions/kubernetes_enfin_ultra_simple_et_leger_avec_k3s/][Kubernetes enfin ultra simple et léger avec K3S]]
**** TODO [[https://devfest2019.gdgnantes.com/sessions/le_futur_de_la_gestion_des_dependances_node/][Le futur de la gestion des dépendances Node]]
**** DONE [[file:2019/sommeil.org][Le sommeil, à la recherche du temps perdu]]
**** TODO [[https://devfest2019.gdgnantes.com/sessions/building_a_complex_application_with_web_components_and_litelement/][Building a Complex Application with Web Components and LitElement]]
**** TODO [[https://devfest2019.gdgnantes.com/sessions/developper_une_api_cloud_ready_avec_quarkus/][Développer une API Cloud Ready avec Quarkus]]
**** TODO [[https://devfest2019.gdgnantes.com/sessions/react_native___comment_reussir_son_application_mobile/][React Native : comment réussir son application mobile]]
**** DONE [[file:2019/daltonisme.org][Au delà des couleurs, des interfaces adaptées au daltonisme]]
*** 22 octobre
**** TODO [[https://devfest2019.gdgnantes.com/sessions/dis_moi_doc__quelle_it_en_2025__/][Dis moi DOC, quelle IT en 2025 ?]]
**** TODO [[https://devfest2019.gdgnantes.com/sessions/comment_le_projet_euler_m_as_donne_envie_de_refaire_des_maths/][Comment le projet Euler m'a donné envie de refaire des Maths]]
**** TODO [[https://devfest2019.gdgnantes.com/sessions/the_web_is_on__f_i_r_e________conference_/][The Web is on 🔥 F.I.R.E. 🔥 !!!]]
**** TODO [[https://devfest2019.gdgnantes.com/sessions/lucy_in_the_sky_with_ml__building_the_ultimate_beatles_tribute_app/][Lucy in the Sky with ML: Building the Ultimate Beatles Tribute App]]
**** TODO [[https://devfest2019.gdgnantes.com/sessions/building_better_products_faster__devux_is_the_new_devops/][Building better products faster: DevUx is the new DevOps]]
**** TODO [[https://devfest2019.gdgnantes.com/sessions/back_in_black_hat___comment_se_faire_pogoter__hacker__bien_comme_il_faut_/][Back in Black Hat : Comment se faire pogoter (hacker) bien comme il faut!]]
**** TODO [[https://devfest2019.gdgnantes.com/sessions/una_gitlab__le_tp_a_roulette__/][Una-Gitlab, le TP à roulette !]]
**** TODO [[https://devfest2019.gdgnantes.com/sessions/les_mains_dans_le_cambouis_avec_webassembly/][Les mains dans le cambouis avec WebAssembly]]
**** TODO [[https://devfest2019.gdgnantes.com/sessions/how_to_build_cloud_native_ci_cd_pipelines_with_tekton_on_kubernetes/][How to Build Cloud-Native CI/CD Pipelines with Tekton on Kubernetes]]
**** TODO [[https://devfest2019.gdgnantes.com/sessions/ai___robot_cat___a_smart_cat/][AI + Robot Cat = A Smart Cat]]
**** TODO [[https://devfest2019.gdgnantes.com/sessions/storybook_pour_votre_design_system__un_conte_de_fees__/][Storybook pour votre design system, un conte de fées ?]]
**** TODO [[https://devfest2019.gdgnantes.com/sessions/premiers_pas_avec_un_microcontroleur_et_google_cloud_iot_core/][Premiers pas avec un microcontrôleur et Google Cloud IoT Core]]
**** TODO [[https://devfest2019.gdgnantes.com/sessions/bootiful_testing/][Bootiful Testing]]
**** TODO [[https://devfest2019.gdgnantes.com/sessions/cloud_rocks_my_si/][Cloud ROCKS my SI]]
**** TODO [[https://devfest2019.gdgnantes.com/sessions/core__le_principe__dans_le_doute_reboot__applique_a__net/][Core, le principe "dans le doute reboot" appliqué à .NET]]
**** TODO [[https://devfest2019.gdgnantes.com/sessions/svelte__la_nouvelle_revolution_des_applications_web/][Svelte, la nouvelle révolution des applications web]]
**** TODO [[https://devfest2019.gdgnantes.com/sessions/knative__a_kubernetes_framework_to_manage_serverless_workloads/][Knative: A Kubernetes Framework to manage Serverless Workloads]]
**** TODO [[https://devfest2019.gdgnantes.com/sessions/apache_pulsar_101__architecture__concepts_et_comparaison/][Apache Pulsar 101: architecture, concepts et comparaison]]
**** TODO [[https://devfest2019.gdgnantes.com/sessions/fpga__creer_du_materiel_en_programmant/][FPGA, créer du matériel en programmant]]
**** TODO [[https://devfest2019.gdgnantes.com/sessions/creons_notre_premiere_api_avec_nestjs/][Créons notre première API avec NestJS]]
**** TODO [[https://devfest2019.gdgnantes.com/sessions/il_faut_sauver_lora/][Il faut sauver LoRa]]
**** TODO [[https://devfest2019.gdgnantes.com/sessions/data___art/][Data + Art]]
**** TODO [[https://devfest2019.gdgnantes.com/sessions/_brancher_sa_guitare_a_son_navigateur___et_le_web_deviens_rock_n_roll____/][🤘🎸 Brancher sa guitare à son navigateur : Et le web deviens rock'n'roll ! 🤘🎸]]
**** TODO [[https://devfest2019.gdgnantes.com/sessions/game_development_with_unity_from_an_android_point_of_view/][Game Development with Unity from an Android Point of View]]
**** TODO [[https://devfest2019.gdgnantes.com/sessions/build_your_own_knowledge_graph_with_weaviate_on_gcp/][Build your own Knowledge Graph with Weaviate on GCP]]
**** TODO [[https://devfest2019.gdgnantes.com/sessions/developper_de_nouvelles_applications_avec_docker_app/][Développer de nouvelles applications avec Docker App]]
**** TODO [[https://devfest2019.gdgnantes.com/sessions/parcel_js___le_bundler_dont_vous_reviez___/][Parcel.js : le bundler dont vous rêviez ;)]]
**** TODO [[https://devfest2019.gdgnantes.com/sessions/infrastructure_as_code__il_n_y_a_pas_que_terraform_dans_la_vie/][Infrastructure As Code, il n'y a pas que Terraform dans la vie]]
**** TODO [[https://devfest2019.gdgnantes.com/sessions/webauthn__le_renouveau_de_l_authentification/][WebAuthn: Le renouveau de l'authentification]]
**** TODO [[https://devfest2019.gdgnantes.com/sessions/swift_superpowers/][Swift Superpowers]]
**** TODO [[https://devfest2019.gdgnantes.com/sessions/vega_au_secours_de_vos_visualisations_de_donnees/][Vega au secours de vos visualisations de données]]
**** TODO [[https://devfest2019.gdgnantes.com/sessions/informatique_quantique__je_suis_non_binaire/][Informatique quantique, je suis non binaire]]
**** TODO [[https://devfest2019.gdgnantes.com/sessions/jamstack__ou_comment_faire_des_sites_statiques_modernes_et_rapides/][JAMstack, ou comment faire des sites statiques modernes et rapides]]

1
nec/confs/index.org Normal file
View file

@ -0,0 +1 @@
Vous pouvez retrouver ici mes notes issues de conférences.

310
nec/moocs/powershell.org Normal file
View file

@ -0,0 +1,310 @@
#+title: Powershell
#+date: <2022-03-26 sam.>
* Avant-propos
Sources : [[https://www.skilleos.com/cours/apprendre-powershell-pour-debutants][Mooc Powershell sur Skilleos]]
**Les commandes n'ont pas pu être testées dans le cadre de ce
Mooc.**
Je m'appuie quelques fois sur le Bash pour expliquer comment marche
une commande.
* Introduction
Les commandes DOS marchent sous Powershell. Les commandes
Powershell sont appelées des *cmdlets*. Ces commandes peuvent
être système, utilisateur ou créées par l'utilisateur. Elles sont
*insensibles à la casse*, contrairement à Bash, et séparées par un
=;=. Elles retournent et affichent leur résultats sous la forme
d'objets ou de tableaux.
Une commande Powershell se découpe en 2 parties :
=verbe-nom=. Elles sont séparées par un =-=. Il existe différents
verbes (liste non exhaustive) :
| Verbe | Action générique |
|-------+----------------------|
| Get | récupérer |
| Set | définir |
| Start | exécuter |
| Stop | arreter |
| Out | sortir quelque chose |
| New | créer quelque chose |
Exemple de commandes :
* Get-Help : affiche l'aide
* Get-ChildItem : affiche les objets enfants
* Clear-Host : nettoie la console (= clear en bash)
Il existe des alias pour certaines commandes, =Clear-Host= = =cls=
par exemple. Pour pouvoir voir la liste des alias existants :
=Get-Alias=.
Powershell dispose de *son propre IDE*. Il se lance avec la commande
=ise=.
* <<comp>>Opérateurs de comparaison
** Nombres et String
On retrouve les mêmes opérateurs que Bash pour *les comparaisons
mathématiques* : =-eq=, =-ne=, =-gt=, =-lt=...
| Opérateur | Type | Effet |
|-----------+--------+-------------------------------------------------------------------|
| -eq | int | == |
| -ne | int | != |
| -lt | int | < |
| -le | int | <= |
| -ge | int | >= |
| -gt | int | > |
| -eq | string | Vérifie si 2 strings sont égales, ne prend pas en compte la casse |
| -ceq | string | Idem mais prend en compte la casse |
| -like | string | Comparaison avec une regex |
** Connecteurs logiques
Les opérateurs logiques sont tous simplement =-and= et =-or=.
* Pipeline
Elle s'utilise comme en Bash, avec =|= entre les commandes.
C'est intéressant de l'utiliser avec certaines méthodes pour filtrer
les sorties:
=get-member= (affiche attributs et méthodes) ou =select-object
attribut,attribut..= (affiche uniquement les attributs se
trouvant dans la liste).
Il est possible de manipuler l'objet passé dans le pipeline (ou les
objets s'il s'agit d'une liste). Cela peut être utile pour mieux
filtrer les objets et n'afficher que ceux avec un certain
attribut. *Il faut utiliser la variable* =$_= pour avoir l'objet
courant.
Exemple: =Get-PrinterDriver | Where-Object -FilterScript {$_.Manufacturer -eq "HP"}=
Aller voir [[comp][les opérateurs de comparaison]] pour plus d'informations.
* Sécurité
Il est possible d'avoir un filtre de sécurité pour interdire
l'exécution de scripts téléchargés sur des sites non officiels.
On peut vérifier le niveau de la politique d'exécution avec
=Get-ExecutionPolicy=. ELle peut être de plusieurs niveaux :
| Politique | Effet |
|--------------+--------------------------------------------------------------------|
| Unrestricted | On exécute tout |
| Restricted | Bloque tout |
| RemoteSigned | Demande la signature numérique de l'éditeur de script (par défaut) |
| Bypass | aucune restriction |
* Script
Les commentaires sur une ligne se font comme en Bash, avec un #.
Pour les blocs de commentaires, ils sont entourés par
=<# commentaires #>=.
** Variables
Les variables se déclarent et s'utilisent comme en Bash. Les espaces
peuvent cependant être mis lors de l'affectation de la variable :
=$variable = 5=.
*Il est possible de multiplier les strings*, comme en Python, pour
pouvoir avoir X fois une string : ="coucou " * 5= donne
"coucou coucou coucou coucou coucou".
Pour *faire des retours à la ligne* : =`n= dans la string.
Pour déclarer des blocs de textes, il faut utiliser des
*here-strings*.
#+begin_src powershell
$variable = @"
Bloc de texte
sur plusieurs lignes
"@
#+end_src
*** Typage
Il est possible de typer des variables lorsqu'on les déclare :
=[type] $variable=
On peut remplacer =type= par =string= ou =int=.
*** Constante
La déclaration des constantes se fait avec une commande :
=New-Variable=. Il faut lui préciser le nom ainsi que la valeur :
=New-Variable -name variable -value 1 -option Constant=.
Il faut utiliser =Remove-Variable= pour supprimer les constantes
créées.
*** Caste
Si la variable est typée, il est possible de la caster.
Pour caster en int : =[convert]::ToInt32($variable, string, int)=
*** Formatage de string
Pour pouvoir facilement formatter des strings, il existe
*l'opérateur -F* lors de la déclaration de la string :
="String 1 : {0} et une variable X : {1}" -F $val,$value=
Comme en C, il est possible de préciser des formats de valeurs à
afficher comme de l'héxadécimal à partir du décimal ou un certain
nombres de chiffres après la virgule. Exemple
*pour avoir 2 chiffres après la virgule* :
="2 chiffres après la virgule: {0:n2}" -F 3.1419=
[[https://social.technet.microsoft.com/wiki/contents/articles/7855.powershell-using-the-f-format-operator.aspx][Plus d'informations sur le formatage de string]].
** Instructions
La structure du if est classique, on y utilise les opérateurs de
comparaisons.
#+begin_src powershell
# le if et les else
if (variable -le val) {
# instructions
} elseif (variable -gt val ) {
# instructions
} else {
# instructions
}
# le switch
switch (value) {
{$_ -le val} {
# instructions;
break
} default {
# instructions
}
}
#+end_src
** Tableaux
Un tableau se déclare avec comme une variable. Ses différents
éléments sont séparés par une virgule : =$tableau =
"elem1","elem2"=. Pour initialiser *un tableau vide*, il faut lui
assigner =@()=.
Un tableau est un objet et on peut récupérer par exemple sa taille
via l'attribut =Count= : =$tableau.Count=.
On accède à un élément comme un tableau en Python ou en Java :
=$tableau[index]= et on modifie une valeur de la même manière :
=$tableau[index] = val=. Une autre méthode pour sélectionner le
premier object consiste à passer par un pipe :
=$tableau | Select-Object -First 1=.
Pour ajouter une valeur : ~$tableau += val~.
Il existe quelques fonctions dans l'objet des tableaux :
| Fonction | Effet | Paramètre | Valeur de retour |
|----------+----------------------------------------------------+-----------+---------------------------------------------|
| clear | vide le tableau | | |
| contains | vérifie si une valeur est présente dans le tableau | value | true si la valeur est présente, false sinon |
Pour pouvoir trouver un élément ressemblant à une regex ou à une
valeur : =$tableau -like regex=. Il retourne l'élément
correspondant.
Exemple de boucle pour itérer sur tous les éléments d'un tableau :
#+begin_src powershell
for ($i = 0; $i -le ($tableau.Count - 1); $i = $i + 1) {
# instructions
}
foreach ($i in $tableau) {
# instructions
}
#+end_src
** Fonctions
Si vous utilisez l'éditeur de Powershell, il faut *enregistrer puis
recharger* le script pour pouvoir exécuter les fonctions.
Contrairement au Bash, il faut déclarer les attributs en début de
fonction. Il est aussi possible de rajouter des contraintes sur ces
paramètres (juste sur un champ de valeur, obligatoire...). Les
paramètres peuvent avoir des alias qui seront utilisés comme des
arguments. Par exemple, un paramètre avec l'alias nombre :
=fonction -nombre 1=.
Il est possible de rajouter certaines fonctionnalités aux
fonctions. =[cmdletbinding()]= va permettre l'ajout d'options
automatiques liés aux cmdlet, comme l'option =-Verbose= qui permet
d'afficher les commentaires lors de l'exécution de la fonction. Ça
appelle automatiquement la méthode =Write-Verbose=.
Comme dans AWK, on peut préciser des blocs d'instructions qui
seront exécutés tout le temps en début et fin de fonction. Ils sont
cependant *optionnels* et il est possible d'écrire une fonction sans
aucun bloc spécial.
| Nom du bloc | Exécution |
|--------------+-------------------------|
| BEGIN | Au début de la fonction |
| END | À la fin de la fonction |
| PROCESS | Corp de la fonction |
Une fonction *avec des arguments non obligatoires*, qui est appelée
sans, va utiliser *des valeurs vides* à la place.
#+begin_src powershell
function foo {
[cmdletbinding()]
param (
[parameter (mandatory=$true)] # le paramètre est obligatoir
[string]$var,
[validaterange (0, 10)] # le paramètre doit être compris entre 0 et 10
[alias ("nombre")] # et a pour alias nombre
[int]$val,
[int]$bar # paramètre classique
)
BEGIN {
# instructions
}
PROCESS {
# instructions
}
END {
# instructions
}
}
#+end_src
* Liste de commandes
Il s'agit juste de montrer leur utilité, pas les arguments. Je vous
conseille de vérifier en premier comme la commande s'utilise avant
de l'exécuter.
| Commande | Fonctionnalité | Paramètres possibles |
|---------------+-------------------------------+-----------------------------------------------------------------|
| Get-Help | Affiche l'aide | |
| Get-Service | Liste des services | |
| Get-Command | Liste de toutes les commandes | Regex pour filtrer les commandes |
| Get-Alias | Liste de tous les alias | alias pour n'avoir les informations que sur celui-ci (et Regex) |
| New-Alias | Créer un nouveau alias | |
| Get-ChildItem | Affiche les objets enfants | |
| Clear-Host | Clear en Bash | |
| Write-Output | Echo en Bash | |
| Write-Host | Idem | -foregroung pour changer la couleur du texte |
| Out-File | Ecrit dans un fichier | |

View file

@ -1,14 +0,0 @@
server {
server_name gyiwr.tf;
root /var/www/gyiwr;
index index.html index.htm index.nginx-debian.html;
location / {
try_files $uri $uri/ =404;
}
location ~* \.(png|jpg|jpeg|gif)$ {
expires 365d;
add_header Cache-Control "public, no-transform";
}
}

View file

@ -1,47 +0,0 @@
From 91ab435f54d1665e5f5c0497568ae7985c6b8b38 Mon Sep 17 00:00:00 2001
From: rick <rick@gnous.eu>
Date: Wed, 25 Oct 2023 15:49:14 +0200
Subject: [PATCH] change genisoimage for mkisofs
---
distrobuilder/main_repack-windows.go | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/distrobuilder/main_repack-windows.go b/distrobuilder/main_repack-windows.go
index 76735f2..cbeae34 100644
--- a/distrobuilder/main_repack-windows.go
+++ b/distrobuilder/main_repack-windows.go
@@ -327,17 +327,17 @@ func (c *cmdRepackWindows) run(cmd *cobra.Command, args []string, overlayDir str
logger.Info("Generating new ISO")
var stdout strings.Builder
- err = shared.RunCommand(c.global.ctx, nil, &stdout, "genisoimage", "--version")
+ err = shared.RunCommand(c.global.ctx, nil, &stdout, "mkisofs", "--version")
if err != nil {
- return fmt.Errorf("Failed to determine version of genisoimage: %w", err)
+ return fmt.Errorf("Failed to determine version of mkisofs: %w", err)
}
version := strings.Split(stdout.String(), "\n")[0]
if strings.HasPrefix(version, "mkisofs") {
- err = shared.RunCommand(c.global.ctx, nil, nil, "genisoimage", "-iso-level", "3", "-l", "-no-emul-boot", "-b", "efi/microsoft/boot/efisys.bin", "-o", args[1], overlayDir)
+ err = shared.RunCommand(c.global.ctx, nil, nil, "mkisofs", "-iso-level", "3", "-l", "-no-emul-boot", "-b", "efi/microsoft/boot/efisys.bin", "-o", args[1], overlayDir)
} else {
- err = shared.RunCommand(c.global.ctx, nil, nil, "genisoimage", "--allow-limited-size", "-l", "-no-emul-boot", "-b", "efi/microsoft/boot/efisys.bin", "-o", args[1], overlayDir)
+ err = shared.RunCommand(c.global.ctx, nil, nil, "mkisofs", "-l", "-no-emul-boot", "-b", "efi/microsoft/boot/efisys.bin", "-o", args[1], overlayDir)
}
if err != nil {
@@ -413,7 +413,7 @@ func (c *cmdRepackWindows) modifyWim(path string, index int) error {
}
func (c *cmdRepackWindows) checkDependencies() error {
- dependencies := []string{"genisoimage", "hivexregedit", "rsync", "wimlib-imagex"}
+ dependencies := []string{"mkisofs", "hivexregedit", "rsync", "wimlib-imagex"}
for _, dep := range dependencies {
_, err := exec.LookPath(dep)
--
2.42.0

40
publish.el Normal file
View file

@ -0,0 +1,40 @@
;; Script Emacs pour exporter en HTML et Org des fichiers .org.
;;
;; Copyright (C) 2022 rick G. <rick@gnous.eu>
;;
;; This program is free software: you can redistribute it and/or modify it under
;; the terms of the GNU General Public License as published by the Free Software
;; Foundation, either version 3 of the License, or (at your option) any later
;; version.
;;
;; This program is distributed in the hope that it will be useful, but WITHOUT
;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
;; FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
;;
;; You should have received a copy of the GNU General Public License along with
;; this program. If not, see <https://www.gnu.org/licenses/>.
(require 'ox-publish)
(require 'htmlize)
(setq org-publish-use-timestamps-flag nil)
(setq org-publish-project-alist
'(
("nec"
:base-directory "nec"
:base-extension "org"
:exclude "cheatsheets"
:publishing-directory "www/nec"
:recursive t
:email "rick@gnous.eu"
:author "rick"
:with-email t
:language fr
:auto-sitemap t
:sitemap-title "Notes et Cheatsheets"
:htmlized-source t
:html-link-home "/"
:publishing-function (org-html-publish-to-html org-org-publish-to-org)
; :auto-preamble t
)
))
(org-publish-project "nec")