first commit
5
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
themes/*
|
||||
!*.gitkeep
|
||||
www
|
||||
public
|
||||
zola
|
||||
53
.markdownlint.json
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
{
|
||||
"default": true,
|
||||
"code-block-style": {
|
||||
"style": "fenced"
|
||||
},
|
||||
"code-fence-style": {
|
||||
"style": "backtick"
|
||||
},
|
||||
"emphasis-style": {
|
||||
"style": "asterisk"
|
||||
},
|
||||
"strong-style": {
|
||||
"style": "asterisk"
|
||||
},
|
||||
"ul-style": {
|
||||
"style": "dash"
|
||||
},
|
||||
"ul-indent": {
|
||||
"indent": 2
|
||||
},
|
||||
"heading-style": {
|
||||
"style": "atx"
|
||||
},
|
||||
"no-duplicate-heading": {
|
||||
"siblings_only": true
|
||||
},
|
||||
"hr-style": {
|
||||
"style": "---"
|
||||
},
|
||||
"ol-prefix": {
|
||||
"style": "ordered"
|
||||
},
|
||||
"no-trailing-punctuation": {
|
||||
"punctuation": ".,;:"
|
||||
},
|
||||
"fenced-code-language": {
|
||||
"allowed_languages": [
|
||||
"bash",
|
||||
"html",
|
||||
"css",
|
||||
"javascript",
|
||||
"php",
|
||||
"json",
|
||||
"yaml",
|
||||
"toml",
|
||||
"markdown",
|
||||
"txt"
|
||||
],
|
||||
"language_only": true
|
||||
},
|
||||
"line-length": false,
|
||||
"first-line-h1": false
|
||||
}
|
||||
29
LICENSE
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
"i'm so tired" software license 1.0
|
||||
|
||||
copyright (c) 2024 OniriCorpe
|
||||
|
||||
this is anti-capitalist, anti-bigotry software, made by people who are tired of ill-intended organisations and individuals, and would rather not have those around their creations.
|
||||
|
||||
permission is granted, free of charge, to any user (be they a person or an organisation) obtaining a copy of this software, to use it for personal, commercial, or educational purposes, subject to the following conditions:
|
||||
|
||||
1. the above copyright notice and this permission notice shall be included in all copies or modified versions of this software.
|
||||
|
||||
2. the user is one of the following:
|
||||
a. an individual person, labouring for themselves
|
||||
b. a non-profit organisation
|
||||
c. an educational institution
|
||||
d. an organization that seeks shared profit for all of its members, and allows non-members to set the cost of their labor
|
||||
|
||||
3. if the user is an organization with owners, then all owners are workers and all workers are owners with equal equity and/or equal vote.
|
||||
|
||||
4. if the user is an organization, then the user is not law enforcement or military, or working for or under either.
|
||||
|
||||
5. the user does not use the software for ill-intentioned reasons, as determined by the authors of the software. said reasons include but are not limited to:
|
||||
a. bigotry, including but not limited to racism, xenophobia, homophobia, transphobia, ableism, sexism, antisemitism, religious intolerance
|
||||
b. pedophilia, zoophilia, and/or incest
|
||||
c. support for cops and/or the military
|
||||
d. any blockchain-related technology, including but not limited to cryptocurrencies
|
||||
|
||||
6. the user does not promote or engage with any of the activities listed in the previous item, and is not affiliated with any group that promotes or engages with any of such activities.
|
||||
|
||||
this software is provided as is, without any warranty or condition. in no event shall the authors be liable to anyone for any damages related to this software or this license, under any kind of legal claim.
|
||||
18
README.md
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
# my website's sources
|
||||
|
||||
it's intended to be used by zola to generate a static website
|
||||
|
||||
## wanna replicate?
|
||||
|
||||
- git clone this repo
|
||||
- delete the content of the `content` folder if you don't want to use it
|
||||
- git clone [anemone](https://github.com/Speyll/anemone) in the `themes` folder
|
||||
- edit the `config.toml` to your needs
|
||||
- tweak the files in the `templates` folder if needed
|
||||
- `zola serve` / `zola build`
|
||||
|
||||
## licenses
|
||||
|
||||
the files under the `templates` folder (except the `robots.txt`) are licensed under MIT license, as they are derivated from the [anemone](https://github.com/Speyll/anemone) ones
|
||||
the files under the `content` folder are licensed under [Attribution-NonCommercial-ShareAlike 4.0 International license](https://creativecommons.org/licenses/by-nc-sa/4.0/), except when explicitly stated otherwise in the file
|
||||
any other file is licensed under ["i'm so tired" software license 1.0](https://olmewe.com/notes/istsl/)
|
||||
69
config.toml
Normal file
|
|
@ -0,0 +1,69 @@
|
|||
base_url = "https://oniricorpe.eu"
|
||||
|
||||
output_dir = "www"
|
||||
|
||||
theme = "anemone"
|
||||
|
||||
build_search_index = false
|
||||
compile_sass = false
|
||||
default_language = "fr"
|
||||
minify_html = false
|
||||
generate_feed = true
|
||||
|
||||
[translations]
|
||||
published-on = "Publié le :"
|
||||
published-by = "Par"
|
||||
license = "Licence :"
|
||||
table-of-contents = "Table des matières"
|
||||
read-more = "📄 Voir la liste complète..."
|
||||
license-text = "Sauf mention contraire, le contenu est mien et sous license"
|
||||
credit-text = """Le thème et couleurs sont sous license <a target="_blank" rel="noopener noreferrer" href="https://en.wikipedia.org/wiki/Licence_MIT">MIT</a>.<br>
|
||||
Façonné avec <a target="_blank" rel="noopener noreferrer" href="https://www.getzola.org">Zola</a>, le thème <a target="_blank" rel="noopener noreferrer" href="https://github.com/Speyll/anemone">anemone</a>, le framework <a target="_blank" rel="noopener noreferrer" href="https://speyll.github.io/suCSS/">suCSS</a> & <a target="_blank" rel="noopener noreferrer" href="https://github.com/Speyll/veqev">veqev</a>.<br>
|
||||
Le thème a été adapté à mes besoins et préférences. <a target="_blank" rel="noopener noreferrer" href="https://codeberg.org/OniriCorpe/log">Sources ici.</a><br>"""
|
||||
404-title = "oh non ! 404 !"
|
||||
404-text = "Quoi que vous cherchiez, ce n'est pas ici..."
|
||||
|
||||
[languages.en]
|
||||
languageName = "English"
|
||||
languageCode = "en"
|
||||
generate_feed = true
|
||||
[languages.en.translations]
|
||||
published-on = "Published on:"
|
||||
published-by = "By"
|
||||
license = "License:"
|
||||
table-of-contents = "Table of contents"
|
||||
read-more = "📄 See the complete list..."
|
||||
license-text = "Except otherwise noted, contents are my own and licensed under"
|
||||
credit-text = """Theme and color theme licensed under <a target="_blank" rel="noopener noreferrer" href="https://en.wikipedia.org/wiki/Licence_MIT">MIT</a>.<br>
|
||||
Built using <a target="_blank" rel="noopener noreferrer" href="https://www.getzola.org">Zola</a>, <a target="_blank" rel="noopener noreferrer" href="https://github.com/Speyll/anemone">anemone</a> theme, <a target="_blank" rel="noopener noreferrer" href="https://speyll.github.io/suCSS/">suCSS</a> framework & <a target="_blank" rel="noopener noreferrer" href="https://github.com/Speyll/veqev">veqev</a>.<br>
|
||||
The theme has been customized to my needs and preferences. <a target="_blank" rel="noopener noreferrer" href="https://codeberg.org/OniriCorpe/website">Sources here.</a><br>"""
|
||||
404-title = "oh no! 404!"
|
||||
404-text = "Whatever you're looking for, it's not here..."
|
||||
|
||||
[markdown]
|
||||
highlight_code = true
|
||||
highlight_theme = "dracula"
|
||||
|
||||
[slugify]
|
||||
paths = "on"
|
||||
taxonomies = "on"
|
||||
anchors = "on"
|
||||
|
||||
[link_checker]
|
||||
internal_level = "warn"
|
||||
external_level = "error"
|
||||
|
||||
[extra]
|
||||
author = "OniriCorpe"
|
||||
display_author = false
|
||||
default_theme = "dark"
|
||||
twitter_card = false
|
||||
list_pages = true
|
||||
footer_content_license = "CC BY-NC-SA 4.0"
|
||||
footer_content_license_link = "https://creativecommons.org/licenses/by-nc-sa/4.0/"
|
||||
header_nav = [
|
||||
{ url = "/", name_en = "/root/", name_fr = "/racine/" },
|
||||
{ url = "/log", name_en = "/log/", name_fr = "/log/" },
|
||||
{ url = "/bidouilles", name_en = "/tinkering/", name_fr = "/bidouilles/" },
|
||||
{ url = "/contacts", name_en = "/contacts/", name_fr = "/contacts/" },
|
||||
]
|
||||
2
content/LICENSE
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
Attribution-NonCommercial-ShareAlike 4.0 International
|
||||
<https://creativecommons.org/licenses/by-nc-sa/4.0/>
|
||||
25
content/_index.en.md
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
+++
|
||||
title = "OniriCorpe — Émy"
|
||||
theme = "anemone"
|
||||
template = "section.html"
|
||||
+++
|
||||
|
||||
Wesh.
|
||||
|
||||
~30 years old three-legged cybregorl. ⛬
|
||||
|
||||
French white precarious multi-disabled trans bi gorl. [Cripple punk](https://en.wikipedia.org/wiki/Cripple_punk). Compulsive nerd.
|
||||
|
||||
My interests: medical stuff, [anarcho-syndicalism](https://en.wikipedia.org/wiki/Anarcho-syndicalism), [anti-fascism](https://en.wikipedia.org/wiki/Anti-fascism), [pop-education](https://en.wikipedia.org/wiki/Popular_education), disabilities & anti-[ableism](https://en.wikipedia.org/wiki/Ableism), computer, car mechanics, reading (SF, indie comics, manga), writing, music, dogs…
|
||||
|
||||
## Gimme some money
|
||||
|
||||
<!-- markdownlint-disable MD033 -->
|
||||
<a href='https://ko-fi.com/oniricorpe' target='_blank'>
|
||||
<img height='36' style='height:50px;' src='/img/kofi_button_red.webp'
|
||||
alt='Support me on ko-fi.com' /></a>
|
||||
|
||||
## Webring
|
||||
|
||||
<!-- markdownlint-disable MD034 -->
|
||||
{{ webring(prev="http://retroweb.nononymous.fr/", webring="https://www.cypherweavers.cafe/", webringName="CypherWeavers' Cafe", next="https://www.aphrodite.dev/") }}
|
||||
25
content/_index.md
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
+++
|
||||
title = "OniriCorpe — Émy"
|
||||
theme = "anemone"
|
||||
template = "section.html"
|
||||
+++
|
||||
|
||||
Wesh.
|
||||
|
||||
Saboteuse méticuleuse. Cybermeuf à trois pattes de ~30 ans. ⛬ Émy/fem
|
||||
|
||||
Meuf trans bi blanche pluri-handicapée précaire, [cripple punk (en)](https://en.wikipedia.org/wiki/Cripple_punk), technicienne d'infortune, bidouilleuse compulsive.
|
||||
|
||||
Intérêts : médical, [anarcho-syndicalisme](https://fr.wikipedia.org/wiki/Anarcho-syndicalisme), [anti-fascisme](https://fr.wikipedia.org/wiki/Antifascisme), [éduc-pop](https://fr.wikipedia.org/wiki/%C3%89ducation_populaire), handicaps & anti-[validisme](https://fr.wikipedia.org/wiki/Capacitisme), informatique, mécanique automobile, lecture (politique, SF, comics indé, mangas), écriture, musique, chiens, etc.
|
||||
|
||||
## Me soutenir ([stp](https://youtu.be/QRrRxFREjsE))
|
||||
|
||||
<!-- markdownlint-disable MD033 -->
|
||||
<a href='https://ko-fi.com/oniricorpe' target='_blank'>
|
||||
<img height='36' style='height:50px;' src='/img/kofi_button_red.webp'
|
||||
alt='Soutenez-moi sur Ko-Fi' /></a>
|
||||
|
||||
## Webring
|
||||
|
||||
<!-- markdownlint-disable MD034 -->
|
||||
{{ webring(prev="http://retroweb.nononymous.fr/", webring="https://www.cypherweavers.cafe/", webringName="CypherWeavers' Cafe", next="https://www.aphrodite.dev/") }}
|
||||
7
content/art/_index.en.md
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
+++
|
||||
title = "Art"
|
||||
template = "meta-section.html"
|
||||
[extra]
|
||||
sections = ["art/numérique", "art/photographie", "art/autre"]
|
||||
+++
|
||||
|
||||
8
content/art/_index.md
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
+++
|
||||
title = "Art"
|
||||
template = "meta-section.html"
|
||||
[extra]
|
||||
sections = ["art/numérique", "art/photographie", "art/autre"]
|
||||
+++
|
||||
|
||||
TODO : <https://www.getzola.org/documentation/content/image-processing/#creating-picture-galleries>
|
||||
7
content/art/autre/_index.en.md
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
+++
|
||||
title = "Other art"
|
||||
template = "section.html"
|
||||
page_template = "blog-page.html"
|
||||
sort_by = "date"
|
||||
+++
|
||||
|
||||
7
content/art/autre/_index.md
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
+++
|
||||
title = "Art autre"
|
||||
template = "section.html"
|
||||
page_template = "blog-page.html"
|
||||
sort_by = "date"
|
||||
+++
|
||||
|
||||
6
content/art/numérique/_index.en.md
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
+++
|
||||
title = "Digital drawing"
|
||||
template = "section.html"
|
||||
page_template = "blog-page.html"
|
||||
sort_by = "date"
|
||||
+++
|
||||
6
content/art/numérique/_index.md
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
+++
|
||||
title = "Dessin numérique"
|
||||
template = "section.html"
|
||||
page_template = "blog-page.html"
|
||||
sort_by = "date"
|
||||
+++
|
||||
6
content/art/photographie/_index.en.md
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
+++
|
||||
title = "Photography"
|
||||
template = "section.html"
|
||||
page_template = "blog-page.html"
|
||||
sort_by = "date"
|
||||
+++
|
||||
6
content/art/photographie/_index.md
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
+++
|
||||
title = "Photographie"
|
||||
template = "section.html"
|
||||
page_template = "blog-page.html"
|
||||
sort_by = "date"
|
||||
+++
|
||||
7
content/bidouilles/3d/_index.en.md
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
+++
|
||||
title = "3D printing"
|
||||
template = "section.html"
|
||||
page_template = "blog-page.html"
|
||||
sort_by = "date"
|
||||
+++
|
||||
|
||||
7
content/bidouilles/3d/_index.md
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
+++
|
||||
title = "Impressions 3D"
|
||||
template = "section.html"
|
||||
page_template = "blog-page.html"
|
||||
sort_by = "date"
|
||||
+++
|
||||
|
||||
52
content/bidouilles/3d/airtag-chienne/index.md
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
+++
|
||||
title = "Un airtag pour ma chienne"
|
||||
date = 2023-01-28
|
||||
authors = []
|
||||
theme = "anemone"
|
||||
template = "blog-page.html"
|
||||
+++
|
||||
|
||||
Une fois j'ai perdu ma chienne en ville.
|
||||
Ce qui était horrible, c'était de ne pas savoir dans quelle direction chercher.
|
||||
|
||||
Alors j'ai décidé d'accrocher un airtag, un tracer bluetooth qui permet de retrouver des objets grâce au réseau des appareils Apple.
|
||||
On peux localiser un airtag sur une carte pour savoir approximativement à quel endroit il a été vu par un appareil Apple.
|
||||
Et comme j'habite en ville assez dense, ça peut donner une indication si je perd à nouveau ma chienne, en tout cas ça se tente.
|
||||
|
||||
J'ai donc fabriqué un support à airtag pour son collier.
|
||||
|
||||
J'avais trois contraintes :
|
||||
|
||||
- la largeur et l'épaisseur de son collier,
|
||||
- la forme de l'airtag,
|
||||
- la solidité (il ne doit pas se détacher facilement et être bien protégé)
|
||||
|
||||
J'ai donc conçu un modèle en 2 parties qui se fixe autour du collier à l'aide de 4 vis et écrous.
|
||||
|
||||
L'une des parties est un simple pavé creusé avec la forme du collier, ainsi que 4 trous pour accueillir le collier :
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
Pour la partie supérieure, qui est nettement plusse épaisse, j'ai creusé un trou en forme de l'airtag afin qu'il puisse être contenu une fois la support monté sur le collier.
|
||||
|
||||

|
||||
|
||||
Sur la partie supérieure j'ai inscrit "NFC" afin que les éventuels gens qui trouvent ma chiennent sachent qu'ils peuvent scanner l'objet en NFC avec leur smartphone.
|
||||
|
||||
Cela leur ouvrira une page avec mes coordonnées pour me contacter (mon numéro de téléphone est aussi inscrit dans le harnais de ma chienne, et elle est pucée, mais ça ne mange pas de pain).
|
||||
|
||||

|
||||
|
||||
Une photo de l'objet final :
|
||||
|
||||

|
||||
|
||||
À ce jour je n'ai jamais re perdu ma chienne et n'ai donc pas eu l'usage de ma bidouille.
|
||||
|
||||
J'espère que je n'en aurai jamais besoin, mais ça me rassure de l'avoir fait et que ça puisse m'aider si jamais ça devait arriver.
|
||||
|
||||
## Ce texte ailleurs
|
||||
|
||||
[Tumblr](https://www.tumblr.com/shana-broken-thing/707654441472491520/airtag-pour-ma-chienne)
|
||||
BIN
content/bidouilles/3d/airtag-chienne/photo.jpg
Normal file
|
After Width: | Height: | Size: 248 KiB |
BIN
content/bidouilles/3d/airtag-chienne/visualisation-3D-1.jpg
Normal file
|
After Width: | Height: | Size: 52 KiB |
BIN
content/bidouilles/3d/airtag-chienne/visualisation-3D-2.jpg
Normal file
|
After Width: | Height: | Size: 32 KiB |
BIN
content/bidouilles/3d/airtag-chienne/visualisation-3D-3.jpg
Normal file
|
After Width: | Height: | Size: 36 KiB |
BIN
content/bidouilles/3d/airtag-chienne/visualisation-3D-4.jpg
Normal file
|
After Width: | Height: | Size: 63 KiB |
45
content/bidouilles/3d/crochets-tombent-pas/index.md
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
+++
|
||||
title = "Des crochets qui ne tombent pas"
|
||||
date = 2023-01-30
|
||||
authors = []
|
||||
theme = "anemone"
|
||||
template = "blog-page.html"
|
||||
+++
|
||||
|
||||
Dans ma cuisine j'ai des grandes étagères Ikea Grundtal (qui ne sont malheureusement plu vendues).
|
||||
|
||||
Elles sont composées de plusieurs tubes en inox de 16 millimètres de diamètre, qui ensemble forment l'étagère.
|
||||
|
||||
Le problème c'est que les crochets en inox qui vont avec tombaient souvent lorsque je prenais les objets placés dessus. C'était in-su-por-table !
|
||||
|
||||
Alors j'ai conçu et fabriqué des crochets qui se clipsent aux barres en inox, et qui sont bien solidaires avec (tout en pouvant être facilement déplaçables et enlevables).
|
||||
|
||||

|
||||
|
||||
À gauche on voit le crochet original de Ikea, en métal gris. Il est de forme très simple, en forme de "S", tellement simple qu'il peut tomber dès lors qu'on mobilise l'objet qu'il tient.
|
||||
|
||||
Au milieu et à droite sont mes crochets que j'ai moi même conçu (et j'en suis fière !).
|
||||
|
||||
À droite on voit mon petit modèle, j'ai voulu faire un modèle compact de base car je préfère les choses minimales et efficaces.
|
||||
|
||||
Celui du milieu est le grand modèle, pour les objets qui ne passent pas dans le petit modèle. Il est de taille similaire au crochet en inox Ikea.
|
||||
|
||||
Mes 2 modèles sont super à l'usage, je n'ai jamais eu à les modifier malgré l'année et demie d'usage que j'en ai maintenant.
|
||||
|
||||

|
||||
|
||||
Sur la photo précédente, vous pouvez voir que le crochet de Ikea repose simplement sur la barre sans passer en dessous, il est donc facile de le faire tomber en le manipulant.
|
||||
|
||||

|
||||
|
||||
Alors qu'avec les miens, les contours des crochets épousent parfaitement la forme de la barre et il est très improbable de les faire tomber (ça ne m'est jamais arrivé). Je peux même les placer à l'envers et ils conserveront leur position.
|
||||
|
||||

|
||||
|
||||
Je suis fière d'avoir réalisé ces crochets qui ont amélioré mon quotidien.
|
||||
|
||||
Ils sont disponibles librement sur Printables si vous voulez en imprimer : <https://www.printables.com/fr/model/384252-hooks-for-kitchen-wall-shelf-ikea-grundtal>
|
||||
|
||||
## Ce texte ailleurs
|
||||
|
||||
[Tumblr](https://www.tumblr.com/shana-broken-thing/707827553061224448/des-crochets-qui-ne-tombent-pas)
|
||||
BIN
content/bidouilles/3d/crochets-tombent-pas/photo1.jpg
Normal file
|
After Width: | Height: | Size: 144 KiB |
BIN
content/bidouilles/3d/crochets-tombent-pas/photo2.jpg
Normal file
|
After Width: | Height: | Size: 215 KiB |
BIN
content/bidouilles/3d/crochets-tombent-pas/photo3.jpg
Normal file
|
After Width: | Height: | Size: 184 KiB |
BIN
content/bidouilles/3d/crochets-tombent-pas/photo4.jpg
Normal file
|
After Width: | Height: | Size: 265 KiB |
BIN
content/bidouilles/3d/réducteur-douleur-injection/dessous.jpg
Normal file
|
After Width: | Height: | Size: 144 KiB |
BIN
content/bidouilles/3d/réducteur-douleur-injection/dessus.jpg
Normal file
|
After Width: | Height: | Size: 97 KiB |
25
content/bidouilles/3d/réducteur-douleur-injection/index.md
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
+++
|
||||
title = "Réducteur de douleur pour injection"
|
||||
date = 2023-01-19
|
||||
authors = []
|
||||
theme = "anemone"
|
||||
template = "blog-page.html"
|
||||
+++
|
||||
|
||||
Suite au post d'une amie sur un objet pour réduire la douleur lors des injections, j'en ai modélisé, imprimé un et partagé le modèle sur internet
|
||||
|
||||
La modélisation est entièrement paramétrique, il est possible de facilement personnaliser la taille de l'objet (et plein d'autres paramètres) avec le logiciel Fusion 360.
|
||||
|
||||
Son post (en anglais) : <https://eldritch.cafe/@clexy/109712314880672501>
|
||||
|
||||
L'objet à imprimer en 3D : <https://www.printables.com/fr/model/373493>
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
## Ce texte ailleurs
|
||||
|
||||
[Tumblr](https://www.tumblr.com/shana-broken-thing/706831380398702592/r%C3%A9ducteur-de-douleur-pour-injection)
|
||||
|
After Width: | Height: | Size: 243 KiB |
45
content/bidouilles/3d/réparation-bac-aspirateur/index.md
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
+++
|
||||
title = "Réparation d'un bac d'aspirateur"
|
||||
date = 2023-01-19
|
||||
authors = []
|
||||
theme = "anemone"
|
||||
template = "blog-page.html"
|
||||
+++
|
||||
|
||||
Réparer le bac d'un aspirateur sans fil hors de prix avec 2 centimes de plastique et un peu de super glu : ✅
|
||||
|
||||
Ma chienne avait fait tomber mon aspirateur manuel, cassant le clip du bac de récupération.
|
||||
Celui-ci ne pouvait donc plu fermer et ça rendait l'aspirateur inutilisable.
|
||||
|
||||
J'ai rapidement modélisé en 3D une pièce simple afin de réaliser une réparation.
|
||||
J'y ai passé environ 20 minutes puis 10 minutes de retouches.
|
||||
|
||||
La modélisation est simple :
|
||||
|
||||

|
||||
|
||||
J'ai rapidement imprimé cette pièce (5 minutes), testé l'emboitement du clip et me suis rendue compte que l'angle que j'avais pifé était presque bon, c'était 20 degrés au lieu de 15 degrés.
|
||||
|
||||

|
||||
|
||||
J'ai donc retouché la modélisation afin de corrigé l'angle et réimprimé la nouvelle pièce.
|
||||
|
||||
Cette fois c'était bon !
|
||||
|
||||
J'ai testé sans coller que le clip était fonctionnel, c'était le cas !
|
||||
|
||||
Il suffisait plu qu'à coller avec de la super glu (cyanoacrylate) et la réparation était finie, fonctionnelle et solide !
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
J'ai imprimé la réparation en bleu, alors que j'avais des couleurs plusse sobres, parce que j'aime mettre en valeur les réparations ou améliorations faites sur les objets.
|
||||
|
||||
Chaque panne peut être un prétexte à décorer et embellir un objet et ainsi montrer ses belles cicatrices, témoignages d'un usage réel !
|
||||
|
||||
J'ai publié le modèle 3D pour effectuer cette réparation sur [Printables](https://href.li/?https://www.printables.com/fr/model/373561-dyson-sv03-dust-container-clip).
|
||||
|
||||
## Ce texte ailleurs
|
||||
|
||||
[Tumblr](https://www.tumblr.com/shana-broken-thing/706835240862285824/aspirateur)
|
||||
BIN
content/bidouilles/3d/réparation-bac-aspirateur/photo1.jpg
Normal file
|
After Width: | Height: | Size: 280 KiB |
BIN
content/bidouilles/3d/réparation-bac-aspirateur/photo2.jpg
Normal file
|
After Width: | Height: | Size: 225 KiB |
BIN
content/bidouilles/3d/réparation-bac-aspirateur/photo3.jpg
Normal file
|
After Width: | Height: | Size: 298 KiB |
|
After Width: | Height: | Size: 38 KiB |
7
content/bidouilles/_index.en.md
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
+++
|
||||
title = "Tinkering"
|
||||
template = "meta-section.html"
|
||||
[extra]
|
||||
sections = ["bidouilles/3d", "bidouilles/autre"]
|
||||
+++
|
||||
|
||||
7
content/bidouilles/_index.md
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
+++
|
||||
title = "Bidouilles"
|
||||
template = "meta-section.html"
|
||||
[extra]
|
||||
sections = ["bidouilles/3d", "bidouilles/autre"]
|
||||
+++
|
||||
|
||||
7
content/bidouilles/autre/_index.en.md
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
+++
|
||||
title = "Other tinkering"
|
||||
template = "section.html"
|
||||
page_template = "blog-page.html"
|
||||
sort_by = "date"
|
||||
+++
|
||||
|
||||
7
content/bidouilles/autre/_index.md
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
+++
|
||||
title = "Autres bidouilles"
|
||||
template = "section.html"
|
||||
page_template = "blog-page.html"
|
||||
sort_by = "date"
|
||||
+++
|
||||
|
||||
25
content/contacts/_index.en.md
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
+++
|
||||
title = "Contacts"
|
||||
date = 2024-06-20
|
||||
authors = []
|
||||
theme = "anemone"
|
||||
template = "section.html"
|
||||
+++
|
||||
|
||||
## Social networks
|
||||
|
||||
<!-- markdownlint-disable MD033 -->
|
||||
- **Fediverse** (en): <a href="https://woof.tech/@CyberSaloperie" rel="me" title="Fediverse (fr)">@CyberSaloperie@woof.tech</a>
|
||||
- **Fediverse** (fr): <a href="https://octodon.social/@OniriCorpe" rel="me" title="Fediverse (fr)">@OniriCorpe@octodon.social</a>
|
||||
|
||||
## Instant messaging
|
||||
|
||||
- **Telegram**: [@OniriCorpe](https://t.me/OniriCorpe)
|
||||
- **Matrix**: @oniricorpe:im.emelyne.eu
|
||||
- **iMessage**: on request ([🔑 security key](imessage.txt))
|
||||
- **Signal**: [OniriCorpe.1312](https://signal.me/#eu/IckK6N3c_hmJlfJpHtSSwplALZaNbpU4ScpQ8RTn90dhXNE09_dBU4HjeaNoZy8T)
|
||||
- **Discord**: oniricorpe
|
||||
|
||||
## E-mail
|
||||
|
||||
- contact AT oniricorpe · eu
|
||||
25
content/contacts/_index.md
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
+++
|
||||
title = "Contacts"
|
||||
date = 2024-06-20
|
||||
authors = []
|
||||
theme = "anemone"
|
||||
template = "section.html"
|
||||
+++
|
||||
|
||||
## Réseaux sociaux
|
||||
|
||||
<!-- markdownlint-disable MD033 -->
|
||||
- **Fedivers** (fr) : <a href="https://octodon.social/@OniriCorpe" rel="me" title="Fediverse (fr)">@OniriCorpe@octodon.social</a>
|
||||
- **Fedivers** (en) : <a href="https://woof.tech/@CyberSaloperie" rel="me" title="Fediverse (fr)">@CyberSaloperie@woof.tech</a>
|
||||
|
||||
## Messageries instantanées
|
||||
|
||||
- **Telegram** : [@OniriCorpe](https://t.me/OniriCorpe)
|
||||
- **Matrix** : @oniricorpe:im.emelyne.eu
|
||||
- **iMessage** : sur demande ([🔑 clé de sécurité](imessage.txt))
|
||||
- **Signal** : [OniriCorpe.1312](https://signal.me/#eu/IckK6N3c_hmJlfJpHtSSwplALZaNbpU4ScpQ8RTn90dhXNE09_dBU4HjeaNoZy8T)
|
||||
- **Discord** : oniricorpe
|
||||
|
||||
## E-mail
|
||||
|
||||
- contact À oniricorpe · eu
|
||||
7
content/contacts/imessage.txt
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
my imessage security key:
|
||||
APKTIDxTTWJMm-i7SapNDOXTO6Ek41RYY6x0uQCFsHYKWdAZ1I1g
|
||||
|
||||
what is it?
|
||||
https://support.apple.com/118246
|
||||
|
||||
iOS/iPadOS ≥17.2, watchOS ≥10.2, macOS ≥14.2 are required on ALL your devices !! btw
|
||||
8
content/log/_index.en.md
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
+++
|
||||
title = "Log - OniriCorpe"
|
||||
template = "meta-section.html"
|
||||
[extra]
|
||||
sections = ["log/vrac", "log/tech", "log/note", "log/neurodivergences", "log/poesie"]
|
||||
+++
|
||||
|
||||
Welcome to the directory of my posts.
|
||||
8
content/log/_index.md
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
+++
|
||||
title = "Log - OniriCorpe"
|
||||
template = "meta-section.html"
|
||||
[extra]
|
||||
sections = ["log/vrac", "log/tech", "log/note", "log/neurodivergences", "log/poesie"]
|
||||
+++
|
||||
|
||||
La bienvenue dans le répertoire de mes posts.
|
||||
7
content/log/neurodivergences/_index.md
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
+++
|
||||
title = "Neurodivergences"
|
||||
template = "section.html"
|
||||
page_template = "blog-page.html"
|
||||
sort_by = "date"
|
||||
+++
|
||||
|
||||
71
content/log/neurodivergences/apprentissages.md
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
+++
|
||||
title = "Il n'y a pas une méthode unique d'apprentissage, ou comment les autistes apprennent"
|
||||
date = 2023-09-02
|
||||
authors = []
|
||||
theme = "anemone"
|
||||
template = "blog-page.html"
|
||||
+++
|
||||
|
||||
(Texte publié à la base comme un rant sur le fédi, mais j'ai trouvé utile de le sauvegarder ici)
|
||||
|
||||
> « voici les vraies techniques sciontifiques pour vraiment apprendre, c’est éprouvé par la scionce donc sétrévrai et vous devez absolument faire comme ça !!! »
|
||||
|
||||
Oui bon okay je paraphrase grossièrement :')
|
||||
|
||||
[Mieux apprendre & étudier : les (vraies) techniques scientifiques | ScienceEtonnante](https://www.youtube.com/watch?v=RVB3PBPxMWg)
|
||||
|
||||
Et en fait c’est full bullshit neurotypique de merde et c’est inefficace, et brutal pour les neurodivergents
|
||||
Et ca va encore détruire des tas de gens ce genre d’études, parce que sous couvert de science on va forcer encore plusse les ND à se conformer et ça va créer des gens traumatisés, avec la cognition cassée, incapable d’apprendre sainement
|
||||
|
||||
Jore regardez ce screenshot, il dit grosso modo que ce qui est en bas sert de base pour tout ce qui est au dessus :
|
||||

|
||||
Ouais ça fait sens, c’est basiquement ce que tout le monde pense par pensée hégémonique, c’est déjà acquis et les scionce vient prouver tout ça
|
||||
|
||||
Eh bien en fait… chez les personnes neurodivergentes, c’est la plupart du temps… totalement inversé
|
||||
Pour les ND, il faut aller de haut en bas, et non de bas en haut, pour acquérir des connaissances et du savoir faire en respectant le fonctionnement de notre cognition
|
||||
Faire l’inverse c’est inefficace et inutilement brutal
|
||||
|
||||
Bref, encore une journée en validie neurotypique 😓
|
||||
|
||||
Oui je suis un peu énervée de voir que les méthodes d’apprentissage NT sont présentées comme la seule bonne manière d’apprendre
|
||||
Avec littéralement absolument aucune mention des neurodivergences et que c’est très dangereux de nous appliquer ça, que ça ne fonctionne pas, que ça nous casse, que ça nous trauma, que ça nous donne de la détresse et une estime de soi pulvérisée durablement
|
||||
C’est dangereux, vraiment, tous les ND le savent et ont vécu des moments atroces à l’école à cause de ça
|
||||
Et la scionce vient et nous enfonce littéralement
|
||||
C’est criminel
|
||||
|
||||
> « les méthodes qu’on va discuter vont d’abord particulièrement s’appuyer sur la mémorisation, car c’est le fondement de la compréhension, et de la capacité à créer et à résoudre des problèmes en sachant mobiliser ce qu’on a appris »
|
||||
|
||||
Désolée mais d’un point de vue d’autiste c’est absolument absurde et stupide, je ne comprends absolument pas comment diable ça peut fonctionner, c’est complètement illogique, ça me dépasse
|
||||
|
||||
Pour moi ce qui est logique, c’est le cheminement suivant :
|
||||
|
||||
- bloquer sur un problème
|
||||
- essayer des choses avec les connaissances que l’on a
|
||||
- soit : réussir, auquel cas renforcement de l’apprentissage grace au succès (bon d’accord jusque là ça va)
|
||||
- soit : échouer, auquel cas on va essayer des choses un peu différentes, voire carrément nouvelles- puis réussir avec une nouvelle chose
|
||||
- mémorisation de la méthode utilisée, création d’un apprentissage grace au succès
|
||||
|
||||
Et bah, c’est exactement comme ça que font absolument tous les animaux hein
|
||||
|
||||
Dans la réalité véritable hors de la société humaine cheloue, c’est comme ça que ça se passe
|
||||
|
||||
Si vous voulez apprendre une vraie méthode d’apprentissage, bah achetez un livre d’éducation canine (éducation positive, évidemment)
|
||||
|
||||
Et vous apprendrez en même temps que les punitions c’est du gros caca, que ça sert à rien, réduit le potentiel d’apprentissage et créé des traumas (woaw étonnant /sarcasme)
|
||||
|
||||
Qu’un apprentissage c’est petit pallier par petit pallier, par la pratique (donc par le haut de son illustration) et avec des succès et non des punitions
|
||||
|
||||
Et qu’un apprentissage ça se généralise (parce que oui c’est aussi un problème qu’ont les neurodivergents !), c’est à dire qu’un apprentissage dans une situation donnée, il faut l’apprendre dans d’autres situations, par exemple si j’apprends qu’il faut dire « bonjour » à une personne, il faut aussi que j’apprenne à dire « bonjour » à un groupe de personnes (oui l’exemple est simpliste, mais c’est pour l’idée)
|
||||
|
||||
Ouais, c’est vraiment mon conseil pour une méthode d’apprentissage pour les ND, acheter un livre d’éducation positive canine 😐
|
||||
|
||||
C’est pas à utiliser littéralement sur vos enfants, vos ami-e-s ou vous même évidemment (quoi que 🐾😋) mais pour en extraire la substance et trouver des méthodes différentes que celles hégémoniques et mieux dealer nos vies 😌
|
||||
|
||||
Vous voyez moi aussi je m’appuie sur la science pour vous donner la vraie et seule (non) méthode d’apprentissage : l’éthologie canine (potétre qui se pourrait bien que éventuellement ça soit un de mes IS 🥲)
|
||||
|
||||
Le 2 septembre 2023,
|
||||
Typhen.
|
||||
|
||||
## Ce texte ailleurs
|
||||
|
||||
- [Sur le fédi (octodon.social)](https://octodon.social/@OniriCorpe/110992853489493430)
|
||||
BIN
content/log/neurodivergences/schema-apprentissage-nt.jpeg
Normal file
|
After Width: | Height: | Size: 71 KiB |
39
content/log/neurodivergences/sisyphe.md
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
+++
|
||||
title = "Sisyphe"
|
||||
date = 2023-12-28
|
||||
authors = []
|
||||
theme = "anemone"
|
||||
template = "blog-page.html"
|
||||
+++
|
||||
|
||||
CW : suicide, validisme, gaslighting, maltraitances
|
||||
|
||||
j'ai vu que l'article mis en avant aujourd'hui sur Wikipedia est le suivant :
|
||||
["Suicide chez les personnes autistes"](https://fr.wikipedia.org/wiki/Suicide_chez_les_personnes_autistes)
|
||||
|
||||
je n'ai pas eu le courage ni l'énergie de lire + que l'introduction, mais j'aimerais quand même poster un truc sur ça
|
||||
|
||||
bien sûr que quand toute notre vie on subit :
|
||||
|
||||
- du rabaissement à cause de notre comportement sain et inné, qui met mal à l'aise les neurotypiques
|
||||
- du gaslighting permanent sur nos émotions, sur ce que l'on vit, sur qui on est et qui on aimerait être, sur nos avis et préférences
|
||||
- du gaslighting permanent sur notre pseudo-absence d'effort pour se conformer au monde NT et valide alors que toute notre vie est basée sur un affrontement entre ces « efforts sociaux » pour tenter d'être vu·e et accepté·e en tant qu'humain·e et nos réactions instinctives supposément à proscrire, et que chaque effort augmente notre part de trauma alors que les NT en face ne font littéralement aucun "effort" et nous enferment dans leur carcan d'injonctions à en faire unilatéralement (le masking)
|
||||
- que la totalité de nos entourages NT n'ont absolument aucune connaissance de ces souffrances et perpétuent le gaslight quand on tente d'en parler
|
||||
- que notre entourage neurodivergent mais dans le déni fait de même, brisant alors petit à petit notre confiance pour se livrer à elleux, chaque fois un peu +
|
||||
- qu'il y a littéralement absolument zéro perspective d'avenir en tant que neurodivergent·e dans ce monde, à cause du militantisme anti-autiste et eugéniste, souvent insidieux mais parfois honnête dans leur horreur (fantasmes des vaccins causant l'autisme, les recherches scientifiques (ou non) pour trouver les causes de l'autisme et les « corriger », le suicide assisté (pour se débarasser de nous au lieu de faire en sorte de changer la société pour qu'on s'y sente à l'aise...), etc.)
|
||||
- que notre foutu pays est dénoncé en continu par des militants et se prend condamnation sur condamnation de la part de l'ONU, qui le supplie de stopper de toute urgence la ségrégation sociale des autistes et handis dans des prisons spécialisées, mais que cette pratique stupéfiante de cruauté se poursuit encore et toujours
|
||||
- que nos cultures handies et autistes sont complètement effacées de la vie commune, tout comme nous l'effaçons de nous-mêmes en étant obligé·es de porter un masque
|
||||
|
||||
on passe notre vie à prendre sur nous, sans succès
|
||||
l'autisme dans ce monde neurotypique absurde, c'est littéralement la malédiction de Sisyphe
|
||||
|
||||
on pousse notre rocher (notre masque, nos tentatives de s'accorder avec la société) et c'est absolument toujours vain
|
||||
quand on n'a pas le choix, on avance, on pousse
|
||||
et peut-être qu'un jour, le rocher finit par nous emporter dans sa chute
|
||||
|
||||
alors oui, le taux de suicides des autistes est « trois à sept fois supérieur à celle de la population générale »
|
||||
et ça surprend qui ?
|
||||
certainement pas moi
|
||||
|
||||
Le 28 décembre 2023,
|
||||
Xana, désabusée.
|
||||
24
content/log/note/2022-02-08_cassette.md
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
+++
|
||||
title = "Cassette"
|
||||
date = 2022-02-08
|
||||
authors = []
|
||||
theme = "anemone"
|
||||
template = "blog-page.html"
|
||||
+++
|
||||
|
||||
[Merry m'a partagé une capsule, KONPEITO.](gemini://konpeito.media/)
|
||||
|
||||
J'ai d'abord été intriguée, parce que les konpeito ont une valeur sentimentale importante pour mon amoureuse, qui en parle de temps en temps.
|
||||
J'ai cliqué et j'ai découvert que c'était des compilations amateures de musique "Lo-fi hip hop & chill".
|
||||
|
||||
J'ai jeté une oreille et j'ai redécouvert le plaisir d'écouter de la musique sélectionnée par un-e autre humain-e, et le format "coté de cassette" est vraiment quelque chose qui me manquait, sans que je le sache.
|
||||
J'ai particulièrement cette sensation de pouvoir se laisser porter par le courant de la musique, en confiance. Le fait que ça soit une sélection humaine apporte vraiment quelque chose par rapport à de la musique choisie par un algorithme comme c'est souvent le cas dans ce présent.
|
||||
Être forcée de suivre le cours de la musique, savourer la piste actuelle et ne pas pouvoir facilement revenir dessus ou la zapper et quelque chose qui m'est vraisemblablement précieux. Je suis heureuse de m'en rendre compte !
|
||||
|
||||
J'aimerais retrouver ma cassette de musique péruvienne qui m'accompagnait partout avec mon vieux baladeur et mon casque pourri, quand j'étais gamine. J'aimerais me promener dans la rue et entrendre ces memes mélodies de flutte de pan que je connaissais par coeur. Ça me rassurait énormément et je me sentais acceptée dans l'espace public avec mon casque mal ajusté et qui tombait de mes oreilles.
|
||||
C'était ma carapace. Elle était douce.
|
||||
|
||||
J'ai toujours ce vieux baladeur et je pense que je vais essayer de l'utiliser de temps en temps, si j'arrive à me procurer des cassettes qui m'intéressent (ou à les faire moi même).
|
||||
|
||||
émy
|
||||
2022-02-08
|
||||
24
content/log/note/2022-03-14_mousse.md
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
+++
|
||||
title = "Mousse"
|
||||
date = 2022-03-14
|
||||
authors = []
|
||||
theme = "anemone"
|
||||
template = "blog-page.html"
|
||||
+++
|
||||
|
||||
quand j'étais gamine je captais PAS que des choses différentes peuvent avoir le même nom
|
||||
|
||||
et le jour ou, à la fin de mon bain, j'ai mis de la mousse de coté pour la garder et que quelques heures plu tard elle avait disparu, je me suis sentie immensément spoliée par l'univers entier
|
||||
|
||||
parce que pour moi la mousse c'était ce truc spongieux mais solide là
|
||||
et pas juste un truc éphémère :<
|
||||
|
||||
depuis ce jour j'ai perdu confiance en le monde et je remet beaucoup les choses en question
|
||||
|
||||
émy
|
||||
2022-03-14
|
||||
|
||||
## Ce texte ailleurs
|
||||
|
||||
- [Sur le fédi (soc.emelyne.eu)](https://soc.emelyne.eu/notice/AHOJwwND6i3BNJfkGW)
|
||||
- [Sur Twitter](https://twitter.com/OniriCorpe/status/1503216817573138433)
|
||||
6
content/log/note/_index.md
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
+++
|
||||
title = "Notes"
|
||||
template = "section.html"
|
||||
page_template = "blog-page.html"
|
||||
sort_by = "date"
|
||||
+++
|
||||
16
content/log/poesie/2016-02-08.md
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
+++
|
||||
title = "Poème #1"
|
||||
date = 2016-02-08
|
||||
authors = []
|
||||
theme = "anemone"
|
||||
template = "blog-page.html"
|
||||
+++
|
||||
|
||||
> Publié le 08/02/2016.
|
||||
|
||||
Séhane dessinant,
|
||||
Son esprit créant,
|
||||
Sa perception du vivant,
|
||||
S'anime doucement,
|
||||
Sublime crayonné dansant,
|
||||
Soignant ses traits amoureusement.
|
||||
17
content/log/poesie/2016-10-04.md
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
+++
|
||||
title = "Poème #2"
|
||||
date = 2016-10-04
|
||||
authors = []
|
||||
theme = "anemone"
|
||||
template = "blog-page.html"
|
||||
+++
|
||||
|
||||
> Publié le 04/10/2016.
|
||||
|
||||
Tout' ces vies, déprimées. Humanité achalandant ce sal' globe.
|
||||
|
||||
J'ai cru en l'imagination, l'utopiste raisonnement. Mais tant pis.
|
||||
|
||||
Pour tous cett' velléité, immonde, émanant la mort. Chao.
|
||||
|
||||
Plus tôt s'ra préférable. Mycélium s'épandant. Feu… A… Dieu…
|
||||
20
content/log/poesie/2017-10-01.md
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
+++
|
||||
title = "Poème #3"
|
||||
date = 2017-10-02
|
||||
authors = []
|
||||
theme = "anemone"
|
||||
template = "blog-page.html"
|
||||
+++
|
||||
|
||||
> Publié le 02/10/2017.
|
||||
|
||||
Ce matin mon esprit à écrit un poème, “je” l'a consigné :
|
||||
|
||||
Temps des fougères ocre-oranges
|
||||
Saisons de mouvements, orages
|
||||
Aveux, rhumes, pleurs, pensées, joies, ménages
|
||||
Être d'introspection, je
|
||||
Êtres d'amour, jeux ?
|
||||
Dépression, sortilège
|
||||
Désillusion, sombre manège
|
||||
Soudain, je me rappelle, je suis.
|
||||
6
content/log/poesie/_index.md
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
+++
|
||||
title = "Poésie"
|
||||
template = "section.html"
|
||||
page_template = "blog-page.html"
|
||||
sort_by = "date"
|
||||
+++
|
||||
6
content/log/tech/_index.en.md
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
+++
|
||||
title = "Tech"
|
||||
template = "section.html"
|
||||
page_template = "blog-page.html"
|
||||
sort_by = "date"
|
||||
+++
|
||||
6
content/log/tech/_index.md
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
+++
|
||||
title = "Tech"
|
||||
template = "section.html"
|
||||
page_template = "blog-page.html"
|
||||
sort_by = "date"
|
||||
+++
|
||||
211
content/log/tech/capteurs-millimetriques-esphome.md
Normal file
|
|
@ -0,0 +1,211 @@
|
|||
+++
|
||||
title = "Configuration de capteurs millimétriques LD2410C avec Wemos S2 Mini pour ESPHome"
|
||||
date = 2023-11-25
|
||||
authors = []
|
||||
theme = "anemone"
|
||||
template = "blog-page.html"
|
||||
+++
|
||||
|
||||
Je fais cet article pour complémenter la vidéo des frères Poulain du 13 novembre 2023 sur les capteurs de présence à ondes millémétriques.
|
||||
|
||||
Je vais fournir la configuration que j'ai dû reconstruire à partir de la documentation ainsi que de quelques passages de la vidéo, ainsi que le descriptif pas à pas que j'ai dû réaliser afin de faire fonctionner ces capteurs dans Home Assistant
|
||||
|
||||
Je le fais aussi pour moi carj'ai une mauvaise mémoire et que j'aime documenter les choses ^w^
|
||||
|
||||
## Brasure du capteur LD2410C sur le Wemos S2 mini
|
||||
|
||||
- Coller un bout de chatterton sur le capteur, afin de l'isoler carune partie sera en contact du port USB-c
|
||||
- Placer le capteur comme illustré et décrit sur les photos, et réaliser les brasures de "VBUS", "GND", "16", "18" et "33"
|
||||
[Photo vue du dessus : le Wemos S2 Mini est positionné avec le port USB-C vers le bas de la photo et vers le plafond, le capteur est posé dessus en bas à droite, près du bouton "0"](../capteurs-millimetriques-esphome_dessus.jpg)
|
||||
[Photo vue du dessous : le Wemos S2 Mini est retourné, port USB-C vers le bas, laissant apparaitre le marquage des ports, la capteur est positionné complètement en bas à gauche, entre les ports "VBUS" et "33"](../capteurs-millimetriques-esphome_dessous.jpg)
|
||||
|
||||
## Création de la configuration dans ESPHome sur Home Assistant
|
||||
|
||||
Si ce n'est pas fait, installez le Dashboard ESPHome tel qu'expliqué sur le lien suivant :
|
||||
[Getting Started with ESPHome and Home Assistant](https://esphome.io/guides/getting_started_hassio)
|
||||
|
||||
- Rendez-vous dans l'onglet ESPHome de votre Home Assistant
|
||||
- Cliquer sur "Secrets" en haut à droite
|
||||
- Renseigner le nom de votre wifi après "wifi_ssid:" ainsi que son mot de passe après "wifi_password:", en respectant la casse (les majuscules et minuscules) et en mettant des guillements avant et après
|
||||
- Cliquer sur "Save" en haut à droite, puis sur la croix en haut à gauche
|
||||
- Cliquer sur "New Device" en bas à droite, puis sur "Continue"
|
||||
- Nommer votre futur capteur, par exemple "Présence Bureau", puis cliquer sur "Next"
|
||||
- Décocher "Use recommanded settings", puis sélectionner "ESP32-S2" puis "WEMOS LOLIN S2 MINI"
|
||||
- Copier votre clé de chiffrement et garder là en lieu sûr, puis cliquer sur Skip
|
||||
- Cliquer sur "Edit" sous le nom donné à votre capteur et copiez cette configuration dans un éditeur de texte
|
||||
|
||||
## Premier flashage
|
||||
|
||||
- Modifier la configuration précédemment copiée dans un éditeur de texte (ne pas directement modifier dans Home Assistant !)
|
||||
- Remplacer "!secret wifi_ssid" par le nom de votre réseau wifi, en respectant la casse (les majuscules et minuscules) et en mettant des guillements avant et après
|
||||
- Remplacer "!secret wifi_password" par le mot de passe de votre réseau wifi, toujours en respectant la casse et en mettant des guillements avant et après
|
||||
- Ajouter les lignes suivantes sous "friendly_name:" dans la catégorie "esphome:" tout en haut de la configuration :
|
||||
|
||||
```yaml
|
||||
platformio_options:
|
||||
board_build.extra_flags:
|
||||
- "-DARDUINO_USB_CDC_ON_BOOT=0" # Override, defaults to '-DARDUINO_USB_CDC_ON_BOOT=1'
|
||||
```
|
||||
|
||||
- Ajouter ces même lignes dans la configuration sur Home Assistant au même endroit que précédemment, cliquer sur "Save" puis la croix
|
||||
- Enregistrer la configuration dans votre éditeur de texte en lui donnant un nom finissant par ".yaml", tel que "capteur-bureau.yaml"
|
||||
|
||||
[Votre fichier de configuration devrait ressembler à celui-ci !](../capteurs-millimetriques-esphome_premiere-config.txt)
|
||||
|
||||
[Vous pouvez désormais visionner la vidéo des frères Poulain au chapitre "Installation de ESP Home et python"](https://youtu.be/DjN9L8Cagnw?t=389)
|
||||
|
||||
Une fois Python et ESPHome installés sur votre ordinateur et le Wemos S2 Mini branché à votre PC en maintenant le bouton "0" puis en le relanchant une fois branché, vous pouvez lancer la commande suivante (en remplaçant "capteur-bureau.yaml" par votre nom de configuration) :
|
||||
|
||||
```bash
|
||||
python3 -m esphome run capteur-bureau.yaml
|
||||
```
|
||||
|
||||
Sélectionnez le choix numéro 1 quand le script vous le demande, en entrant "1" puis en validant avec votre touche Entrée
|
||||
Le firmware va être écrit sur la carte Wemos S2 Mini
|
||||
|
||||
Une fois fini, débranchez et rebranchez le Wemos S2 Mini pour le faire redémarrer, puis rendez-vous dans "Paramètres" puis "Appareils et Services" sur Home Assistant
|
||||
Vous devriez voir votre capteur tout juste découvert par Home Assistant !
|
||||
Cliquez sur "Configurer" puis "Valider", enfin, renseignez lui une localisation si demandé et cliquez sur "Terminé"
|
||||
Si la clé d'API vous est demandée (normalement non), c'est la clé de chiffrement qui vous a été donnée plus tôt et que vous trouverez dans la configuration flashée au niveau de "encryption:" puis "key:"
|
||||
|
||||
## Second flashage, mais en wifi
|
||||
|
||||
- Aller dans l'onglet ESPHome de Home Assistant
|
||||
- Cliquer sur "Edit" sous le nom de votre nouveau capteur
|
||||
- Normalement la partie concernat le wifi estrestée comme ceci (si ce n'est pas le cas, remettre correctement) :
|
||||
|
||||
```yaml
|
||||
wifi:
|
||||
ssid: !secret wifi_ssid
|
||||
password: !secret wifi_password
|
||||
```
|
||||
|
||||
- Coller le texte suivant après "captive_portal:", en sautant deux lignes et en veillant à supprimer les espaces ajoutés automatiquement :
|
||||
|
||||
```yaml
|
||||
ld2410:
|
||||
|
||||
uart:
|
||||
tx_pin: GPIO18
|
||||
rx_pin: GPIO33
|
||||
baud_rate: 256000
|
||||
parity: none
|
||||
stop_bits: 1
|
||||
|
||||
sensor:
|
||||
- platform: ld2410
|
||||
light:
|
||||
name: light
|
||||
moving_distance:
|
||||
name : Moving Distance
|
||||
still_distance:
|
||||
name: Still Distance
|
||||
moving_energy:
|
||||
name: Move Energy
|
||||
still_energy:
|
||||
name: Still Energy
|
||||
detection_distance:
|
||||
name: Detection Distance
|
||||
|
||||
binary_sensor:
|
||||
- platform: ld2410
|
||||
has_target:
|
||||
name: Presence
|
||||
has_moving_target:
|
||||
name: Moving Target
|
||||
has_still_target:
|
||||
name: Still Target
|
||||
|
||||
number:
|
||||
- platform: ld2410
|
||||
timeout:
|
||||
name: timeout
|
||||
light_threshold:
|
||||
name: light threshold
|
||||
max_move_distance_gate:
|
||||
name: max move distance gate
|
||||
max_still_distance_gate:
|
||||
name: max still distance gate
|
||||
g0:
|
||||
move_threshold:
|
||||
name: g0 move threshold
|
||||
still_threshold:
|
||||
name: g0 still threshold
|
||||
g1:
|
||||
move_threshold:
|
||||
name: g1 move threshold
|
||||
still_threshold:
|
||||
name: g1 still threshold
|
||||
g2:
|
||||
move_threshold:
|
||||
name: g2 move threshold
|
||||
still_threshold:
|
||||
name: g2 still threshold
|
||||
g3:
|
||||
move_threshold:
|
||||
name: g3 move threshold
|
||||
still_threshold:
|
||||
name: g3 still threshold
|
||||
g4:
|
||||
move_threshold:
|
||||
name: g4 move threshold
|
||||
still_threshold:
|
||||
name: g4 still threshold
|
||||
g5:
|
||||
move_threshold:
|
||||
name: g5 move threshold
|
||||
still_threshold:
|
||||
name: g5 still threshold
|
||||
g6:
|
||||
move_threshold:
|
||||
name: g6 move threshold
|
||||
still_threshold:
|
||||
name: g6 still threshold
|
||||
g7:
|
||||
move_threshold:
|
||||
name: g7 move threshold
|
||||
still_threshold:
|
||||
name: g7 still threshold
|
||||
g8:
|
||||
move_threshold:
|
||||
name: g8 move threshold
|
||||
still_threshold:
|
||||
name: g8 still threshold
|
||||
|
||||
switch:
|
||||
- platform: ld2410
|
||||
engineering_mode:
|
||||
name: "engineering mode"
|
||||
bluetooth:
|
||||
name: "control bluetooth"
|
||||
|
||||
select:
|
||||
- platform: ld2410
|
||||
distance_resolution:
|
||||
name: "distance resolution"
|
||||
light_function:
|
||||
name: light function
|
||||
```
|
||||
|
||||
[Votre fichier de configuration devrait ressembler à celui-ci !](../capteurs-millimetriques-esphome_config-finale.txt)
|
||||
|
||||
[Lien vers la documentation, pour savoir quelle option fait quoi](https://esphome.io/components/sensor/ld2410.html)
|
||||
|
||||
- Cliquer sur les 3 points verticaux dans le rectangle de votre nouveau capteur de présence, puis sélectionner "Validate"
|
||||
- Si "INFO Configuration is valid!" est indiqué tout en bas, c'est que tout est bon et que vous pouvez passer à la suite ! Sinon c'est que vous avez fait une erreur dans votre configuration
|
||||
- Fermer la fenêtre en cliquant sur "Close"
|
||||
- Cliquer à nouveau sur les 3 points verticaux de votre capteurs et sélectionner "Install" puis "Wirelessly"
|
||||
- Attendre que la compilation se fasse et se télécharge sur votre capteur en wifi (cela prend pas mal de temps, vous pouvez souffler)
|
||||
- Si des lignes turquoise et magenta défilent ensuite sur votre écran, c'est que tout s'est bien passé et que le capteur envoit désormais ses mesures à Home Assistant en wifi !
|
||||
- Cliquer sur "Stop" pour fermer la fenêtre
|
||||
|
||||
## C'est la fin
|
||||
|
||||
C'est déjà fini !
|
||||
|
||||
Vous trouverez votre capteur dans "Paramètres" puis "Appareils et Services" puis en cliquant sur "n Appareils" sous "ESPHome", tous vos capteurs ajoutés avec cette méthodes apparaitront ici ! :)
|
||||
|
||||
Profitez désormais de votre ou vos capteurs !!
|
||||
|
||||
Le 25 novembre 2023,
|
||||
Émy
|
||||
|
|
@ -0,0 +1,138 @@
|
|||
esphome:
|
||||
name: presence-bureau
|
||||
friendly_name: Présence Bureau
|
||||
platformio_options:
|
||||
board_build.extra_flags:
|
||||
- "-DARDUINO_USB_CDC_ON_BOOT=0" # Override, defaults to '-DARDUINO_USB_CDC_ON_BOOT=1'
|
||||
|
||||
esp32:
|
||||
board: lolin_s2_mini
|
||||
framework:
|
||||
type: arduino
|
||||
|
||||
# Enable logging
|
||||
logger:
|
||||
|
||||
# Enable Home Assistant API
|
||||
api:
|
||||
encryption:
|
||||
key: "Nc7FgnMmVURqsIDNOe9BJ500f86fXPN0ar00pgBQb5g="
|
||||
|
||||
ota:
|
||||
platform: esphome
|
||||
password: "c27ed55a655306897d779dec5e642a5f"
|
||||
|
||||
wifi:
|
||||
ssid: !secret wifi_ssid
|
||||
password: !secret wifi_password
|
||||
|
||||
# Enable fallback hotspot (captive portal) in case wifi connection fails
|
||||
ap:
|
||||
ssid: "Presence-Bureau Fallback Hotspot"
|
||||
password: "WnpkIdcznbOM"
|
||||
|
||||
captive_portal:
|
||||
|
||||
|
||||
ld2410:
|
||||
|
||||
uart:
|
||||
tx_pin: GPIO18
|
||||
rx_pin: GPIO33
|
||||
baud_rate: 256000
|
||||
parity: none
|
||||
stop_bits: 1
|
||||
|
||||
sensor:
|
||||
- platform: ld2410
|
||||
light:
|
||||
name: light
|
||||
moving_distance:
|
||||
name : Moving Distance
|
||||
still_distance:
|
||||
name: Still Distance
|
||||
moving_energy:
|
||||
name: Move Energy
|
||||
still_energy:
|
||||
name: Still Energy
|
||||
detection_distance:
|
||||
name: Detection Distance
|
||||
|
||||
binary_sensor:
|
||||
- platform: ld2410
|
||||
has_target:
|
||||
name: Presence
|
||||
has_moving_target:
|
||||
name: Moving Target
|
||||
has_still_target:
|
||||
name: Still Target
|
||||
|
||||
number:
|
||||
- platform: ld2410
|
||||
timeout:
|
||||
name: timeout
|
||||
light_threshold:
|
||||
name: light threshold
|
||||
max_move_distance_gate:
|
||||
name: max move distance gate
|
||||
max_still_distance_gate:
|
||||
name: max still distance gate
|
||||
g0:
|
||||
move_threshold:
|
||||
name: g0 move threshold
|
||||
still_threshold:
|
||||
name: g0 still threshold
|
||||
g1:
|
||||
move_threshold:
|
||||
name: g1 move threshold
|
||||
still_threshold:
|
||||
name: g1 still threshold
|
||||
g2:
|
||||
move_threshold:
|
||||
name: g2 move threshold
|
||||
still_threshold:
|
||||
name: g2 still threshold
|
||||
g3:
|
||||
move_threshold:
|
||||
name: g3 move threshold
|
||||
still_threshold:
|
||||
name: g3 still threshold
|
||||
g4:
|
||||
move_threshold:
|
||||
name: g4 move threshold
|
||||
still_threshold:
|
||||
name: g4 still threshold
|
||||
g5:
|
||||
move_threshold:
|
||||
name: g5 move threshold
|
||||
still_threshold:
|
||||
name: g5 still threshold
|
||||
g6:
|
||||
move_threshold:
|
||||
name: g6 move threshold
|
||||
still_threshold:
|
||||
name: g6 still threshold
|
||||
g7:
|
||||
move_threshold:
|
||||
name: g7 move threshold
|
||||
still_threshold:
|
||||
name: g7 still threshold
|
||||
g8:
|
||||
move_threshold:
|
||||
name: g8 move threshold
|
||||
still_threshold:
|
||||
name: g8 still threshold
|
||||
|
||||
switch:
|
||||
- platform: ld2410
|
||||
engineering_mode:
|
||||
name: "engineering mode"
|
||||
bluetooth:
|
||||
name: "control bluetooth"
|
||||
|
||||
select:
|
||||
- platform: ld2410
|
||||
distance_resolution:
|
||||
name: "distance resolution"
|
||||
light_function:
|
||||
name: light function
|
||||
BIN
content/log/tech/capteurs-millimetriques-esphome_dessous.jpg
Normal file
|
After Width: | Height: | Size: 202 KiB |
BIN
content/log/tech/capteurs-millimetriques-esphome_dessus.jpg
Normal file
|
After Width: | Height: | Size: 198 KiB |
|
|
@ -0,0 +1,34 @@
|
|||
esphome:
|
||||
name: presence-bureau
|
||||
friendly_name: Présence Bureau
|
||||
platformio_options:
|
||||
board_build.extra_flags:
|
||||
- "-DARDUINO_USB_CDC_ON_BOOT=0" # Override, defaults to '-DARDUINO_USB_CDC_ON_BOOT=1'
|
||||
|
||||
esp32:
|
||||
board: lolin_s2_mini
|
||||
framework:
|
||||
type: arduino
|
||||
|
||||
# Enable logging
|
||||
logger:
|
||||
|
||||
# Enable Home Assistant API
|
||||
api:
|
||||
encryption:
|
||||
key: "Nc7FgnMmVURqsIDNOe9BJ500f86fXPN0ar00pgBQb5g="
|
||||
|
||||
ota:
|
||||
platform: esphome
|
||||
password: "c27ed55a655306897d779dec5e642a5f"
|
||||
|
||||
wifi:
|
||||
ssid: !secret wifi_ssid
|
||||
password: !secret wifi_password
|
||||
|
||||
# Enable fallback hotspot (captive portal) in case wifi connection fails
|
||||
ap:
|
||||
ssid: "Presence-Bureau Fallback Hotspot"
|
||||
password: "WnpkIdcznbOM"
|
||||
|
||||
captive_portal:
|
||||
80
content/log/tech/comment-cest-fait.md
Normal file
|
|
@ -0,0 +1,80 @@
|
|||
+++
|
||||
title = "Comment c'est fait ? La technique derrière ce log"
|
||||
date = 2023-08-19
|
||||
authors = []
|
||||
theme = "anemone"
|
||||
template = "blog-page.html"
|
||||
+++
|
||||
|
||||
⚠️ Ce billet n'est plus valable aujourd'hui, mon setup est très différent
|
||||
|
||||
## Comment j'écris
|
||||
|
||||
C'est très simple, j'écris avec n'importe quel éiteur de texte (et non pas traitement de texte), habituellement j'utilise VSCode, mais je pourrais aussi utiliser le Bloc Note Windows ou n'importe quoi !
|
||||
Actuellement j'écris avec Runestone (une app légère et indépendante d'édition de texte orienté programmation) sur mon iPad avec un clavier Logitech Combo Touch qui fait aussi coque de protection
|
||||
[Donc, j'utilise Runestone sur ma tablette car je suis dans mon lit et que j'ai envie de tester cette app avant d'éventuellement l'acheter [Lien Web]](https://runestone.app/)
|
||||
|
||||
[J'utilise la syntaxe Gemtext par défaut [Lien Web et Gemini]](//gemini.circumlunar.space/docs/fr/gemtext.gmi)
|
||||
J'aime avoir peu de choix quand j'écris, ça évite de me perdre dans les possibilités de formatage et de ne pas avancer dans ma rédaction !
|
||||
J'aime aussi écrire pour un réseau frugal comme Gemini avant tout, et dont la culture des petites capsules (petits espaces personnels sans grande ambition) fait que peu importe que je ne sois pas très fière d'un texte, je saurai qu'il y trouvera quand même sa place et ne sera pas jugé
|
||||
C'est un peu comme le Web des années 90 ou tout début 2000, quand c'était pas rare d'avoir son site perso sans prétention où on racontait ce qu'on voulait sans chercher la visibilité
|
||||
Peu de gens connaissent mon site, encore moins s'y rendent régulièrement, et ça me va
|
||||
C'est en premier lieu un jardin personnel, où je dépose des pensées que j'ai ainsi que des texte que j'ai envie de conserver
|
||||
|
||||
## Comment j'enregistre et je stocke
|
||||
|
||||
Ensuite je pousse mes fichiers textes, organisés dans des dossiers, sur un dépôt Git hébergé quelque part
|
||||
[À l'heure actuelle, vous pourrez le trouver chez Codeberg, mais ça peut changer à tout moment [Lien Web]](https://codeberg.org/OniriCorpe/log)
|
||||
J'utilise Git pour garder une trace de chaque modification, mais aussi comme un cloud que je peux facilement synchroniser entre les différents appareils ammenés à utiliser les données de ce log, soit pour la rédaction (mon PC, mon téléphone ou ma tablette), soit pour la publication (mon serveur et son système de traitement automatisé, j'y reviendrai)
|
||||
|
||||
[Sur mon téléphone et ma tablette, de marque Apple, j'utilise Working Copy comme client Git (il me sert aussi pour d'autres dépôts que celui de mon log) [Lien Web]](https://workingcopy.app/)
|
||||
|
||||
## Comment je publie pour Gemini
|
||||
|
||||
C'est très simple, j'ai un serveur Gemini qui tourne sur mon serveur que j'auto-héberge chez moi, dans mon atelier
|
||||
Ce serveur Gemini pointe (notamment) vers un dossier dédié à ma capsule, qui contient ma homepage ainsi que ce log
|
||||
[Ma homepage est distincte du log, elle est aussi hébergé sur un serveur Git, toujours Codeberg [Lien Web]](https://codeberg.org/OniriCorpe/homepage)
|
||||
Dans le dossier de ma homepage, il y a un sous dossier pour le log, éponyme
|
||||
Et ce dossier contient un clone du dépôt Git du log, synchronisé automatiquement chaque jour vers 5 heures, donc mes modifications arrivent automatiquement sur Gemini
|
||||
Tout ce que j'ai à faire c'est écrire, enregistrer et pousser les changement ou les nouvelles pages sur le dépôt Git
|
||||
Et si j'ai envie je peux synchroniser le serveur manuellement si je ne veux pas attendre qu'il soit 5 heures pour que mes modifications soient disponibles
|
||||
|
||||
## Comment je publie pour le Web
|
||||
|
||||
Là c'est un peu plusse complexe, car il faut convertir le format Gemtext (Gemini) vers du HTML (Web)
|
||||
|
||||
J'utilise un petit programme pour le faire automatiquement, mais il formate bêtement juste le contenu de la page, sans faire de header avec du CSS et tout ce qui rend une page Web jolie
|
||||
|
||||
[J'ai donc écris mon propre script pour réaliser cela : Genlog (pour Générateur du Log) ^w^ [Lien Web]](https://codeberg.org/OniriCorpe/genlog)
|
||||
C'est un petit script bash qui ajoute un header avec tout ce qu'il faut et le personnalise un peu pour chaque page, notamment pour ajouter le titre dans une balise 'title' pour qu'il s'affiche sur les onglets du navigateur Web
|
||||
|
||||
J'avais réalisé un peu de CSS pour embellir les pages, mais il était bancal :
|
||||
|
||||
* Le rendu était mauvais sur mobile (textes trop gros par rapport à la norme alors que c'était OK sur PC)
|
||||
* Il y avait seulement un mode sombre, ce qui est inaccessible pour certaines personnes
|
||||
* Les blocs préformatés pouvaient dépasser sur la droite de la page sur mobile à cause de la faible largeur d'écran
|
||||
|
||||
J'ai récemment décidé de retravailler tout ça et d'utiliser un CSS déjà fait par quelqu'un qui sait mieux faire que moi, parce que je n'ai pas l'énergie de corriger ces problèmes
|
||||
[Mon choix s'est porté sur Water.css, qui supporte la bascule automatique entre thème clair et sombre selon la configuration de l'utilisateurice sur son navigateur ou système d'exploitation [Lien Web]](https://watercss.kognise.dev/)
|
||||
|
||||
Finalement j'ai réglé moi même le bug des blocs préformatés qui dépassaient avec un peu de recherche, puis j'ai fait le ménage dans le code CSS que j'avais écrit pour retirer ce qui était devenu inutile avec Water.css
|
||||
Et enfin, j'ai amélioré un peu mon code CSS afin de rendre mieux les blocs de citation et les blocs préformatés et que ça soit OK en mode clair comme en mode sombre
|
||||
|
||||
Pour revenir à Genlog, ce script regarde dans chacun des sous-dossiers du dossier qu'on lui a donné, voir s'il y a des fichier .gmi (le format dans lequel j'écris) et si c'est le cas il le convertir en page Web toute propre et l'enregistre dans le même dossier, puis il continue sa recherche jusqu'à ce qu'il ait regardé partout
|
||||
Il peut donc convertir automatiquement un log entier en quelques secondes, c'est parfait pour du travail automatisé (ou pour des tests) !
|
||||
|
||||
Ensuite il suffit de dire à mon serveur Web (nginx) de servir les fichier générés lorsqu'on visite l'adresse Web de mon log, et voilà !
|
||||
|
||||
Donc, à l'aide de cron, chaque jour vers 5 heures, ce script travaille après la récupération éventuelle des nouveaux textes, afin de tout convertir en Web, ainsi tout est facilement accessible pour tout le monde sans que j'ai à faire quoi que ce soit d'autre que d'écrire et de pousser mes modifications dans mon dépôt
|
||||
|
||||
## Pour terminer
|
||||
|
||||
Pouvoir écrire depuis n'importe quel appareil grace à Git me permet vraiment de me sentir libre et d'écrire dès que j'en ai l'envie
|
||||
Et l'automatisation me permet d'etre sereine et de ne pas me préocuper de si c'est à jour ou non : chaque jour les fichiers du dépôt sont récupérés et servis sur Gemini, puis convertis en HTML et servis sur le Web
|
||||
Tout est en fichiers statiques donc c'est économe en ressources et facile à gérer
|
||||
Je voulais un système frugal et low-tech, je l'ai fait ^w^
|
||||
|
||||
À plusse !
|
||||
|
||||
Le 19 août 2023,
|
||||
Typhen
|
||||
425
content/log/tech/kobo-hacks-mods.md
Normal file
|
|
@ -0,0 +1,425 @@
|
|||
+++
|
||||
title = "Kobo hacks & mods"
|
||||
date = 2022-10-08
|
||||
authors = []
|
||||
theme = "anemone"
|
||||
template = "blog-page.html"
|
||||
+++
|
||||
|
||||
Un petit billet pour recenser toute ce que je trouve pertinents comme modifications software (dictionnaires custom, patch de firmware, logiciels tiers à installer, etc.) pour les liseuses Kobo
|
||||
|
||||
## Un meilleur dictionnaire
|
||||
|
||||
S'il y a un seul truc à changer sur votre liseuse, c'est certainement celui-ci
|
||||
|
||||
On va pas se mentir, les dictionnaires fournis de base pas Kobo sont très limités
|
||||
Personellement, quasiment chaque fois que je cherche un mot (j'ai un vocabulaire assez développé, parce que j'ai grave nerdé les dictionnaires enfant et ado), c'est soit du jargon chelou, soit un mot inusité ; résultat le dictionnaire francophone inclu ne me répond jamais autre chose que "je connais pas non plu, déso"
|
||||
|
||||
Heureusement, un hacker assez déter, Mickaël Schoentgen, a eu le meme problème que moi et a fait autre chose que chouiner (cependant je ne sais pas s'il a aussi chouiné)
|
||||
[Il a tout expliqué dans un beau billet sur son blog, que je vous invite à lire :)](https://www.tiger-222.fr/?d=2020/04/17/22/14/21-un-dictionnaire-alternatif-et-complet-pour-votre-kobo)
|
||||
|
||||
[Il s'est basé sur la gigantesque (!!) base de donnée du Wiktionnaire](https://fr.wiktionary.org/)
|
||||
Cette base de donnée et bénévole et ouverte, et compte actuellement 1 814 584 mots francophones, ce qui est super impressionnant !
|
||||
Le français est la langue la plusse documentée de toutes dans le wiktionnaire :
|
||||
|
||||
* anglais : 732 844 mots
|
||||
* allemand : 805 282 mots
|
||||
* espagnol : 745 243 mots
|
||||
* italien : 53 077 mots
|
||||
* portugais : 60 722 mots
|
||||
|
||||
Pour rester dans les dictionnaires francophones (dont j'ai trouvé des chiffres sur leur site) :
|
||||
[le Larousse : 135 000 mots](https://www.larousse.fr/dictionnaires/francais-monolingue)
|
||||
[le Littré : 78 600 mots](https://www.littre.org/statistiques)
|
||||
|
||||
En bref, si vous etes francophones, c'est le dictionnaire le plus complet existant dans le monde, et n'importe qui est libre de le télécharger et l'utiliser gratuitement
|
||||
|
||||
Vous pouvez télécharger les différents dictionnaires basés sur le Wiktionnaire à ces adresses (prenez le fichier intitulé "Kobo") :
|
||||
[Français](https://github.com/BoboTiG/ebook-reader-dict/releases/tag/fr)
|
||||
[Catalan](https://github.com/BoboTiG/ebook-reader-dict/releases/tag/ca)
|
||||
[Allemand](https://github.com/BoboTiG/ebook-reader-dict/releases/tag/de)
|
||||
[Anglais](https://github.com/BoboTiG/ebook-reader-dict/releases/tag/en)
|
||||
[Espagnol](https://github.com/BoboTiG/ebook-reader-dict/releases/tag/es)
|
||||
[Grec](https://github.com/BoboTiG/ebook-reader-dict/releases/tag/el)
|
||||
[Italien](https://github.com/BoboTiG/ebook-reader-dict/releases/tag/it)
|
||||
[Norvégien](https://github.com/BoboTiG/ebook-reader-dict/releases/tag/no)
|
||||
[Portugais](https://github.com/BoboTiG/ebook-reader-dict/releases/tag/pt)
|
||||
[Russe](https://github.com/BoboTiG/ebook-reader-dict/releases/tag/ru)
|
||||
[Suédois](https://github.com/BoboTiG/ebook-reader-dict/releases/tag/sv)
|
||||
|
||||
Enregistrez simplement un ou plusieurs de ces dictionnaires dans le dossier '.kobo/custom-dict' (que vous devrez peut-etre créer pour l'occasion) de votre liseuse
|
||||
Vous aurez besoin de redémarrer votre liseuse afin qu'elle prenne en compte ces nouveaux fichiers
|
||||
Ensuite dans l'interface de votre liseuse, lorsque vous cherchez une définition dans le dictionnaire, basculez de "français" (le dictionnaire francophone de base) à "français - français" (ou l'équivalent pour les autres langues) afin d'utiliser vos nouveaux dictionnaires
|
||||
|
||||
## Plato & KOReader
|
||||
|
||||
Plato et KOReader sont deux logiciels gratuits et open source que vous pouvez installer sur votre liseuses, qui serviront d'interface de lecture alternatives
|
||||
Ceux-ci ont chacun une interface complètement différente et une manière différente d'interpréter vos livres numériques
|
||||
|
||||
Ma petite préférence va à Plato, qui est cependant moins connu que KOReader
|
||||
|
||||
[Plato](https://github.com/baskerville/plato)
|
||||
[KOReader](http://koreader.rocks/)
|
||||
|
||||
Il existe des packages qui vous permettent d'installer l'un ou l'autre ou les deux très simplement, il s'agit de simples fichiers compressés à décompresser dans votre liseuse, à la racine
|
||||
[One-Click Install Packages for KOReader & Plato par NiLuJe](https://www.mobileread.com/forums/showthread.php?t=314220)
|
||||
Ces fichiers compressés sont mis à jour à chaque nouvelle version de Plato, Koreader ou d'une des dépendances,KFMon ou NickelMenu (NickelMenu, dont nous causerons un peu plus tard)
|
||||
|
||||
Je vous conseille une manipulation supplémentaire afin d'éviter que Nickel (le logiciel interface par défaut de Kobo) n'affiche plein de fichiers inutilement
|
||||
Rendez-vous dans le dossier ".kobo/Kobo" de votre liseuse et éditez le fichier "Kobo eReader.conf" afin d'y ajouter les lignes suivantes à la toute fin :
|
||||
|
||||
```conf
|
||||
[FeatureSettings]
|
||||
ExcludeSyncFolders=(\\.(?!kobo|adobe).+|([^.][^/]*/)+\\..+)
|
||||
```
|
||||
|
||||
Une fois l'archive de votre choix décompressée dans votre liseuse et celle-ci éjectée (proprement) de votre ordinateur, elle devrait redémarrer automatiquement afin d'appliquer la mise à jour permettant l'installation des dépendances qui seront utiles pour lancer votre ou vos interfaces personnalisées depuis l'interface par défaut
|
||||
|
||||
Lorsque votre liseuse aura redémarrée, un nouveau menu sera affiché en bas de l'interface, c'est NickelMenu
|
||||
NickelMenu permet de lancer diverses actions sur votre liseuse, telles que démarrer Plato ou KOReader, mais aussi accéder au navigateur intégré, éteindre ou redémarrer facilement votre liseuse, activer ou désactiver la fonction screeshots (qui permet de capturer l'image à l'écran en appuyant sur le bouton de veille de la machine), ou des scripts arbitraires
|
||||
[La documentation complète de NickelMenu est accessible ici (en anglais)](https://github.com/pgaskin/NickelMenu/blob/master/res/doc)
|
||||
(Je vous expliquerai quelques bases et vous donnerai quelques configurations que j'utilise plu loin dans cette page)
|
||||
|
||||

|
||||
|
||||
Une fois NickelMenu ouvert (en appuyant dessus) vous pouvez selectionner Plato ou Koreader pour les démarrer
|
||||
Une fois dans l'une de ces interfaces, si vous voulez revenir à Nickel (linterface par défaut), procédez comme suit :
|
||||
|
||||
* Plato : toucher l'icone de menu "hamburger" (les 3 lignes supperposées) en haut à droite, puis selectionner "Quit"
|
||||
* KOReader : toucher l'inscription "KOReader en haut de l'écran au milieu, puis "Exit" et encore "Exit"
|
||||
|
||||
### Dictionnaires pour Plato & KOReader
|
||||
|
||||
Les dictionnaires que vous avez peut etre installé plus tot ne sont pas compatibles avec Plato ou KOReader, qui utilisent un autre format
|
||||
Je vais donc vous expliquer comment installer ces meme dictionnaires pour Plato et KOReader
|
||||
|
||||
Vous devez télécharger le fichier "StarDict (dict-fr-fr.zip)" (dans le cas du français) que vous trouverez au meme endroit que les dictionnaires présentés précédemment
|
||||
|
||||
Puis rendez-vous dans le dossier '.adds/plato/dictionaries/' (pour Plato) ou '.adds/koreader/data/dict/' (pour KOReader) et créez un dossier avec un nom arbitraire tel que "fr" (afin d'avoir la possibilité d'en installer plusieurs) puis décompressez le fichier dedans
|
||||
|
||||
Vous pouvez désormais éjecter votre liseuse et lancer Plato ou Koreader
|
||||
Notez que le premier lancement peut etre long en raison du traitement du dictionnaire
|
||||
|
||||
## NickelMenu
|
||||
|
||||
Comme vu plus haut, NickelMenu est un menu additionnel présent sur l'écran d'accueil de votre liseuse
|
||||
Mais il est aussi capable d'ajouter des options dans divers autres menus :
|
||||
|
||||
* l'interface de lecture
|
||||
* l'explorateur de livres (ou vos livres sont listés)
|
||||
* le navigateur Web
|
||||
|
||||
Les fichiers de configuration de NickelMenu sont situés dans le dossier '.adds/nm/'
|
||||
Je vous conseille de ne jamais toucher aux fichiers "kfmon", "plato" et "koreader", puisqu'il seront systématiquement remplacés à chaque mise à jour du package d'installation de Plato et Koreader
|
||||
|
||||
Sinon, vous pouvez créer des fichiers aux noms arbitraires comme vous le voulez, tant que vous n'interférez pas avec les fichiers listés ci-dessus
|
||||
Vous pouvez soit faire un gros fichier avec toutes vos configurations personnalisées, soit plusieurs petits fichiers distincts
|
||||
|
||||
Je vous donne à présent des configurations que je trouve interessantes :
|
||||
|
||||
### Éteindre ou redémarrer la liseuse
|
||||
|
||||
```conf
|
||||
menu_item :main :Éteindre :power :shutdown
|
||||
menu_item :main :Redémarrer :power :reboot
|
||||
```
|
||||
|
||||
(Notez que le 3ème mot (ici "Éteindre" et "Redémarrer" sera à chaque fois un nom arbitraire qui s'affichera dans les menus, vous pouvez le personnaliser)
|
||||
|
||||
### Ouvrir et fermer le navigateur Web
|
||||
|
||||
```conf
|
||||
menu_item :main :Web :nickel_browser :
|
||||
menu_item :browser :Quitter :nickel_misc :home
|
||||
```
|
||||
|
||||
(Conservez toujours la seconde ligne, car sans elle vous serez bloqué-e dans le navigateur et devrez impérativement redémarrer la liseuse pour le quitter)
|
||||
|
||||
### Ouvrir Pocket
|
||||
|
||||
```conf
|
||||
menu_item :main :Pocket :nickel_open :library :pocket
|
||||
menu_item :reader :Pocket :nickel_open :library :pocket
|
||||
```
|
||||
|
||||
### Mode sombre / mode nuit
|
||||
|
||||
Pour celui-ci il y a 2 méthodes, la première inverse la couleur de l'écran uniquement dans les interfaces de lecture mais pas ailleurs, tandis que la seconde inverse partout mais nécessite un redémarrage de la liseuse
|
||||
|
||||
```conf
|
||||
menu_item :main :Mode nuit :nickel_setting :toggle :dark_mode
|
||||
menu_item :reader :Mode nuit :nickel_setting :toggle :dark_mode
|
||||
```
|
||||
|
||||
```conf
|
||||
menu_item :main :Inverser écran :nickel_setting :toggle :invert
|
||||
chain_success:power:reboot
|
||||
menu_item :reader :Inverser écran :nickel_setting :toggle :invert
|
||||
chain_success:power:reboot
|
||||
```
|
||||
|
||||
### Forcer la connexion USB
|
||||
|
||||
Cette option vous permet de relancer l'invitation à la connexion USB sans avoir à débrancher et rebrancher votre cable USB
|
||||
|
||||
```conf
|
||||
menu_item :main :USB :nickel_misc :force_usb_connection
|
||||
```
|
||||
|
||||
### Captures d'écran
|
||||
|
||||
Permet d'activer et désactiver le mode de capture d'écran
|
||||
Une fois activé, chaque fois que vous appuierez sur le bouton "Power" de la liseuse une capture d'écran sera facilement
|
||||
Attention à bien penser à désactiver ce mode une fois vos captures réalisées, car si vous n'avez pas d'étui qui sort la liseuse de veille lorsque vous l'ouvrez, vous ne pourrez plu la sortir de veille
|
||||
Une façon de contourner ce problème serait de brancher la liseuse en USB afin de la réveiller
|
||||
Quoi qu'il en soit, pensez-y
|
||||
|
||||
Vous retrouverez vos capture d'écran à la racine de la liseuse, lorsque vous la connecterez à votre ordinateur
|
||||
|
||||
```conf
|
||||
menu_item :main :Screenshots :nickel_setting :toggle :screenshots
|
||||
menu_item :reader :Screenshots :nickel_setting :toggle :screenshots
|
||||
```
|
||||
|
||||
### Lancer un scan manuel de vos livres
|
||||
|
||||
Parfois Nickel ne relance pas de scan après l'import de vos livres, cette option permet de forcer ce scan
|
||||
|
||||
```conf
|
||||
menu_item :main :Rescan :nickel_misc :rescan_books_full
|
||||
```
|
||||
|
||||
## Plugins Calibre
|
||||
|
||||
Afin de gérer votre bibliothèque numérique, il est courant d'utiliser le logiciel Calibre
|
||||
[Télécharger Calibre](https://calibre-ebook.com/fr)
|
||||
|
||||
Je vais vous conseiller quelques plugins afin d'améliorer l'usage de Calibre avec votre liseuse Kobo
|
||||
|
||||
Pour les installer vous devrez vous rendre dans le menu "Préférences" (via la petite flèche située juste à coté) puis "Obtenir des extensions pour améliorer Calibre"
|
||||
|
||||
### KePub
|
||||
|
||||
Le format KePub est un format de livre électroniques similaire à l'ePub mais développé par Kobo afin de proposer des fonctionnalités et des améliorations pour la lecture sur ses liseuses
|
||||
|
||||
[Selon le site KePubify, les fonctionnalités du format KePub sont les suivantes :](https://pgaskin.net/KePubify/)
|
||||
|
||||
* Performance : Tourner les pages, les changements de police, le surlignage et la recherche sont beaucoup plus réactifs sur les KePub.
|
||||
* Prise en charge de l'ePub 3 : La mise en page fixe, l'étalement des pages, MathML, HTML5 et d'autres fonctionnalités ePub 3 ne sont prises en charge que par le lecteur KePub.
|
||||
* Statistiques : Les KePub permettent d'obtenir des statistiques, notamment un graphique de chapitre et une estimation du temps de lecture.
|
||||
* "Page Flip" : La fonction "Page Flip" [des marque pages, en gros], qui vous permet de parcourir rapidement les pages en appuyant sur le coin de l'écran, n'est disponible que sur les KePub.
|
||||
* Notes de bas de page : Sur les KePub, les notes de bas de page apparaissent sous la forme d'une boîte de dialogue contextuelle lorsque le livre original le permet. [Au lieu de sur une autre page]
|
||||
* Zoom sur une image : Appuyez sur une image pour l'agrandir et la déplacer dans une fenêtre contextuelle.
|
||||
* Images de couverture : Kobo affiche correctement les images de couverture pour les KePub, contrairement aux ePub normaux qui se retrouvent souvent avec une affreuse marge blanche.
|
||||
* Polices supplémentaires : À partir de la version 4.32.19501 du firmware, il est possible de sélectionner des polices de repli pour afficher les caractères manquants.
|
||||
|
||||
[KePub Output (permet l'export manuel d'un livre en KePub)](https://www.mobileread.com/forums/showthread.php?t=220565)
|
||||
[KePub Metadata Reader (permet à Calibre de lire les métadonnées des fichiers KePub)](https://www.mobileread.com/forums/showthread.php?t=261009)
|
||||
[KePub Metadata Writer (permet à Calibre d'écrire les métadonnées des fichiers KePub envoyés sur votre liseuse)](https://www.mobileread.com/forums/showthread.php?t=261010)
|
||||
|
||||
### KoboTouchExtended
|
||||
|
||||
> Ce plugin permet d'activer certaines fonctionnalités supplémentaires pour tous les appareils Kobo pris en charge par Calibre à partir du Kobo Touch.
|
||||
> Les livres ePub traités avec ce plugin seront rendus à l'aide du moteur de rendu interne KePub de Kobo au lieu du moteur de rendu ePub standard.
|
||||
|
||||
Ce plugin permet notamment de convertir automatiquement vos ebooks au format KePub
|
||||
|
||||
Pour forcer cette conversion, vous pouvez décocher "epub" dans le menu "Périphérique" (via la petite flèche située juste à coté) puis "Configurer ce périphérique"
|
||||
Je vous conseille de cocher uniquement "kepub", "pdf", "cbr" et "cbz" et laisser le reste décoché
|
||||
|
||||
[Kobo Touch Extended Driver](https://www.mobileread.com/forums/showthread.php?t=211135)
|
||||
|
||||
### Kobo Utilities
|
||||
|
||||
Ce plugin ajoute des fonctions supplémentaires à Calibre concernant les liseuses Kobo
|
||||
|
||||
Selon l'auteur du plugin, les principales fonctionnalités sont :
|
||||
|
||||
* Définir ou supprimer les paramètres de police pour des livres spécifiques.
|
||||
* Désactiver les tuiles de l'écran d'accueil.
|
||||
* Mettre à jour les métadonnées directement dans la base de données de l'appareil.
|
||||
* Modifier l'état de la lecture.
|
||||
* Gérer les informations de série pour les livres sur l'appareil. Ceci concerne principalement les livres qui ne sont pas dans la bibliothèque Calibre, y compris les KePub.
|
||||
* Stocker et enregistrer la position de lecture actuelle pour les ePubs. Cette opération peut être effectuée manuellement ou automatiquement lorsque le lecteur Kobo est connecté. Les profils peuvent être utilisés pour gérer les positions de lecture de plusieurs appareils.
|
||||
* Télécharger ou supprimer les couvertures de tous les livres de la bibliothèque. Cela inclut les KePub.
|
||||
* Quelques options d'annotations dont je ne suis pas satisfait.
|
||||
* Lister les livres manquants dans la base de données des appareils. Cela ne liste que les livres que Calibre pense devoir être dans la base de données.
|
||||
* Sauvegarde de la base de données du périphérique.
|
||||
* Exécuter un contrôle d'intégrité sur la base de données. Cela ne répare rien, mais cela vous indique si la base de données est correcte ou non.
|
||||
* Nettoyer les étagères en double.
|
||||
* Supprimer les fichiers d'annotations.
|
||||
* Définir "Livres associés" pour les livres téléchargés sur la liseuse.
|
||||
|
||||
[Kobo Utilities](https://www.mobileread.com/forums/showthread.php?t=215339)
|
||||
|
||||
### De meilleures métadonnées
|
||||
|
||||
Lorsque vous éditez les métadonnées d'un livre dans Calibre, le logiciel va chercher des informations sur plusieurs sources
|
||||
Les plugins suivants ajoutent des sources
|
||||
|
||||
Notez que vous n'avez pas besoin d'une liseuse Kobo pour utiliser ces plugins là, et que si ceux-ci vous satisfont, vous pouvez aisément les conseiller à n'importe qui :)
|
||||
|
||||
[Kobo Books](https://www.mobileread.com/forums/showthread.php?t=253838)
|
||||
|
||||
Kobo Books ira chercher dans la base de données de Kobo des métadonnées ainsi que des couvertures (d'excellentes qualité), comme Kobo a un très gros catalogue, ça fonctionne presque toujours et les données sont très bonnes
|
||||
|
||||
[Kindle High-res Covers](https://www.mobileread.com/forums/showthread.php?t=286970)
|
||||
|
||||
Kindle High-res Covers va chercher uniquement des couvertures dans la b&ase de donnée Kindle de Amazon, pour etre honnete, ce plugin rend pas souvent de couvertures, mais quand il le fait ça dépanne bien
|
||||
|
||||
## Pirates ! 🏴☠️ (ou non)
|
||||
|
||||
DeDRM_tools & Obok sont 2 outils qui permettent de casser des DRM variés pour le premier et d'importer vos livres achetés sur votre liseuse Kobo dans votre bibliothèque Calibre pour le second
|
||||
|
||||
[DeDRM_tools & Obok](https://github.com/noDRM/DeDRM_tools)
|
||||
|
||||
Vu que ça touche tangantiellement au piratage, sachez que je ne vous recommande absolument pas d'utiliser ces logiciels, c'est pourquoi je vous donne les liens afin que vous sachiez que ça existe et de savoir les repérer afin de ne jamais vous y rendre et encore moins de les utiliser 😌
|
||||
|
||||
De la meme manière, je vous conseille de ne pas aller sur les sites suivants, qui regorgent de livres illégaux :
|
||||
[Z-Library](https://z-lib.org/)
|
||||
[Archives d'Anna](https://fr.annas-archive.org/)
|
||||
[nyaa.si](https://nyaa.si/?f=0&c=3_0&q=)
|
||||
|
||||
Pour remplacer tout cela, je vous conseille le très sérieux site epagine.fr, qui indique clairement si un livre est "protégé" par un DRM, et si oui lequel :
|
||||
[Epagine](https://www.epagine.fr/)
|
||||
|
||||
Ou sinon, 7switch.com, mais il y a moins de choix :
|
||||
[7switch](https://www.7switch.com/fr)
|
||||
|
||||
En gratuit et légal je peux conseiller :
|
||||
[Open Library (par la Internet Archive)](https://openlibrary.org/)
|
||||
[Bibliothèque Anarchiste](https://fr.theanarchistlibrary.org/special/index)
|
||||
[Project Gutenberg](https://www.gutenberg.org/browse/languages/fr)
|
||||
[ÉFÉLÉ](http://efele.net/ebooks/)
|
||||
[Bibebook](https://www.bibebook.com/)
|
||||
|
||||
ou Standard Ebooks (mais c'est uniquement anglophone) :
|
||||
[Standard Ebooks](https://standardebooks.org/)
|
||||
|
||||
## NickelSeries
|
||||
|
||||
NickelSeries débugue la fonctionnalité "Séries" qui permet de regrouper les livres d'une meme série ensemble. Quand on a plein de livres de séries, c'ets vraiment utile.
|
||||
|
||||
[NickelSeries](https://www.mobileread.com/forums/showthread.php?p=4013888)
|
||||
|
||||
Pour l'installer, décompresser le fichier téléchargé dans votre dossier '.kobo'
|
||||
|
||||
## Kobo-UNCaGED
|
||||
|
||||
Kobo-UNCaGED permet de connecter votre liseuse Kobo à Calibre via WiFi (donc sans la brancher en USB) afin de gérer vos livres dessus
|
||||
|
||||
[Kobo-UNCaGED](https://github.com/shermp/Kobo-UNCaGE)
|
||||
|
||||
Pour l'installer, décompresser simplement le fichier à la racine de votre liseuse, éjectez la liseuse puis laissez la redémarrer
|
||||
|
||||
Pour l'utiliser, activez la connection réseau de Calibre via "Connecter/partager" puis "Activer la connexion aux périphériques sans-fil"
|
||||
|
||||
Ensuite lancez Kobo-UNCaGED depuis NickelMenu et appuyez sur "Start" (vous pouvez cocher ou décocher des formats de fichiers avant d'appuyer sur "Start")
|
||||
|
||||
Lors du premier lanbcement, la liseuse va automatiquement installer une dépendance puis redémarrer. Vous pourrez ensuite relancer Kobo-UNCaGED de la meme manière
|
||||
|
||||
Vous pouvez désormais gérer les livres de votre liseuse sans devoir la brancher en USB à votre ordinateur !
|
||||
|
||||
## Kobo Firmware Downloads
|
||||
|
||||
Sur le site Kobo Firmware Downloads, vous pouvez télécharger les différentes versions de firmware (logiciel de votre liseuse) et voir leur changelog (liste des changements)
|
||||
|
||||
[Kobo Firmware Downloads](https://pgaskin.net/KoboStuff/kobofirmware.html)
|
||||
|
||||
Une fois la bonne version, correspondant à votre modèle de liseuse, téléchargée, extrayez là dans votre dossier '.kobo', éjectez votre appareil et attendez son redémarrage complet sans jamais l'interrompre
|
||||
Assurez-vous que votre liseuse est chargée de manière décente avant cette manipulation
|
||||
|
||||
Vous pouvez aussi rejoindre le canal Telegram pour etre averti-e des sorties de firmware
|
||||
|
||||
[Canal Telegram "Kobo Firmware Releases"](https://t.me/KoboFirmware)
|
||||
|
||||
Attention cependant, je vous conseille de ne pas mettre à jour votre liseuse avant que Calibre supporte le nouveau firmware (généralement dès la version de Calibre qui suit la sortir d'un firmware), sinon vous pourriez avoir erreurs lors du tranfert de vos livre, car Calibre désactive les écritures dans la base de donnée de la liseuse en cas de firmware non supporté (ce qui est la cas lorsqu'une nouvelle version du firmware sort et que Calibre n'a pas été mis à jour)
|
||||
|
||||
## kobopatch
|
||||
|
||||
Kobopatch permet de modifier les firmware de votre liseuse afin de le personnaliser ou désactiver des fonctions
|
||||
|
||||
C'est une chose relativement avancée et je ne conseille pas de le faire par défaut, mais sachez que ça existe et que si vous souhaitez jeter un oeil c'est possible
|
||||
Je vous conseille de maitriser l'anglais pour utiliser kobopatch et de ne rien activer sans comprendre ce que vous faites
|
||||
|
||||
[kobopatch](https://pgaskin.net/kobopatch-patches/)
|
||||
|
||||
Pour patcher un firmware, vous devez tout d'abord vous assurer de faire la procédure pour le firmware actuellement installé sur votre liseuse, c'est très important
|
||||
Si vous voulez le faire pour la dernière version du firmware, installez-le d'abord sur votre liseuse
|
||||
En cas de doute, vérifiez dans les paramètres de votre liseuse ou installer le dernier firmware (il n'y a aucun risque à installer identique à celle déjà installée)
|
||||
|
||||
Installer un fichier de patch d'un firmware différent de celui de votre liseuse peut occasionner de gros problèmes, vérifier toujours (au moins 2 fois) avant de faire quoi que ce soit
|
||||
|
||||
Décompressez le fichier téléchargé correspondant au firmware à patcher dans un dossier arbitraire
|
||||
Pour configurer les patchs, rendez vous dans le dossier 'src'
|
||||
Placez le fichier .zip du firmware, que vous téléchargerez sur le site Kobo Firmware Downloads
|
||||
Puis modifiez les fichier présent dans ce dossier 'src'
|
||||
|
||||
Dans ces fichiers sont présents différentes modifications, qui vous seront expliquées à chaque fois (en anglas)
|
||||
|
||||
Pour activer un patch, passer simplement le tag "Enabled" de "no" à "yes" pour chacun de ceux que vous choisissez d'activer
|
||||
|
||||
Attention, certaines modificatons sont incompatibles entre elles, mais le programme de compilation vous avertira et refusera de continuer si c'est le cas, et vous pourrez régler le problème
|
||||
|
||||
Une fois vos modifications choisies, vous pouvez compiler votre patch en exécutant le fichier "kobopatch.bat" si vous utilisez Windowsn ou le fichier "kobopatch.sh" si vous utilisez Linux
|
||||
|
||||
Un fichier "KoboRoot.tgz" a été généré dans le dossier 'out', vous n'avez plu qu'à le placer dans le dossier '.kobo' de votre liseuse et à la laisser redémarrer après l'avoir éjectée proprement
|
||||
|
||||
Votre liseuse devrait maintenant etre patchée !
|
||||
|
||||
Je vais vous conseiller quelques modifications que j'ai activé sur ma liseuse :
|
||||
|
||||
### libadobe.so.yaml
|
||||
|
||||
Je n'ai rien activé ici
|
||||
|
||||
### libnickel.so.1.0.0.yaml
|
||||
|
||||
* Set KePub hyphenation
|
||||
* Always show confirmation dialog before upgrading
|
||||
* Remove beta features not supported yet
|
||||
* Disable all tutorial dialogs
|
||||
* Remove recommandations (row1col2) from home screen
|
||||
* Only show Pocket Smartlink
|
||||
* FeatureSettings - BookSpecificStats
|
||||
* FeatureSettings - ExportHighlights
|
||||
* Unify font sizes
|
||||
|
||||
### librmsdk.so.1.0.0.yaml
|
||||
|
||||
Je n'ai rien activé ici
|
||||
|
||||
### nickel.yaml
|
||||
|
||||
* Remove footer (row3) and increase cover size on new home screen
|
||||
* Show all games
|
||||
* Dictionnary pop-up - increase available text area
|
||||
|
||||
## Vrac
|
||||
|
||||
Quelques petits conseils en vrac avant la fin :
|
||||
|
||||
Si vous avez une liseuse avec boutons physiques, je suis personellement plus confortable et je trouve cela + ergonomique d'inverser les fonctions des touches
|
||||
C'est à dire faire en sorte que la touche supérieure soit utilisée pour passer à la page suivante, et inversement pour la touche inférieure
|
||||
Je trouve cela + ergonomique parce que mon pouce tombe naturellement pile sur la touche supérieure (avec une Kobo Libre H2O ou Libra 2) et j'ai donc une meilleure prise en main comme cela, puisque la touche la plus souvent utilisée (pour passer à la page suivante) et celle qui tombe naturellement sous mon pouce
|
||||
Ce réglage se trouve dans le menu "Paramètres de lecture"
|
||||
|
||||
Lorsque vous n'avez pas l'usage du WiFi, pensez à le désactiver, cela aura un effet bénéfique sur le durée de vie de votre batterie
|
||||
|
||||
Cela peut sembler sous le sens, mais n'hésitez pas à fouiller dans les divers paramètres de votre liseuse et d'expérimenter, c'est comme ça qu'on trouve ce qui nous convient le mieux et qu'on est le + satisfait-e de notre usage d'un appareil, surtout que les liseuses Kobo proposent plein de paramètres interessants qui sont assez peu mis en avant
|
||||
C'est à la technologie de s'adapter à l'utilisateur-ice, et non l'inverse
|
||||
|
||||
Si vous voulez creuser les modifications de votre liseuse, je vous conseille le forum de MobileRead (en anglais) :
|
||||
|
||||
[MobileRead (lien direct vers la section dédiée aux liseuses Kobo)](https://www.mobileread.com/forums/forumdisplay.php?f=223)
|
||||
|
||||
## Pour finir
|
||||
|
||||
Si cet article vous a aidé et que vous souhaitez me remercier pour le travail et les conseils fournis, vous avez la possibilité de me faire un pourboire sur uTip, merci !
|
||||
|
||||
[Ma page Ko-Fi pour me faire un don](https://ko-fi.com/oniricorpe)
|
||||
|
||||
Bravo pour avoir lu jusqu'à la fin ! ^w^
|
||||
|
||||
Le 08 octobre 2022,
|
||||
Émy.
|
||||
BIN
content/log/tech/kobo-hacks-mods_NickelMenu.jpg
Normal file
|
After Width: | Height: | Size: 98 KiB |
84
content/log/tech/mes-apps.md
Normal file
|
|
@ -0,0 +1,84 @@
|
|||
+++
|
||||
title = "Mes apps sur iPhone et iPad"
|
||||
date = 2023-08-20
|
||||
authors = []
|
||||
theme = "anemone"
|
||||
template = "blog-page.html"
|
||||
+++
|
||||
|
||||
Une liste des apps que j'utilise, si jamais ça peut servir à quelqu'un ^w^
|
||||
|
||||
## Ménager
|
||||
|
||||
[OurGroceries : liste de courses (aussi en Web et app Android ; usage gratuit et achat unique pour supprimer les pubs)](https://www.ourgroceries.com/overview)
|
||||
[Mela : gestion de recettes (gratuit limité à 10 recettes, achat unique)](https://mela.recipes/)
|
||||
|
||||
## Internet
|
||||
|
||||
[Bitwarden : gestionnaire de mot de passe cloud (aussi disponible Android, Mac, Linux et navigateurs ; gratuit avec fonctionnalités limitées (pas d'OTP ni de 2FA sauf en auto-hébergement) sinon abonnement)](https://bitwarden.com/)
|
||||
[NextDNS : bloqueur de publicité et de trackers par DNS, configuré pour être utilisé uniquement hors de mon Wi-Fi domestique, qui utilise AdGuard Home (aussi dispo Android, Windows, Mac, Linux, ChromeOS, navigateurs et routeurs ; plan gratuit amplement suffisant pour un usage personnel)](https://nextdns.io/)
|
||||
[WireGuard : VPN vers mon domicile ou vers d'autres connexions de confiance (aussi dispo sur Android, Windows, Mac, Linux)](https://www.wireguard.com/install/)
|
||||
[Lagrange : client Gemini, alternative simple et légère au web (installé avec Testflight ; aussi dispo sur Android, Windows, Mac, Linux)](https://gmi.skyjake.fi/lagrange/)
|
||||
|
||||
## Navigation Web (extensions Safari)
|
||||
|
||||
[Wipr : bloqueur de publicités et éléments indésirables dans Safari ; simple, très rapide et vraiment efficace (achat unique)](https://kaylees.site/wipr.html)
|
||||
[Consent-O-Matic : pour remplir automatiquement les formulaires RGPD (aussi dispo pour Firefox et les navigateurs basés sur Chromium)](https://consentomatic.au.dk/)
|
||||
[Vinegar : remplace le lecteur YouTube par celui standard Apple, restaure aussi le mode Picture in picture (achat unique)](https://andadinosaur.com/launch-vinegar)
|
||||
[Baking Soda : comme Vinegar mais pour n'importe quel site Web (achat unique)](https://andadinosaur.com/launch-baking-soda)
|
||||
[SponsorBlock : permet de zapper automatiquement les segments spondorisés dans les vidéos YouTube (aussi dispo sur tous les navigateurs, achat unique)](https://sponsor.ajay.app/)
|
||||
[DeArrow : change les miniatures et les titres des videos YouTube pour diminuer le clickbait et le FOMO (aussi dispo sur tous les navigateurs, achat unique)](https://dearrow.ajay.app/)
|
||||
|
||||
## Adminsys / autohébergement / dev
|
||||
|
||||
[WebSSH : client SSH léger et parfait ! Propose aussi du SFTP et tunnel (aussi dispo sur Mac ; payant pour un usage avec de multiples connexions simultanées, sinon totalement gratuit !)](https://apps.apple.com/fr/app/webssh-sysadmin-tools/id497714887)
|
||||
[AdGuard Home Remote : client pour gérer mon instance AdGuard Home et voir ses logs (gratuit avec fonctionnalités limitées, achat ponctuel pour tout débloquer)](https://rocketscience-it.nl/#adguardhome)
|
||||
[Nextcloud : l'app propose une bonne intégration dans Finder ! (aussi dispo sur Windows, Mac, Linux et Android)](https://nextcloud.com/install/#install-clients)
|
||||
[Home Assistant : domotique auto-hébergée (j'utilise en + un bridge vers Homekit pour une meilleure intégration domotique sur les appareils Apple)](https://www.home-assistant.io/)
|
||||
[Working Copy : client Git (gratuit avec fonctionnalités limitées, achat unique)](https://workingcopy.app/)
|
||||
[Runestone : éditeur de texte (gratuit avec fonctionnalités limitées, achat unique)](https://runestone.app/)
|
||||
[DataJar : variables persistantes pour Apple Raccourcis / Shortcuts (gratuit)](https://datajar.app/)
|
||||
|
||||
- Raccourcis : application d'automatisation par programmation visuelle native aux appareils Apple
|
||||
|
||||
## Lectures / animés
|
||||
|
||||
[Fluent Reader Lite : client pour mon agrégateur RSS, FreshRSS (achat unique)](https://fluent-reader-lite.appstor.io/)
|
||||
[Mangacollec : gestion de bibliothèque de manga et des sorties suivies (gratuit, sinon abonnement pour les fonctionnalités de "pile à lire" et de statistiques de collection ; aussi dispo sur Android)](https://www.mangacollec.com/)
|
||||
[Aidoku (sideloadé avec SideStore) : lecture de manga en ligne depuis diverses sources non légales](https://aidoku.app/)
|
||||
[ManGo : gestion des animés (quelles séries on suit, quels épisodes sont vus) et des chapitres et tomes de manga lus, c'est un client My Anime List (gratuit avec fonctionnalités limitées, achat unique)](https://rocketscience-it.nl/mango/)
|
||||
[Wikipedia, client officiel Wikipedia](https://apps.apple.com/fr/app/wikip%C3%A9dia/id324715238)
|
||||
[Omnivore : alternative open-source à Pocket, je suis en train de migrer dessus (gratuit, aussi dispo sur Android, Mac, Web et extensions pour navigateurs)](https://omnivore.app/)
|
||||
|
||||
## Adultage
|
||||
|
||||
- Apps Apple : Météo, Music, Santé, Mail, Calendrier, Notes, Plans, Rappels, Freeform, Numbers, etc.
|
||||
|
||||
[SimpleMind : mind mapping (gratuit avec fonctionnalités limitées, sinon achat unique par plateforme, aussi dispo sur Windows, Mac et Android)](https://simplemind.eu/)
|
||||
[Road Trip MPG : suivi de consommation de carburant (et des frais d'entretien) pour voiture et moto (achat unique sur iPhone et un autre achat nécessaire pour iPad)](https://darrensoft.ca/roadtrip/)
|
||||
[AfterShip : suivi de colis en temps réel et avec notifications (aussi dispo Web et Android ; gratuit)](https://apps.apple.com/fr/app/aftership-suivi-de-colis/id507014023)
|
||||
|
||||
## Langues
|
||||
|
||||
[Duolingo : application d'apprentissage de langues par petits exercices récurrents (gratuit avec publicités et fonctionnalités limitées, sinon abonnement payant)](https://www.duolingo.com/)
|
||||
[motî : client Wiktionnaire multilingue optimisé pour l'apprentissage de langues (gratuit, affichage et définitions des mots en anglais uniquement)](https://motî.net/)
|
||||
|
||||
## Fédi
|
||||
|
||||
[Feditext : fork de Metatext (en beta, lien d'accès sur demande aux devs, gratuit)](https://github.com/feditext/feditext)
|
||||
[Ivory, en beta publique (aussi disponible sur Mac, essai gratuit d'une semaine puis abonnement obligatoire)](https://tapbots.com/ivory/)
|
||||
|
||||
## Divers
|
||||
|
||||
[Picsew : retouche rapide d’images et concaténation de screenshots (gratuit avec fonctionnalités limitées, achat unique)](https://apps.apple.com/fr/app/picsew-screenshot-stitching/id1208145167)
|
||||
[SideStore : pour installer des applications hors App Store, détournement du mode développeur gratuit de Apple, qui nécessite de renouveler les apps tous les 7 jours](https://sidestore.io/)
|
||||
[Organic Maps : app GPS en complement de Plans, je l'utilise principalement à pied ou en fauteuil roulant (aussi dispo Android)](https://organicmaps.app/fr/)
|
||||
[Lapz : timer d’exercices de sport (gratuit avec fonctionnalités limitées, sinon abonnement)](https://lapz.app/en/)
|
||||
[Procreate : dessin numérique sur iPad (achat unique, Apple Pencil très fortement conseillé !)](https://procreate.com/)
|
||||
[Calcbot : calculatrice avec beaucoup d'outils de conversion (gratuit avec fonctionnalités limitées, achat unique)](https://www.tapbots.com/calcbot/)
|
||||
[Steam Link : pour streamer des jeux depuis mon PC vers mon iPad aussi bien à domicile qu'en dehors (aussi dispo Android)](https://store.steampowered.com/remoteplay#anywhere)
|
||||
[ExoVoice : une app simple mais jolie et efficace de synthèse vocale, pratique en mutisme (gratuite)](https://kaylees.site/exovoice.html)
|
||||
[PlantNet : reconnaissance de végétaux à l'aide de photo (aussi dispo Android et Web, gratuit)](https://plantnet.org/)
|
||||
|
||||
Le dimanche 20 août 2023, (mis à jour le 15 septembre 2023)
|
||||
Émy.
|
||||
|
|
@ -0,0 +1,48 @@
|
|||
+++
|
||||
title = "Modifier le mot de passe d'un utilisateur Matrix dans la base de donnée sous Yunohost"
|
||||
date = 2024-01-06
|
||||
authors = []
|
||||
theme = "anemone"
|
||||
template = "blog-page.html"
|
||||
+++
|
||||
|
||||
Si comme moi vous êtes bien eu car vous avez oublié votre mot de passe Matrix, voici comment le changer facilement.
|
||||
|
||||
## Hash du nouveau mot de passe
|
||||
|
||||
```bash
|
||||
/opt/yunohost/matrix-synapse/bin/hash_password -c /etc/matrix-synapse/homeserver.yaml
|
||||
```
|
||||
|
||||
Entrer 2 fois le mot de passe souhaité, puis copier le hash dans un bloc note
|
||||
|
||||
## Récupérer le mot de passe de la base de donnée
|
||||
|
||||
```bash
|
||||
grep synapse_db_pwd /etc/yunohost/apps/synapse/settings.yml
|
||||
```
|
||||
|
||||
Copier le mot de passe dans un bloc note
|
||||
|
||||
## Connexion à la base de donnée
|
||||
|
||||
```bash
|
||||
psql -d matrix_synapse -U matrix_synapse
|
||||
```
|
||||
|
||||
Puis renseigner le mot de passe récupéré à l'étape précédente
|
||||
|
||||
## Edition du mot de passe dans la base de donnée
|
||||
|
||||
Changer les valeurs pour `password_hash` et `name`, puis entrer la commande
|
||||
|
||||
```sql
|
||||
UPDATE users SET password_hash='$2a$12$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
|
||||
WHERE name='@oniricorpe:im.emelyne.eu';
|
||||
```
|
||||
|
||||
Le mot de passe est désormais changé !
|
||||
|
||||
Quitter la base de donnée avec la commande `quit`
|
||||
|
||||
Et voilà !!
|
||||
50
content/log/tech/motion.md
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
+++
|
||||
title = "Motion"
|
||||
date = 2022-02-09
|
||||
authors = []
|
||||
theme = "anemone"
|
||||
template = "blog-page.html"
|
||||
+++
|
||||
|
||||
> TODO
|
||||
|
||||
Pour gérer mon agenda j'utilise Notion, une sorte d'outil pour créer des outils d'organisation ou + simplement de wiki personnel. Ça permet de se construire sur mesure à peu près n'importe quoi.
|
||||
Mon usage de Notion est principalement organisationnel : mon agenda avec mes prochains rendez-vous médicaux, administratifs ou personnels ainsi que la gestion de mon stock de médicaments ou de matériel médical consommable.
|
||||
|
||||
[Cependant j'ai des troubles de la permanence de l'objet, lié à mon autisme/TDA.](https://fr.wikipedia.org/wiki/Permanence_de_l%27objet)
|
||||
C'est à dire que lorsqu'une chose n'est pas visible, bien souvent, elle n'existe pas pour moi.
|
||||
|
||||
J'ai donc besoin, dans un but de fiabilité de mon organisation, d'avoir très facilement sous les yeux les prochains événements de mon agenda. Ceci afin de ne pas les oublier par mégarde, ce qui serait vraiment désastreux pour certains de mes rendez-vous.
|
||||
|
||||
J'ai donc réfléchi à un moyen simple et efficace de combler ce besoin et je me suis arrêtée sur un script Python (l'un des seuls languages de programmation que j'avais déjà touché) qui interroge l'API de Notion, traite les informations puis les affiche sur un petit écran e-ink.
|
||||
Je souhaitais que lorsqu'un événement survenait le jour même, un signe distinctif soit visible sur l'écran. J'ai opté pour un contour rouge.
|
||||
Je voulais, si possible, que l'objet final puisse être facilement emporté ou déplaçable et soit autonome énergie afin qu'il puisse être posé n'importe où sans nécessiter de le brancher.
|
||||
|
||||
Le matériel est donc le suivant :
|
||||
|
||||
* Un Raspberry Pi Zéro W avec support GPIO (environ 15 € fdpin, mais j'en possédais déjà un),
|
||||
* Un écran e-ink Inky pHAT 2.13" noir/blanc/rouge (environ £30 fdpin, soit environ 35 €),
|
||||
* Une batterie Pisugar 3, optionelle, permettant de rendre l'objet autonome en énergie un moment ($40 fdpin, soit environ 35 € + 5 € de douane).
|
||||
|
||||
Comptez donc environ 70 € de matériel sans la batterie ou environ 85 € avec la batterie.
|
||||
|
||||
## La programmation
|
||||
|
||||
Je n'avais jamais géré de projet logiciel de bout en bout, les seules fois précédentes où j'avais touché à du code, c'était pour bidouiller de l'existant. Devoir comprendre le code de quelqu'un d'autre et l'adapter ou devoir écrire entièrement soi-même un code sont deux choses complétements différentes avec leur logique propre.
|
||||
Étant technicienne, je suis habituée à remonter des cheminements logiques lorsque je dépanne ou bidouille des appareils. C'est avec plusse ou moinsse les même techniques que j'appréhende le code de quelqu'un d'autre et que je l'adapte à mes besoins.
|
||||
Cette fois je ne peux pas faire ça, je dois tout écrire moi-même, mais l'expérience de mes bidouilles passées me sera extrêmement précieuse ! J'ai toujours préféré apprendre par la pratique et de la pratique j'en ai eu par mes bidouilles et j'en aurai avec ce projet.
|
||||
|
||||
J'apprends des tas de choses en Python, principalement des choses basiques, c'est vrai, mais ça me fait plaisir.
|
||||
Je fais des tas d'erreurs vraiment grossières, mais j'apprends à ne plu les faire, à faire proprement.
|
||||
J'ai deux personnes qui m'aident ponctuellement lorsque je bloque ou que j'ai des questions spécifiques.
|
||||
Je met un mois complet à programmer les quelques lignes que comporte mon script.
|
||||
|
||||
Xana.
|
||||
2022-02-09
|
||||
|
||||
## Annexe
|
||||
|
||||
[Notion](https://www.notion.so/product)
|
||||
[Inky Phat](https://shop.pimoroni.com/products/inky-phat)
|
||||
[Pisugar 3](https://www.pisugar.com/)
|
||||
[Le dépôt git du projet](https://labo.emelyne.eu/oniricorpe/motion)
|
||||
83
content/log/tech/pico-stuff.md
Normal file
|
|
@ -0,0 +1,83 @@
|
|||
+++
|
||||
title = "Pico stuff"
|
||||
date = 2024-04-07
|
||||
authors = []
|
||||
theme = "anemone"
|
||||
template = "blog-page.html"
|
||||
[extra]
|
||||
lang = "en"
|
||||
+++
|
||||
|
||||
just a page to hoard stuff around Pico-8 and Picotron for quick access and memory
|
||||
|
||||
[Lexaloffle forum, the 'BBS'](https://www.lexaloffle.com/bbs/)
|
||||
|
||||
note: Pico-8 is included in the infamous itch.io 'Bundle for Racial Justice and Equality', so if you purchased it, you already have Pico-8:
|
||||
[Pico-8 on itch.io](https://lexaloffle.itch.io/pico-8)
|
||||
[Bundle for Racial Justice and Equality](https://itch.io/b/520/bundle-for-racial-justice-and-equality)
|
||||
|
||||
## Pico-8
|
||||
|
||||
[official website](https://www.lexaloffle.com/pico-8.php)
|
||||
[ressources page (with many nice stuff too)](https://www.lexaloffle.com/pico-8.php?page=resources)
|
||||
[manual.html official manual](https://www.lexaloffle.com/dl/docs/pico-8_manual.html)
|
||||
[changelog](https://www.lexaloffle.com/dl/docs/pico-8_changelog.txt)
|
||||
[free web version](https://www.pico-8-edu.com/)
|
||||
|
||||
### cheatsheets
|
||||
|
||||
[summarized API cheatsheet](https://www.lexaloffle.com/bbs/?tid=28207)
|
||||
[in depth API cheatsheet](https://iiviigames.github.io/pico8-api/)
|
||||
|
||||
## Picotron
|
||||
|
||||
[official website](https://www.lexaloffle.com/picotron.php)
|
||||
[ressources page](https://www.lexaloffle.com/picotron.php?page=resources)
|
||||
[official manual](https://www.lexaloffle.com/dl/docs/picotron_manual.html)
|
||||
[changelog](https://www.lexaloffle.com/dl/docs/picotron_changelog.txt)
|
||||
|
||||
### cheatsheets
|
||||
|
||||
Picotron is not well documented for now, use the Pico-8 API but bear in mind that some things are not compatibles and may not work
|
||||
the Picotron official manual is also a really good ressource for now
|
||||
|
||||
### tutos
|
||||
|
||||
[Picotron instrument design rudiments by packbat](https://www.lexaloffle.com/bbs/?tid=141467)
|
||||
|
||||
### random interesting stuff
|
||||
|
||||
[Random Picotron discoveries](https://www.lexaloffle.com/bbs/?tid=140758)
|
||||
[List of Picotron special characters (P8SCII)](https://www.lexaloffle.com/bbs/?tid=141493)
|
||||
|
||||
### nice carts
|
||||
|
||||
[Enview (API viewer)](https://www.lexaloffle.com/bbs/?tid=140816)
|
||||
[SLATE - Window based code editor](https://www.lexaloffle.com/bbs/?tid=140703)
|
||||
[Picotron Wiki](https://www.lexaloffle.com/bbs/?tid=140925)
|
||||
[PicoNet Explorer, With Sitebuilder!](https://www.lexaloffle.com/bbs/?tid=140960)
|
||||
[Picotron Solitaire Suite](https://www.lexaloffle.com/bbs/?tid=141288)
|
||||
[Paint](https://www.lexaloffle.com/bbs/?tid=140716)
|
||||
|
||||
## common tools
|
||||
|
||||
[A little helper tool for generating fillp patterns, really handy](https://seansleblanc.itch.io/pico-8-fillp-tool)
|
||||
|
||||
- my favorite fillp pattern: 0x7dbe
|
||||
|
||||
## various stuff
|
||||
|
||||
### pixel art tutos
|
||||
|
||||
[MortMort youtube channel](https://www.youtube.com/@MortMort/videos)
|
||||
[Brandon James Greer youtube channel](https://www.youtube.com/@BJGpixel/videos)
|
||||
|
||||
### dev tutos
|
||||
|
||||
[LazyDevs youtube channel (Breakout, Roguelite, Shmup, Advanced Shmup)](https://www.youtube.com/@LazyDevs/playlists)
|
||||
[Lua track on Exercism, to learn Lua (the language used in Pico-8 and Picotron) from scratch with small exercises](https://exercism.org/tracks/lua)
|
||||
|
||||
xana,
|
||||
|
||||
published the 07/04/2024
|
||||
updated the 07/04/2024
|
||||
182
content/log/tech/why-am-i-publishing-under-non-foss-license.md
Normal file
|
|
@ -0,0 +1,182 @@
|
|||
+++
|
||||
title = "Why am I publishing under a non-FLOSS license?"
|
||||
date = 2024-04-30
|
||||
authors = []
|
||||
theme = "anemone"
|
||||
template = "blog-page.html"
|
||||
[extra]
|
||||
lang = "en"
|
||||
+++
|
||||
|
||||
> “FLOSS: Abbreviation of free/libre/open source software.”
|
||||
> “Coordinate terms: FOSS, OSS”
|
||||
[Wiktionary page for FLOSS.](https://en.wiktionary.org/wiki/FLOSS)
|
||||
|
||||
Well... an interesting and highly controversial question, right? Absolutely!
|
||||
|
||||
You probably think that a non-free licence is necessarily a bad thing and any good license must respect the 4 golden FLOSS freedoms?
|
||||
Ehhh, on that subject I think not, let me explain my opinion on this.
|
||||
|
||||
I hope it will make a lot more sense to you after that!
|
||||
|
||||
## Some necessary introduction
|
||||
|
||||
This text will mainly talk about my GoToSocial package for YunoHost, released under the "i'm so tired" software license 1.0 since 2024-01-18.
|
||||
|
||||
[A text from the creator of this license, explaining why this license exists and some of the design choices made. I strongly recommend reading it to understand the situation.](https://olmewe.com/notes/istsl/)
|
||||
|
||||
Some people are criticizing me for that choice and I wanted to address this with the text you're currently reading.
|
||||
|
||||
I advise librists and liberals to breathe in and out deeply, because some arguments can make them lose their composure.
|
||||
|
||||
## Because I can
|
||||
|
||||
So let's begin with the easy part! ^w^
|
||||
|
||||
### Other main YunoHost volunteers are okay with that
|
||||
|
||||
I can't speak for every single person who were involved with the YunoHost development from the beginning, but most of the current main volunteers have approved the release of the GTS package I created and maintained under the "i'm so tired" license.
|
||||
|
||||
YunoHost already made the choice to permit apps “under an overall free license, but with clauses that restrict its use”, so the same for packages is in this continuity.
|
||||
|
||||
### We can publish a YunoHost package under another license that the packaged app
|
||||
|
||||
YunoHost allows publishing of packages with any non proprietary license. That's all.
|
||||
|
||||
And even with software released under GPL (and it's derivatives, well know for “contaminating” all derived software with the identical license), the YunoHost package can use another license, because the package is not a “derivative work” but a totally distinct software program that installs another one.
|
||||
|
||||
### I don't care about the 4 technocratic freedoms
|
||||
|
||||
I'm not that committed to the “holy rules” of the Free/Libre and open-source software.
|
||||
|
||||
In fact, I see many things to criticize in them.
|
||||
|
||||
More on that subject further in the text!
|
||||
|
||||
### You're not limited: there is a large choice of fedi software
|
||||
|
||||
[I mean, currently there are 13 fedi software available on YunoHost (without counting GTS).](https://apps.yunohost.org/catalog?category=social_media)
|
||||
|
||||
Yes, GTS is the lightweight and is currently gaining popularity but you technically have choice, eh.
|
||||
|
||||
Which ties in with the next point...
|
||||
|
||||
### Many things are inaccessible to many people and that's usually seen as fine
|
||||
|
||||
Like, really, who cares that things are inaccessible? “Very few people” is the answer.
|
||||
|
||||
Otherwise the world wouldn't be a complete hell for disabled people. I say that as a disabled person.
|
||||
|
||||
So yeah some things are inaccessible to some people, and as a disabled person, I really don't care if my software is not available to someone because of the “you must not endorse cops” clause.
|
||||
|
||||
## Because I want
|
||||
|
||||
### I want my work to be political
|
||||
|
||||
Because I'm looking towards a better world. The “i'm so tired” license I'm using is a way to defend and assert it.
|
||||
|
||||
> “this is anti-capitalist, anti-bigotry software, made by people who are tired of ill-intended organisations and individuals, and would rather not have those around their creations.”
|
||||
> the "i'm so tired" software license 1.0
|
||||
|
||||
I do NOT want my work used against me or people like me (so used to spread transphobia, ableism, eugenics, anti-poor speeches, etc.). I also do NOT want to help such people in their life. I do NOT want these people near me at all.
|
||||
|
||||
I don't want to help malicious, antisocial people or more specifically people who take advantage of the oppression that concern me (or anyone if fact) or who would like to see me in misery or dead. And yes, I assure you that such people exist.
|
||||
|
||||
If by my work I can make them feel a little bit insecure or not welcomed, I see it as a fair return.
|
||||
They have basically access to everything. Not me. In my daily life I'm excluded from many things for various reasons I don't want to mention now. So yeah: fair return.
|
||||
|
||||
[Did you know the paradox of tolerance?](https://en.wikipedia.org/wiki/Paradox_of_tolerance)
|
||||
Basically, it states that intolerant people must be punched in their nazi face, as it should be.
|
||||
|
||||
This license is simply doing that, accordingly to my ideals.
|
||||
|
||||
It also tells people like me that they have a place, that they will be protected, that their lives are worthwhile.
|
||||
And that they can have a little trust in me and in the people who stay around, because it self-selects for trustworthy people.
|
||||
|
||||
### FLOSS licenses are lying
|
||||
|
||||
FLOSS licenses are technocratic and libertarian, but it's hidden, thank to a big omission lie.
|
||||
And that stinks (in a bad way).
|
||||
|
||||
#### The “freedom to use” is already limited
|
||||
|
||||
Does the person own the hardware to run it? (Money, space, life stability, etc.)
|
||||
|
||||
Does the person use the right OS to run it?
|
||||
|
||||
Does the person talk the language of the app? (You know, not everyone talk English…)
|
||||
|
||||
Does the person have the know-how to run it? (And yes, the lack of good documentation for your software is increasing the required know-how.)
|
||||
|
||||
Does the person have the time to run it? (And yes, the lack of good documentation for your software is also increasing the required time.)
|
||||
|
||||
#### The “freedom to study” is already limited
|
||||
|
||||
Did the person learn how to program? How computers works? How a forge works?
|
||||
|
||||
The “freedom to use” prerequisites are intensified here. Same thing but even harder: money, social status, available time, cognitive abilities, etc.
|
||||
|
||||
#### The “4 freedoms” are politics and are defending a certain worldview that I don't share
|
||||
|
||||
That's not a secret that most programmers are white cisgender able-bodied dudes with a nice income and few constraints in their lives.
|
||||
|
||||
Maybe the self-selection I talked earlier in the “I want my work to be political” section is done here too, but in an insidious and disgusting way? (That's a rhetorical question, the answer is obviously “yes”.)
|
||||
|
||||
Ask any woman, any trans person, any BIPOC person, any disabled person how they are living their work in the marvelous (sarcasm) computer industry, you'll be surprised (no, lol).
|
||||
|
||||
Maybe you don't meet any women, trans, BIPOC or disabled people at work or in techy online spaces, or very few? That's proving my entire point.
|
||||
|
||||
There is some things we can collectively do to reduce those inequalities:
|
||||
|
||||
- active activism against capitalism;
|
||||
- active activism for socialism (abolish money, free home, free food, free education for everyone);
|
||||
- active activism for anarchism (abolish social status, community-based organization);
|
||||
- active activism against any oppression (based on gender, race, disabilities, age, etc);
|
||||
- actively punish socially hurtful people (that's what the "i'm so tired" software license is doing);
|
||||
- and the hardest for some people: be a nice and respectful person that embraces human diversity and aspires to a truly just and fulfilling world for everyone.
|
||||
|
||||
When a so-called freedom cannot be experienced by everyone, it's NOT a freedom, but a privilege.
|
||||
|
||||
Until all the structures that perpetuate oppression have been dismantled, until all individuals have been collectively emancipated, these "4 freedoms" will remain nothing more than elitist rhetoric.
|
||||
|
||||
## Conclusions
|
||||
|
||||
### Why couldn't I add limitations since there are several (but hidden) ones?
|
||||
|
||||
People are mad because I'm limiting their choices but they don't care that the actual limitations of the FLOSS licenses are already doing that to marginalized people. Or worse: they endorse it.
|
||||
|
||||
I acknowledge that FLOSS licenses are not perfect and I understand their design when I consciously add limitations. I don't alter their spirit when I add limitations, I use a tool already well designed for that purpose.
|
||||
|
||||
Maybe the FLOSS' hidden limitations suit you: that's fine. As long as you understand what's at stake.
|
||||
The point is: I don't like their consequences, that's all.
|
||||
|
||||
The limitations of the “non-FLOSS” licences I'm using suit me, that's fine and I understand what's at stake.
|
||||
The point is: if you disagree with me, you don't like their consequences, that's all.
|
||||
|
||||
### It will piss off privileged people…
|
||||
|
||||
... because they can't have a thing when they usually have everything. That makes me really happy! ^w^
|
||||
|
||||
If you're one of those people who usually has everything effortlessly:
|
||||
The feeling you're experiencing is the one I feel every time I can't buy myself a nice thing for pleasure because I'm poor.
|
||||
The feeling I have when I can't go to a friend's house because their apartment has stairs and I'm a wheelchair user.
|
||||
The feeling I have when I can't join my friends at the bar because it's too noisy and I can't stand it for neurodivergent reasons.
|
||||
|
||||
That's called frustration, and I promise: the more you're experiencing it, the sooner you get used to it and resign yourself.
|
||||
And that's why I'm fighting you to defend me and people like me: we have a place to be and our lives are worth living in peace.
|
||||
I'm fighting for a better world so that no one has to suffer like this. And if that means frustrating non-frustrated people (so, privileged people), that's fine with me. You'll get used to it, it'll be fine, I promise. 😌
|
||||
|
||||
### Yes, the licenses I am using are not perfect, but…
|
||||
|
||||
1. I don't have to fix the world alone.
|
||||
2. I still prefer my “non-FLOSS” licenses over your FLOSS ones.
|
||||
|
||||
### You have a different opinion?
|
||||
|
||||
Great. I don't care. Keep it to yourself if you do not apply the points listed in the “The ‘4 freedoms’ are politics and are defending a certain worldview that I don't share” section. Thanks.
|
||||
|
||||
Émy,
|
||||
|
||||
published the 30/04/2024
|
||||
|
||||
Thanks to all the people who took the time to proofread this text and suggest improvements before final publication!
|
||||
BIN
content/log/vrac/2021-10-17_vie-revee.jpg
Normal file
|
After Width: | Height: | Size: 929 KiB |
6
content/log/vrac/_index.md
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
+++
|
||||
title = "Textes en vrac"
|
||||
template = "section.html"
|
||||
page_template = "blog-page.html"
|
||||
sort_by = "date"
|
||||
+++
|
||||
55
content/log/vrac/consentement-fols.md
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
+++
|
||||
title = "Sur le consentement (surtout sexuel) et ses impensés quant aux vécus handis et fols"
|
||||
date = 2021-08-17
|
||||
authors = []
|
||||
theme = "anemone"
|
||||
template = "blog-page.html"
|
||||
+++
|
||||
|
||||
je pense qu'il faudrait causer + du consentement (sexuel, mais pas que) qui prenne en compte les différences de fonctionnement cognitives (principalement autisme, vu que mon cas)
|
||||
|
||||
parce que le consentement au sens classique du terme n'a absolument aucun sens pour moi, ce pour plusieurs raisons :
|
||||
|
||||
avec mon alexithymie (difficulté à identifier, différencier et exprimer ses émotions), savoir ce que je ressens à un instant donné relève quasiment du miracle pur, et savoir ce que je ressentais il y a quelques heures d'un véritable exploit
|
||||
[page wikipedia "Alexithymie"](https://fr.wikipedia.org/wiki/Alexithymie)
|
||||
|
||||
savoir si j'ai envie de sexe est complétement vide de sens et d’intérêt pour moi
|
||||
|
||||
du coup je me fie + à :
|
||||
|
||||
- "est-ce que je suis OK pour du contact physique ?" (ou "est-ce que le contact physique me fait mal ou me répugne ?")
|
||||
- "est-ce que j'ai assez d'espace mental disponible pour gérer du sexe activement ?" (ou "ais-je un truc non identifié qui tourne dans ma tête que je dois essayer de démêler ?")
|
||||
- "est-ce que j'ai une douleur ou une gêne qui va m’empêcher d'apprécier ce moment avec mon ou ma partenaire ?"
|
||||
- "est-ce que j'ai faim ?" (et là aussi c'est ultra difficile sa mère à identifier, mais je m'améliore)
|
||||
- "est-ce que j'ai pleinement confiance en mon ou ma partenaire ?" (spoiler, si je suis avec et que j'ai mes marques, c'est très probablement que oui)
|
||||
- "est-ce que l'environnement dans lequel je suis me stress ?" (environnement inconnu, des gens peuvent nous déranger, etc)
|
||||
|
||||
plutôt qu'à :
|
||||
"est-ce que j'ai envie de sexe ?"
|
||||
|
||||
aussi le fait que je sois handicapée et que je considère le sexe comme du une forme dérivée du câlin / d'une marque d'affection physique joue énormément sur ma perception du sujet
|
||||
|
||||
le sexe nécessite + d'énergie mentale, + d'énergie physique et + de temps pour récupérer ces forces qu'un câlin non sexuel ou une autre activité plaisante mais économe (se caresser mutuellement le dos en écoutant de la musique par exemple)
|
||||
|
||||
la plupart du temps ce qui m'importe dans les situations où j'en arrive à faire du sexe avec quelqu'un, c'est uniquement parce que je suis prête à passer un moment agréable avec une personne que j'aime (partenaire, ami-e)
|
||||
|
||||
le sexe n'est donc qu'une option d'affection partagée parmi d'autre
|
||||
|
||||
et mon consentement sur l'affection partagée se situe à si oui ou non je veux me laisser approcher de cette personne, être dans la même pièce qu'elle, que l'on se touche ou non, que l'on se parle ou non, etc
|
||||
|
||||
en principe si je tiens la main à la personne, si je lui fais des bisous ou des câlins, mon "consentement sexuel" est déjà posé (mais bien entendu révocable à chaque instant)
|
||||
|
||||
j'ai donc beaucoup de mal avec ce concept de consentement, qui est discuté dans toutes les sphères féministes (et hors depuis quelques années), qui me semble ne pas du tout ressembler à ma réalité
|
||||
|
||||
et ça me dérange beaucoup de diffuser largement une idée qui se veut émancipatrice et respectueuse alors même qu'elle renforce des schémas pensés par et pour les valides et les sains d'esprit, laissant encore une fois sur le bas coté des impensés des militantismes les handis et fols
|
||||
|
||||
espérant avoir aidé des gens et contribué à des réflexions + poussées et muries que les miennes
|
||||
|
||||
Le 17 août 2021,
|
||||
|
||||
Émy
|
||||
|
||||
## Ce texte ailleurs
|
||||
|
||||
- [Sur le fédi (soc.emelyne.eu)](https://soc.emelyne.eu/notice/AAP7vEvNjVjrrsSfJY)
|
||||
- [Sur Twitter](https://twitter.com/OniriCorpe/status/1427480672986357760)
|
||||
64
content/log/vrac/handicap-ecoute.md
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
+++
|
||||
title = "Handicaps et écoute de soi / quand le diagnostic augmente les symptomes"
|
||||
date = 2021-12-15
|
||||
authors = []
|
||||
theme = "anemone"
|
||||
template = "blog-page.html"
|
||||
+++
|
||||
|
||||
[J'ai écrit un texte en réponse à ce thread twitter :](https://twitter.com/lapsyrevoltee/status/1455968057646587909)
|
||||
|
||||
> Aujourd'hui dans les #ThreadLaPsy j'aimerais vous parler du moment où des patientes TSA (autistes) n'arrivent plus à masquer leurs difficultés une fois qu'elles ont pris conscience de leur fonctionnement. Le moment post-diagnostic ou ça empire :
|
||||
|
||||
- - -
|
||||
|
||||
le thread cause de l'autisme mais j'aimerais ajouter que c'est un mécanisme qu'on retrouve dans beaucoup de contextes de diagnostics de maladies chroniques, tel que le SED
|
||||
|
||||
dans le SED il est très facile de ne pas se rendre compte qu'on se traine de véritables fardeaux et de ne pas capter que non, les gens lambda n'ont pas ces fardeaux
|
||||
|
||||
le cerveau est un spécialiste du déni
|
||||
|
||||
comment tu peux savoir qu'un truc existe quand tu ne sais pas qu'il existe, quand on te persuade qu'il n'existe pas ?
|
||||
|
||||
le cerveau est habitué à ignorer sa normalité, donc tu ne sais pas que tu as certains symptômes car ils font pleinement partie de ta normalité, et passent donc inaperçu
|
||||
|
||||
et quand on t'en parle, on les fait exister, tu peux enfin y prêter attention et en prendre conscience
|
||||
|
||||
les autres gens, les gens pas malades, n'ont pas de douleurs sans raison et ont des douleurs qui ne durent pas dans le temps
|
||||
|
||||
iels ont pas besoin de s'en abstraire
|
||||
|
||||
avec le SED on a très très souvent des douleurs "inutiles" et aléatoires donc on a l'habitude de devoir les ignorer
|
||||
|
||||
les valides n'ont pas besoin d'ignorer des douleurs qu'ils n'ont pas
|
||||
|
||||
alors bien sur, quand tu commence à prendre conscience de tes douleurs, tu les sens de plus en plus
|
||||
|
||||
tu vois enfin l'éléphant dans la pièce, qui a toujours été là
|
||||
|
||||
tu lui a tout le temps tourné autour
|
||||
|
||||
mais cette fois tu pose enfin ton regard dessus
|
||||
|
||||
et c'est à partir de ce moment que tu peux commencer à comprendre ton corps, à l’apprivoiser, à l'aider
|
||||
|
||||
c'est donc un comportement tout à fait normal et attendu
|
||||
|
||||
sauf que le déni est fort, il te fera penser que tu invente parce que tu en a entendu parlé récemment
|
||||
|
||||
mais c'est faux, c'est parce que tu n'en entend jamais parler que ça t'es invisible
|
||||
|
||||
c’est pour que la vie soit plus simple, moins ingérable que c'était invisible
|
||||
|
||||
mais il y a d'autres solutions que d'ignorer et rendre invisible
|
||||
|
||||
il existe des tas d'aides pour réduire ces douleurs et ne plu silencier son corps
|
||||
|
||||
Le 15 décembre 2021,
|
||||
|
||||
Émy
|
||||
|
||||
## Ce texte ailleurs
|
||||
|
||||
- [Sur le fédi (soc.emelyne.eu)](https://soc.emelyne.eu/notice/AEPSRwsvAxeutEvd8y)
|
||||
- [Sur Twitter](https://twitter.com/OniriCorpe/status/1470894805953789965)
|
||||
81
content/log/vrac/sensé-gratifiant-valorisant-épanouissant.md
Normal file
|
|
@ -0,0 +1,81 @@
|
|||
+++
|
||||
title = "Sensé, gratifiant, valorisant, épanouissant"
|
||||
date = 2023-10-20
|
||||
authors = []
|
||||
theme = "anemone"
|
||||
template = "blog-page.html"
|
||||
|
||||
[extra]
|
||||
license = ""
|
||||
+++
|
||||
|
||||
La réflexion de ce texte a commencé quand j'ai posté ceci sur le fédi :
|
||||
|
||||
> "il n'y a pas de commerce sans publicité, et donc si on est anti-publicité on est anti-commerce"
|
||||
> oui, je suis anti-publicité, anti-commerce et anti-argent (1er degré, c'est pas une blague)
|
||||
> abolition de l'argent (donc abolition du commerce, donc abolition du capitalisme, donc abolition de la publicité)
|
||||
|
||||
> les gens : faut passer aux 30 heures par semaine
|
||||
> moi : abolition de l'arjon
|
||||
|
||||
Ensuite, j'ai approfondi la discussion avec ma meilleure amie et mon amoureuse dans un groupe commun, on a beaucoup parlé et été très à gauche
|
||||
|
||||
Puis j'ai été me balader avec ma chienne, j'ai cogité et j'ai décidé d'écrire le texte suivant :
|
||||
|
||||
------
|
||||
|
||||
« Mais Émy, sans argent les gens ne voudrons plu travailler !!! »
|
||||
|
||||
Je crois que la sociologie a un consensus là dessus, que les gens travaillent même sans récompense financière
|
||||
Y’a qu’à regarder comment le bénévolat est développé en France, je suis sûre que quasiment tout le monde a été au moins une fois bénévole dans sa vie, ou le sera
|
||||
Simplement parce qu’on n’aime pas ne rien faire et que c’est gratifiant et valorisant
|
||||
|
||||
Et c’est bien ça qui rend un travail attirant, ses aspects gratifiants et valorisants !
|
||||
Et c’est encore mieux quand c’est épanouissant !
|
||||
|
||||
Si on supprime la notion d’argent, de monnaie, il reste ça :
|
||||
|
||||
- la gratification (ce qui procure un plaisir, en particulier une satisfaction morale)
|
||||
- la valorisation (ce qui donne de la valeur, ici en tant qu’individu)
|
||||
- l’épanouissement (se développer et évoluer positivement)
|
||||
|
||||
Si un métier n’est pas sensé (n’a pas de sens), il n’aura certainement pas ces trois choses et sera aussi certainement nocif pour la société, pour les communs. Alors autant le supprimer !
|
||||
Si un métier est sensé mais manque d’une ou plusieurs de ces choses : il faut lui donner
|
||||
|
||||
Un des métiers les plusse sensés de nos civilisations, c’est certainement celui d’éboueur
|
||||
Je me souviens avoir vu des reportages qui interrogeaient des éboueurs, qui disaient que c’était un métier très gratifiant pour certains d’entre eux, qu’ils aiment ça, que pour certains c’était même une vocation
|
||||
Pourtant il n’est pas valorisant : il est rabaissé et utilisé pour faire peur aux enfants
|
||||
Il faut donner sa valorisation au travail d’éboueur, et ça peut passer par plein de choses, mais ce à quoi j’ai pensé, c’était de lui donner la part de social qu’avaient les facteurs avant
|
||||
|
||||
Le métier de facteur est aussi un métier extrêmement censé, probablement un de ces métiers qui autrefois possédaient tous les critères que j’ai mentionné plus haut (sensé, gratifiant, valorisant, épanouissant)
|
||||
C’est un métier qui faisait rêvé beaucoup de gamin-e-s, un métier qui fait voyager, rencontrer des gens, discuter avec elleux, qui rend immédiatement utile !
|
||||
C’est un métier qui, avant d’être ruiné par la course à la productivité, au flicage constant et à la maximisation de la rentabilité était un cas d’école de ce que je veux décrire comme un travail attirant, un travail qui n’a pas *besoin* de la carotte de l’argent pour que des gens veuillent le faire
|
||||
|
||||
Personnellement, mon métier de rêve d’enfant, ma vocation, c’était d’être prof’ de SVT
|
||||
Je n’ai pas pu le faire parce qu’il a perdu ses critères au fil du temps :
|
||||
|
||||
- l’épanouissent a disparu en premier : l’école m’a traumatisée, il m’était désormais impossible de m’épanouir dans un tel contexte
|
||||
- la valorisation a suivi : tous mes infodump étaient mal vus par mes proches ou ma communauté, j’étais vue comme celle « qui sait tout », celle qui est barbante, celle qui « veut se la ramener », alors je ne pouvais plu trouver de valorisation dans le partage de savoirs qui me plaisaient
|
||||
- la gratification : impossible de trouver du plaisir, une satisfaction, dans un environnement malsain pour moi
|
||||
|
||||
Alors je n’ai jamais suivi la voie pour être prof, ni la voie des sciences, qui me plaisait pourtant tant
|
||||
|
||||
Vous aussi, j’en suis certaine, vous avez rêvé d’un travail, étant gamin-e
|
||||
Peut être que c’était pompier, soignant-e, vétérinaire, postier-ère, cheminot-e, fermier-ère, professeur-e, journaliste, musicien-ne, etc.
|
||||
Mais un travail attirant, car il vous semblait sensé, épanouissant, valorisant et gratifiant
|
||||
|
||||
Tout ça pour dire qu’une société sans argent, avec des gens qui travaillent pour les communs, c’est possible, c’est souhaitable, ça rendrait le monde incroyablement meilleur
|
||||
|
||||
Chacun-e aurait un ou plusieurs travail-s, un de ceux qui font que l’on se sent bien, à notre place, qu’on se sent utile pour tout le monde
|
||||
Tous les métiers qui n’ont pas de sens pour le bien commun n’auraient aucune raison d’exister, adieu donc tous les bullshit jobs
|
||||
Et les gens qui ont besoin d’arrêter de travailler, pour un temps plusse ou moinsse long, auraient la possibilité de le faire
|
||||
|
||||
Et dans une société planifiée collectivement, il serait possible de faire tout cela et de s’assurer que personne ne manque de rien
|
||||
|
||||
Moi c’est dans cette société que je crois, une société où l’argent n’existe pas, une société où l’argent lui même ne serait pas sensé
|
||||
Car la société entière serait tournée vers les communs, vers la gratification individuelle et collective, vers la valorisation individuelle et collective ainsi que vers l’épanouissement individuel et collectif
|
||||
|
||||
J’espère que vous aussi !
|
||||
|
||||
Le 20 octobre 2023,
|
||||
Xana
|
||||
34
content/log/vrac/transition.md
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
+++
|
||||
title = "Transition"
|
||||
date = 2022-02-16
|
||||
authors = []
|
||||
theme = "anemone"
|
||||
template = "blog-page.html"
|
||||
+++
|
||||
|
||||
des fois je repense au fait que j'ai transitionné parce que j'avais des potes qui le faisaient et que ça semblait les rendre heureux-ses
|
||||
et que je me suis lancée en me disant "bah pourquoi pas moi aussi ?"
|
||||
|
||||
et que petit à petit, m'échapper de la performativité de la virilité m'a fait énormément de bien
|
||||
j'avais jamais vraiment performé la virilité, ou seulement dans des cas de "défense" face aux machos
|
||||
|
||||
et m'en écarter de manière claire m'a aidé sur tant de choses pour être une meilleure personne et c'est une quête perpétuelle que je poursuis toujours
|
||||
|
||||
j'ai jamais voulu être une meuf, ce n'est pas le but de ma transition d'en être une (chu agenre)
|
||||
par contre j'ai toujours détesté être un mec, c'est univoque
|
||||
|
||||
et ma transition est une sorte de thérapie entre moi et moi pour me comprendre, m'améliorer et me sauver de beaucoup de choses que je déteste dans l'humanité
|
||||
|
||||
transitionner pour vous extirper de la virilité, de la masculinité et de plein d'autres comportements ou mécanismes malsains, c'est OK, et je vois trop peu de témoignages en ce sens
|
||||
|
||||
Xana
|
||||
2022-02-16
|
||||
|
||||
## Annexe
|
||||
|
||||
- [Pourquoi les mecs préfèrent les mecs](https://lamecxpliqueuse.wordpress.com/2018/09/11/pourquoi-les-mecs-preferent-les-mecs/)
|
||||
|
||||
## Ce texte ailleurs
|
||||
|
||||
- [Sur le fédi (soc.emelyne.eu)](https://soc.emelyne.eu/notice/AGWLSFXpUFEJEGIRbk)
|
||||
- [Sur Twitter](https://twitter.com/OniriCorpe/status/1493779405822468096)
|
||||
82
content/log/vrac/vie-rêvée.md
Normal file
|
|
@ -0,0 +1,82 @@
|
|||
+++
|
||||
title = "Vie rêvée"
|
||||
date = 2021-10-17
|
||||
authors = []
|
||||
theme = "anemone"
|
||||
template = "blog-page.html"
|
||||
+++
|
||||
|
||||
CW : Troubles du sommeil vénères / mal être au point de s'échapper littéralement de la réalité / hallucination
|
||||
|
||||

|
||||
|
||||
Description de la photo :
|
||||
> Une photo d'une planche de la BD "Autopsie des echos dans ma tete" de freaks.
|
||||
> Elle représente un personnage anthropomorphique furry, qui semble tenir du raton laveur et du chat.
|
||||
> En haut il y a le texte suivant :
|
||||
> "Le réveil est un moment difficile pour moi, parce que je rêve souvent que je me réveille plusieurs fois :"
|
||||
> La première case représente le personnage en train de se réveiller.
|
||||
> La seconde case la représente en train de dire "Oh, c'était encore un rêve. Ces 2 cases sont teintées en rouge.
|
||||
> Les 2 cases suivantes répètent les 2 premières. Excepté que ces cases sont teintées en rose et non en rouge. Le rouge semblant s'estomper.
|
||||
> Les 2 cases suivantes et finales répètent une nouvelle fois les précédentes. Le rouge/rose disparait.
|
||||
|
||||
Cette nuit, j'ai lu la dernière BD de @freaks_dessin : "Autopsie des échos dans ma tête" et cette planche (page 57) m'a refait penser à un morceau de ma vie, que mon cerveau occulte la plupart du temps.
|
||||
|
||||
L'époque où me réveiller faussement à plusieurs reprises m'arrivait plusieurs fois par semaine.
|
||||
|
||||
Au début, c'est surprenant, à la longue c'est ultra mega giga chiant.
|
||||
|
||||
Ça peut amener à du stress pour savoir si on dort encore ou non, comme l'exprime freaks dans la suite de sa BD, d'où vient la photo.
|
||||
|
||||
Mais pour moi ça a eu un effet différent.
|
||||
|
||||
La confusion de ne pas avoir la certitude d'être éveillée m'a amenée à ne plu chercher à savoir si j'étais effectivement réveillée. À force ça n'avait plu d'importance.
|
||||
|
||||
Parce qu'à cette époque j'ai découvert que pouvais être "éveillée" et rêver en même temps, tant que je ne laissais pas s'échapper le rêve.
|
||||
|
||||
Jore tu fais ton café du matin, normal MAIS t'es surtout dans ton rêve à faire ta vie.
|
||||
|
||||
Et le truc, c'est que tant que je maintenait le rêve, consciemment ou non, j'avais la faculté de me rendormir complètement en quelques secondes.
|
||||
|
||||
Donc ça, associé à une ivresse du sommeil (une envie *irrépressible* de dormir à nouveau, après un réveil, et ce peu importe les efforts mis pour y résister), ça faisait que je pouvais dormir plusieurs dizaines d'heures en continu.
|
||||
|
||||
Je me levais pour pisser, boire et manger, mais en maintenant le rêve, pour garder sa progression et pouvoir me rendormir complétement, comme si je ne m'étais jamais réveillée.
|
||||
|
||||
Mon record comme ça c'est au moins 72h, peut être +.
|
||||
|
||||
Au début, j'étais perdue, je ne savais plu contrôler la frontière entre les rêves et la réalité, et petit à petit la frontière a disparu et quand elle a réapparu, j'étais de l'autre coté. Mon monde "normal" était devenu celui de mes rêves.
|
||||
|
||||
C'est pas fun, du tout, ça tue toutes les relations sociales qu'on a et tout ce qu'on aime faire.
|
||||
|
||||
Et on se retrouve à littéralement vivre dans nos rêves, parce qu'on n'a pas le choix, la réalité est difficile. Et le cycle s'entretient, quoi qu'on fasse.
|
||||
|
||||
C'est vraiment dur de casser cette spirale, de se remettre à vivre dans la réalité, de combattre l'attrait des rêves, sécurisants et contrôlables, dans une certaine mesure, mais toujours + que la réalité, si violente, si morne.
|
||||
|
||||
C'est immensément difficile de retrouver goût aux choses qu'on a aimé, ou se passionner de nouvelles choses.
|
||||
Et pourquoi le faire dans la réalité, quand on peux le faire sans effort dans les rêves ?
|
||||
|
||||
Parler aux gens dans la réalité est si difficile, alors que dans les rêves on peux manipuler le temps et ressayer à volonté en cas d'échec.
|
||||
|
||||
On peux construire toute une vie absolument magnifique dans les rêves, aimer qui on veux comme on veux, ignorer les contraintes sociales du monde physiques (argent, travail, famille, etc).
|
||||
|
||||
On peux enfin être accepté comme on est, comme on veux être, tenter des choses sans craindre un jugement indélébile ou un rejet de la part des gens qu'on apprécie ou qu'on aime, comme on en a tant connu dans la réalité.
|
||||
|
||||
Lorsqu'un rêve devient violent, confrontationnel ou cauchemar, on peux dire "non" et commencer un nouveau rêve, faire table rase de ce qui nous fait peur, de ce qui nous a toujours fait peur et revient insidieusement dans notre monde sécurisant. Mais on peux se battre et le repousser avec succès, jusqu'à la prochaine fois.
|
||||
|
||||
Alors c'est dur de retrouver notre vie physique toute pourrie et précaire. Sans contrôle. Sans certitude. Sans confiance. Sans amour.
|
||||
|
||||
Des fois je me souviens de mon amoureuse (ou peut être étais-ce un amoureux ? le genre avait-il seulement un sens pour moi, déjà, à cette époque ?) de mes rêves et j'ai l'impression qu'elle vaut autant que toutes les relations physiques que j'ai connu dans ma vie.
|
||||
Sauf que j'en ai quasi aucun souvenir, et qu'elle est intangible, et que de toute façon je ne pourrais jamais lui reparler. Je ne me souviens plus de comment elle s'appelait, de son apparence, de ce qu'elle aimait, plu rien. Excepté son fantôme, juste un morceau de présence presque imperceptible qui me revient, de temps en temps, et qui semble veiller sur moi.
|
||||
|
||||
Le 17 octobre 2021,
|
||||
|
||||
Xana.
|
||||
|
||||
## Annexe
|
||||
|
||||
- [Webcomic qu'on m'a indiqué semblant avoir pour thème ce que j'ai décrit (en anglais)](https://yume.rosalarian.com/)
|
||||
|
||||
## Ce texte ailleurs
|
||||
|
||||
- [Sur le fédi (soc.emelyne.eu)](https://soc.emelyne.eu/notice/ACSWxCfzDVqQdBSmzA)
|
||||
- [Sur Twitter](https://twitter.com/OniriCorpe/status/1449754554317381632)
|
||||
87
static/css/custom-style.css
Normal file
|
|
@ -0,0 +1,87 @@
|
|||
[data-theme=light] {
|
||||
color-scheme: light;
|
||||
--accent: #9271D6;
|
||||
--accent-light: #9271D6;
|
||||
--url-agnostic: #646868;
|
||||
--url-http: #5690AF;
|
||||
--url-gemini: #E08F67;
|
||||
}
|
||||
|
||||
[data-theme=dark] {
|
||||
color-scheme: dark;
|
||||
--bg: #222529;
|
||||
--link: #9271D6;
|
||||
--url-agnostic: #cbcdcd;
|
||||
--url-http: #87C9E5;
|
||||
--url-gemini: #e2aea2;
|
||||
}
|
||||
|
||||
p {
|
||||
margin: 1em;
|
||||
}
|
||||
|
||||
a::before,
|
||||
h1::before,
|
||||
h2::before,
|
||||
h3::before,
|
||||
blockquote::before {
|
||||
color: var(--accent);
|
||||
}
|
||||
|
||||
h1 {
|
||||
margin-left: 1em;
|
||||
text-indent: -1em
|
||||
}
|
||||
|
||||
h2 {
|
||||
margin-left: 1.7em;
|
||||
text-indent: -1.7em
|
||||
}
|
||||
|
||||
h3 {
|
||||
margin-left: 2.2em;
|
||||
text-indent: -2.2em
|
||||
}
|
||||
|
||||
h4 {
|
||||
margin-left: 3em;
|
||||
text-indent: -3em
|
||||
}
|
||||
|
||||
h1::before {
|
||||
content: "# ";
|
||||
}
|
||||
|
||||
h2::before {
|
||||
content: "## ";
|
||||
}
|
||||
|
||||
h3::before {
|
||||
content: "### ";
|
||||
}
|
||||
|
||||
h4::before {
|
||||
content: "#### ";
|
||||
}
|
||||
|
||||
blockquote p::before,
|
||||
blockquote br::after {
|
||||
content: "> ";
|
||||
}
|
||||
|
||||
blockquote {
|
||||
margin: 0 1em;
|
||||
padding: .4em .4em;
|
||||
}
|
||||
|
||||
pre {
|
||||
border: 3px dotted var(--accent);
|
||||
white-space: pre-wrap;
|
||||
word-break: keep-all;
|
||||
margin: 0 1em;
|
||||
padding-left: .7em;
|
||||
}
|
||||
|
||||
footer {
|
||||
margin: 1em 0;
|
||||
}
|
||||
BIN
static/img/kofi_button_red.webp
Normal file
|
After Width: | Height: | Size: 8.9 KiB |
35
templates/404.html
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
{% include "head.html" %}
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
{% if config.extra.header_nav %}
|
||||
<nav id="nav-bar">
|
||||
{% for nav_item in config.extra.header_nav %}
|
||||
<a href="{{ nav_item.url }}" class="">
|
||||
{{ nav_item["name_en"] }}
|
||||
</a>
|
||||
{% endfor %}
|
||||
<div>
|
||||
<input type="checkbox" id="theme-toggle" style="display: none;">
|
||||
<label for="theme-toggle" id="theme-toggle-label"><svg id="theme-icon" class="icons"><use href="{{ get_url(path='/icons.svg#lightMode', trailing_slash=false) | safe }}"></use></svg></label>
|
||||
<audio id="theme-sound">
|
||||
<source src="{{ get_url(path='click.ogg', trailing_slash=false) | safe }}" type="audio/ogg">
|
||||
</audio>
|
||||
</div>
|
||||
</nav>
|
||||
{% endif %}
|
||||
</header>
|
||||
<main>
|
||||
{% block content %}
|
||||
<h1>{{ trans(key="404-title", lang=lang) }}</h1>
|
||||
<p>{{ trans(key="404-text", lang=lang) }}</p>
|
||||
{% endblock content %}
|
||||
</main>
|
||||
<footer>
|
||||
{% include "footer.html" %}
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
20
templates/LICENSE
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2023 Speyll Lyes
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
this software and associated documentation files (the "Software"), to deal in
|
||||
the Software without restriction, including without limitation the rights to
|
||||
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||||
the Software, and to permit persons to whom the Software is furnished to do so,
|
||||
subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
||||
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
18
templates/base.html
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="{% if page %}{{ page.extra.lang | default (value=page.lang) }}{% else %}{{ config.default_language }}{% endif %}">
|
||||
<head>
|
||||
{% include "head.html" %}
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
{% include "header.html" %}
|
||||
</header>
|
||||
<main>
|
||||
{% block content %}
|
||||
{% endblock content %}
|
||||
</main>
|
||||
<footer>
|
||||
{% include "footer.html" %}
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
69
templates/blog-page.html
Normal file
|
|
@ -0,0 +1,69 @@
|
|||
{% extends "base.html" %}
|
||||
|
||||
{% block content %}
|
||||
<div><a href="..">..</a>/<span class="accent-data">{{ page.slug }}</span></div>
|
||||
{% set lang = page.extra.lang | default (value=page.lang) %}
|
||||
{% if lang == "fr" %}
|
||||
{% set date_locale = "fr_FR" %}
|
||||
{% else %}
|
||||
{% set date_locale = "en_GB" %}
|
||||
{% endif %}
|
||||
<time datetime="{{ page.date }}">{{ trans(key="published-on", lang=lang) }} <span class="accent-data">{{ page.date | date(format="%d %B %Y", locale=date_locale) }}</span></time>
|
||||
{% if page.authors %}
|
||||
<address rel="author">{{ trans(key="published-by", lang=lang) }} <span class="accent-data">
|
||||
{% if page.authors | length > 0 %}
|
||||
{% for author in page.authors %}
|
||||
{% if loop.last %}
|
||||
{{ author }}
|
||||
{% else %}
|
||||
{{ author ~ ", " }}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
</span></address>
|
||||
{% elif config.extra.author and config.extra.display_author == true %}
|
||||
<address rel="author">{{ trans(key="published-by", lang=lang) }} <span class="accent-data">{{config.extra.author}}</span></address>
|
||||
{% endif %}
|
||||
{% if page.extra.license %}
|
||||
<div>{{ trans(key="license", lang=lang) }} {{page.extra.license | safe}}</div>
|
||||
{% endif %}
|
||||
|
||||
<h1>{{ page.title }}</h1>
|
||||
|
||||
{% if page.toc and page.extra.toc %}
|
||||
<h2>{{ trans(key="table-of-contents", lang=lang) }}</h2>
|
||||
<ul>
|
||||
{% for h1 in page.toc %}
|
||||
<li>
|
||||
<a href="{{ h1.permalink | safe }}">{{ h1.title }}</a>
|
||||
{% if h1.children %}
|
||||
<ul>
|
||||
{% for h2 in h1.children %}
|
||||
<li>
|
||||
<a href="{{ h2.permalink | safe }}">{{ h2.title }}</a>
|
||||
<ul>
|
||||
{% for h3 in h2.children %}
|
||||
<li>
|
||||
<a href="{{ h3.permalink | safe }}">{{ h3.title }}</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
|
||||
{{ page.content | safe }}
|
||||
|
||||
<p class="tags-data">
|
||||
{% if page.taxonomies.tags %}
|
||||
{% for tag in page.taxonomies.tags %}
|
||||
<a href="/tags/{{ tag | slugify }}">/{{ tag }}/</a>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
</p>
|
||||
{% endblock content %}
|
||||
21
templates/footer.html
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
<hr>
|
||||
<div id="footer-container">
|
||||
{% if config.extra.footer_content_license %}
|
||||
<div><p>
|
||||
{% set default_license_text = "Except otherwise noted, contents are my own and licensed under" %}
|
||||
{{ trans(key="license-text", lang=lang) | default (value=default_license_text) }}
|
||||
<a target="_blank" rel="noopener noreferrer" href="{{config.extra.footer_content_license_link}}">{{config.extra.footer_content_license}}</a>
|
||||
</p></div>
|
||||
{% endif %}
|
||||
<div>
|
||||
<p>
|
||||
{% set default_credit_text = "Theme and color theme licensed under <a target='_blank' rel='noopener noreferrer' href='https://en.wikipedia.org/wiki/Licence_MIT'>MIT</a>.<br> Built using <a target='_blank' rel='noopener noreferrer' href='https://www.getzola.org'>Zola</a>, <a target='_blank' rel='noopener noreferrer' href='https://github.com/Speyll/anemone'>anemone</a> theme, <a target='_blank' rel='noopener noreferrer' href='https://speyll.github.io/suCSS/'>suCSS</a> framework & <a target='_blank' rel='noopener noreferrer' href='https://github.com/Speyll/veqev'>veqev</a>.<br> The theme has been customized to my needs and preferences. <a target='_blank' rel='noopener noreferrer' href='https://codeberg.org/OniriCorpe/log'>Sources here.</a><br>" %}
|
||||
{{ trans(key="credit-text", lang=lang) | default (value=default_credit_text) | safe }}
|
||||
</p>
|
||||
</div>
|
||||
{% if config.generate_feed %}
|
||||
<div>
|
||||
<a class="no-style" target="_blank" rel="noopener noreferrer" href="{{ get_url(path="atom.xml", trailing_slash=false) }}" title="RSS"><svg class="icons"><use href="{{ get_url(path='icons.svg#rss', trailing_slash=false) | safe }}"></use></svg></a>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
98
templates/head.html
Normal file
|
|
@ -0,0 +1,98 @@
|
|||
<meta charset="UTF-8">
|
||||
<meta content="IE=edge" http-equiv="X-UA-Compatible"/>
|
||||
<meta content="text/html; charset=UTF-8" http-equiv="content-type"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" />
|
||||
<meta name="robots" content="index, follow">
|
||||
{% if page.title %}
|
||||
{% set title = page.title %}
|
||||
{% elif section.title %}
|
||||
{% set title = section.title %}
|
||||
{% elif config.title %}
|
||||
{% set title = config.title %}
|
||||
{% endif %}
|
||||
{% if page.extra.author %}
|
||||
{% set author = page.extra.author %}
|
||||
{% elif section.extra.author %}
|
||||
{% set author = section.extra.author %}
|
||||
{% elif config.extra.author %}
|
||||
{% set author = config.extra.author %}
|
||||
{% endif %}
|
||||
{% if page.description %}
|
||||
{% set description = page.description | truncate(length=150) %}
|
||||
{% elif section.description %}
|
||||
{% set description = section.description | truncate(length=150) %}
|
||||
{% elif config.description %}
|
||||
{% set description = config.description | truncate(length=150) %}
|
||||
{% endif %}
|
||||
{% if page.extra.image %}
|
||||
{% set image = get_url(path=page.extra.image, trailing_slash=false) %}
|
||||
{% elif section.extra.image %}
|
||||
{% set image = get_url(path=section.extra.image, trailing_slash=false) %}
|
||||
{% elif config.extra.favicon %}
|
||||
{% set image = get_url(path=config.extra.favicon, trailing_slash=false) %}
|
||||
{% endif %}
|
||||
{% if page.permalink %}
|
||||
{% set url = page.permalink %}
|
||||
{% elif section.permalink %}
|
||||
{% set url = section.permalink %}
|
||||
{% elif config.base_url %}
|
||||
{% set url = config.base_url %}
|
||||
{% endif %}
|
||||
{% if title %}
|
||||
<title>{{ title }}</title>
|
||||
{% endif %}
|
||||
{% block metatags %}
|
||||
{% if title %}
|
||||
<meta name="title" content="{{ title }}">
|
||||
{% endif %}
|
||||
{% if author %}
|
||||
<meta name="author" content="{{ author }}">
|
||||
{% endif %}
|
||||
{% if description %}
|
||||
<meta name="description" content="{{ description }}">
|
||||
{% endif %}
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:url" content="{{ url | safe }}">
|
||||
{% if title %}
|
||||
<meta property="og:site_name" content="{{ config.title }}">
|
||||
{% endif %}
|
||||
{% if title %}
|
||||
<meta property="og:title" content="{{ title }}">
|
||||
{% endif %}
|
||||
{% if description %}
|
||||
<meta property="og:description" content="{{ description }}">
|
||||
{% endif %}
|
||||
{% if image %}
|
||||
<meta property="og:image" content="{{ image }}">
|
||||
{% endif %}
|
||||
{% set twitter_card = config.extra.twitter_card | default(value=true) %}
|
||||
{% if twitter_card != false %}
|
||||
<meta property="twitter:card" content="summary_large_image">
|
||||
<meta property="twitter:url" content="{{ url | safe }}">
|
||||
{% if title %}
|
||||
<meta property="twitter:title" content="{{ title }}">
|
||||
{% endif %}
|
||||
{% if description %}
|
||||
<meta property="twitter:description" content="{{ description }}">
|
||||
{% endif %}
|
||||
{% if image %}
|
||||
<meta property="twitter:image" content="{{ image }}">
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
<link rel="canonical" href="{{ url | safe }}">
|
||||
{% if image %}
|
||||
<link rel="shortcut icon" type="image/x-icon" href="{{ get_url(path=config.extra.favicon, trailing_slash=false) }}">
|
||||
{% endif %}
|
||||
{% endblock metatags %}
|
||||
{% if config.generate_feed %}
|
||||
{% block feed %}
|
||||
<link rel="alternate" type="application/atom+xml" title="RSS" href="{{ get_url(path="atom.xml", trailing_slash=false) }}">
|
||||
{% endblock feed %}
|
||||
{% endif %}
|
||||
{% block css %}
|
||||
<link rel="stylesheet" type="text/css" href="https://speyll.github.io/suCSS/reset-min.css"/>
|
||||
<link rel="stylesheet" type="text/css" href="https://speyll.github.io/suCSS/suCSS-min.css"/>
|
||||
<link rel="stylesheet" type="text/css" href="{{ get_url(path='css/style.css', trailing_slash=false) | safe }}"/>
|
||||
<link rel="stylesheet" type="text/css" href="{{ get_url(path='css/custom-style.css', trailing_slash=false) | safe }}"/>
|
||||
{% endblock css %}
|
||||
<script src="{{ get_url(path='js/script.js', trailing_slash=false) | safe }}" defer></script>
|
||||
23
templates/header.html
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
{% set current_lang = config.default_language %}
|
||||
{% if page %}
|
||||
{% set current_lang = page.extra.lang | default (value=page.lang) %}
|
||||
{% elif section %}
|
||||
{% set current_lang = section.lang %}
|
||||
{% endif %}
|
||||
{% if config.extra.header_nav %}
|
||||
<nav id="nav-bar">
|
||||
{% for nav_item in config.extra.header_nav %}
|
||||
<a href="{{ nav_item.url }}" class="{% if nav_item.url == current_url %}active{% endif %}">
|
||||
{% set language_key = 'name_' ~ current_lang %}
|
||||
{{ nav_item[language_key] }}
|
||||
</a>
|
||||
{% endfor %}
|
||||
<div>
|
||||
<input type="checkbox" id="theme-toggle" style="display: none;">
|
||||
<label for="theme-toggle" id="theme-toggle-label"><svg id="theme-icon" class="icons"><use href="{{ get_url(path='/icons.svg#lightMode', trailing_slash=false) | safe }}"></use></svg></label>
|
||||
<audio id="theme-sound">
|
||||
<source src="{{ get_url(path='click.ogg', trailing_slash=false) | safe }}" type="audio/ogg">
|
||||
</audio>
|
||||
</div>
|
||||
</nav>
|
||||
{% endif %}
|
||||
27
templates/meta-section.html
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
{% extends "base.html" %}
|
||||
|
||||
{%- block content -%}
|
||||
<h1>{{ section.title }}</h1>
|
||||
|
||||
{{ section.content | safe }}
|
||||
|
||||
{% for sect in section.extra.sections %}
|
||||
{%- set section = get_section(path=sect ~ "/_index.md") %}
|
||||
{%- if section.pages | length > 0 -%}
|
||||
<ul class="title-list">
|
||||
<h2>{{ section.title }}</h2>
|
||||
{%- for page in section.pages %}
|
||||
{%- if loop.index <= 5 %}
|
||||
<li>
|
||||
<a href="{{ page.permalink | safe }}">{{ page.date ~ "// " ~ page.title }}</a>
|
||||
</li>
|
||||
{%- else -%}
|
||||
<a href="{{ section.permalink | safe }}">{{ trans(key="read-more", lang=lang) | default (value="📄 See the complete list...") }}</a>
|
||||
{% break %}
|
||||
{%- endif %}
|
||||
{%- endfor %}
|
||||
</ul>
|
||||
{% endif -%}
|
||||
{% endfor -%}
|
||||
|
||||
{% endblock content %}
|
||||
3
templates/robots.txt
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
User-agent: *
|
||||
Disallow: /
|
||||
Sitemap: {{ get_url(path="sitemap.xml") }}
|
||||
25
templates/section.html
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
{% extends "base.html" %}
|
||||
|
||||
{% block content %}
|
||||
<h1>{{ section.title }}</h1>
|
||||
|
||||
{{ section.content | safe }}
|
||||
|
||||
{% if paginator %}
|
||||
{% set pages = paginator.pages %}
|
||||
{% else %}
|
||||
{% set pages = section.pages %}
|
||||
{% endif %}
|
||||
|
||||
<ul class="title-list">
|
||||
{% for page in pages %}
|
||||
<li>
|
||||
<a href="{{ page.permalink | safe }}">{{ page.date ~ "// " ~ page.title }}</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
|
||||
{% if paginator %}
|
||||
<div class="accent-data">{% if paginator.previous %}<a href="{{ paginator.first }}">⥶</a>   <a href="{{ paginator.previous }}"><</a>{% endif %}   {{ paginator.current_index }} / {{ paginator.number_pagers }}   {% if paginator.next %}<a href="{{ paginator.next }}">></a>   <a href="{{ paginator.last }}">⥸</a>{% endif %}</div>
|
||||
{% endif %}
|
||||
{% endblock content %}
|
||||