Compare commits

...

3 Commits

Author SHA1 Message Date
kitoy fcb85eeb9e Correction du menu responsive design 2023-04-16 17:41:49 +02:00
kitoy a9faa3f1fe Correction du menu responsive design 2023-04-16 17:40:05 +02:00
kitoy 75326f7798 Correction du menu responsive design 2023-04-16 17:40:05 +02:00
38 changed files with 573 additions and 249 deletions

1
.gitignore vendored
View File

@ -1 +1,2 @@
public/
update.sh

View File

@ -8,7 +8,7 @@ compile_sass = true
# Whether to do syntax highlighting
# Theme can be customised by setting the `highlight_theme` variable to a theme supported by Zola
highlight_code = true
highlight_theme = "monokai"
highlight_theme = "ayu-dark"
generate_rss = true
@ -21,3 +21,4 @@ music = "https://losprimos.eu"
xmpp = "kitoy__at__kitoy.me"
peertube = "https://video.antopie.org/video-channels/kitoy/videos"
gpg = ""
ssh_pubkey= ""

View File

@ -5,33 +5,28 @@ sort_by = "weight"
## Salut et bienvenue
Je ne sais par quel hasard tu t'es perdu pour arriver sur cette page :sourire:,
mais je te souhaite d'y trouver ce que tu cherches.
Je ne sais pas par quel hasard tu es arrivé sur cette page :sourire:,
mais je te souhaite d'y trouver ce que tu cherches et de trouver de nouvelles recherches.
Donc je t'explique un peu le menu comme ça je te fais une présentation guidé,
et au moins je sais quoi écrire ...
Ici, ça peut parler de musique, d'informatique, d'Internet, d'électronique, de
jardinage et peut-être de constructions en pierres sèches bientôt.
### Accueil
Donc l'accueil c'est ici; déjà c'est pas mal tu sais ou tu es: [](https://kitoy.me) :tada: .
Je fais beaucoup de choses différentes, j'aime bien l'informatique et plus particulièrement
Internet où ce qui s'y passe. J'ai besoin d'être souvent à l'extérieur et de bouger
donc je ne peux pas faire ça à plein temps sinon j'ai l'impression d'être enfermé.
Ça peut vous paraître bête mais c'est comme ça.
### Le blog
J'ai eu une carrière de musicien essentiellement qui m'a permis de beaucoup voyager,
et de partager des moments uniques avec des gens dont on ne sait rien, c'est appréciable.
Récemment je me suis mis à la construction en pierre sèche qui mèle le coté artistique avec
le fait d'être en extérieur plus le coté technique car il y a beaucoup de choses à apprendre.
. On s'adapte au terrain sur lequel on bâti et on fait travailler son imagination. Je vous laisse découvrir
[ce site](https://artmurpierreseche.book.fr/) qui en parle bien mieux que moi.
Je comptais parler beaucoup d'informatique au début, mais finalement je vais élargir un peu
les sujets ça permettra qu'il soit un peu plus vivant.
Et ça me motivera à en écrire plus car bon ... la motivation pour écrire les trucs
c'est moins que zéro ... Je fais des trucs mais je n'écris rien ...
Bientôt peut-être une page jardinage car j'aimerai partager des semences de plantes que
j'ai dans mon jardin et je commence a en avoir pas mal et en bonne quantité; donc
pourquoi ne pas en faire profiter les autres. J'ai appris quelques astuces pour
réussir des semis ou récupérer des plantes qui se sont cassés aussi, j'essaierai de vous en parler.
### Azul ?
Bon ça c'est un petit groupe de musique que j'ai formé et on fait
quelques représentation par ci par là; comme je suis content de ce qu'on fait
je le met sur mon site ça permet de montrer ce que je fais de mon coté artistique.
### Contact
Alors là, j'ai regroupé toutes les manières de me joindre;
comme ça beh ... tu as le choix. J'essaie d'utiliser des services qui demandent
peu d'informations personnelles en général; donc si tu veux me joindre ben l'effort
sera de t'inscrire sur un service qui respecte ta vie privée.
On en trouve beaucoup [ici a ce qu'il parait](https://chatons.org)
Voila! Bonne visite :sourire: .

View File

@ -1,18 +1,18 @@
+++
title = "Sauvegarder sa BDD et la restaurer"
date = 2020-04-14
description = "Exporter/Importer une base de données avec mariadb :sourire:"
description = "Exporter/Importer une base de données avec mariadb"
template = "articles.html"
+++
### D'abord l'export:
### D'abord l'export:
L'outil s'appelle mysqldump il est installé avec mariadb-server.
Donc on peut d'abord lister les base données pour être sûr de celle
que l'on veut exporter ?
Donc on peut d'abord lister les base données pour être sûr de celle
que l'on veut exporter ?
```bash
$ mysql -u root -p
$ mysql -u root -p
MariaDB [(none)]> SHOW DATABASES;
+--------------------+
| Database |
@ -27,20 +27,20 @@ MariaDB [(none)]> SHOW DATABASES;
```
Si par exemple on veut exporter la base nextcloud on tapera ceci
Si par exemple on veut exporter la base nextcloud on tapera ceci
dans notre shell:
``` bash
$ mysqldump -u root -p nextcloud > nextcloud_export.sql
``````
### Importer sa base de données
### Importer sa base de données
Pour importer notre fichier on va devoir créer la base et l'utilisateur qui aura
les droits sur la base.
les droits sur la base.
```bash
$ mysql -u root -p
$ mysql -u root -p
MariaDB [(none)]> CREATE DATABASE nextcloud;
MariaDB [(none)]> CREATE USER nextbase IDENTIFIED BY 'example';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nextcloud.* TO nextbase;
@ -48,13 +48,13 @@ MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> exit;
```
Si tout se passe bien normalement à la fin de chaque commande mysql
Si tout se passe bien normalement à la fin de chaque commande mysql
vous verrez un message Query OK ... , c'est que c'est bon :).
Maintenant on va pouvoir importer notre fichiers comme ceci :
Maintenant on va pouvoir importer notre fichiers comme ceci :
``` bash
$ mysql -u nextbase -p nextcloud < nextcloud_export.sql
```
Si vous n'avez aucun message d'erreur, c'est fini !
Si vous n'avez aucun message d'erreur, c'est fini !

View File

@ -0,0 +1,96 @@
+++
title = "Bienvenue sur Mastodon"
date = 2022-11-02
description = "Pour les oiseaux migrateurs"
template = "articles.html"
+++
J'ai décidé d'écrire un article sur la récente migration de masse suite au finalement rachat de Twitter par Elon Musk.
## Un avis mitigé
Ouaip, j'ai un avis un peu partagé sur la saga de ce rachat… À la fois, je suis content que les utilisateurs d'une plateforme manifeste leur mécontentement et en même temps quand je vois que la direction du Twitter était prête à assigné Monsieur E.Musk en justice quand il a dit : "finalement non..." Bien, je me dis qu'ils ont n'en ont vraiment rien à foutre des gens qui ont fait vivre et fait que cette plateforme se vende à prix d'or aujourd'hui.
Certes Elon Musk n'est pas une personnalité très appréciable avec un égo démesuré comme beaucoup de personnes ayant son compte en banque et son influence, mais je suis étonné que la migration se fasse une fois le rachat effectué et pas avant; en voyant l'ignorance que les dirigeants actuels de Twitter ont eu pour les utilisateurs·rices.
Je me dis que c'est avant tout un coup financier de vendre le bordel avant que la plateforme ne vaillent plus rien et que le racheteur est le pigeon de l'histoire. Ça sonnait un peu comme "Aller maintenant il faut payer !".
Et ça tombe bien, car c'est tombé sur quelqu'un à qui ça ne va pas bien faire mal au porte-monnaie, mais à son image, à son égo.
## Putain, mais arrête, ça n'a rien à voir avec le titre là !
Ben si un peu, si je commence avec intro peut être un peu maladroite (ouais tkt ça m'connait) c'est parce que Mastodon est très différent de Twitter sur ces points-là essentiellement. Mastodon c'est le nom d'un programme déjà… et pas d'une plateforme ou encore d'une entreprise. C'est un programme que l'on installe sur un ordinateur connecté à internet et qui fait des trucs. Là, c'est du microblogging en l'occurrence, du coup il y a des personnes qui s'y connaissent en ordinateur qui installe ce programme et le rendent disponible aux gens sur Internet; c'est le principe d'un service sur Internet. Souvent, c'est une asso, un groupe de potes, une seule personne qui s'occupe de cet ordinateur et ça change beaucoup de choses et si ça vous dit, vous pouvez faire pareil.
Alors pourquoi ils font ça ?
### Ils le font pour leur plaisir et celui des autres !
Et oui contrairement aux gens derrière Twitter qui cherchent à faire de l'argent, eux le font pour leur plaisir, car ils aiment ces trucs cool et pratiques qu'ont amenés les réseaux sociaux dans notre vie quotidienne. Tu vois de quoi je parle, car tu le fais aussi sur Twitter je te fais une petite liste non exhaustive :
* Faire profiter des photos des vacances à sa famille et ses amis
* Partager ses dernières créations !
* Relayer des articles/musiques/videos qu'on a trouvé qu'on a aimé
* Resté en contact avec des gens qu'on a rencontré à une soirée ou un évènement.
* S'informer (Tain celle-là elle est drôle)
* Gueuler de la merde en pleine place publique. (Oui Twitter et les réseaux sociaux, c'est comme une place publique)
Bref, on a tous pris l'habitude de vivre avec ça et tout cela est possible avec Mastodon, à sa manière, mais c'est possible et peut-être que tu trouveras ça plus pratique.
Ce qui diffère des plateformes commerciales (Twitter et cie) c'est qu'il est rare que les gens offre ce service dans un but lucratif et ça change beaucoup de chose.
* La publicité est plus rare voir inexistante
* Les données des utilisateurs·rices ne sont pas monétisées
* Les utilisateurs·rices ne sont pas gérés par des algorithmes
* Les gens qui s'occupent du service en ont autant besoin que toi !
* Les gens qui s'occupent du service ont une vie et font ce qu'ils peuvent pour faire le bonheur de leurs utilisateurs·rices et ne doivent rien à des actionnaires.
L'ordinateur sur lequel est installé le programme et la connexion internet derrière, en général, c'est les gens qui fournissent le service qui la paye. Ce n'est pas vraiment l'argent qui ça leur rapporte qui les intéressent, mais plus la liberté que ça leur donne. Généralement, ça leur coute plus d'argent que ça en leur rapporte et ils peuvent demander des dons pour financer l'achat de matériel ou pour financer la connexion internet nécessaire au fonctionnement du service.
Hé oui, chaque personne derrière une instance fait ce qu'elle peut pour faire fonctionner le logiciel avec des moyens souvent modeste ( surtout comparé aux plateformes commerciales ). C'est bien d'en avoir conscience, car si le service ne marche plus ne t'inquiète pas les administrateurs sont aussi confus·es que toi sinon plus, ils sont autant emm.... que toi et en plus, ils/elles font le taf pour remettre le truc sur pied. Donc si tu as des problèmes pour accéder à ton service Mastodon fait comme moi quand il me prend l'envi de travailler : *Assis toi et attend que ça passe !* Généralement, ils/elles font ce qu'ils peuvent et il y a beaucoup de bonne volonté derrière.
### Toi aussi participes aux plaisirs des autres !
Bon, tu viens de t'inscrire tout seul où avec ta bande de copains/copines et tout va bien ! Quand tu arrives sur Mastodon, la meilleure chose à faire, c'est un peu comme quand tu rentres dans un bistrot ou une fête où tu ne connais personne. Dis simplement : "Salut je viens d'arriver, ça a l'air cool ici !" ou un truc du genre, un truc gentil quoi ! T'as compris ! Tu verras, tu vas avoir des réponses gentilles, des partages, ça va lancer la machine et ça va faire plaisir à tout le monde ! Les gens sont très accueillants sur Masto.
Comporte-toi comme un abruti et ça se passera mal et tu vas gâcher le plaisir de tout le monde, au mieux tu vas générer du bruit et ton ego de troll sera content, mais très vite, tu seras banni et désinscrit non pas par un algorithme, mais par des gens qui seront tous d'accord pour que tu dégages ! Vraiment comme dans une teuf quoi.
### Il y a des teufs pour tout le monde
T'sais des fois quand tu débarques dans une teuf; tu vois que les gens ne sont pas vraiment en accord avec tes convictions, tes habitudes; genre toi t'es chasseur passionné et partisan et tu vas dans une teuf contre la chasse, tu… tu sens que ça peut mal se passer… Du coup avec Mastodon, tu as le choix de t'inscrire sur le serveur de ton choix avec des gens qui ont les mêmes passe-temps que toi. Si tu ne sens pas bien sur un serveur Mastodon où tu viens de t'inscrire, il y en a d'autres avec des gens qui partagent tes passions et avec qui ça passera mieu où l'ambiance te conviendras mieux, n'essaie pas d'imposer ta vision des choses, c'est peine perdue et toi comme les autres vont juste s'engueuler pour rien… Tu vas avoir des remarques chaque fois que tu vas partager des trucs et bon… vaut mieux aller partager ça avec des gens à qui ça fait plaisir. Au pire, tu peux même créer ton endroit à toi avec tes potes pour discuter de ce que tu veux.
## Oui il n'y a pas un Mastodon mais des instances Mastodon
Oui Mastodon est un service dit "Fédéré" et ça donne plein de bonnes choses. J'ai toujours vu les plateformes commerciales comme des arènes de jeux Romains. On prend des humains armés, des bêtes sauvages, on les fout ensemble dans un milieu clos et on mate le spectacle ! C'est divertissant et ça génère pas mal de fric ! Demande aux gens dans le milieu de la corrida, tu vas comprendre. Mais sur Mastodon, on ne veut pas forcement ça, on veut surtout faire la teuf et passé de bons moments. Du coup au lieu de créé un seul endroit on crée plein d'espaces pour des gens qui veulent se retrouver autour d'un thème en particulier ou juste un lieu avec plein de monde pour passer un moment cool.
## Ok mon copain ! Comment ça s'passe ?
Tu as donc un fil d'actualité avec seulement les posts des gens qui sont sur le même serveur que toi, ça s'appelle le fil local.
Mais tu peux très bien t'abonner à des gens qui sont un serveur différent. En gros, ça fonctionne comme le mail, si le compte qui que tu veux suivre, jean, on va dire, est sur le serveur qui s'appelle masto.social ben dans le champ recherche, tu tapes @[jean@masto.social](mailto:jean@masto.social) et hop tu peux l'ajouter et tu recevras tous ses posts sur ton fil perso.
### J'ai vu le fil global ça correspond à quoi ?
Dans le fil global, il y a les posts de tous les abonnements des utilisateurs·rices du serveur mis en commun. Et ça, c'est plutôt cool, car du coup sur un serveur qui affiche un thème précis ou des gens qui se retrouve autour d'idées politiques ou autres, on va moins avoir le cas ou des personnes irréconciliables doivent se supporter les uns les autres. Ça fait des petites communautés qui interagissent les unes avec les autres sans encourager le conflit social. Chaque utilisateur·rice est donc partie prenante de ce qui se retrouve dans le fil global du serveur et c'est plutôt cool :tada: .
Donc pour résumer, on a :
* Ton fil perso où il y a tes abonnements
* Le fil local où les posts de utilisateurs·rices du serveur
* Le fil global où on a les abonnements des utilisateurs·rices mis en commun
## Tout n'est pas parfait, mais on va dans le bon sens
Bien sur, il y a des soucis et du drama sur Mastodon ce n'est pas le paradis non plus, mais globalement, c'est un réseau social qui ouvre le champ des possibles et qui n'emprisonne pas les utilisateurs. Tu veux changer d'endroit, c'est prévu et tu pourras emmener avec toi tes followers et tes abonnements, et resté en contact avec les gens avec qui tu as créé des liens. Tu pourras aussi trouver une communauté où tu te sentiras bien et qui a un fonctionnement proche de tes idées. Et si tu as l'âme d'un influenceur, d'un animateur d'une communauté, tu pourras très bien créé la tienne :sourire: .
## Pour finir
Eh bien pour finir voici une série de liens qui te permettront de choisir ton serveur et de rentrer un peu plus dans les détails du fonctionnement du réseau social du service Mastodon. Il y a de tout, des serveurs généralistes avec pas mal de monde, des serveurs avec un thème particulier ou correspondant à une région géographique, des idées politiques, bref bienvenue à toi et je te souhaite de trouver un serveur où tu seras bien :-) .
* [Trouver une instance selon un thème](https://joinmastodon.org/fr/servers)
* [Trouver une instance sur des critères plus précis/techniques](https://mastodon.fediverse.observer/list)
* [Une explication de](http://) [Mastodon beaucoup plus complète](https://mastodon.help/)

View File

@ -0,0 +1,69 @@
+++
title = "Migration du serveur sous OpenBSD"
date = 2021-11-02
description = "Passage de Yunohost à OpenBSD :sourire:"
template = "articles.html"
+++
J'héberge mes données et mes services chez moi, j'ai toujours aimé le principe et j'ai rarement eu des problèmes en 7 ans d'hébergement 24/24 pour que j'en sois dissuader et que je passe à autre chose. Depuis que j'utilise OpenBSD en station de travail, je me suis toujours dis qu'un jour il faudrait que je me chauffe un peu pour me faire mon petit serveur de cloud, messagerie toussa avec ce système.
## C'est désormais chose faîtes.
J'écrirai une série d'articles sur comment je suis passé de Yunohost à OpenBSD, mais ça va être des articles techniques un peu saoulants à lire :tire_la_langue: ; je préfère donc commencer par les raisons qui m'ont fait changer de système et elles ne sont pas vraiment techniques mais plutôt personnelles.
## Yunohost est facile à vivre
Je dois avouer que Yunohost c'est bien fait; je l'ai utilisé pendant des années sans que ce soit chiant et énergivore de maintenir le truc en vie, il y a une interface très pratique pour  créer des comptes mails, installer des applications, configurer un nom de domaine, etc ... Ce qui est formidable pour moi avec Yunohost, c'est que l'essentiel pour la messagerie est là, on configure son nom de domaine, on créé un compte et on a du mail et sa messagerie instantanné (xmpp):+1: . On veut publier sur son site web: on installe une application de blog et c'est parti on a un truc complet, c'est quand même cool.
## Seulement voila ...
Lors des précédentes mise à jour, bien que je n'utilise et n'installe pas beaucoup d'applications il y a eu quelques frayeurs et quelques couac qui font qu'a chaque mise à jour et changement de versions il a fallu mettre les mains dedans et réparer les dégats. J'ai connu quelques restaurations de données difficiles ce qui m'a fait décider de sauvegarder le disque en entier sans passer par l'utilitaire de sauvegarde fourni par Yunohost qui a été marqué comme expérimental pendant un moment.
Passer des moments de galères comme ça peut vite me refroidir et je n'ai plus trop envie de toucher au bordel, je passe en mode : "Comme ça marche ! Donc on touche plus !", ce qui n'est pas très rassurant. On ne se sent pas vraiment en confiance et on est tirailler entre le fait de se dire "un jour faudra que je bloque du temps pour faire ma mise à jour " et " comme ça, ça marche alors pourquoi s'enm..... " :déçu:
Alors c'est vrai, du coup j'ai pas mal appris en bidouillant le système pour faire ce que je voulais et c'était cool, mais j'étais un peu confus car certaines applications venait de l'éditeur du logiciel directement  pendant que d'autres sont  fourni par la distribution Debian le système sur lequel Yunohost est basé, du coup même si on met à jour le système ça met à jours des applications et le flou s'installe. Moi je ne suis pas très doué en informatique :sourire:, mais du coup je ne prend pas de risques et j'aime bien quand les choses sont bien séparées. J'installe des applications ayant peu de mises à jour qui font un truc à la fois mais le font bien; d'où les mises à jour moins fréquentes. Quand je met à jour le système, c'est **que** le système et pas les applications et inversement. Ce problème n'est pas spécifique à Yunohost mais plus aux distributions linux en général; je n'ai jamais compris vraiment où se situer la frontière entre le système de base et les applications que j'avais installé.
Bref entre ça et le fait que d'un autre coté, mon ordis portable avec Openbsd tout les 6 mois je fais la mise à jour du système quand c'est annoncé (je reçois un mail me disant : salut y'a une nouvelle version), et ça se passe toujours bien ... Je veux dire par là que j'ai le sentiment de comprendre ce que je fais :
Ok donc première étape je met à jour le système, ça installe, ça redémarre !
Cool après on vérifie que la configuration du système est toujours ok et enfin on met à jour les applications. Voilà c'est fini.
Et à dans 6 mois pour les changements en profondeur :coeur: . De temps en temps on reçoit une alerte: "pensez à mettre à jour on a trouvé un bug dans ce programme du système !" ça se fait en une commande et Ciao.
Du coup je suis beaucoup plus en confiance car je n'ai que peu de surprises et je suis plus serein et plus volontaire à l'idée de faire les mise à jour car je sais que je ne vais pas y passer la soirée.
C'est très utile car ça devient une habitude et on reste avec un système relativement bien à jour.
## Les outils pour faire ses sauvegardes sont vraiment top !
Bon ... tout se fait en ligne de commande pour les utiliser mais je trouve que les solutions sont vraiment bien pensé pour un usage personnel. On a la solution qui consiste à cloner son disque en entier comme ça le jour où il casse ben on se retrouve avec un autre disque prêt à l'emploi, ça évite de longue perte de temps de réinstallation, restauration et ça en laisse pour aller acheter un autre disque et recommencer le processus. Et sinon en complément, il y a des outils pour faire des copies plus fines d'un dossier ou de fichiers en particuliers. On peut aussi utilisé des programmes fait pour ça, Deja-dup ou on m'avait conseillé pika qui a l'air très bien. Bref dans un environnement où on a un accès direct à la machine c'est vraiment bien. Vu que la machine où j'héberge mes données est chez moi; ça me convient parfaitement :tada:.
## Du coup avant de me lancer je teste le truc en looseday pour voir :tire_la_langue:
Mon serveur sous Yunohost fonctionne bien et il y a une communauté et des développeurs vraiment sympas et à l'écoute qui prennent le temps de régler les soucis des utilisateurs. C'est la grande force de Yunohost à mon avis. Le fait de savoir qu'il y aura des gens sympas pour m'aider en cas de soucis c'est vraiment très important et rassurant ! C'est ce qui me pousse à le conseiller à d'autres personnes, je sais que je ne les envoie pas dans un endroit un peu hostile où va se foutres d'eux. C'est vraiment impressionnant de voir la réactivité des réponses et les compétences qui vont avec !
Bref, du coup j'ai le temps pour faire un petit serveur aux petit oignons, j'installe les logiciels de mails et de messagerie instantanné un jour, j'installe des outils web la semaine d'après ... Ah oui, alors là gros changement ... Avant j'utilisai radicale pour mon agenda et mes contacts car ça ne faisait que ça et c'était simple. On créait ses agenda et ses carnets d'adresses sur une interface web ou sur son téléphone, pas besoin d'installer une application spécifique pour s'en servir, on a les mêmes applications sur Android et les fonctionnalités que sur Gmail, c'est parfait. Pour  mon ordinateur portable je m'en sert avec Thunderbird et ça fonctionne; c'est nickel :+1:.
## La tendance Nextcloud ...
Ouais ... c'est le logiciel à la mode :rire:; tu peux partager tes documents avec des personnes qui n'ont pas de compte avec des liens tout bêtes et/ou en plus il fonctionne un peu en mode réseau social; genre tu as un pote qui est inscrit sur un autre serveur que le tiens, tu le recherches avec son_pseudo@sonserveur.com et tu peux discuter et partager des fichiers avec lui. Du coup, c'est décentralisé, il n'y a pas qu'un seul serveur ou une structure  qui détiens les données de tout le monde et c'est complet, bref ... Mais alors par contre pour le coté simplicité je fais un truc et je le fais bien ... On est a l'opposé... Ça fait tout ... ça fait même trop tout :( ... Les agendas, les contacts, les fichiers, le tchat , la visio, le compte masto, la bureautique, la cueillete des grains de café ...:colere:  Je le garde car c'est à la mode et j'ai envie de tenter l'expérience; mais je me dis ne compte pas que sur ça car le jour où ça tombe en panne tu n'as plus rien ... Et ça ! c'est un truc pas rassurant du tout.
## Du coup Cryptpad comme alternative/complément
Ouais celui-la je l'adore car tu peux fournir une suite office à des potes ou des gens que tu ne connais pas, pas besoin d'inscription, de savoir qui ils sont et si ils veulent quand même un compte; un login, un mot de passe et ils ont leur p'tit espace. Pas besoin de mail ... rien ... les données sont chiffrer, l'administrateur ne peut rien faire à par garder le truc en vie. C'est cette idée qui me plait dans ce logiciel c'est que l'administrateur reste un peu plus à sa place et ne peut pas tout se permettre comme avec d'autres solutions. C'est même cool car ca enlève le coté support (j'ai perdu mon mot de passe, etc...) aux utilisateurs, tout est bien précisé comme quoi il faut bien garder son mot passe sinon c'est plié. Du coup exit les problèmes d'usurpation d'identité ( Tu peux changer mon mot de passe please ?? il faut me croire c'est moi le propriétaire de ce compte ) ... Le logiciel gagne en rapidité à chaque version c'est vraiment bien.
Voila, j'ai tout ce qu'il me faut en local:
* De quoi avoir mon site oueb (Un hébergement de pages HTML)
* Mon cloud perso (Agenda Fichier Contact)
* Ma bureautique collaborative
* Mes mails et ma messagerie instantanné
C'est cool ! Mon Yunohost, ça marche encore du coup :clap: :clap: on fait rien; ah ouais ça c'est cool on fait rien !
## Et un jour, vient la mise à jour du système !
Bon allez on va voir si ça se passe comme avec l'ordis portable. _A mon avis ça va merdé tu vas voir mais tu vas apprendre des trucs c'est bien_ ! Ouais je me parle tout seul, je suis à la fois péssimiste et optimiste et ça me va bien comme ça. Bon ... je lance le truc ... 1h après j'avais fini et j'ai passé plus de temps à attendre que ça télécharge qu'autre chose. Tout s'est fait par étapes sans se mélanger, le système d'abord et les applications ensuites, Nextcloud et les autres programmes fournis par Openbsd, Cryptpad non car il est n'est pas encore packagé mais dans l'ensemble c'est génial ! :tada: Du coup bon ben... allé  vas y ! On fait la migration et on met ça en ligne à la place de mon Yunohost, je vous raconterez ça plus tard car ça va devenir technique et c'est un peu chiant.
Kissoux et à bientôt :tire_la_langue: !

View File

@ -0,0 +1,96 @@
+++
title = "Réparation d'un joycon de Nintendo switch"
date = 2021-03-07
description = "Petite galère suite aux enchères :sourire:"
template = "articles.html"
+++
Salut ça va ?
Aujourd'hui j'ai décidé de vous pondre un article sur une petite galère qui m'est arrivé,
suite à la commande de joysticks pour les joycons de ma switch que j'avais cassé.
Ouais, je m'énerve quand je joue seul et les manettes prennent cher, alors bon
j'ai fini par cassé les joysticks et il fallait les remplacer.
J'ai trouvé ça pour quelques euros sur Ebay en plus y'en avait deux, je me suis dit:
"Allé ! C'est bon je les prends !!!" Je ne vous met pas le lien vous allez voir pourquoi ...
### Le début de la galère !
Le kit est livré avec des outils et tout bien bien ! Sans manuel, impéccable!
Je commence à démonter la manette, jusque là tout va bien vous enlevez les 4 vis
noires et vous ouvrez du coté extérieur vers le coté intérieur celui qui se clipse sur la console,
comme un livre en faisant attention aux nappes.
On décolle délicatement la batterie et on se retrouve devant 5 vis à enlever.
![Manette ouverte](/img/manette1.png)
On les vires et ensuite on ouvre le capot supérieur vers l'extérieur de la manette cette fois-ci.
Faîtes attention sur les boutons de devant il y a des ressorts, faut pas les perdres.
![ressort bouton](/img/boutonressort.png)
![ressort bouton2](/img/boutonressort2.png)
Là on se retrouve devant la carte mère du joycon et on va ôter une première nappe pour
pouvoir dévisser le joystick, ensuite on peut enlever sa nappe, ça se fait tranquillement sans forcer,
sans oublier de relever les petits clips(gris et noir) qui servent à les bloquer.
![ordre nappes](/img/manette2.png)
Bref, je met le nouveau joystick, je revisse le tout, je teste .... ça marche pas !
Alors je part en DRAMA 1.
Hé vouaallaaaa je l'ai cassé, j'chuis un c...... j'ai foiré, toute façon ma vie
c'est de la m....., pffff c'est chi... .
Puis après je me ressaisi et je me dis: on va testé avec l'autre quand même, pour voir si celui-là
ne va pas sur l'autre joycon des fois que.
Je teste... ça marche pas ! :déçu:
DRAMA 2
Plus jamais je touche un truc, fais ch... !
je suis bon à rien ... !
Puis je me ressaisi encore une fois tout de même; et je me dis attend... on va mettre
l'ancien qui marchait un peu pour voir si je suis vraiment un *boloss* ou pas !
#### ET LA !!!! ÇA MARCHE !!!! :colere:
DRAMA 3 :
Rhalala y'a des gens sur Ebay c'est vraiment des tocards ! Je le savais c'était pas cher,
je me suis fait eu ! Et M.... !
Et là carrément ! **Je réfléchie !** Un truc de fou qui m'arrive quasi tout le temps !
Je me dis après tout ... la parti mécanique du joystick elle marche ! C'est juste la parti
électronique qui ne fonctionne pas ! Alors si je démonte le merdier, je devrais trouver un
moyen de remplacer juste la parti électronique et le tour est joué ! Il n'y qu'a enlever
une plaque d'aluminium accroché aux quatre cotés du joystick ! Facile !
Alors si vous le faîtes, armez vous de patience et ne décrocher que trois cotés, de cette
manière, ce sera bien plus simple pour la remettre.
En effet, la parti électronique s'enlève très bien et donc je la met sur le
joystick qui ne s'est pas fait *(encore)* jeter par terre. Je vous met l'image de la
partie électronique à récupérer.
![Electronique joystick](/img/elecjoystick.png)
Je le reconnecte je remonte même pas la manette tellement j'ai confiance en moi, j'ai la manette
en morceau dans mes mains tremblantes ... je teste ....
## ET LÀ ! VICTOIRE !!!! :tada:
*( Musique du petit bonhomme en mousse, confetti toussa )*
Je remonte le tout, et je vais finir ma parti de Mario Deluxe; je ferai la deuxième manette demain !
Donc vous pouvez commander les joysticks vendu pour les joycons de switchs. Au mieux ça se
fait très bien et au pire vous pouvez toujours récupérer la parti électronique de l'ancien et
le mettre sur le nouveau.
A bientôt merci à vous d'avoir lu jusqu'ici !
Ciao Ciao :sourire: !

View File

@ -0,0 +1,50 @@
+++
title = "Réaliser ses sauvegardes sous OpenBSD"
date = 2021-11-08
description = "Plusieurs solutions pour faire de bonnes sauvegardes :sourire: "
template = "articles.html"
+++
# Réaliser ses sauvegardes sous OpenBSD
Je vais tenter dans cet article de vous présenter mes diverses solutions pour réaliser ses sauvegardes sous OpenBSD ainsi qu'une solution plus personnelle et plus rapide que j'utilise depuis un bon bout de temps.
## OK mon copain, on commence ?!
Ouais ! Bon alors avec OpenBSD il y a deux méthodes vraiment sympas, je te donne le lien ici vers [documentation officielle](https://www.openbsd.org/faq/faq14.html), car ils font ça très bien et si tu la veux en français il y a la [traduction sur openbsd.fr.eu.org](https://wiki.openbsd.fr.eu.org/doku.php/openbsd.org/faq/start) .
### Le dossier /altroot
Donc le principe du dossier /altroot c'est que si ton premier disque tombe en panne, hé ben c'est le disque que tu vas monter sur le dossier /altroot qui prendra le relais ! Ainsi pour mon serveur autohebergé, j'ai une grosse partition racine et comme ça tout est sauvegardé dedans chaque nuit à MINUIT; et quand mon disque SSD se cassera (j'en ai jamais cassé) hé bien j'aurais le disque de secours prêt à démarrer et je pourrais recommencer le processus avec un autre disque.
### Dump et restore
Ensuite il y a une méthode avec dump et restore, l'avantage de cet outil, c'est sait automagiquement ce qu'il faut sauvegarder comme fichier ou pas. Il ne les choisit pas hein, il n'y pas d'IA de m..... ou quoi, il sait simplement que tels fichiers sont générés par des processus ou au démarrage et ne concerne pas les données des utilisateurs alors, il ne les sauvegarde pas. Ça évite les erreurs lors de copies massives. Et de se prendre la tête, à savoir les dossiers à exclure ou pas.
Là aussi, tu peux brancher un disque en USB ou autres et sauvegarder les dossiers qui t'intéressent avec la commande :
**cd /Mon\_dossier/a sauvegarder && dump 0f - . | (cd /mon\_dossier\_de\_sauvegarde && restore -rf - )**
## Ouais, mais les sauvegardes, elles doivent être un peu longue là non ?
Ouais, mais on s'en fout un peu dans ce cas-là, tu ne vas pas brancher ton disque avant de partir prendre le train en devant absolument le débrancher quand c'est fini sinon ce n'est pas bon ! C'est complètement con.
Ce que je fais pour être un plus rapide, c'est que je sauvegarde aussi sur ma station de travail les données de mon serveur. Elles sont chiffrées pour l'essentiel et le disque de ma station de travail est chiffré aussi. Et au moins en cas de pépins ou que sais-je, ben j'ai une copie de secours disponible rapidement. Par contre là c'est intéressant que ce soit rapide. Je veux une modif sur le serveur; je sauvegarde vite fait et hop ! En avant les conneries !
Donc j'utilise rsync pour ça et ca fonctionne bien jusqu'a présent:
rsync -av --exclude={'run', 'cache'} -e "ssh -i ma\_clef\_ssh" [root@kitoy.me](mailto:root@kitoy.me):/var/ sauvegarde\_serveur/var/
rsync -av -e "ssh -i ma\_clef\_ssh" [root@kitoy.me](mailto:root@kitoy.me):/home/ sauvegarde\_serveur/home/
rsync  -av -e "ssh -i ma\_clef\_ssh" [root@kitoy.me](mailto:root@kitoy.me):/etc/ sauvegarde\_serveur/etc/
Et puis pour les bases de données, je finis avec un pg dans Paul comme ceci :
ssh -i mes\_clef [root@kitoy.me](mailto:root@kitoy.me) pg\_dumpall -U votreuser > sauvegarde\_serveur/save\_postgres.sql
J'ai bien évidemment tout ça dans un script et donc je peux faire ces opérations en une commande et ça prend quelques minutes à moins d'une minute selon s'il y a de l'activité ou pas… Je sais que : plus je le fais; plus c'est rapide. Plus je tarde, plus c'est long. Donc ça encourage à en faire souvent.
## Ouais, mais pourquoi tu fais ça comme ça ... tu peux générer des archives en local et les récupérer, c'est plus simple ?
Bien oui et non, car j'ai généralement bossé sur des systèmes avec peu d'espace disque et j'ai pris cette habitude pour sauver les données, générer une archive pour moi, c'est casse-gueule parce que le jour où il n'y a plus d'espace disque suffisant bah… la sauvegarde ne peut pas se faire et voila ça fait de jolies erreurs et ta backup n'est pas faîtes. Je peux aussi mettre ce script sur mon NAS aussi avec une clef qui ne peut se connecter au serveur qu'avec une adresse réseau défini (celle du NAS bien sûr ^^ ) et ça fait le travail aussi.
Voilà, j'espère que ce n'était pas trop relou, sache que si tu sais faire mieux c'est cool, je suis content pour toi et je serai ravi d'en apprendre plus. Pour l'instant, cette méthode fonctionne chez moi depuis pas mal de temps donc je la conserve :). Le top dans mes idées d'améliorations, ce serait de mettre en place une backup avec [Borg.](https://www.borgbackup.org/) J'ai commencé à y réfléchir, je trouve [Borg](https://www.borgbackup.org/) plutôt bien fichu alors ça ne devrait pas trop tarder.

View File

@ -1,5 +1,7 @@
+++
title = "Me contacter"
sort_by = "weight"
weight = 2
template = "contact.html"
+++

View File

@ -1,56 +0,0 @@
==================================================================
https://keybase.io/totoy
--------------------------------------------------------------------
I hereby claim:
* I am an admin of https://kitoy.me
* I am totoy (https://keybase.io/totoy) on keybase.
* I have a public key ASBvJD9AJ2irDIOYHNjeecmaqPb099dL-3Ces1XFH8jmLwo
To do so, I am signing this object:
{
"body": {
"key": {
"eldest_kid": "0120d246c1d10b5c6a62d23eb6f241e11a58d21cf688af0e3bb9f57234ce9b062f790a",
"host": "keybase.io",
"kid": "01206f243f402768ab0c83981cd8de79c99aa8f6f4f7d74bfb709eb355c51fc8e62f0a",
"uid": "680adeb572682f457c4bb491a9ed3119",
"username": "totoy"
},
"merkle_root": {
"ctime": 1609530342,
"hash": "e858d6e7b7d24297f119f026dbebdb4fe26cee821cca673707798a08fbf35007e328bb30af1383b4e419f6949ce476fc43db879b0a7f3bab6a9ac52b4f74ab46",
"hash_meta": "c2b517a128bee3983f2d5b4a67e456ac81197d92e11600a0a88c4229ca275ff5",
"seqno": 18560228
},
"service": {
"entropy": "iPeg0aR5FSB95dRge2VuffIs",
"hostname": "kitoy.me",
"protocol": "https:"
},
"type": "web_service_binding",
"version": 2
},
"client": {
"name": "keybase.io go client",
"version": "5.2.0"
},
"ctime": 1609530385,
"expire_in": 504576000,
"prev": "6d192a05f6127129538a8cb21aeaa8b04e05b7f9366eb9183f307ac7a728349b",
"seqno": 14,
"tag": "signature"
}
which yields the signature:
hKRib2R5hqhkZXRhY2hlZMOpaGFzaF90eXBlCqNrZXnEIwEgbyQ/QCdoqwyDmBzY3nnJmqj29PfXS/twnrNVxR/I5i8Kp3BheWxvYWTESpcCDsQgbRkqBfYScSlTioyyGuqosE4Ft/k2brkYPzB6x6coNJvEIMll2kP2G1H8oRuUPb2OAOP4Sl8WwJr0BXjXv9fIgzzrAgHCo3NpZ8RAbB2ae0j9MTEHDfVxwu9TCXWueFhBtyRNM+912rMnz0A3ZWOrwtoAaxbx83FyGqysj2ROPuBCdfa8YRTZU2txAKhzaWdfdHlwZSCkaGFzaIKkdHlwZQildmFsdWXEILdaZybe4QkqF7fJomtxTlxCHwfOjCSYvRqSxHmDLcKYo3RhZ80CAqd2ZXJzaW9uAQ==
And finally, I am proving ownership of this host by posting or
appending to this document.
View my publicly-auditable identity here: https://keybase.io/totoy
==================================================================

View File

@ -1,8 +1,10 @@
// kitoy <kitoy__at__kitoy.me>
@import "./color.scss";
@import "./color.scss";
@import "./fonts.scss";
$font-stack: Helvetica, sans-serif;
$font-stack: 'Rosa Black Sans', sans-serif;
html{
@ -11,7 +13,7 @@
body {
font: 100% $font-stack;
font-weight: 700;
color: $color_lines;
background-color: $back;
}
@ -128,6 +130,12 @@
color: $back;
}
ul {
list-style-type: none;
margin: 0;
padding: 0;
}
.menu p{
margin-top: -4px;
font-size: 5px;
@ -147,7 +155,7 @@
// Le blog
a:nth-child(3){
top: 63px;
top: 67px;
left: 37px;
}
@ -178,17 +186,23 @@
text-align: center;
}
.description {
.articles h2, h3, h4 {
color: $color_title;
}
.articles img {
height: 300px;
}
.articles .description {
text-align: center;
font-weight: 200;
font-weight: 300;
font-style: italic;
font-size: 17px;
padding-bottom: 30px;
color: $color_lines;
}
.articles h2, h3, h4 {
color: $color_title;
}
.pagination a {
border: 1px solid;
@ -214,10 +228,10 @@
text-align:center;
}
@media only screen and (max-width: 768px)
@media only screen and (max-width: 980px)
{
.articles {
margin-left: 3rem;
margin-left: 0;
position: relative;
}
@ -234,16 +248,16 @@
}
.menu {
width: 93%;
height: 5rem;
width: 100%;
height: 13vw;
border-radius: 0%;
border: 5px double;
border-color: $color_button;
position: sticky;
margin-top: 3rem;
margin-top: 0rem;
border-radius: 10px 10px 10px 10px;
margin-bottom: 0px;
margin-left: 7%;
margin-left: 0;
transform: none;
}
@ -253,7 +267,7 @@
}
.menu img {
transform: scale(2)
transform: scale(4)
}
.menu p {
@ -262,26 +276,26 @@
}
.menu img:hover{
transform: scale(3);
transform: scale(5);
}
a:nth-child(1){
top: 25px;
top: 35px;
left: 20%;
}
a:nth-child(4){
top: 25px;
top: 35px;
left: 40%;
}
a:nth-child(2){
top: 25px;
top: 35px;
left: 60%;
}
a:nth-child(3){
top: 25px;
top: 35px;
left: 80%;
}
@ -289,7 +303,7 @@
@media only screen and (max-width: 700px){
@media only screen and (max-width: 980px){
.menu p{
display:none;
}

View File

@ -5,14 +5,14 @@ $color_button: #FBCD4B;
$back: #282623;*/
/* Hiver */
/*
$color_lines: #F8F5F2;
$color_title: #EDB83D;
$color_button: #D70026;
$back: #000B29;
*/
/* Printemps */
// $color_lines: #DFE166;
// $color_title: #9A9EAB;
// $color_button: #ED5752;
// $back: #5D535E;
$color_lines: #DFE166;
$color_title: #9A9EAB;
$color_button: #ED5752;
$back: #282529;

20
sass/fonts.scss Normal file
View File

@ -0,0 +1,20 @@
@font-face {
font-family: 'Rosa Black Sans';
src: url('fonts/hinted-RosaSans-Black.ttf') format('truetype');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'Rosa Black Italic';
src: url('/fonts/hinted-RosaSans-BlackItalic.ttf') format('truetype');
font-weight: normal;
font-style: italic;
}
@font-face {
font-family: 'Rosa Black Bold';
src: url('/fonts/hinted-RosaSans-Bold.ttf') format('truetype');
font-weight: bold;
font-style: normal;
}

View File

@ -1,9 +1,8 @@
services = [
{ name = 'mastodon', address = "https://social.bim.land/@totoy"},
{ name = 'Mastodon', address = "https://social.bim.land/@totoy"},
{ name = 'email', address = "kitoy__at__kitoy.me", obfuscate = true },
{ name = 'git', address = "https://kitoy.me/git"},
{ name = "music", address = "https://losprimos.eu"},
{ name = "xmpp", address = "kitoy__at__kitoy.me", obfuscate = true},
{ name = "peertube", address = "https://video.antopie.org/video-channels/kitoy/videos"},
{ name = "Souncloud", address = "https://soundcloud.com/user-169872639"},
{ name = "XMPP", address = "kitoy__at__kitoy.me", obfuscate = true},
{ name = "Peertube", address = "https://video.antopie.org/video-channels/kitoy/videos"},
]

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 MiB

BIN
static/img/elecjoystick.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 MiB

View File

@ -1,99 +1,135 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.2" width="184.26mm" height="184.26mm" viewBox="0 0 18426 18426" preserveAspectRatio="xMidYMid" fill-rule="evenodd" stroke-width="28.222" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" xmlns:ooo="http://xml.openoffice.org/svg/export" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:presentation="http://sun.com/xmlns/staroffice/presentation" xmlns:smil="http://www.w3.org/2001/SMIL20/" xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0" xml:space="preserve">
<defs class="ClipPathGroup">
<clipPath id="presentation_clip_path" clipPathUnits="userSpaceOnUse">
<rect x="0" y="0" width="18426" height="18426"/>
</clipPath>
<clipPath id="presentation_clip_path_shrink" clipPathUnits="userSpaceOnUse">
<rect x="18" y="18" width="18390" height="18390"/>
</clipPath>
</defs>
<defs class="TextShapeIndex">
<g ooo:slide="id1" ooo:id-list="id3 id4 id5 id6 id7 id8"/>
</defs>
<defs class="EmbeddedBulletChars">
<g id="bullet-char-template-57356" transform="scale(0.00048828125,-0.00048828125)">
<path d="M 580,1141 L 1163,571 580,0 -4,571 580,1141 Z"/>
</g>
<g id="bullet-char-template-57354" transform="scale(0.00048828125,-0.00048828125)">
<path d="M 8,1128 L 1137,1128 1137,0 8,0 8,1128 Z"/>
</g>
<g id="bullet-char-template-10146" transform="scale(0.00048828125,-0.00048828125)">
<path d="M 174,0 L 602,739 174,1481 1456,739 174,0 Z M 1358,739 L 309,1346 659,739 1358,739 Z"/>
</g>
<g id="bullet-char-template-10132" transform="scale(0.00048828125,-0.00048828125)">
<path d="M 2015,739 L 1276,0 717,0 1260,543 174,543 174,936 1260,936 717,1481 1274,1481 2015,739 Z"/>
</g>
<g id="bullet-char-template-10007" transform="scale(0.00048828125,-0.00048828125)">
<path d="M 0,-2 C -7,14 -16,27 -25,37 L 356,567 C 262,823 215,952 215,954 215,979 228,992 255,992 264,992 276,990 289,987 310,991 331,999 354,1012 L 381,999 492,748 772,1049 836,1024 860,1049 C 881,1039 901,1025 922,1006 886,937 835,863 770,784 769,783 710,716 594,584 L 774,223 C 774,196 753,168 711,139 L 727,119 C 717,90 699,76 672,76 641,76 570,178 457,381 L 164,-76 C 142,-110 111,-127 72,-127 30,-127 9,-110 8,-76 1,-67 -2,-52 -2,-32 -2,-23 -1,-13 0,-2 Z"/>
</g>
<g id="bullet-char-template-10004" transform="scale(0.00048828125,-0.00048828125)">
<path d="M 285,-33 C 182,-33 111,30 74,156 52,228 41,333 41,471 41,549 55,616 82,672 116,743 169,778 240,778 293,778 328,747 346,684 L 369,508 C 377,444 397,411 428,410 L 1163,1116 C 1174,1127 1196,1133 1229,1133 1271,1133 1292,1118 1292,1087 L 1292,965 C 1292,929 1282,901 1262,881 L 442,47 C 390,-6 338,-33 285,-33 Z"/>
</g>
<g id="bullet-char-template-9679" transform="scale(0.00048828125,-0.00048828125)">
<path d="M 813,0 C 632,0 489,54 383,161 276,268 223,411 223,592 223,773 276,916 383,1023 489,1130 632,1184 813,1184 992,1184 1136,1130 1245,1023 1353,916 1407,772 1407,592 1407,412 1353,268 1245,161 1136,54 992,0 813,0 Z"/>
</g>
<g id="bullet-char-template-8226" transform="scale(0.00048828125,-0.00048828125)">
<path d="M 346,457 C 273,457 209,483 155,535 101,586 74,649 74,723 74,796 101,859 155,911 209,963 273,989 346,989 419,989 480,963 531,910 582,859 608,796 608,723 608,648 583,586 532,535 482,483 420,457 346,457 Z"/>
</g>
<g id="bullet-char-template-8211" transform="scale(0.00048828125,-0.00048828125)">
<path d="M -4,459 L 1135,459 1135,606 -4,606 -4,459 Z"/>
</g>
<g id="bullet-char-template-61548" transform="scale(0.00048828125,-0.00048828125)">
<path d="M 173,740 C 173,903 231,1043 346,1159 462,1274 601,1332 765,1332 928,1332 1067,1274 1183,1159 1299,1043 1357,903 1357,740 1357,577 1299,437 1183,322 1067,206 928,148 765,148 601,148 462,206 346,322 231,437 173,577 173,740 Z"/>
</g>
</defs>
<g>
<g id="id2" class="Master_Slide">
<g id="bg-id2" class="Background"/>
<g id="bo-id2" class="BackgroundObjects"/>
</g>
</g>
<g class="SlideGroup">
<g>
<g id="container-id1">
<g id="id1" class="Slide" clip-path="url(#presentation_clip_path)">
<g class="Page">
<g class="com.sun.star.drawing.CustomShape">
<g id="id3">
<rect class="BoundingBox" stroke="none" fill="none" x="808" y="3108" width="16783" height="11683"/>
<path fill="none" stroke="rgb(0,0,0)" stroke-width="882" stroke-linejoin="round" d="M 9199,14349 L 1249,14349 1249,3549 17149,3549 17149,14349 9199,14349 Z"/>
</g>
</g>
<g class="com.sun.star.drawing.LineShape">
<g id="id4">
<rect class="BoundingBox" stroke="none" fill="none" x="908" y="3307" width="16583" height="11284"/>
<path fill="none" stroke="rgb(0,0,0)" stroke-width="882" stroke-linejoin="round" d="M 1349,14149 L 17049,3749"/>
</g>
</g>
<g class="com.sun.star.drawing.LineShape">
<g id="id5">
<rect class="BoundingBox" stroke="none" fill="none" x="808" y="3208" width="16883" height="11483"/>
<path fill="none" stroke="rgb(0,0,0)" stroke-width="882" stroke-linejoin="round" d="M 1249,3649 L 17249,14249"/>
</g>
</g>
<g class="com.sun.star.drawing.RectangleShape">
<g id="id6">
<rect class="BoundingBox" stroke="none" fill="none" x="8651" y="8410" width="3300" height="3063"/>
<path fill="rgb(255,255,255)" stroke="none" d="M 10842,10741 L 9735,11471 8651,9872 10865,8411 11949,10010 10842,10741 Z"/>
</g>
</g>
<g class="com.sun.star.drawing.RectangleShape">
<g id="id7">
<rect class="BoundingBox" stroke="none" fill="none" x="8549" y="8449" width="101" height="2"/>
<path fill="rgb(102,102,102)" fill-opacity="0.502" stroke="rgb(255,255,255)" stroke-opacity="0.502" d="M 8599,8450 L 8549,8450 8549,8449 8649,8449 8649,8450 8599,8450 Z"/>
</g>
</g>
<g class="com.sun.star.drawing.RectangleShape">
<g id="id8">
<rect class="BoundingBox" stroke="none" fill="none" x="6600" y="8708" width="3026" height="2304"/>
<path fill="rgb(255,255,255)" stroke="none" d="M 8866,10298 L 8108,11011 6600,10133 8117,8708 9625,9586 8866,10298 Z"/>
</g>
</g>
</g>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<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"
width="195.47867mm"
height="125.52173mm"
viewBox="0 0 195.47867 125.52173"
version="1.1"
id="svg779">
<defs
id="defs773" />
<metadata
id="metadata776">
<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>
<g
id="layer1"
transform="translate(-7.0177078,-15.137484)">
<g
id="g817">
<rect
style="fill:#000000;stroke-width:0.114869"
id="rect28"
width="9.0920115"
height="125.38937"
x="7.0177078"
y="15.137602"
ry="0" />
<rect
style="fill:#000000;stroke-width:0.114869"
id="rect30"
width="186.38623"
height="9.2881002"
x="16.109718"
y="15.137602" />
<rect
style="fill:#000000;stroke-width:0.114869"
id="rect36"
width="9.0920115"
height="116.10126"
x="193.40395"
y="24.425703" />
<rect
style="fill:#000000;stroke-width:0.114869"
id="rect38"
width="177.29422"
height="9.2881002"
x="16.109718"
y="131.23888" />
<rect
style="fill:#000000;stroke-width:0.10597"
id="rect55"
width="103.17097"
height="6.9660759"
x="116.29282"
y="128.15263"
transform="matrix(0.88125665,-0.47263803,0,1,0,0)" />
<rect
style="fill:#000000;stroke-width:0.0970405"
id="rect60"
width="99.545021"
height="6.9624643"
x="18.657274"
y="14.545316"
transform="matrix(0.8682323,0.49615791,-0.00665955,0.99997782,0,0)" />
<path
style="fill:#000000;stroke-width:0.264583"
id="path819"
d="m 18.54855,136.93995 c -0.930247,0.56006 -1.91458,1.0388 -2.79074,1.68018 -0.296805,0.21727 0.684625,-0.26966 1.031413,-0.39229 1.461666,-0.51688 2.956323,-0.94237 4.462918,-1.30459 2.458723,-0.50007 1.216609,-0.13363 4.566493,-2.70799 0.04907,-0.0377 -0.114338,0.0474 -0.171507,0.0711 -0.543551,0.16312 -1.081052,0.30868 -1.644484,0.38752 -1.764559,0.11457 -3.535459,0.11791 -5.303184,0.12997 -1.734546,-0.0834 -3.499698,0.12999 -5.225376,-0.11425 1.099779,0.95882 -0.181919,-0.25092 -2.815002,2.23138 -0.225114,0.21223 0.609829,-0.10549 0.916353,-0.14741 0.367019,-0.0502 0.735652,-0.0878 1.103807,-0.12886 0.74299,-0.0828 2.380804,-0.25311 3.07542,-0.32592 2.33911,-0.15007 4.672296,-0.74976 7.026652,-0.62479 0.04723,0.01 0.145353,0.0776 0.141687,0.0295 -0.0058,-0.0758 -0.101585,-0.11324 -0.152378,-0.16985 1.086496,-0.7083 2.187517,-1.39479 3.259487,-2.12488 0.09618,-0.0655 -0.212283,0.0991 -0.325368,0.12653 -0.470924,0.11429 -0.79531,0.10748 -1.283295,0.13415 -1.170071,0.0503 -2.3362,0.0255 -3.496012,-0.13532 -0.67596,-0.088 -1.350559,-0.17331 -2.023703,-0.28163 -0.638619,-0.10664 -1.284232,-0.15355 -1.930472,-0.17885 -0.163253,-0.0155 -0.357447,-0.008 -0.496195,-0.11458 -0.0025,-0.002 0.359536,0.0942 0.285406,0.14477 -1.043184,0.71227 -2.177859,1.28031 -3.266788,1.92047 0.505708,-0.25992 1.053628,-0.40464 1.586038,-0.59333 1.873545,-0.76044 4.828045,-1.7121 2.961357,-3.06243 -0.244135,-0.1646 -0.116028,-0.0868 -0.385191,-0.23196 0,0 -3.427502,2.2654 -3.427502,2.2654 v 0 c 0.233868,0.0932 0.12192,0.0383 0.336185,0.16384 0.605307,0.47547 -0.179565,-0.12429 0.272602,0.18075 0.01686,0.0114 0.174094,0.20044 0.0353,0.10648 1.138666,-0.66412 2.277333,-1.32825 3.416,-1.99237 -0.477868,0.32477 -1.082124,0.32732 -1.578322,0.62779 -1.258158,0.71032 -2.563539,1.34282 -3.774474,2.13095 -0.264774,0.17232 0.07777,0.58712 0.212647,0.67518 0.212656,0.13883 0.257939,0.12351 0.505337,0.1747 0.638954,0.0121 1.278714,0.0366 1.912007,0.12888 0.678444,0.10272 1.348552,0.23494 2.034225,0.2849 1.191025,0.15494 2.381806,0.19133 3.583177,0.15652 0.428709,-0.007 0.858457,0.0134 1.286171,-0.0165 1.41331,-0.0988 4.862091,-1.70125 3.842218,-2.64897 -0.05981,-0.0556 -0.156304,-0.0472 -0.234457,-0.0708 -2.406852,-0.1029 -4.853031,0.61114 -7.252655,0.71939 -4.493014,0.40184 0.960664,-0.0823 -2.988401,0.25819 -0.359273,0.031 -0.7183,0.0648 -1.077407,0.0976 -0.287793,0.0263 -0.603745,-0.0472 -0.863294,0.0799 -1.356606,0.66429 -2.678665,1.41138 -3.9250166,2.26476 -0.096154,0.0658 0.1182856,0.20083 0.1774286,0.30124 1.792362,0.19369 3.606804,-0.0309 5.404808,0.0464 1.726151,0.008 3.452764,0.0488 5.178658,0.003 0.559981,-0.0175 1.123184,-0.0841 1.637114,-0.32421 1.595147,-0.0269 0.343832,0.0324 3.602427,-2.49513 0.04296,-0.0333 -0.110897,-0.0835 -0.394419,-0.0325 -0.397447,0.0714 -0.777704,0.22468 -1.178824,0.27928 -1.12597,0.27769 -2.238951,0.58979 -3.348865,0.9266 -0.01154,0.004 -2.0751,0.64265 -2.156019,0.68385 -1.406818,0.71616 -2.761856,1.52978 -4.142784,2.29467 0,0 3.798795,-1.48636 3.798795,-1.48636 z" />
<path
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 14.872471,133.87306 c -0.05907,-3.47434 2.793472,-0.46533 3.627789,-1.29965 0.06522,-0.0652 0.09224,-0.27672 0,-0.27672 -0.09224,0 0.06522,0.2115 0,0.27672 -0.205441,0.20544 -1.953805,0 -2.213748,0 -1.00691,0 -1.937029,-0.43413 -1.937029,-0.27672 0,0.13045 0.184479,-0.18448 0.276718,-0.27672 0.07456,-0.0745 1.014035,-0.0919 1.383593,-0.27671 0.101355,-0.0507 1.383592,0.0384 1.383592,0 0,-0.4366 -1.010205,1.09358 -1.106874,1.38359 -0.138359,0.41508 0.138359,0.96851 0,1.38359 -0.438687,1.31606 0,2.53471 0,4.15078 0,0.43339 0.344271,0.34427 0.553437,0.55343 0.06522,0.0652 -0.09224,0.27672 0,0.27672 0.09224,0 -0.06522,-0.21149 0,-0.27672 0.06522,-0.0652 0.321568,-0.0806 0.276718,0 -0.268097,0.48181 -0.671299,0.87489 -1.006949,1.31232"
id="path823" />
<path
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 31.105009,138.26626 -14.995291,2.26071"
id="path825" />
<path
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 49.091709,137.15938 144.312231,3.36758"
id="path827" />
<path
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 193.40393,131.23887 1e-5,9.28809"
id="path829" />
<path
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 193.40394,24.425703 9.092,-2e-6"
id="path831" />
<path
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 202.49594,24.425701 16.101983,23.801947"
id="path833" />
<path
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 16.109718,15.137602 -0.0077,8.664345 25.340818,-3.561168"
id="path835" />
<path
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 16.055616,30.764257 0.0464,-6.96231"
id="path837" />
<path
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 16.055616,30.764257 0.0541,-6.338556"
id="path839" />
<path
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 16.109718,15.137602 -0.0077,8.664345"
id="path841" />
<path
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 193.40392,31.39178 V 24.4257"
id="path843" />
<path
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 16.109718,140.52697 v -9.2881"
id="path845" />
<path
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 102.48382,80.154305 V 73.188221"
id="path847" />
</g>
</g>
</g>
</g>
</svg>
</svg>

Before

Width:  |  Height:  |  Size: 6.1 KiB

After

Width:  |  Height:  |  Size: 8.5 KiB

BIN
static/img/manette1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

BIN
static/img/manette2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 MiB

View File

@ -20,6 +20,7 @@
replace(from=":coeur:", to="❤") |
replace(from=":déçu:", to="😞") |
replace(from=":tada:", to="🎉") |
safe
replace(from=":clap:", to="👏") |
safe
}}
{% endmacro content %}

View File

@ -0,0 +1,3 @@
{% set image = resize_image(path=path, height=300, op=fit_height) %}
<img src="{{ image.url }}" />

View File

@ -1,28 +1,25 @@
{% set data = load_data(path="social.toml") -%}
<table class="contact center">
<tr>
<th> Service </th>
<th> Compte </th>
</tr>
{% for service in data.services %}
{% if service.obfuscate %}
<tr>
<td> {{ service.name }} </td>
<td class="obfuscate"> {{ service.address }} </td>
</tr>
{% else %}
<tr>
<td> {{ service.name }} </td>
<td> <a href="mailto:{{ service.address }}">
{{ service.address }}
</a>
</td>
</tr>
{% endif %}
{% endfor %}
</table>
<ul class="center">
{% for service in data.services %}
{% if service.obfuscate %}
{% if service.name == "XMPP" %}
<li class="center obfuscate"> <a href=xmpp:{{ service.address }} > Par {{ service.name }} </a></li>
{% endif %}
{% if service.name == "email" %}
<li class="center obfuscate"> <a href=mailto:{{ service.address }} > Par {{ service.name }} </a> </li>
{% endif %}
{% else %}
<li class="center"> <a href="{{ service.address }}"> Sur {{ service.name }} </a></li>
{% endif %}
{% endfor %}
<ul>