add scss converter

This commit is contained in:
Tykayn 2024-11-10 00:01:15 +01:00 committed by tykayn
parent 7b582215dd
commit 07cee6a65d
53 changed files with 4507 additions and 337 deletions

Binary file not shown.

View File

@ -6,7 +6,7 @@ from datetime import datetime
source_dir = "source"
# Expression régulière pour extraire la date du contenu de l'article
date_regex = re.compile(r"\b(\d{4}-\d{2}-\d{2})\b")
date_regex = re.compile(r"\b(\d{14})\b")
# Liste des fichiers org-mode trouvés
org_files = []

View File

@ -3,6 +3,8 @@ import argparse
import re
import datetime
import shutil
# from enrich_html import static_page_path
# génère l'index gemini et html des articles rangés par langue
# Définition des arguments de la ligne de commande
@ -14,16 +16,17 @@ args = parser.parse_args()
# Variables personnalisables
DOSSIER_SOURCE = 'sources/'+args.source # Nom du dossier contenant les fichiers Markdown
FICHIER_INDEX = 'index_'+args.source # Nom du fichier d'index à générer
TITRE_INDEX = f" # {args.title} - Articles"
# TITRE_INDEX = f" # {args.title} - Articles"
TITRE_INDEX = f""
source_files_extension="org"
# Expression régulière pour extraire la date et le slug du nom de fichier org
regex = r"^(\d{4}(-?\d{2}){2}|\d{8})(-[a-zA-Z0-9_-]+)\.gmi$"
regex = r"^(\d{14})(-[a-zA-Z0-9_-]+)\.gmi$"
regex_orgroam = r"^(\d{14})_([a-zA-Z0-9_-]+)\.gmi$"
def find_year_and_slug(fichier):
fichier = fichier.replace('..','.')
# print(f"find in {fichier} -------------")
# print(f" ------------ build_indexes: find in {fichier} -------------")
slug = fichier.replace('.gmi','')
annee = '2024'
date_str= '2024-00-00'
@ -52,12 +55,12 @@ def find_year_and_slug(fichier):
# else:
# print('ERREUR aucun slug trouvé')
print(f" ")
print(f"Fichier: {fichier}")
# print(f"année: {annee}")
print(f"str(date): {str(date)}")
print(f"slug: {slug}")
print(f"chemin: {annee}/{slug}/")
# print(f" ------------ build_indexes: ")
# print(f" ------------ build_indexes: Fichier: {fichier}")
# print(f" ------------ build_indexes: année: {annee}")
# print(f" ------------ build_indexes: str(date): {str(date)}")
# print(f" ------------ build_indexes: slug: {slug}")
# print(f" ------------ build_indexes: chemin: {annee}/{slug}/")
return [date_str, annee, slug]
@ -78,7 +81,7 @@ def create_path_folders_and_move_file(path, file):
def get_files_list_of_folder(folder_path):
# Vérifie si le dossier existe
if not os.path.exists(folder_path):
print(f"Erreur : Le dossier '{dossier_md}' n'existe pas.")
print(f" ------------ build_indexes: Erreur : Le dossier '{dossier_md}' n'existe pas.")
return
print('source ',folder_path)
# Liste les fichiers articles, trie par nom décroissant
@ -87,7 +90,7 @@ def get_files_list_of_folder(folder_path):
print('fichiers trouvés:', len(fichiers_md))
return fichiers_md
except OSError as e:
print(f"Erreur lors de la lecture du dossier : {e}")
print(f" ------------ build_indexes: Erreur lors de la lecture du dossier : {e}")
return
@ -156,14 +159,14 @@ def generer_index(dossier_source, fichier_index, titre_index):
contenu_index_html += f"<br><a href=/{année}/{slug}>{année} {slug.replace('-', ' ')}</a>"
# déplacer l'article html généré dans son dossier de slug
# print(f" on créée le dossier : {new_folder_path_this_article}, et on y copie le fichier {chemin_fichier_this_article} en le renommant index.html")
# print(f" ------------ build_indexes: on créée le dossier : {new_folder_path_this_article}, et on y copie le fichier {chemin_fichier_this_article} en le renommant index.html")
# 'html-websites/'+args.source+'/'+new_folder
# print(f" mkdir {new_folder_path_this_article} -p")
# print(f" mv {chemin_fichier_this_article} {new_folder_path_this_article}")
# print(f" ------------ build_indexes: mkdir {new_folder_path_this_article} -p")
# print(f" ------------ build_indexes: mv {chemin_fichier_this_article} {new_folder_path_this_article}")
os.makedirs(os.path.dirname(new_folder_path_this_article), exist_ok=True)
# déplacer le fichier html dans le dossier slug, et le renommer en index.html ensuite pour ne pas modifier l'index du blog
shutil.move(chemin_fichier_this_article, new_folder_path_this_article+'index.html')
shutil.copy(chemin_fichier_this_article, new_folder_path_this_article+'index.html')
# contenu_index_gmi += "\n# Articles in English\n-------------------------\n"
# contenu_index_html += "<h1>Articles in English</h1>"
@ -178,27 +181,26 @@ def generer_index(dossier_source, fichier_index, titre_index):
print('chemin_fichier_index_html' , dossier_parent+chemin_fichier_index_html)
print(' ')
with open(dossier_parent+chemin_fichier_index_html, 'w', encoding='utf-8') as file:
file.write('<html><head><title>'+args.title+'</title></head><body>'+contenu_index_html+'</article></body></html>')
print(f"Fichier d'index '{chemin_fichier_index_html}' généré avec succès.")
# os.remove(dossier_parent+'/html-websites/'+args.source+'/index.html')
file.write('<html><head><title>'+args.title+'</title><link rel=\"stylesheet\" href=\"/style.css\"></link></head><body>'+contenu_index_html+'</article></body></html>')
print(f" ------------ build_indexes: Fichier d'index '{chemin_fichier_index_html}' généré avec succès.")
destination_html = dossier_parent+'/html-websites/'+args.source+'/'
shutil.move(dossier_parent+chemin_fichier_index_html, destination_html)
shutil.move(destination_html+chemin_fichier_index_html, destination_html+'index.html')
shutil.copy(dossier_parent+chemin_fichier_index_html, destination_html)
shutil.copy(destination_html+chemin_fichier_index_html, destination_html+'index.html')
# Écrit le contenu dans le fichier d'index
try:
with open(chemin_fichier_index_gemini, 'w', encoding='utf-8') as file:
file.write(contenu_index_gmi)
print(f"Fichier d'index '{chemin_fichier_index_gemini}' généré avec succès.")
print(f" ------------ build_indexes: Fichier d'index '{chemin_fichier_index_gemini}' généré avec succès.")
os.remove('gemini-capsules/'+args.source+'/index.gmi')
shutil.move(chemin_fichier_index_gemini, 'gemini-capsules/'+args.source+'/index.gmi')
shutil.copy(chemin_fichier_index_gemini, 'gemini-capsules/'+args.source+'/index.gmi')
print(f"Déplacé dans '{'html-websites/'+args.source}'.")
print(f" ------------ build_indexes: Déplacé dans '{'html-websites/'+args.source}'.")
except OSError as e:
print(f"Erreur lors de l'écriture du fichier d'index : {e}")
print(f" ------------ build_indexes: Erreur lors de l'écriture du fichier d'index : {e}")
if __name__ == "__main__":
generer_index(DOSSIER_SOURCE, FICHIER_INDEX, TITRE_INDEX)

View File

@ -77,20 +77,18 @@ generate_website() {
mkdir -p html-websites/$website_name/lang_fr
mkdir -p html-websites/$website_name/lang_en
mkdir -p sources/$website_name/img
mkdir -p sources/$website_name/lang_fr
mkdir -p sources/$website_name/lang_en
if [ ! -d "sources/$website_name" ]; then
mkdir -p sources/$website_name/img
mkdir -p sources/$website_name/lang_fr
mkdir -p sources/$website_name/lang_en
fi
# Ajoutez ici le code pour générer le site Web
echo "----------- Le site $1 a été généré avec succès."
# conversion des pages statiques
cd sources/$website_name
convert_sources
#déplacer dans le site généré
# mv converted/*.html ../../html-websites/$website_name/
# ls converted/*.gmi
# mv converted/*.gmi ../../gemini-capsules/$website_name/
# traduction fr
cd lang_fr

View File

@ -17,9 +17,30 @@ blog_name = args.blog_name
source_blog = f"sources/{blog_name}"
header_content_path = f"{source_blog}/templates/header_page.org"
footer_content_path = f"{source_blog}/templates/header_page.org"
static_page_path = f"{source_blog}/templates/html/static.html"
# variables du template de page
BANNIERE_ENTETE=''
BLOG_TITLE='Cipher Bliss'
BLOG_SUBTITLE='Code, nouvelles technologies et entrepreneurariat par B. Lemoine'
TITLE=''
AUTHOR=''
PAGE_TITLE=''
LOCALE=''
DESCRIPTION=''
EMAIL='contact@cipherbliss.com'
SITE_ICON='https://www.cipherbliss.com/wp-content/uploads/2016/12/rond.png'
SITE_ICON='image/png'
NAVIGATION='<nav><a href="/">Accueil</a><a href="https://portfolio.cipherbliss.com">Portfolio</a><a href="/feed">Flux RSS</a><a href="/contact">Contact</a><a href="/ressources-de-café-vie-privée">Ressources</a></nav>'
BANNIERE_ENTETE='https://www.cipherbliss.com/wp-content/uploads/2016/11/bg.jpg'
BANNIERE_ENTETE_ALT='bannière du site'
ARTICLE=''
FOOTER=''
def enrich_one_file(file, root_path):
print(' ----------- enrich html file:',os.path.join(root_path, file))
css_content = ""
@ -43,24 +64,32 @@ def enrich_one_file(file, root_path):
# Ajouter la déclaration de charset UTF-8, le doctype HTML et le titre du site Web
html_content = f"""<!DOCTYPE html>
<!-- généré avec orgmode-to-gemini-blog par Tykayn -->
<html lang=\"fr\">
<head>
<meta charset=\"UTF-8\">
<title>{args.title}</title>
<title>{BLOG_TITLE}</title>
{css_content}
<link rel=\"stylesheet\" href=\"/style.css\"></link>
</head>
<body>
<a href=\"/\">Retour à l'Accueil</a>
<hr/>
{html_content}
<footer>
<hr/>
<a href='/'>Retour à l'Accueil</a>
</footer>
<header>
<h1>{BLOG_TITLE}</h1>
<p>{BLOG_SUBTITLE}</p>
{NAVIGATION}
</header>
<hr/>
<main>
{html_content}
</main>
<hr/>
<footer>
{NAVIGATION}
</footer>
</body>
</html>"""
</html>
"""
html_path_enriched=os.path.join(root_path, file)
# Écrire le contenu modifié dans le fichier HTML

View File

@ -0,0 +1,351 @@
<!DOCTYPE html>
<!-- généré avec orgmode-to-gemini-blog par Tykayn -->
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>Cipher Bliss</title>
<p>Code, nouvelles technologies et entrepreneurariat par B. Lemoine</p>
<link rel="stylesheet" href="/style.css"></link>
</head>
<body>
<header>
<h1>Cipher Bliss</h1>
<p>Code, nouvelles technologies et entrepreneurariat par B. Lemoine</p>
<nav><a href="/">Accueil</a><a href="https://portfolio.cipherbliss.com">Portfolio</a><a href="/feed">Flux RSS</a><a href="/contact">Contact</a><a href="/ressources-de-café-vie-privée">Ressources</a></nav>
</header>
<hr/>
<main>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
<head>
<meta charset="utf-8" />
<meta name="generator" content="pandoc" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
<title>cil_gometz</title>
<style>
html {
color: #1a1a1a;
background-color: #fdfdfd;
}
body {
margin: 0 auto;
max-width: 36em;
padding-left: 50px;
padding-right: 50px;
padding-top: 50px;
padding-bottom: 50px;
hyphens: auto;
overflow-wrap: break-word;
text-rendering: optimizeLegibility;
font-kerning: normal;
}
@media (max-width: 600px) {
body {
font-size: 0.9em;
padding: 12px;
}
h1 {
font-size: 1.8em;
}
}
@media print {
html {
background-color: white;
}
body {
background-color: transparent;
color: black;
font-size: 12pt;
}
p, h2, h3 {
orphans: 3;
widows: 3;
}
h2, h3, h4 {
page-break-after: avoid;
}
}
p {
margin: 1em 0;
}
a {
color: #1a1a1a;
}
a:visited {
color: #1a1a1a;
}
img {
max-width: 100%;
}
h1, h2, h3, h4, h5, h6 {
margin-top: 1.4em;
}
h5, h6 {
font-size: 1em;
font-style: italic;
}
h6 {
font-weight: normal;
}
ol, ul {
padding-left: 1.7em;
margin-top: 1em;
}
li > ol, li > ul {
margin-top: 0;
}
blockquote {
margin: 1em 0 1em 1.7em;
padding-left: 1em;
border-left: 2px solid #e6e6e6;
color: #606060;
}
code {
font-family: Menlo, Monaco, Consolas, 'Lucida Console', monospace;
font-size: 85%;
margin: 0;
hyphens: manual;
}
pre {
margin: 1em 0;
overflow: auto;
}
pre code {
padding: 0;
overflow: visible;
overflow-wrap: normal;
}
.sourceCode {
background-color: transparent;
overflow: visible;
}
hr {
background-color: #1a1a1a;
border: none;
height: 1px;
margin: 1em 0;
}
table {
margin: 1em 0;
border-collapse: collapse;
width: 100%;
overflow-x: auto;
display: block;
font-variant-numeric: lining-nums tabular-nums;
}
table caption {
margin-bottom: 0.75em;
}
tbody {
margin-top: 0.5em;
border-top: 1px solid #1a1a1a;
border-bottom: 1px solid #1a1a1a;
}
th {
border-top: 1px solid #1a1a1a;
padding: 0.25em 0.5em 0.25em 0.5em;
}
td {
padding: 0.125em 0.5em 0.25em 0.5em;
}
header {
margin-bottom: 4em;
text-align: center;
}
#TOC li {
list-style: none;
}
#TOC ul {
padding-left: 1.3em;
}
#TOC > ul {
padding-left: 0;
}
#TOC a:not(:hover) {
text-decoration: none;
}
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
div.columns{display: flex; gap: min(4vw, 1.5em);}
div.column{flex: auto; overflow-x: auto;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
/* The extra [class] is a hack that increases specificity enough to
override a similar rule in reveal.js */
ul.task-list[class]{list-style: none;}
ul.task-list li input[type="checkbox"] {
font-size: inherit;
width: 0.8em;
margin: 0 0.8em 0.2em -1.6em;
vertical-align: middle;
}
.display.math{display: block; text-align: center; margin: 0.5rem auto;}
</style>
</head>
<body>
<header id="title-block-header">
<h1 class="title">cil_gometz</h1>
</header>
<h1 id="article">Article</h1>
<ul>
<li>ID: 73</li>
<li>guid:</li>
<li>status: publish</li>
<li>publié le: &lt;2020-08-03 12:43:44&gt;</li>
<li>modifié: &lt;2020-08-03 12:48:40&gt;</li>
<li>Index des articles du blog <a
href="id:4b6e8e7d-9d60-40c7-aa15-72de5e260cf9">blog cil<sub>gometz</sub>
posts</a></li>
</ul>
<p><a href="id:88e764f9-db26-4260-af21-99e18b9a79b0">cours-de-python</a>
<a href="id:4de4ac73-e9f6-41bc-a178-e26cf6c0949a">programmation</a> <a
href="id:682dfd88-f1b9-4b60-8aa4-1714ba338dbe">cil<sub>gometz</sub></a></p>
<h2 id="écrire-une-comptine-en-python---bonjour-le-jour">écrire une
comptine en python - Bonjour le jour!</h2>
<p>Salut les Cilleux et cilleuses,</p>
<p>Georges est en vacances, mais je vous propose de pratiquer le python
en fabriquant une comptine que ma fille chantait à la crèche, histoire
de ne pas trop rouiller pendant l'été et de voir comme on peut faire de
la réutilisation. (et pourquoi pas, faire du python avec les enfants
:D)</p>
<p>Cette comptine étant habituellement utilisée en crèche ou ailleurs
pour que tous les enfants retiennent le prénom des autres.</p>
<p>On va donc revoir plusieurs éléments déjà vu à la MJC de Gometz: les
fonctions, les boucles et les listes.</p>
<p>Créez votre fichier python dans votre éditer de texte préféré, perso
je recommande PyCharm, version communautaire qui est donc gratuit et
très complet.</p>
<p><code
class="verbatim">sudo snap install pycharm-community --classic</code></p>
<p>donc, dans un fichier comptine<sub>python</sub>.py, on veut faire
notre comptine qui va chanter ceci:</p>
<blockquote>
<p><em>#### c'est l'heure de la chanson #####</em> //</p>
<p><em>- Par la fenêtre ouverte</em> //</p>
<p><em>- bonjour, bonjour</em> //</p>
<p><em>- Par la fenêtre ouverte</em></p>
<p><em>- bonjour, le jour</em></p>
<p>/ /</p>
<p><em>- bonjour les pythons!</em> //</p>
<p><em>- bonjour les abeilles!</em> //</p>
<p><em>- bonjour les fleurs!</em></p>
<p>/ /</p>
<p><em>- Par la fenêtre ouverte</em> //</p>
<p><em>- bonjour, bonjour</em> //</p>
<p><em>- Par la fenêtre ouverte</em> //</p>
<p><em>- bonjour, le jour</em></p>
</blockquote>
<p>nous avons donc une première ligne, un refrain, une suite de
bonjours, et un refrain.</p>
<p>Le plus simple est de commencer par la première ligne, qu'il suffit
d'imprimer avec print.</p>
<blockquote>
<pre class="example"><code>print(&quot;##### c&#39;est l&#39;heure de la chanson #####&quot;)
</code></pre>
</blockquote>
<p>Ensuite, nous avons notre refrain. Au lieu de faire plein de print,
nous pouvons faire une fonction qui va imprimer toutes les lignes de ce
refrain , comme ça on pourra l'appeler deux fois pour faire notre
comptine.</p>
<p>Définissons donc la fonction refrain. On va écrire notre chaîne de
caractères entre une triple paire de guillemets afin de pouvoir écrire
sur plusieurs lignes le contenu de notre print.</p>
<pre class="example"><code>def refrain():
print(&quot;&quot;&quot;
- Par la fenêtre ouverte
- bonjour, bonjour
- Par la fenêtre ouverte
- bonjour, le jour
&quot;&quot;&quot;)
</code></pre>
<p> </p>
<p>Ensuite nous avons plusieurs bonjours dit à un destinataire
différent. Nous pouvons donc faire une fonction qui dit bonjour, définir
une liste de destinataires, et dire bonjour à chacun d'eux avec une
boucle.</p>
<p>Commençons par la liste de destinataires que sont les pythons, les
abeilles et les fleurs. On utilise des crochets pour définir une liste
et l'attribuer à une variable.</p>
<pre class="example"><code>destinataires = [&#39;les pythons&#39;, &#39;les abeilles&#39;, &#39;les fleurs&#39;]
</code></pre>
<p>Pour leur dire bonjour on définit une fonction qui va avoir en
paramètre un destinataire, et on va imprimer dans la console un bonjour
avec le nom du destinataire. Pour mélanger ensemble une chaîne de
caractère et une variable, on va utiliser la substitution. ça consiste à
écrire dans la chaîne un %s, et après la chaîne à lui donner quoi
substituer avec un symbole pourcent % et le nom de la variable à
substituer. Ici on veut dire bonjour au destinataire, donc on écrit
<strong>% destinataire</strong>. il existe plusieurs façons de mélanger
des variables en python, le terme correct étant "concaténer". Je vous
laisse creuser le sujet si ça vous intéresse.</p>
<p>En tous cas, voici ce que donne notre fonction pour dire bonjour.</p>
<p>def dire<sub>bonjour</sub>(destinataire):</p>
<p>print('- bonjour %s!' % destinataire)</p>
<p>Nous n'avons plus qu'a rassembler le puzzle pour que lors de
l'éxécution de notre fichier de comptine on puisse voir la chanson en
entier. Il nous faut donc encore réaliser une boucle sur chaque élément
de notre liste de destinataires. On va utiliser la boucle <strong>for
in</strong> et leur passer le bonjour.</p>
<pre class="example"><code>for quelqun in destinataires:
dire_bonjour(quelqun)
Voilà!
</code></pre>
<p>Nous n'avons plus qu'à réorganiser nos lignes et demander au refrain
de s'exécuter avant et après la boucle.</p>
<pre class="example"><code># comptine de la chanson du bonjour
destinataires = [&#39;les pythons&#39;, &#39;les abeilles&#39;, &#39;les fleurs&#39;]
def refrain():
print(&quot;&quot;&quot;
- Par la fenêtre ouverte
- bonjour, bonjour
- Par la fenêtre ouverte
- bonjour, le jour
&quot;&quot;&quot;)
def dire_bonjour(destinataire):
print(&#39;- bonjour %s!&#39; % destinataire)
print(&quot;##### c&#39;est l&#39;heure de la chanson #####&quot;)
refrain()
for quelqun in destinataires:
dire_bonjour(quelqun)
refrain()
# et voilà!
</code></pre>
<p>exécuter le fichier python devrait donc nous faire apparaître en
console la chanson complète. Dans pycharm vous pouvez voir ce que ça
donne avec votre script juste en appuyant sur F6.</p>
<p>Vous pouvez tester ce fichier sur le site repl.it <a
href="https://repl.it/@tykayn/comptinebonjour#main.py">https://repl.it/@tykayn/comptinebonjour#main.py</a>
et le lancer avec le bouton "run" pour voir la comptine en console.</p>
<p>Il existe bien sûr tout un tas de façons de faire cette comptine en
python.</p>
<p>Vous pouvez essayer aussi en ajoutant d'autres destinataires dans la
liste.</p>
<p>J'espère que ce petit exercice vous aura amusé.</p>
<p>N'hésitez pas si vous avez des questions :)</p>
<p>Bon Lundi!  </p>
<h1 id="liens">Liens</h1>
<ul>
<li>blog<sub>cilgometz</sub> <a
href="id:4b6e8e7d-9d60-40c7-aa15-72de5e260cf9">blog cil<sub>gometz</sub>
posts</a></li>
</ul>
</body>
</html>
</main>
<hr/>
<footer>
<nav><a href="/">Accueil</a><a href="https://portfolio.cipherbliss.com">Portfolio</a><a href="/feed">Flux RSS</a><a href="/contact">Contact</a><a href="/ressources-de-café-vie-privée">Ressources</a></nav>
</footer>
</body>
</html>

View File

@ -0,0 +1,270 @@
<!DOCTYPE html>
<!-- généré avec orgmode-to-gemini-blog par Tykayn -->
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>Cipher Bliss</title>
<p>Code, nouvelles technologies et entrepreneurariat par B. Lemoine</p>
<link rel="stylesheet" href="/style.css"></link>
</head>
<body>
<header>
<h1>Cipher Bliss</h1>
<p>Code, nouvelles technologies et entrepreneurariat par B. Lemoine</p>
<nav><a href="/">Accueil</a><a href="https://portfolio.cipherbliss.com">Portfolio</a><a href="/feed">Flux RSS</a><a href="/contact">Contact</a><a href="/ressources-de-café-vie-privée">Ressources</a></nav>
</header>
<hr/>
<main>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
<head>
<meta charset="utf-8" />
<meta name="generator" content="pandoc" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
<title>cil_gometz</title>
<style>
html {
color: #1a1a1a;
background-color: #fdfdfd;
}
body {
margin: 0 auto;
max-width: 36em;
padding-left: 50px;
padding-right: 50px;
padding-top: 50px;
padding-bottom: 50px;
hyphens: auto;
overflow-wrap: break-word;
text-rendering: optimizeLegibility;
font-kerning: normal;
}
@media (max-width: 600px) {
body {
font-size: 0.9em;
padding: 12px;
}
h1 {
font-size: 1.8em;
}
}
@media print {
html {
background-color: white;
}
body {
background-color: transparent;
color: black;
font-size: 12pt;
}
p, h2, h3 {
orphans: 3;
widows: 3;
}
h2, h3, h4 {
page-break-after: avoid;
}
}
p {
margin: 1em 0;
}
a {
color: #1a1a1a;
}
a:visited {
color: #1a1a1a;
}
img {
max-width: 100%;
}
h1, h2, h3, h4, h5, h6 {
margin-top: 1.4em;
}
h5, h6 {
font-size: 1em;
font-style: italic;
}
h6 {
font-weight: normal;
}
ol, ul {
padding-left: 1.7em;
margin-top: 1em;
}
li > ol, li > ul {
margin-top: 0;
}
blockquote {
margin: 1em 0 1em 1.7em;
padding-left: 1em;
border-left: 2px solid #e6e6e6;
color: #606060;
}
code {
font-family: Menlo, Monaco, Consolas, 'Lucida Console', monospace;
font-size: 85%;
margin: 0;
hyphens: manual;
}
pre {
margin: 1em 0;
overflow: auto;
}
pre code {
padding: 0;
overflow: visible;
overflow-wrap: normal;
}
.sourceCode {
background-color: transparent;
overflow: visible;
}
hr {
background-color: #1a1a1a;
border: none;
height: 1px;
margin: 1em 0;
}
table {
margin: 1em 0;
border-collapse: collapse;
width: 100%;
overflow-x: auto;
display: block;
font-variant-numeric: lining-nums tabular-nums;
}
table caption {
margin-bottom: 0.75em;
}
tbody {
margin-top: 0.5em;
border-top: 1px solid #1a1a1a;
border-bottom: 1px solid #1a1a1a;
}
th {
border-top: 1px solid #1a1a1a;
padding: 0.25em 0.5em 0.25em 0.5em;
}
td {
padding: 0.125em 0.5em 0.25em 0.5em;
}
header {
margin-bottom: 4em;
text-align: center;
}
#TOC li {
list-style: none;
}
#TOC ul {
padding-left: 1.3em;
}
#TOC > ul {
padding-left: 0;
}
#TOC a:not(:hover) {
text-decoration: none;
}
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
div.columns{display: flex; gap: min(4vw, 1.5em);}
div.column{flex: auto; overflow-x: auto;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
/* The extra [class] is a hack that increases specificity enough to
override a similar rule in reveal.js */
ul.task-list[class]{list-style: none;}
ul.task-list li input[type="checkbox"] {
font-size: inherit;
width: 0.8em;
margin: 0 0.8em 0.2em -1.6em;
vertical-align: middle;
}
.display.math{display: block; text-align: center; margin: 0.5rem auto;}
</style>
</head>
<body>
<header id="title-block-header">
<h1 class="title">cil_gometz</h1>
</header>
<h1 id="article">Article</h1>
<ul>
<li>ID: 80</li>
<li>guid:</li>
<li>status: publish</li>
<li>publié le: &lt;2020-09-09 15:20:39&gt;</li>
<li>modifié: &lt;2020-09-11 11:18:24&gt;</li>
<li>Index des articles du blog <a
href="id:4b6e8e7d-9d60-40c7-aa15-72de5e260cf9">blog cil<sub>gometz</sub>
posts</a></li>
</ul>
<p><a
href="id:682dfd88-f1b9-4b60-8aa4-1714ba338dbe">cil<sub>gometz</sub></a></p>
<h2 id="panel-dactivités-de-la-rentrée-post-covid19">Panel d'activités
de la rentrée post COVID19</h2>
<p><a
href="https://www.cil-gometz.org/wp-content/uploads/2020/09/cil_activites_2020.png">[[<span>https://www.cil-gometz.org/wp-content/uploads/2020/09/cil_activites_2020-1024x801.png</span></a>]]</p>
<p>Voici quelques sujets que nous pouvons évoquer lors de nos réunions
hebdomadaires dans le cadre du CIL:</p>
<ul>
<li><p>Découvrir des logiciels libres en général</p></li>
<li><p>Comprendre le fonctionnement d'internet et du web</p></li>
<li><p>Installation de systèmes libres comme ubuntu sur ordinateur et
téléphone (on dit ordiphone parait-il)</p></li>
<li><p>Développer son site web, tenir un blog</p></li>
<li><p>S'auto héberger avec nextcloud et d'autres logiciels
libres</p></li>
<li><p>Faire de la création numérique, médias à imprimer, montage vidéo,
fichiers audio, livres numérique, création graphique, 3D</p></li>
<li><p>Contribuer à des projets libres, comment faire?</p></li>
<li><p>Contribution collaborative: de la bureautique simple de <a
href="https://www.cryptpad.fr">Cryptpad</a> à la cartographie <a
href="https://www.openstreetmap.org">openstreetmap</a> en passant par <a
href="https://www.wikipedia.org">wikipédia</a></p></li>
<li><p>Protéger sa vie privée, communication sécurisée, gestion des mots
de passe, chiffrement et cryptographie</p></li>
<li><p>Sauvegarder et compresser automatiquement ses fichiers</p></li>
<li><p>Organiser ses projets perso et boulot, seul ou à
plusieurs</p></li>
<li><p>Créer des synergies entre associations</p></li>
<li><p>Que faire avec un RaspberryPI ou un Arduino ?</p></li>
<li><p>Programmation, concepts généraux, outils, gestion de version, et
exercices en python</p></li>
<li><p>Découvrir la ligne de commande</p></li>
<li><p>Méthodes pour se documenter et apprendre</p></li>
<li><p>Un logiciel pour la monnaie libre: Duniter</p></li>
<li><p>Les réseaux sociaux fédérés et le fédiverse: Mastodon, Peertube,
Pixelfed, Mobilizon…</p></li>
<li><p>Questions réponses en tout genre</p></li>
<li><p>Nous échangeons entre les séances grâce à la liste de diffusion
<a
href="mailto:cil-gometz@framalistes.org">cil-gometz@framalistes.org</a>
(<a href="https://framalistes.org/sympa/subscribe/cil-gometz">abonnez
vous ici</a>)et y communiquons des sondages framadate pour savoir qui
viendra aux prochaines séances afin de les préparer au mieux. Ajoutez ce
contact à votre carnet d'adresses mail pour être certain qu'il n'arrive
pas dans les indésirables ou soit supprimé automatiquement.</p></li>
</ul>
<p>Chacun vient au CIL avec des compétences variées, du néophyte au plus
averti, pour échanger autour des sujets de leur choix, aucune assiduité
aux séances n'est requise. Si besoin nous organisons aussi des
visioconférences sur Jitsi / Matrix / Element, des outils libres bien
entendu.</p>
<p>Cependant, bien évidemment, plus on est de fous plus on rit.</p>
<h1 id="liens">Liens</h1>
<ul>
<li>blog<sub>cilgometz</sub> <a
href="id:4b6e8e7d-9d60-40c7-aa15-72de5e260cf9">blog cil<sub>gometz</sub>
posts</a></li>
</ul>
</body>
</html>
</main>
<hr/>
<footer>
<nav><a href="/">Accueil</a><a href="https://portfolio.cipherbliss.com">Portfolio</a><a href="/feed">Flux RSS</a><a href="/contact">Contact</a><a href="/ressources-de-café-vie-privée">Ressources</a></nav>
</footer>
</body>
</html>

View File

@ -0,0 +1,246 @@
<!DOCTYPE html>
<!-- généré avec orgmode-to-gemini-blog par Tykayn -->
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>Cipher Bliss</title>
<p>Code, nouvelles technologies et entrepreneurariat par B. Lemoine</p>
<link rel="stylesheet" href="/style.css"></link>
</head>
<body>
<header>
<h1>Cipher Bliss</h1>
<p>Code, nouvelles technologies et entrepreneurariat par B. Lemoine</p>
<nav><a href="/">Accueil</a><a href="https://portfolio.cipherbliss.com">Portfolio</a><a href="/feed">Flux RSS</a><a href="/contact">Contact</a><a href="/ressources-de-café-vie-privée">Ressources</a></nav>
</header>
<hr/>
<main>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
<head>
<meta charset="utf-8" />
<meta name="generator" content="pandoc" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
<title>cil_gometz</title>
<style>
html {
color: #1a1a1a;
background-color: #fdfdfd;
}
body {
margin: 0 auto;
max-width: 36em;
padding-left: 50px;
padding-right: 50px;
padding-top: 50px;
padding-bottom: 50px;
hyphens: auto;
overflow-wrap: break-word;
text-rendering: optimizeLegibility;
font-kerning: normal;
}
@media (max-width: 600px) {
body {
font-size: 0.9em;
padding: 12px;
}
h1 {
font-size: 1.8em;
}
}
@media print {
html {
background-color: white;
}
body {
background-color: transparent;
color: black;
font-size: 12pt;
}
p, h2, h3 {
orphans: 3;
widows: 3;
}
h2, h3, h4 {
page-break-after: avoid;
}
}
p {
margin: 1em 0;
}
a {
color: #1a1a1a;
}
a:visited {
color: #1a1a1a;
}
img {
max-width: 100%;
}
h1, h2, h3, h4, h5, h6 {
margin-top: 1.4em;
}
h5, h6 {
font-size: 1em;
font-style: italic;
}
h6 {
font-weight: normal;
}
ol, ul {
padding-left: 1.7em;
margin-top: 1em;
}
li > ol, li > ul {
margin-top: 0;
}
blockquote {
margin: 1em 0 1em 1.7em;
padding-left: 1em;
border-left: 2px solid #e6e6e6;
color: #606060;
}
code {
font-family: Menlo, Monaco, Consolas, 'Lucida Console', monospace;
font-size: 85%;
margin: 0;
hyphens: manual;
}
pre {
margin: 1em 0;
overflow: auto;
}
pre code {
padding: 0;
overflow: visible;
overflow-wrap: normal;
}
.sourceCode {
background-color: transparent;
overflow: visible;
}
hr {
background-color: #1a1a1a;
border: none;
height: 1px;
margin: 1em 0;
}
table {
margin: 1em 0;
border-collapse: collapse;
width: 100%;
overflow-x: auto;
display: block;
font-variant-numeric: lining-nums tabular-nums;
}
table caption {
margin-bottom: 0.75em;
}
tbody {
margin-top: 0.5em;
border-top: 1px solid #1a1a1a;
border-bottom: 1px solid #1a1a1a;
}
th {
border-top: 1px solid #1a1a1a;
padding: 0.25em 0.5em 0.25em 0.5em;
}
td {
padding: 0.125em 0.5em 0.25em 0.5em;
}
header {
margin-bottom: 4em;
text-align: center;
}
#TOC li {
list-style: none;
}
#TOC ul {
padding-left: 1.3em;
}
#TOC > ul {
padding-left: 0;
}
#TOC a:not(:hover) {
text-decoration: none;
}
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
div.columns{display: flex; gap: min(4vw, 1.5em);}
div.column{flex: auto; overflow-x: auto;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
/* The extra [class] is a hack that increases specificity enough to
override a similar rule in reveal.js */
ul.task-list[class]{list-style: none;}
ul.task-list li input[type="checkbox"] {
font-size: inherit;
width: 0.8em;
margin: 0 0.8em 0.2em -1.6em;
vertical-align: middle;
}
.display.math{display: block; text-align: center; margin: 0.5rem auto;}
</style>
</head>
<body>
<header id="title-block-header">
<h1 class="title">cil_gometz</h1>
</header>
<h1 id="article">Article</h1>
<ul>
<li>ID: 6</li>
<li>guid:</li>
<li>status: publish</li>
<li>publié le: &lt;2020-05-13 21:51:41&gt;</li>
<li>modifié: &lt;2020-05-18 18:27:56&gt;</li>
<li>Index des articles du blog <a
href="id:4b6e8e7d-9d60-40c7-aa15-72de5e260cf9">blog cil<sub>gometz</sub>
posts</a></li>
</ul>
<h2 id="à-propos-du-cil-de-gometz-la-ville">à propos du CIL de Gometz la
ville</h2>
<p>Nous sommes des amateurs non-professionnels, certains d'entre nous
ont utilisé (ou utilisent) l'informatique dans le cadre de leur activité
professionnelle mais aucun d'entre nous n'est informaticien (sauf <a
href="https://www.cipherbliss.com">tykayn</a> qui a retapé ce site).</p>
<p>Nos déboires avec les logiciels commerciaux (surtout ceux de
Microsoft) font que nous nous sommes tournés vers les logiciels libres
et en particulier vers le système Linux dans ses diverse versions.Nous
ne sommes pas pour autant opposés à tout logiciel commercial mais si un
logiciel libre fait la même chose qu'un logiciel commercial, nous
préférons le logiciel libre.<br />
Chacune de nos réunions nous permet de progresser et de mieux comprendre
ce qu'est l'informatique : un peu de système (terminal et ligne de
commande), un peu de bureautique (traitement de texte, tableur…), un peu
de programmation (Python), un peu de gestion de photos… et voilà !</p>
<p>Tout amateur, même (et surtout) débutant, est le bien venu et nous
l'aiderons du mieux possible tout en profitant de ses connaissances.</p>
<p>MJC de Gometz le châtel le mardi de 14h à 16h</p>
<p><br />
<a
href="https://www.openstreetmap.org/#map=19/48.67847/2.13797&amp;layers=N">Afficher
une carte plus grande</a></p>
<p> </p>
<p>CIL (Club Informatique-Libre)</p>
<p>76 rue Saint Nicolas</p>
<p>91940 Gometz-le-Châtel - FRANCE</p>
<p> </p>
<p> </p>
<h1 id="liens">Liens</h1>
<ul>
<li>blog<sub>cilgometz</sub> <a
href="id:4b6e8e7d-9d60-40c7-aa15-72de5e260cf9">blog cil<sub>gometz</sub>
posts</a></li>
</ul>
</body>
</html>
</main>
<hr/>
<footer>
<nav><a href="/">Accueil</a><a href="https://portfolio.cipherbliss.com">Portfolio</a><a href="/feed">Flux RSS</a><a href="/contact">Contact</a><a href="/ressources-de-café-vie-privée">Ressources</a></nav>
</footer>
</body>
</html>

View File

@ -0,0 +1,227 @@
<!DOCTYPE html>
<!-- généré avec orgmode-to-gemini-blog par Tykayn -->
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>Cipher Bliss</title>
<p>Code, nouvelles technologies et entrepreneurariat par B. Lemoine</p>
<link rel="stylesheet" href="/style.css"></link>
</head>
<body>
<header>
<h1>Cipher Bliss</h1>
<p>Code, nouvelles technologies et entrepreneurariat par B. Lemoine</p>
<nav><a href="/">Accueil</a><a href="https://portfolio.cipherbliss.com">Portfolio</a><a href="/feed">Flux RSS</a><a href="/contact">Contact</a><a href="/ressources-de-café-vie-privée">Ressources</a></nav>
</header>
<hr/>
<main>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
<head>
<meta charset="utf-8" />
<meta name="generator" content="pandoc" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
<title>cil_gometz</title>
<style>
html {
color: #1a1a1a;
background-color: #fdfdfd;
}
body {
margin: 0 auto;
max-width: 36em;
padding-left: 50px;
padding-right: 50px;
padding-top: 50px;
padding-bottom: 50px;
hyphens: auto;
overflow-wrap: break-word;
text-rendering: optimizeLegibility;
font-kerning: normal;
}
@media (max-width: 600px) {
body {
font-size: 0.9em;
padding: 12px;
}
h1 {
font-size: 1.8em;
}
}
@media print {
html {
background-color: white;
}
body {
background-color: transparent;
color: black;
font-size: 12pt;
}
p, h2, h3 {
orphans: 3;
widows: 3;
}
h2, h3, h4 {
page-break-after: avoid;
}
}
p {
margin: 1em 0;
}
a {
color: #1a1a1a;
}
a:visited {
color: #1a1a1a;
}
img {
max-width: 100%;
}
h1, h2, h3, h4, h5, h6 {
margin-top: 1.4em;
}
h5, h6 {
font-size: 1em;
font-style: italic;
}
h6 {
font-weight: normal;
}
ol, ul {
padding-left: 1.7em;
margin-top: 1em;
}
li > ol, li > ul {
margin-top: 0;
}
blockquote {
margin: 1em 0 1em 1.7em;
padding-left: 1em;
border-left: 2px solid #e6e6e6;
color: #606060;
}
code {
font-family: Menlo, Monaco, Consolas, 'Lucida Console', monospace;
font-size: 85%;
margin: 0;
hyphens: manual;
}
pre {
margin: 1em 0;
overflow: auto;
}
pre code {
padding: 0;
overflow: visible;
overflow-wrap: normal;
}
.sourceCode {
background-color: transparent;
overflow: visible;
}
hr {
background-color: #1a1a1a;
border: none;
height: 1px;
margin: 1em 0;
}
table {
margin: 1em 0;
border-collapse: collapse;
width: 100%;
overflow-x: auto;
display: block;
font-variant-numeric: lining-nums tabular-nums;
}
table caption {
margin-bottom: 0.75em;
}
tbody {
margin-top: 0.5em;
border-top: 1px solid #1a1a1a;
border-bottom: 1px solid #1a1a1a;
}
th {
border-top: 1px solid #1a1a1a;
padding: 0.25em 0.5em 0.25em 0.5em;
}
td {
padding: 0.125em 0.5em 0.25em 0.5em;
}
header {
margin-bottom: 4em;
text-align: center;
}
#TOC li {
list-style: none;
}
#TOC ul {
padding-left: 1.3em;
}
#TOC > ul {
padding-left: 0;
}
#TOC a:not(:hover) {
text-decoration: none;
}
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
div.columns{display: flex; gap: min(4vw, 1.5em);}
div.column{flex: auto; overflow-x: auto;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
/* The extra [class] is a hack that increases specificity enough to
override a similar rule in reveal.js */
ul.task-list[class]{list-style: none;}
ul.task-list li input[type="checkbox"] {
font-size: inherit;
width: 0.8em;
margin: 0 0.8em 0.2em -1.6em;
vertical-align: middle;
}
.display.math{display: block; text-align: center; margin: 0.5rem auto;}
</style>
</head>
<body>
<header id="title-block-header">
<h1 class="title">cil_gometz</h1>
</header>
<h1 id="article">Article</h1>
<ul>
<li>ID: 24</li>
<li>guid:</li>
<li>status: publish</li>
<li>publié le: &lt;2020-05-18 18:22:15&gt;</li>
<li>modifié: &lt;2020-05-18 18:50:25&gt;</li>
<li>Index des articles du blog <a
href="id:4b6e8e7d-9d60-40c7-aa15-72de5e260cf9">blog cil<sub>gometz</sub>
posts</a></li>
</ul>
<h2 id="activités-en-cours">Activités en cours</h2>
<p>cette page répertorie les activités en cours pour l'association: *
nous avons un canal Riot / Matrix pour discuter et opérons des
rencontres via jitsi toutes les semaines. <a
href="https://riot.im/app/#/room/#cil-gometz:matrix.org">https://riot.im/app/#/room/#cil-gometz:matrix.org</a>
* cours de python et apprentissage, de l'hygiène numérique et des
logiciels libres, suivez nous sur la liste de diffusion framalistes. <a
href="https://framalistes.org/sympa/subscribe/cil-gometz">https://framalistes.org/sympa/subscribe/cil-gometz</a>
Voir les archives: <a
href="https://framalistes.org/sympa/arc/cil-gometz">https://framalistes.org/sympa/arc/cil-gometz</a></p>
<h1 id="liens">Liens</h1>
<ul>
<li>blog<sub>cilgometz</sub> <a
href="id:4b6e8e7d-9d60-40c7-aa15-72de5e260cf9">blog cil<sub>gometz</sub>
posts</a></li>
</ul>
</body>
</html>
</main>
<hr/>
<footer>
<nav><a href="/">Accueil</a><a href="https://portfolio.cipherbliss.com">Portfolio</a><a href="/feed">Flux RSS</a><a href="/contact">Contact</a><a href="/ressources-de-café-vie-privée">Ressources</a></nav>
</footer>
</body>
</html>

View File

@ -0,0 +1,31 @@
<!DOCTYPE html>
<!-- généré avec orgmode-to-gemini-blog par Tykayn -->
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>Cipher Bliss</title>
<p>Code, nouvelles technologies et entrepreneurariat par B. Lemoine</p>
<link rel="stylesheet" href="/style.css"></link>
</head>
<body>
<header>
<h1>Cipher Bliss</h1>
<p>Code, nouvelles technologies et entrepreneurariat par B. Lemoine</p>
<nav><a href="/">Accueil</a><a href="https://portfolio.cipherbliss.com">Portfolio</a><a href="/feed">Flux RSS</a><a href="/contact">Contact</a><a href="/ressources-de-café-vie-privée">Ressources</a></nav>
</header>
<hr/>
<main>
<html><head><title>cil_gometz</title><link rel="stylesheet" href="/style.css"></link></head><body>
<h1>Navigation</h1><br><a href=/index.html>index.html</a><br><a href=/2020/blog_cil_gometz_12_panel-dactivites-de-la-rentree-post-covid19>2020 blog_cil_gometz_12_panel dactivites de la rentree post covid19</a><br><a href=/2020/blog_cil_gometz_11_ecrire-une-comptine-en-python-bonjour-le-jour>2020 blog_cil_gometz_11_ecrire une comptine en python bonjour le jour</a><br><a href=/2020/blog_cil_gometz_7_activites-en-cours>2020 blog_cil_gometz_7_activites en cours</a><br><a href=/2020/blog_cil_gometz_1_a-propos-du-cil-de-gometz-la-ville>2020 blog_cil_gometz_1_a propos du cil de gometz la ville</a></article></body></html>
</main>
<hr/>
<footer>
<nav><a href="/">Accueil</a><a href="https://portfolio.cipherbliss.com">Portfolio</a><a href="/feed">Flux RSS</a><a href="/contact">Contact</a><a href="/ressources-de-café-vie-privée">Ressources</a></nav>
</footer>
</body>
</html>

View File

@ -0,0 +1,28 @@
<!DOCTYPE html>
<!-- généré avec orgmode-to-gemini-blog par Tykayn -->
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>Cipher Bliss</title>
<p>Code, nouvelles technologies et entrepreneurariat par B. Lemoine</p>
<link rel="stylesheet" href="/style.css"></link>
</head>
<body>
<header>
<h1>Cipher Bliss</h1>
<p>Code, nouvelles technologies et entrepreneurariat par B. Lemoine</p>
<nav><a href="/">Accueil</a><a href="https://portfolio.cipherbliss.com">Portfolio</a><a href="/feed">Flux RSS</a><a href="/contact">Contact</a><a href="/ressources-de-café-vie-privée">Ressources</a></nav>
</header>
<hr/>
<main>
</main>
<hr/>
<footer>
<nav><a href="/">Accueil</a><a href="https://portfolio.cipherbliss.com">Portfolio</a><a href="/feed">Flux RSS</a><a href="/contact">Contact</a><a href="/ressources-de-café-vie-privée">Ressources</a></nav>
</footer>
</body>
</html>

View File

@ -0,0 +1,125 @@
* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
html {
font-size: 1rem;
font-family: Helvetica, "Ubuntu Sans", "Noto Sans", Calibri, Arial, sans-serif;
}
body {
text-align: left;
margin: 0 auto;
font-size: 1.5rem;
line-height: 1.5em;
max-width: 70ch;
color: #000;
background: #fff;
}
h1, h2, h3, h4, h5, h6 {
font-family: Helvetica, "Ubuntu Sans", "Noto Sans", Calibri, Arial, sans-serif;
margin-top: 1em;
margin-bottom: 2rem;
color: #333;
}
/* 1. Use a more-intuitive box-sizing model */
* {
box-sizing: border-box;
}
*::before, *::after {
box-sizing: border-box;
}
body {
/* Improve text rendering */
-webkit-font-smoothing: antialiased;
font-family: Helvetica, Arial, sans-serif;
padding-bottom: 20vh;
padding-left: 2rem;
padding-bottom: 2rem;
}
/* Improve media defaults */
img, picture, video, canvas, svg {
display: block;
width: 100%;
margin-top: 1rem;
margin-bottom: 1rem;
max-width: 100%;
}
/* Inherit fonts for form controls */
input, button, textarea, select {
font: inherit;
}
/* Avoid text overflows */
p, h1, h2, h3, h4, h5, h6 {
overflow-wrap: break-word;
}
/* Improve line wrapping */
p {
text-wrap: pretty;
margin-top: 1.5rem;
margin-bottom: 1rem;
}
h1 {
font-size: 4rem;
color: #221d30;
}
h2 {
font-size: 3rem;
}
h3 {
font-size: 1.5rem;
}
h1, h2, h3, h4, h5, h6 {
text-wrap: balance;
line-height: 1.3em;
}
#root, #__next {
isolation: isolate;
}
input, button, textarea, select {
font: inherit;
}
a {
display: inline-block;
padding: 0.5rem 2rem;
margin-right: 1rem;
margin-bottom: 1rem;
}
ul {
padding-left: 4ch;
padding-right: 4ch;
}
li {
margin-bottom: 1em;
}
#title-block-header {
border-bottom: 1px solid #333;
margin-bottom: 1rem;
}
@media (max-width: 20rem) {
body {
padding: 1rem;
}
}
/*# sourceMappingURL=style_general.css.map */

View File

@ -1,16 +1,22 @@
<!DOCTYPE html>
<!-- généré avec orgmode-to-gemini-blog par Tykayn -->
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>cipherbliss_blog</title>
<title>Cipher Bliss</title>
<link rel="stylesheet" href="/style.css"></link>
</head>
<body>
<a href="/">Retour à l'Accueil</a>
<hr/>
<!DOCTYPE html>
<header>
<h1>Cipher Bliss</h1>
<p>Code, nouvelles technologies et entrepreneurariat par B. Lemoine</p>
<nav><a href="/">Accueil</a><a href="https://portfolio.cipherbliss.com">Portfolio</a><a href="/feed">Flux RSS</a><a href="/contact">Contact</a><a href="/ressources-de-café-vie-privée">Ressources</a></nav>
</header>
<hr/>
<main>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
<head>
<meta charset="utf-8" />
@ -193,9 +199,8 @@ href="id:39e91a2e-d003-4acd-a99a-b58dca74df77">Cipherbliss blog</a></li>
<h2 id="des-sauvegardes-qui-durent-mille-ans-1">Des sauvegardes qui
durent mille ans</h2>
<p>ceci<sub>estduhtml</sub></p>
<p>&lt;! wp:paragraph &gt; &lt;p&gt;J'ai animé un atelier au cours du
premier camp CHATONS qui a eu lieu le week-end dernier. (Le &lt;a
href="<a
<p>J'ai animé un atelier au cours du premier camp CHATONS qui a eu lieu
le week-end dernier. (Le &lt;a href="<a
href="https://www.chatons.org/">https://www.chatons.org/</a>"&gt;Collectif
des Hébergeurs Alternatifs, Transparents, Ouverts, Neutres et
Solidaires&lt;/a&gt; vise à rassembler des structures proposant des
@ -204,10 +209,10 @@ décentralisés&lt;/strong&gt; afin de permettre aux utilisateur⋅ices de
&lt;a href="<a
href="https://www.chatons.org/search/by-service">https://www.chatons.org/search/by-service</a>"&gt;trouver
rapidement des alternatives&lt;/a&gt; respectueuses de leurs données et
de leur vie privée)&lt;/p&gt; &lt;! /wp:paragraph &gt;</p>
<p>&lt;! wp:paragraph &gt; &lt;p&gt;Pas de compte rendu du camp en lui
même pour tout de suite, cependant voici un résumé de l'atelier qui aura
duré près d'une heure.&lt;br&gt;&lt;a href="<a
de leur vie privée)#+begin<sub>src</sub> shell</p>
<p>Pas de compte rendu du camp en lui même pour tout de suite, cependant
voici un résumé de l'atelier qui aura duré près d'une
heure.&lt;br&gt;&lt;a href="<a
href="https://libreto.sans-nuage.fr/camps-chatons/programme">https://libreto.sans-nuage.fr/camps-chatons/programme</a>"&gt;<a
href="https://libreto.sans-nuage.fr/camps-chatons/programme">https://libreto.sans-nuage.fr/camps-chatons/programme</a>&lt;/a&gt;&lt;br&gt;&lt;br&gt;Comment
se protéger des pertes de données et ne pas perdre la confiance et les
@ -221,7 +226,7 @@ récupérer ses données éparpillées en ligne, historiser, chiffrer,
dédupliquer, compresser, répliquer, partager les clés d'accès, et
prévoir des restaurations périodiques, de sorte que les données les plus
cruciales survivent à leurs administrateurs et
administratrices.&lt;/p&gt; &lt;! /wp:paragraph &gt;</p>
administratrices.#+begin<sub>src</sub> shell</p>
<p>&lt;! wp:image
{"id":1598,"sizeSlug":"large","linkDestination":"none"} &gt; &lt;figure
class="wp-block-image size-large"&gt;&lt;img src="<a
@ -229,30 +234,27 @@ href="https://www.cipherbliss.com/wp-content/uploads/2021/09/Screenshot_2021-09-
alt="" class="wp-image-1598"/&gt;&lt;figcaption&gt;Jancovici et le
stockage à froid, une remarquable utilisation des couches géologiquement
stables&lt;/figcaption&gt;&lt;/figure&gt; &lt;! /wp:image &gt;</p>
<p>&lt;! wp:paragraph &gt; &lt;p&gt;&lt;br&gt;Liens:&lt;br&gt;Les
slides sont disponibles ici:&lt;br&gt;&lt;a href="<a
<p>&lt;br&gt;Liens:&lt;br&gt;Les slides sont disponibles
ici:&lt;br&gt;&lt;a href="<a
href="https://slides.com/tykayn/les-sauvegardes-automatiques">https://slides.com/tykayn/les-sauvegardes-automatiques</a>"&gt;<a
href="https://slides.com/tykayn/les-sauvegardes-automatiques">https://slides.com/tykayn/les-sauvegardes-automatiques</a>&lt;/a&gt;&lt;br&gt;&lt;br&gt;La
feuille de calcul pour cartographier son matériel&lt;br&gt;&lt;a
href="<a
href="https://cloud.tykayn.fr/index.php/s/KQfYHpaSpgwrWam">https://cloud.tykayn.fr/index.php/s/KQfYHpaSpgwrWam</a>"&gt;<a
href="https://cloud.tykayn.fr/index.php/s/KQfYHpaSpgwrWam">https://cloud.tykayn.fr/index.php/s/KQfYHpaSpgwrWam</a>&lt;/a&gt;&lt;/p&gt;
&lt;! /wp:paragraph &gt;</p>
<p>&lt;! wp:paragraph &gt; &lt;p&gt;Le site des CHATONS:
&lt;br&gt;&lt;a href="<a
href="https://cloud.tykayn.fr/index.php/s/KQfYHpaSpgwrWam">https://cloud.tykayn.fr/index.php/s/KQfYHpaSpgwrWam</a>&lt;/a&gt;#+begin<sub>src</sub>
shell</p>
<p>Le site des CHATONS: &lt;br&gt;&lt;a href="<a
href="https://www.chatons.org">https://www.chatons.org</a>"&gt;<a
href="https://www.chatons.org">https://www.chatons.org</a>&lt;/a&gt;&lt;/p&gt;
&lt;! /wp:paragraph &gt;</p>
<p>&lt;! wp:paragraph &gt; &lt;p&gt;Le forum où tout se
discute:&lt;br&gt;&lt;a href=" <a
href="https://www.chatons.org">https://www.chatons.org</a>&lt;/a&gt;#+begin<sub>src</sub>
shell</p>
<p>Le forum où tout se discute:&lt;br&gt;&lt;a href=" <a
href="https://forum.chatons.org">https://forum.chatons.org</a>"&gt; <a
href="https://forum.chatons.org">https://forum.chatons.org</a>&lt;/a&gt;&lt;/p&gt;
&lt;! /wp:paragraph &gt;</p>
<p>&lt;! wp:paragraph &gt; &lt;p&gt;La documentation pour ne pas
réinventer la roue: &lt;br&gt;&lt;a href="<a
href="https://forum.chatons.org">https://forum.chatons.org</a>&lt;/a&gt;#+begin<sub>src</sub>
shell</p>
<p>La documentation pour ne pas réinventer la roue: &lt;br&gt;&lt;a
href="<a
href="https://wiki.chatons.org">https://wiki.chatons.org</a>"&gt;<a
href="https://wiki.chatons.org">https://wiki.chatons.org</a>&lt;/a&gt;&lt;/p&gt;
&lt;! /wp:paragraph &gt;</p>
href="https://wiki.chatons.org">https://wiki.chatons.org</a>&lt;/a&gt;</p>
<h1 id="liens">Liens</h1>
<ul>
<li>cipherbliss <a
@ -261,9 +263,10 @@ href="id:d14d8051-bbb9-4279-a574-84d78bfe5b66">Cipherbliss blog</a></li>
</body>
</html>
<footer>
<hr/>
<a href='/'>Retour à l'Accueil</a>
</footer>
</main>
<hr/>
<footer>
<nav><a href="/">Accueil</a><a href="https://portfolio.cipherbliss.com">Portfolio</a><a href="/feed">Flux RSS</a><a href="/contact">Contact</a><a href="/ressources-de-café-vie-privée">Ressources</a></nav>
</footer>
</body>
</html>

View File

@ -1,16 +1,22 @@
<!DOCTYPE html>
<!-- généré avec orgmode-to-gemini-blog par Tykayn -->
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>cipherbliss_blog</title>
<title>Cipher Bliss</title>
<link rel="stylesheet" href="/style.css"></link>
</head>
<body>
<a href="/">Retour à l'Accueil</a>
<hr/>
<!DOCTYPE html>
<header>
<h1>Cipher Bliss</h1>
<p>Code, nouvelles technologies et entrepreneurariat par B. Lemoine</p>
<nav><a href="/">Accueil</a><a href="https://portfolio.cipherbliss.com">Portfolio</a><a href="/feed">Flux RSS</a><a href="/contact">Contact</a><a href="/ressources-de-café-vie-privée">Ressources</a></nav>
</header>
<hr/>
<main>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
<head>
<meta charset="utf-8" />
@ -192,15 +198,15 @@ href="id:39e91a2e-d003-4acd-a99a-b58dca74df77">Cipherbliss blog</a></li>
</ul>
<h2 id="nouvelles-doctobre-2021-1">Nouvelles d'Octobre 2021</h2>
<p>ceci<sub>estduhtml</sub></p>
<p>&lt;! wp:paragraph &gt; &lt;p&gt;j'espère que ça roule pour tout le
monde en ce début de vacances.&lt;br&gt;J'ai pu faire un atelier sur la
création graphique et le dessin à Gometz, et suite à son succès je
réitère l'expérience pendant les 4 prochaines semaines et ai publié ces
évènements sur l'agenda du libre et sur mobilizon.&lt;br&gt;J'en ai
profité aussi pour alimenter le mobilizon d'OSM avec les prochains
évènements référencés sur le wiki, l'agenda du libre, microcosm, et
d'autres recherches.&lt;br&gt;&lt;br&gt;La nouvelle version de Framadate
avance, on peut tester les maquettes sur sketch, un outil non libre
<p>j'espère que ça roule pour tout le monde en ce début de
vacances.&lt;br&gt;J'ai pu faire un atelier sur la création graphique et
le dessin à Gometz, et suite à son succès je réitère l'expérience
pendant les 4 prochaines semaines et ai publié ces évènements sur
l'agenda du libre et sur mobilizon.&lt;br&gt;J'en ai profité aussi pour
alimenter le mobilizon d'OSM avec les prochains évènements référencés
sur le wiki, l'agenda du libre, microcosm, et d'autres
recherches.&lt;br&gt;&lt;br&gt;La nouvelle version de Framadate avance,
on peut tester les maquettes sur sketch, un outil non libre
:D&lt;br&gt;&lt;a href="<a
href="https://www.sketch.com/s/5833607c-e93e-4e9b-9c7e-0614238c6d8c/a/JnbVGxk/play">https://www.sketch.com/s/5833607c-e93e-4e9b-9c7e-0614238c6d8c/a/JnbVGxk/play</a>"&gt;<a
href="https://www.sketch.com/s/5833607c-e93e-4e9b-9c7e-0614238c6d8c/a/JnbVGxk/play">https://www.sketch.com/s/5833607c-e93e-4e9b-9c7e-0614238c6d8c/a/JnbVGxk/play</a>&lt;/a&gt;&lt;br&gt;J'ai
@ -219,13 +225,12 @@ j'ai enfin pu participer a une réunion mensuelle CHATONS, victoire! du
coup y'a de l'activité à suivre sur le forum chatons :D&lt;br&gt;&lt;a
href="<a
href="https://forum.chatons.org">https://forum.chatons.org</a>"&gt;<a
href="https://forum.chatons.org">https://forum.chatons.org</a>&lt;/a&gt;&lt;/p&gt;
&lt;! /wp:paragraph &gt;</p>
<p>&lt;! wp:paragraph &gt; &lt;p&gt;On prévoit de lancer le premier
chapéro parisien de l'année en Novembre, voir les détails sur le
forum.&lt;br&gt;&lt;br&gt;J'avance sur ma gestion de tâches avec emacs /
orgmode. Le chemin est long mais ça vaut le coup.&lt;br&gt;&lt;br&gt;et
vous quoi de beau?&lt;/p&gt; &lt;! /wp:paragraph &gt;</p>
href="https://forum.chatons.org">https://forum.chatons.org</a>&lt;/a&gt;#+begin<sub>src</sub>
shell</p>
<p>On prévoit de lancer le premier chapéro parisien de l'année en
Novembre, voir les détails sur le forum.&lt;br&gt;&lt;br&gt;J'avance sur
ma gestion de tâches avec emacs / orgmode. Le chemin est long mais ça
vaut le coup.&lt;br&gt;&lt;br&gt;et vous quoi de beau?</p>
<h1 id="liens">Liens</h1>
<ul>
<li>cipherbliss <a
@ -234,9 +239,10 @@ href="id:d14d8051-bbb9-4279-a574-84d78bfe5b66">Cipherbliss blog</a></li>
</body>
</html>
<footer>
<hr/>
<a href='/'>Retour à l'Accueil</a>
</footer>
</main>
<hr/>
<footer>
<nav><a href="/">Accueil</a><a href="https://portfolio.cipherbliss.com">Portfolio</a><a href="/feed">Flux RSS</a><a href="/contact">Contact</a><a href="/ressources-de-café-vie-privée">Ressources</a></nav>
</footer>
</body>
</html>

View File

@ -1,16 +1,22 @@
<!DOCTYPE html>
<!-- généré avec orgmode-to-gemini-blog par Tykayn -->
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>cipherbliss_blog</title>
<title>Cipher Bliss</title>
<link rel="stylesheet" href="/style.css"></link>
</head>
<body>
<a href="/">Retour à l'Accueil</a>
<hr/>
<!DOCTYPE html>
<header>
<h1>Cipher Bliss</h1>
<p>Code, nouvelles technologies et entrepreneurariat par B. Lemoine</p>
<nav><a href="/">Accueil</a><a href="https://portfolio.cipherbliss.com">Portfolio</a><a href="/feed">Flux RSS</a><a href="/contact">Contact</a><a href="/ressources-de-café-vie-privée">Ressources</a></nav>
</header>
<hr/>
<main>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
<head>
<meta charset="utf-8" />
@ -180,70 +186,54 @@
<header id="title-block-header">
<h1 class="title">cipherbliss_blog</h1>
</header>
<h1 id="article">Article</h1>
<ul>
<li>ID: 1606</li>
<li>guid:</li>
<li>status: publish</li>
<li>publié le: &lt;2021-10-23 19:50:28&gt;</li>
<li>modifié: &lt;2021-10-23 19:50:28&gt;</li>
<li>Index des articles du blog <a
href="id:39e91a2e-d003-4acd-a99a-b58dca74df77">Cipherbliss blog</a></li>
</ul>
<h2 id="vidéo-du-premier-chatons-camp-2021">Vidéo du premier CHATONS
Camp 2021</h2>
<p>ceci<sub>estduhtml</sub></p>
<p>&lt;iframe title="Présentation du collectif des Chatons (Camp Chatons
2021)" src="<a
href="https://video.colibris-outilslibres.org/videos/embed/e320c9f7-e1d4-4e47-bc92-eacb1280e282">https://video.colibris-outilslibres.org/videos/embed/e320c9f7-e1d4-4e47-bc92-eacb1280e282</a>"
width="560" height="315" frameborder="0" sandbox="allow-same-origin
allow-scripts allow-popups"
allowfullscreen="allowfullscreen"&gt;&lt;/iframe&gt; Voici un premier
aperçu du camp CHATONS qui a eu lieu dans l'éco lieu du Vigan, nommé la
fabrègue. On peut m'y voir faire mon atelier sur les backups qui durent
mille ans, un prérequis pour fonder son propre CHATONS.</p>
<h1 id="vidéo-du-premier-chatons-camp-2021">Vidéo du premier CHATONS
Camp 2021</h1>
<p><span id="error-block"></span>* :PROPERTIES: :CUSTOM<sub>ID</sub>:
error-title :END: <span id="error-content"></span><span
id="video-password-block"></span>* :PROPERTIES: :CUSTOM<sub>ID</sub>:
video-password-title :END: <span
id="video-password-content"></span><span
id="video-password-error"></span><a
href="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0cmVtIiBoZWlnaHQ9IjRyZW0iIHZpZXdib3g9IjAgMCAyNCAyNCI+PGcgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzRjNGM0IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiI+PHJlY3Qgd2lkdGg9IjE4IiBoZWlnaHQ9IjExIiB4PSIzIiB5PSIxMSIgcng9IjIiIHJ5PSIyIj48L3JlY3Q+PHBhdGggZD0iTTcgMTFWN2E1IDUgMCAwIDEgMTAgMHY0Ij48L3BhdGg+PC9nPjwvc3ZnPg==">data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0cmVtIiBoZWlnaHQ9IjRyZW0iIHZpZXdib3g9IjAgMCAyNCAyNCI+PGcgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzRjNGM0IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiI+PHJlY3Qgd2lkdGg9IjE4IiBoZWlnaHQ9IjExIiB4PSIzIiB5PSIxMSIgcng9IjIiIHJ5PSIyIj48L3JlY3Q+PHBhdGggZD0iTTcgMTFWN2E1IDUgMCAwIDEgMTAgMHY0Ij48L3BhdGg+PC9nPjwvc3ZnPg==</a>
<span id="video-wrapper"></span></p>
<p>Voici un premier aperçu du camp CHATONS qui a eu lieu dans l'éco lieu
du Vigan, nommé la fabrègue. On peut m'y voir faire mon atelier sur les
backups qui durent mille ans, un prérequis pour fonder son propre
CHATONS.</p>
<p>Je vous en dirai plus un peu plus tard mais c'était tellement
chouette ces quelques 3 jours pour faire ensemble plein de choses,
découvrir les initatives existantes pour se libérer des GAFAM et
apprendre les uns des autres, le tout dans une ambiance super
décontractée, avec un lieu incroyablement prometteur.</p>
<p>Voici quelques éléments en plus, vous en trouverez bien d'autres sur
le forum des chatons. &lt;a href="<a
href="https://forum.chatons.org">https://forum.chatons.org</a>"&gt;<a
href="https://forum.chatons.org">https://forum.chatons.org</a>&lt;/a&gt;
&lt;ul&gt; &lt;li&gt;la &lt;a href="<a
href="https://video.colibris-outilslibres.org/w/u3HfhsQgKZkKZxsNf29D8G">https://video.colibris-outilslibres.org/w/u3HfhsQgKZkKZxsNf29D8G</a>"
rel="noopener nofollow ugc"&gt;vidéo de présentation du collectif
Chatons &lt;span class="badge badge-notification clicks" title="12
clics"&gt;12&lt;/span&gt;&lt;/a&gt; , déjà 168 vues en 3 jours, soit
léquivalent du million sur youtube ø/&lt;/li&gt; &lt;li&gt;les
restitutions des souvenirs du futur des chatons en 2031, &lt;a href="<a
href="https://video.colibris-outilslibres.org/w/6SkAsiKdTrfueyJsiC6b8a">https://video.colibris-outilslibres.org/w/6SkAsiKdTrfueyJsiC6b8a</a>"
rel="noopener nofollow ugc"&gt;groupe 1&lt;/a&gt;, &lt;a href="<a
href="https://video.colibris-outilslibres.org/w/ckzGy9msoigFQ3Xrx6qmQT">https://video.colibris-outilslibres.org/w/ckzGy9msoigFQ3Xrx6qmQT</a>"
rel="noopener nofollow ugc"&gt;groupe 2&lt;/a&gt;, &lt;a href="<a
href="https://video.colibris-outilslibres.org/w/292CD5GY48M838HLgqNASn">https://video.colibris-outilslibres.org/w/292CD5GY48M838HLgqNASn</a>"
rel="noopener nofollow ugc"&gt;groupe  &lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="<a
href="https://photos.colibris-outilslibres.org/index.php?/category/409">https://photos.colibris-outilslibres.org/index.php?/category/409</a>"
rel="noopener nofollow ugc"&gt;les photos&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt; Tout est disponible sous licence CC BY SA (Attribution
Edouard Marchal).</p>
<p>&lt;a href="<a
href="https://forum.chatons.org/c/collectif/camp-chatons-2021/85">https://forum.chatons.org/c/collectif/camp-chatons-2021/85</a>"&gt;<a
href="https://forum.chatons.org/c/collectif/camp-chatons-2021/85">https://forum.chatons.org/c/collectif/camp-chatons-2021/85</a>&lt;/a&gt;</p>
<p>&amp;nbsp;</p>
<h1 id="liens">Liens</h1>
le forum des chatons. <a
href="https://forum.chatons.org">https://forum.chatons.org</a></p>
<ul>
<li>cipherbliss <a
href="id:d14d8051-bbb9-4279-a574-84d78bfe5b66">Cipherbliss blog</a></li>
<li>la <a
href="https://video.colibris-outilslibres.org/w/u3HfhsQgKZkKZxsNf29D8G">vidéo
de présentation du collectif Chatons 12</a> , déjà 168 vues en 3 jours,
soit l'équivalent du million sur youtube o/ - les restitutions des
souvenirs du futur des chatons en 2031, <a
href="https://video.colibris-outilslibres.org/w/6SkAsiKdTrfueyJsiC6b8a">groupe
1</a>, <a
href="https://video.colibris-outilslibres.org/w/ckzGy9msoigFQ3Xrx6qmQT">groupe
2</a>, <a
href="https://video.colibris-outilslibres.org/w/292CD5GY48M838HLgqNASn">groupe </a>
- <a
href="https://photos.colibris-outilslibres.org/index.php?/category/409">les
photos</a></li>
</ul>
<p>Tout est disponible sous licence CC BY SA (Attribution Edouard
Marchal).</p>
<p><a
href="https://forum.chatons.org/c/collectif/camp-chatons-2021/85">https://forum.chatons.org/c/collectif/camp-chatons-2021/85</a></p>
</body>
</html>
<footer>
<hr/>
<a href='/'>Retour à l'Accueil</a>
</footer>
</main>
<hr/>
<footer>
<nav><a href="/">Accueil</a><a href="https://portfolio.cipherbliss.com">Portfolio</a><a href="/feed">Flux RSS</a><a href="/contact">Contact</a><a href="/ressources-de-café-vie-privée">Ressources</a></nav>
</footer>
</body>
</html>

View File

@ -1,16 +1,22 @@
<!DOCTYPE html>
<!-- généré avec orgmode-to-gemini-blog par Tykayn -->
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>cipherbliss_blog</title>
<title>Cipher Bliss</title>
<link rel="stylesheet" href="/style.css"></link>
</head>
<body>
<a href="/">Retour à l'Accueil</a>
<hr/>
<!DOCTYPE html>
<header>
<h1>Cipher Bliss</h1>
<p>Code, nouvelles technologies et entrepreneurariat par B. Lemoine</p>
<nav><a href="/">Accueil</a><a href="https://portfolio.cipherbliss.com">Portfolio</a><a href="/feed">Flux RSS</a><a href="/contact">Contact</a><a href="/ressources-de-café-vie-privée">Ressources</a></nav>
</header>
<hr/>
<main>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
<head>
<meta charset="utf-8" />
@ -246,9 +252,10 @@ href="id:d14d8051-bbb9-4279-a574-84d78bfe5b66">Cipherbliss blog</a></li>
</body>
</html>
<footer>
<hr/>
<a href='/'>Retour à l'Accueil</a>
</footer>
</main>
<hr/>
<footer>
<nav><a href="/">Accueil</a><a href="https://portfolio.cipherbliss.com">Portfolio</a><a href="/feed">Flux RSS</a><a href="/contact">Contact</a><a href="/ressources-de-café-vie-privée">Ressources</a></nav>
</footer>
</body>
</html>

View File

@ -0,0 +1,246 @@
<!DOCTYPE html>
<!-- généré avec orgmode-to-gemini-blog par Tykayn -->
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>Cipher Bliss</title>
<link rel="stylesheet" href="/style.css"></link>
</head>
<body>
<header>
<h1>Cipher Bliss</h1>
<p>Code, nouvelles technologies et entrepreneurariat par B. Lemoine</p>
<nav><a href="/">Accueil</a><a href="https://portfolio.cipherbliss.com">Portfolio</a><a href="/feed">Flux RSS</a><a href="/contact">Contact</a><a href="/ressources-de-café-vie-privée">Ressources</a></nav>
</header>
<hr/>
<main>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
<head>
<meta charset="utf-8" />
<meta name="generator" content="pandoc" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
<title>cipherbliss_blog</title>
<style>
html {
color: #1a1a1a;
background-color: #fdfdfd;
}
body {
margin: 0 auto;
max-width: 36em;
padding-left: 50px;
padding-right: 50px;
padding-top: 50px;
padding-bottom: 50px;
hyphens: auto;
overflow-wrap: break-word;
text-rendering: optimizeLegibility;
font-kerning: normal;
}
@media (max-width: 600px) {
body {
font-size: 0.9em;
padding: 12px;
}
h1 {
font-size: 1.8em;
}
}
@media print {
html {
background-color: white;
}
body {
background-color: transparent;
color: black;
font-size: 12pt;
}
p, h2, h3 {
orphans: 3;
widows: 3;
}
h2, h3, h4 {
page-break-after: avoid;
}
}
p {
margin: 1em 0;
}
a {
color: #1a1a1a;
}
a:visited {
color: #1a1a1a;
}
img {
max-width: 100%;
}
h1, h2, h3, h4, h5, h6 {
margin-top: 1.4em;
}
h5, h6 {
font-size: 1em;
font-style: italic;
}
h6 {
font-weight: normal;
}
ol, ul {
padding-left: 1.7em;
margin-top: 1em;
}
li > ol, li > ul {
margin-top: 0;
}
blockquote {
margin: 1em 0 1em 1.7em;
padding-left: 1em;
border-left: 2px solid #e6e6e6;
color: #606060;
}
code {
font-family: Menlo, Monaco, Consolas, 'Lucida Console', monospace;
font-size: 85%;
margin: 0;
hyphens: manual;
}
pre {
margin: 1em 0;
overflow: auto;
}
pre code {
padding: 0;
overflow: visible;
overflow-wrap: normal;
}
.sourceCode {
background-color: transparent;
overflow: visible;
}
hr {
background-color: #1a1a1a;
border: none;
height: 1px;
margin: 1em 0;
}
table {
margin: 1em 0;
border-collapse: collapse;
width: 100%;
overflow-x: auto;
display: block;
font-variant-numeric: lining-nums tabular-nums;
}
table caption {
margin-bottom: 0.75em;
}
tbody {
margin-top: 0.5em;
border-top: 1px solid #1a1a1a;
border-bottom: 1px solid #1a1a1a;
}
th {
border-top: 1px solid #1a1a1a;
padding: 0.25em 0.5em 0.25em 0.5em;
}
td {
padding: 0.125em 0.5em 0.25em 0.5em;
}
header {
margin-bottom: 4em;
text-align: center;
}
#TOC li {
list-style: none;
}
#TOC ul {
padding-left: 1.3em;
}
#TOC > ul {
padding-left: 0;
}
#TOC a:not(:hover) {
text-decoration: none;
}
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
div.columns{display: flex; gap: min(4vw, 1.5em);}
div.column{flex: auto; overflow-x: auto;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
/* The extra [class] is a hack that increases specificity enough to
override a similar rule in reveal.js */
ul.task-list[class]{list-style: none;}
ul.task-list li input[type="checkbox"] {
font-size: inherit;
width: 0.8em;
margin: 0 0.8em 0.2em -1.6em;
vertical-align: middle;
}
.display.math{display: block; text-align: center; margin: 0.5rem auto;}
</style>
</head>
<body>
<header id="title-block-header">
<h1 class="title">cipherbliss_blog</h1>
</header>
<h1 id="ressources-de-café-vie-privée-1">Ressources de café vie
privée</h1>
<p>Voici de quoi se repérer dans la jungle des notions voisines à celle
de la vie privée.</p>
<p>Vous retrouverez ici de nombreuses notions abordées lors des cafés
vie privée que janime, avec dautres personnes intéressées par les les
enjeux autour des logiciels libres et des communs, tel que le groupe <a
href="https://web.archive.org/web/20240617080716/https://www.liness.org/">Liness</a>
en Essonne.</p>
<p>Les slides de mes présentations et les autres fichiers de support de
présentation sont disponibles dans <a
href="https://web.archive.org/web/20240617080716/https://cloud.tykayn.fr/index.php/s/FQ57cqXmJ6ngDfo">le
dossier de partage nextcloud</a>: <a
href="https://web.archive.org/web/20240617080716/https://cloud.tykayn.fr/index.php/s/FQ57cqXmJ6ngDfo"><span>https://cloud.tykayn.fr/index.php/s/FQ57cqXmJ6ngDfo</span></a></p>
<p>Vous pouvez me contacter via les divers moyens listés dans <a
href="https://web.archive.org/web/20240617080716/https://www.cipherbliss.com/contact">la
page dédiée aux moyens de contact</a>.</p>
<p>Dans un café vie privée on vulgarise auprès du grand public des
enjeux et des notions autour de la vie privée et des technologies
numériques. Voici quelques sujets régulièrement abordés dans les
ateliers:</p>
<p>Comprendre les dangers dun monde sans vie privée répandu sous la
fameuse idée que l' »on a rien à cacher », communiquer de façon
sécurisée, réaliser des sauvegardes automatiques, comprendre
larchitecture dinternet et du web, contribuer au libre, défendre le
droit daccès à linformation de qualité, comprendre les sciences,
sortir des GAFAM, adopter <a
href="https://web.archive.org/web/20240617080716/https://www.chatons.org/">les
CHATONS</a>, protéger des accès avec des <a
href="https://web.archive.org/web/20240617080716/https://www.cipherbliss.com/comment-ne-plus-perdre-de-temps-avec-ses-mots-de-passe/">gestionnaires
de mot de passe</a>, sortir des bulles de filtrage des médias sociaux,
récupérer son temps dattention, suivre les évolutions juridiques et les
atteintes aux libertés fondamentales, remettre la solidarité humaine et
lémancipation au cœur des enjeux de société.</p>
<p>Des évènements et groupes de personnes similaires peuvent être
retrouvés dans l<a
href="https://web.archive.org/web/20240617080716/https://www.agendadulibre.org/">agenda
du libre</a> et dans le fédiverse.</p>
<p>Des recettes de cookies sous licence libre, la fameuse pâtisserie qui
habite dans nos navigateurs web : <a
href="https://web.archive.org/web/20240617080716/https://www.cuisine-libre.org/cookies"><span>https://www.cuisine-libre.org/cookies</span></a></p>
<p>Trouver des alternatives aux logiciels privateurs: <a
href="https://web.archive.org/web/20240617080716/https://alternativeto.net/"><span>https://alternativeto.net</span></a></p>
<p>Le covoiturage libre: <a
href="https://web.archive.org/web/20240617080716/https://www.mobicoop.fr/"><span>https://www.mobicoop.fr</span></a></p>
<p>Sci hub pour libérer laccès aux publications scientifiques: <a
href="https://web.archive.org/web/20240617080716/https://sci-hub.hkvisa.net/"><span>https://sci-hub.hkvisa.net</span></a></p>
<p>Bon voyage sur les internets!</p>
</body>
</html>
</main>
<hr/>
<footer>
<nav><a href="/">Accueil</a><a href="https://portfolio.cipherbliss.com">Portfolio</a><a href="/feed">Flux RSS</a><a href="/contact">Contact</a><a href="/ressources-de-café-vie-privée">Ressources</a></nav>
</footer>
</body>
</html>

View File

@ -0,0 +1,243 @@
<!DOCTYPE html>
<!-- généré avec orgmode-to-gemini-blog par Tykayn -->
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>Cipher Bliss</title>
<link rel="stylesheet" href="/style.css"></link>
</head>
<body>
<header>
<h1>Cipher Bliss</h1>
<p>Code, nouvelles technologies et entrepreneurariat par B. Lemoine</p>
<nav><a href="/">Accueil</a><a href="https://portfolio.cipherbliss.com">Portfolio</a><a href="/feed">Flux RSS</a><a href="/contact">Contact</a><a href="/ressources-de-café-vie-privée">Ressources</a></nav>
</header>
<hr/>
<main>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
<head>
<meta charset="utf-8" />
<meta name="generator" content="pandoc" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
<title>cipherbliss_blog</title>
<style>
html {
color: #1a1a1a;
background-color: #fdfdfd;
}
body {
margin: 0 auto;
max-width: 36em;
padding-left: 50px;
padding-right: 50px;
padding-top: 50px;
padding-bottom: 50px;
hyphens: auto;
overflow-wrap: break-word;
text-rendering: optimizeLegibility;
font-kerning: normal;
}
@media (max-width: 600px) {
body {
font-size: 0.9em;
padding: 12px;
}
h1 {
font-size: 1.8em;
}
}
@media print {
html {
background-color: white;
}
body {
background-color: transparent;
color: black;
font-size: 12pt;
}
p, h2, h3 {
orphans: 3;
widows: 3;
}
h2, h3, h4 {
page-break-after: avoid;
}
}
p {
margin: 1em 0;
}
a {
color: #1a1a1a;
}
a:visited {
color: #1a1a1a;
}
img {
max-width: 100%;
}
h1, h2, h3, h4, h5, h6 {
margin-top: 1.4em;
}
h5, h6 {
font-size: 1em;
font-style: italic;
}
h6 {
font-weight: normal;
}
ol, ul {
padding-left: 1.7em;
margin-top: 1em;
}
li > ol, li > ul {
margin-top: 0;
}
blockquote {
margin: 1em 0 1em 1.7em;
padding-left: 1em;
border-left: 2px solid #e6e6e6;
color: #606060;
}
code {
font-family: Menlo, Monaco, Consolas, 'Lucida Console', monospace;
font-size: 85%;
margin: 0;
hyphens: manual;
}
pre {
margin: 1em 0;
overflow: auto;
}
pre code {
padding: 0;
overflow: visible;
overflow-wrap: normal;
}
.sourceCode {
background-color: transparent;
overflow: visible;
}
hr {
background-color: #1a1a1a;
border: none;
height: 1px;
margin: 1em 0;
}
table {
margin: 1em 0;
border-collapse: collapse;
width: 100%;
overflow-x: auto;
display: block;
font-variant-numeric: lining-nums tabular-nums;
}
table caption {
margin-bottom: 0.75em;
}
tbody {
margin-top: 0.5em;
border-top: 1px solid #1a1a1a;
border-bottom: 1px solid #1a1a1a;
}
th {
border-top: 1px solid #1a1a1a;
padding: 0.25em 0.5em 0.25em 0.5em;
}
td {
padding: 0.125em 0.5em 0.25em 0.5em;
}
header {
margin-bottom: 4em;
text-align: center;
}
#TOC li {
list-style: none;
}
#TOC ul {
padding-left: 1.3em;
}
#TOC > ul {
padding-left: 0;
}
#TOC a:not(:hover) {
text-decoration: none;
}
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
div.columns{display: flex; gap: min(4vw, 1.5em);}
div.column{flex: auto; overflow-x: auto;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
/* The extra [class] is a hack that increases specificity enough to
override a similar rule in reveal.js */
ul.task-list[class]{list-style: none;}
ul.task-list li input[type="checkbox"] {
font-size: inherit;
width: 0.8em;
margin: 0 0.8em 0.2em -1.6em;
vertical-align: middle;
}
.display.math{display: block; text-align: center; margin: 0.5rem auto;}
</style>
</head>
<body>
<header id="title-block-header">
<h1 class="title">cipherbliss_blog</h1>
</header>
<h1 id="tags-1">Tags</h1>
<p>Étiquettes</p>
<p><a href="file:///tag/ai/">AI</a> <a
href="file:///tag/archives/">archives</a> <a
href="file:///tag/autohebergement/">autohébergement</a> <a
href="file:///tag/backup/">backup</a> <a
href="file:///tag/blockchain/">blockchain</a> <a
href="file:///tag/borg/">borg</a> <a
href="file:///tag/caisse/">caisse</a> <a
href="file:///tag/comptabilite/">comptabilité</a> <a
href="file:///tag/comptes/">comptes</a> <a
href="file:///tag/data-visualisation/">data visualisation</a> <a
href="file:///tag/design/">design</a> <a
href="file:///tag/email/">email</a> <a
href="file:///tag/entreprise/">entreprise</a> <a
href="file:///tag/entreprise-individuelle/">entreprise individuelle</a>
<a href="file:///tag/ethereum/">ethereum</a> <a
href="file:///tag/facebook/">facebook</a> <a
href="file:///tag/factures/">factures</a> <a
href="file:///tag/floss/">FLOSS</a> <a
href="file:///tag/fediverse/">fédiverse</a> <a
href="file:///tag/gestion-de-projet/">gestion de projet</a> <a
href="file:///tag/gestion-du-temps/">gestion du temps</a> <a
href="file:///tag/gestionnaire-de-mot-de-passe/">gestionnaire de mot de
passe</a> <a href="file:///tag/gimp/">gimp</a> <a
href="file:///tag/git/">git</a> <a
href="file:///tag/logiciellibre/">logiciellibre</a> <a
href="file:///tag/logiciel-libre/">logiciel libre</a> <a
href="file:///tag/mastodon/">mastodon</a> <a
href="file:///tag/mobilizon/">mobilizon</a> <a
href="file:///tag/mot-de-passe/">mot de passe</a> <a
href="file:///tag/mysql/">mysql</a> <a
href="file:///tag/nextcloud/">nextcloud</a> <a
href="file:///tag/open-source/">open source</a> <a
href="file:///tag/openstreetmap/">openstreetmap</a> <a
href="file:///tag/orgmode/">orgmode</a> <a
href="file:///tag/osm/">OSM</a> <a href="file:///tag/photos/">photos</a>
<a href="file:///tag/pim/">pim</a> <a
href="file:///tag/projet/">projet</a> <a
href="file:///tag/prevision/">prévision</a> <a
href="file:///tag/python/">python</a> <a
href="file:///tag/reseau-social/">réseau social</a> <a
href="file:///tag/sauvegardes/">sauvegardes</a> <a
href="file:///tag/script/">script</a> <a href="file:///tag/ux/">UX</a>
<a href="file:///tag/vie-privee/">vie privée</a></p>
</body>
</html>
</main>
<hr/>
<footer>
<nav><a href="/">Accueil</a><a href="https://portfolio.cipherbliss.com">Portfolio</a><a href="/feed">Flux RSS</a><a href="/contact">Contact</a><a href="/ressources-de-café-vie-privée">Ressources</a></nav>
</footer>
</body>
</html>

View File

@ -0,0 +1,339 @@
<!DOCTYPE html>
<!-- généré avec orgmode-to-gemini-blog par Tykayn -->
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>Cipher Bliss</title>
<link rel="stylesheet" href="/style.css"></link>
</head>
<body>
<header>
<h1>Cipher Bliss</h1>
<p>Code, nouvelles technologies et entrepreneurariat par B. Lemoine</p>
<nav><a href="/">Accueil</a><a href="https://portfolio.cipherbliss.com">Portfolio</a><a href="/feed">Flux RSS</a><a href="/contact">Contact</a><a href="/ressources-de-café-vie-privée">Ressources</a></nav>
</header>
<hr/>
<main>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
<head>
<meta charset="utf-8" />
<meta name="generator" content="pandoc" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
<title>cipherbliss_blog</title>
<style>
html {
color: #1a1a1a;
background-color: #fdfdfd;
}
body {
margin: 0 auto;
max-width: 36em;
padding-left: 50px;
padding-right: 50px;
padding-top: 50px;
padding-bottom: 50px;
hyphens: auto;
overflow-wrap: break-word;
text-rendering: optimizeLegibility;
font-kerning: normal;
}
@media (max-width: 600px) {
body {
font-size: 0.9em;
padding: 12px;
}
h1 {
font-size: 1.8em;
}
}
@media print {
html {
background-color: white;
}
body {
background-color: transparent;
color: black;
font-size: 12pt;
}
p, h2, h3 {
orphans: 3;
widows: 3;
}
h2, h3, h4 {
page-break-after: avoid;
}
}
p {
margin: 1em 0;
}
a {
color: #1a1a1a;
}
a:visited {
color: #1a1a1a;
}
img {
max-width: 100%;
}
h1, h2, h3, h4, h5, h6 {
margin-top: 1.4em;
}
h5, h6 {
font-size: 1em;
font-style: italic;
}
h6 {
font-weight: normal;
}
ol, ul {
padding-left: 1.7em;
margin-top: 1em;
}
li > ol, li > ul {
margin-top: 0;
}
blockquote {
margin: 1em 0 1em 1.7em;
padding-left: 1em;
border-left: 2px solid #e6e6e6;
color: #606060;
}
code {
font-family: Menlo, Monaco, Consolas, 'Lucida Console', monospace;
font-size: 85%;
margin: 0;
hyphens: manual;
}
pre {
margin: 1em 0;
overflow: auto;
}
pre code {
padding: 0;
overflow: visible;
overflow-wrap: normal;
}
.sourceCode {
background-color: transparent;
overflow: visible;
}
hr {
background-color: #1a1a1a;
border: none;
height: 1px;
margin: 1em 0;
}
table {
margin: 1em 0;
border-collapse: collapse;
width: 100%;
overflow-x: auto;
display: block;
font-variant-numeric: lining-nums tabular-nums;
}
table caption {
margin-bottom: 0.75em;
}
tbody {
margin-top: 0.5em;
border-top: 1px solid #1a1a1a;
border-bottom: 1px solid #1a1a1a;
}
th {
border-top: 1px solid #1a1a1a;
padding: 0.25em 0.5em 0.25em 0.5em;
}
td {
padding: 0.125em 0.5em 0.25em 0.5em;
}
header {
margin-bottom: 4em;
text-align: center;
}
#TOC li {
list-style: none;
}
#TOC ul {
padding-left: 1.3em;
}
#TOC > ul {
padding-left: 0;
}
#TOC a:not(:hover) {
text-decoration: none;
}
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
div.columns{display: flex; gap: min(4vw, 1.5em);}
div.column{flex: auto; overflow-x: auto;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
/* The extra [class] is a hack that increases specificity enough to
override a similar rule in reveal.js */
ul.task-list[class]{list-style: none;}
ul.task-list li input[type="checkbox"] {
font-size: inherit;
width: 0.8em;
margin: 0 0.8em 0.2em -1.6em;
vertical-align: middle;
}
.display.math{display: block; text-align: center; margin: 0.5rem auto;}
/* CSS for syntax highlighting */
pre > code.sourceCode { white-space: pre; position: relative; }
pre > code.sourceCode > span { line-height: 1.25; }
pre > code.sourceCode > span:empty { height: 1.2em; }
.sourceCode { overflow: visible; }
code.sourceCode > span { color: inherit; text-decoration: inherit; }
div.sourceCode { margin: 1em 0; }
pre.sourceCode { margin: 0; }
@media screen {
div.sourceCode { overflow: auto; }
}
@media print {
pre > code.sourceCode { white-space: pre-wrap; }
pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; }
}
pre.numberSource code
{ counter-reset: source-line 0; }
pre.numberSource code > span
{ position: relative; left: -4em; counter-increment: source-line; }
pre.numberSource code > span > a:first-child::before
{ content: counter(source-line);
position: relative; left: -1em; text-align: right; vertical-align: baseline;
border: none; display: inline-block;
-webkit-touch-callout: none; -webkit-user-select: none;
-khtml-user-select: none; -moz-user-select: none;
-ms-user-select: none; user-select: none;
padding: 0 4px; width: 4em;
color: #aaaaaa;
}
pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa; padding-left: 4px; }
div.sourceCode
{ }
@media screen {
pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }
}
code span.al { color: #ff0000; font-weight: bold; } /* Alert */
code span.an { color: #60a0b0; font-weight: bold; font-style: italic; } /* Annotation */
code span.at { color: #7d9029; } /* Attribute */
code span.bn { color: #40a070; } /* BaseN */
code span.bu { color: #008000; } /* BuiltIn */
code span.cf { color: #007020; font-weight: bold; } /* ControlFlow */
code span.ch { color: #4070a0; } /* Char */
code span.cn { color: #880000; } /* Constant */
code span.co { color: #60a0b0; font-style: italic; } /* Comment */
code span.cv { color: #60a0b0; font-weight: bold; font-style: italic; } /* CommentVar */
code span.do { color: #ba2121; font-style: italic; } /* Documentation */
code span.dt { color: #902000; } /* DataType */
code span.dv { color: #40a070; } /* DecVal */
code span.er { color: #ff0000; font-weight: bold; } /* Error */
code span.ex { } /* Extension */
code span.fl { color: #40a070; } /* Float */
code span.fu { color: #06287e; } /* Function */
code span.im { color: #008000; font-weight: bold; } /* Import */
code span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Information */
code span.kw { color: #007020; font-weight: bold; } /* Keyword */
code span.op { color: #666666; } /* Operator */
code span.ot { color: #007020; } /* Other */
code span.pp { color: #bc7a00; } /* Preprocessor */
code span.sc { color: #4070a0; } /* SpecialChar */
code span.ss { color: #bb6688; } /* SpecialString */
code span.st { color: #4070a0; } /* String */
code span.va { color: #19177c; } /* Variable */
code span.vs { color: #4070a0; } /* VerbatimString */
code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warning */
</style>
</head>
<body>
<header id="title-block-header">
<h1 class="title">cipherbliss_blog</h1>
</header>
<h1
id="connaître-la-couleur-des-jours-edf-tempo-en-ligne-de-commande-1">Connaître
la couleur des jours EDF Tempo en ligne de commande</h1>
<p>EDF expose une API pour connaître les couleurs de jour TEMPO, mais
cette api n'est pas bien référencée sur le wouaib, ce sont donc des
sites qui n'ont rien à voir qui vous donneront cette info avec moult
trackers et pubs de partout.</p>
<p>Voici l'url dont vous avez besoin:</p>
<p>&gt; <a
href="https://api-commerce.edf.fr/commerce/activet/v1/calendrier-jours-effacement?option=TEMPO&amp;dateApplicationBorneInf=%7Bdate_inférieure%7D&amp;dateApplicationBorneSup=%7Bdate_supérieure%7D&amp;identifiantConsommateur=src">https://api-commerce.edf.fr/commerce/activet/v1/calendrier-jours-effacement?option=TEMPO&amp;dateApplicationBorneInf={date_inférieure}&amp;dateApplicationBorneSup={date_supérieure}&amp;identifiantConsommateur=src</a></p>
<p>Cette API de commerce EDF ne fonctionne que si vous demandez des
dates ayant 365 jours d'écart de différence, et si vous ne mettez pas de
zéro précédant le numéro de journée au format année-mois-jour. Autre
limitation, la couleur du jour du lendemain vous sera donnée seulement à
partir de 11h du matin dans la journée.</p>
<p>Fabriquez vous un petit script en python pour aller pêcher ce
calendrier, piocher les couleurs des deux derniers jours. Il vous
suffira d'un alias de commande pour lancer "python
mon<sub>scripttempo</sub>.py" en ayant le dossier où le script est placé
dans votre variable d'environnement PATH.</p>
<div class="sourceCode" id="cb1"><pre
class="sourceCode python"><code class="sourceCode python"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-2"><a href="#cb1-2" aria-hidden="true" tabindex="-1"></a><span class="im">import</span> requests</span>
<span id="cb1-3"><a href="#cb1-3" aria-hidden="true" tabindex="-1"></a><span class="im">import</span> json</span>
<span id="cb1-4"><a href="#cb1-4" aria-hidden="true" tabindex="-1"></a><span class="im">from</span> datetime <span class="im">import</span> datetime, timedelta </span>
<span id="cb1-5"><a href="#cb1-5" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-6"><a href="#cb1-6" aria-hidden="true" tabindex="-1"></a><span class="kw">def</span> date_il_y_a_un_an(date):</span>
<span id="cb1-7"><a href="#cb1-7" aria-hidden="true" tabindex="-1"></a> date_obj <span class="op">=</span> datetime.strptime(date, <span class="st">&quot;%Y-%m-</span><span class="sc">%d</span><span class="st">&quot;</span>)</span>
<span id="cb1-8"><a href="#cb1-8" aria-hidden="true" tabindex="-1"></a> date_il_y_a_un_an <span class="op">=</span> date_obj <span class="op">-</span> timedelta(days<span class="op">=</span><span class="dv">365</span>)</span>
<span id="cb1-9"><a href="#cb1-9" aria-hidden="true" tabindex="-1"></a> <span class="cf">return</span> date_il_y_a_un_an.strftime(<span class="st">&quot;%Y-%m-</span><span class="sc">%d</span><span class="st">&quot;</span>)</span>
<span id="cb1-10"><a href="#cb1-10" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-11"><a href="#cb1-11" aria-hidden="true" tabindex="-1"></a><span class="kw">def</span> get_tempo_for_today_and_tomorrow():</span>
<span id="cb1-12"><a href="#cb1-12" aria-hidden="true" tabindex="-1"></a> <span class="co"># Obtenir la date d&#39;aujourd&#39;hui</span></span>
<span id="cb1-13"><a href="#cb1-13" aria-hidden="true" tabindex="-1"></a> datenow <span class="op">=</span> datetime.now()</span>
<span id="cb1-14"><a href="#cb1-14" aria-hidden="true" tabindex="-1"></a> sup <span class="op">=</span> (datenow <span class="op">+</span> timedelta(days<span class="op">=</span><span class="dv">1</span>))</span>
<span id="cb1-15"><a href="#cb1-15" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-16"><a href="#cb1-16" aria-hidden="true" tabindex="-1"></a> inf <span class="op">=</span> date_il_y_a_un_an(datenow.strftime(<span class="st">&quot;%Y-%m-</span><span class="sc">%d</span><span class="st">&quot;</span>))</span>
<span id="cb1-17"><a href="#cb1-17" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-18"><a href="#cb1-18" aria-hidden="true" tabindex="-1"></a> <span class="co"># Obtenir la date de demain</span></span>
<span id="cb1-19"><a href="#cb1-19" aria-hidden="true" tabindex="-1"></a> sup <span class="op">=</span> sup.strftime(<span class="st">&quot;%Y-%m-</span><span class="sc">%d</span><span class="st">&quot;</span>)</span>
<span id="cb1-20"><a href="#cb1-20" aria-hidden="true" tabindex="-1"></a> sup <span class="op">=</span> sup.replace(<span class="st">&quot;-0&quot;</span>, <span class="st">&quot;-&quot;</span>)</span>
<span id="cb1-21"><a href="#cb1-21" aria-hidden="true" tabindex="-1"></a> inf <span class="op">=</span> inf.replace(<span class="st">&quot;-0&quot;</span>, <span class="st">&quot;-&quot;</span>)</span>
<span id="cb1-22"><a href="#cb1-22" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-23"><a href="#cb1-23" aria-hidden="true" tabindex="-1"></a> <span class="co"># print(&quot;Date inf :&quot;, inf)</span></span>
<span id="cb1-24"><a href="#cb1-24" aria-hidden="true" tabindex="-1"></a> <span class="co"># print(&quot;Date sup:&quot;, sup)</span></span>
<span id="cb1-25"><a href="#cb1-25" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-26"><a href="#cb1-26" aria-hidden="true" tabindex="-1"></a> <span class="co"># URL de l&#39;API d&#39;EDF pour récupérer les informations sur les couleurs des jours de l&#39;offre Tempo</span></span>
<span id="cb1-27"><a href="#cb1-27" aria-hidden="true" tabindex="-1"></a> url <span class="op">=</span> <span class="ss">f&quot;https://api-commerce.edf.fr/commerce/activet/v1/calendrier-jours-effacement?option=TEMPO&amp;dateApplicationBorneInf=</span><span class="sc">{</span>inf<span class="sc">}</span><span class="ss">&amp;dateApplicationBorneSup=</span><span class="sc">{</span>sup<span class="sc">}</span><span class="ss">&amp;identifiantConsommateur=src&quot;</span></span>
<span id="cb1-28"><a href="#cb1-28" aria-hidden="true" tabindex="-1"></a> <span class="bu">print</span>(url)</span>
<span id="cb1-29"><a href="#cb1-29" aria-hidden="true" tabindex="-1"></a> <span class="co"># Effectuer la requête HTTP et récupérer la réponse JSON</span></span>
<span id="cb1-30"><a href="#cb1-30" aria-hidden="true" tabindex="-1"></a> response <span class="op">=</span> requests.get(url)</span>
<span id="cb1-31"><a href="#cb1-31" aria-hidden="true" tabindex="-1"></a> data <span class="op">=</span> json.loads(response.text)</span>
<span id="cb1-32"><a href="#cb1-32" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-33"><a href="#cb1-33" aria-hidden="true" tabindex="-1"></a> <span class="co"># Récupérer la liste des couleurs des jours pour les 30 prochains jours</span></span>
<span id="cb1-34"><a href="#cb1-34" aria-hidden="true" tabindex="-1"></a> calendrier <span class="op">=</span> data[<span class="st">&quot;content&quot;</span>][<span class="st">&quot;options&quot;</span>][<span class="dv">0</span>][<span class="st">&quot;calendrier&quot;</span>]</span>
<span id="cb1-35"><a href="#cb1-35" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-36"><a href="#cb1-36" aria-hidden="true" tabindex="-1"></a> texte_retour<span class="op">=</span><span class="st">&quot;&quot;</span></span>
<span id="cb1-37"><a href="#cb1-37" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-38"><a href="#cb1-38" aria-hidden="true" tabindex="-1"></a> <span class="co"># # Afficher les couleurs des jours pour le prochain jour</span></span>
<span id="cb1-39"><a href="#cb1-39" aria-hidden="true" tabindex="-1"></a> <span class="cf">for</span> jour <span class="kw">in</span> calendrier[<span class="op">-</span><span class="dv">2</span>:]:</span>
<span id="cb1-40"><a href="#cb1-40" aria-hidden="true" tabindex="-1"></a> date <span class="op">=</span> jour[<span class="st">&quot;dateApplication&quot;</span>]</span>
<span id="cb1-41"><a href="#cb1-41" aria-hidden="true" tabindex="-1"></a> code_couleur <span class="op">=</span> jour[<span class="st">&quot;statut&quot;</span>]</span>
<span id="cb1-42"><a href="#cb1-42" aria-hidden="true" tabindex="-1"></a> <span class="cf">if</span> code_couleur <span class="op">==</span> <span class="st">&quot;TEMPO_BLEU&quot;</span>:</span>
<span id="cb1-43"><a href="#cb1-43" aria-hidden="true" tabindex="-1"></a> texte_retour<span class="op">+=</span>(<span class="ss">f&quot;</span><span class="ch">\033</span><span class="ss">[34m</span><span class="sc">{</span>date<span class="sc">}</span><span class="ss">: journée </span><span class="sc">{</span>code_couleur<span class="sc">}</span><span class="ch">\033</span><span class="ss">[0m</span><span class="ch">\n</span><span class="ss">&quot;</span>)</span>
<span id="cb1-44"><a href="#cb1-44" aria-hidden="true" tabindex="-1"></a> <span class="cf">elif</span> code_couleur <span class="op">==</span> <span class="st">&quot;TEMPO_BLANC&quot;</span>:</span>
<span id="cb1-45"><a href="#cb1-45" aria-hidden="true" tabindex="-1"></a> texte_retour<span class="op">+=</span>(<span class="ss">f&quot;</span><span class="ch">\033</span><span class="ss">[37m</span><span class="sc">{</span>date<span class="sc">}</span><span class="ss">: journée </span><span class="sc">{</span>code_couleur<span class="sc">}</span><span class="ch">\033</span><span class="ss">[0m</span><span class="ch">\n</span><span class="ss">&quot;</span>)</span>
<span id="cb1-46"><a href="#cb1-46" aria-hidden="true" tabindex="-1"></a> <span class="cf">elif</span> code_couleur <span class="op">==</span> <span class="st">&quot;TEMPO_ROUGE&quot;</span>:</span>
<span id="cb1-47"><a href="#cb1-47" aria-hidden="true" tabindex="-1"></a> texte_retour<span class="op">+=</span>(<span class="ss">f&quot;</span><span class="ch">\033</span><span class="ss">[31m</span><span class="sc">{</span>date<span class="sc">}</span><span class="ss">: journée </span><span class="sc">{</span>code_couleur<span class="sc">}</span><span class="ch">\033</span><span class="ss">[0m</span><span class="ch">\n</span><span class="ss">&quot;</span>)</span>
<span id="cb1-48"><a href="#cb1-48" aria-hidden="true" tabindex="-1"></a> <span class="cf">else</span>:</span>
<span id="cb1-49"><a href="#cb1-49" aria-hidden="true" tabindex="-1"></a> texte_retour<span class="op">+=</span>(<span class="ss">f&quot;</span><span class="sc">{</span>date<span class="sc">}</span><span class="ss">: journée </span><span class="sc">{</span>code_couleur<span class="sc">}</span><span class="ss">&quot;</span>)</span>
<span id="cb1-50"><a href="#cb1-50" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-51"><a href="#cb1-51" aria-hidden="true" tabindex="-1"></a> <span class="cf">return</span> texte_retour</span>
<span id="cb1-52"><a href="#cb1-52" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-53"><a href="#cb1-53" aria-hidden="true" tabindex="-1"></a>texte <span class="op">=</span> get_tempo_for_today_and_tomorrow()</span>
<span id="cb1-54"><a href="#cb1-54" aria-hidden="true" tabindex="-1"></a><span class="bu">print</span>(texte)</span>
<span id="cb1-55"><a href="#cb1-55" aria-hidden="true" tabindex="-1"></a></span></code></pre></div>
<p>Bonne réduction des pointes de conso!</p>
</body>
</html>
</main>
<hr/>
<footer>
<nav><a href="/">Accueil</a><a href="https://portfolio.cipherbliss.com">Portfolio</a><a href="/feed">Flux RSS</a><a href="/contact">Contact</a><a href="/ressources-de-café-vie-privée">Ressources</a></nav>
</footer>
</body>
</html>

View File

@ -1,22 +1,29 @@
<!DOCTYPE html>
<!-- généré avec orgmode-to-gemini-blog par Tykayn -->
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>cipherbliss_blog</title>
<title>Cipher Bliss</title>
<link rel="stylesheet" href="/style.css"></link>
</head>
<body>
<a href="/">Retour à l'Accueil</a>
<hr/>
<html><head><title>cipherbliss_blog</title></head><body> # cipherbliss_blog - Articles
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
<header>
<h1>Navigation</h1><br><a href=/index.html>index.html</a><br><a href=/contact.html>contact.html</a><h1>Articles en Français</h1><br><a href=/2022/cipherbliss_blog_241_programme-pour-une-annee-2022-moins-pire>2022 cipherbliss_blog_241_programme pour une annee 2022 moins pire</a><br><a href=/2021/cipherbliss_blog_240_video-du-premier-chatons-camp-2021>2021 cipherbliss_blog_240_video du premier chatons camp 2021</a><br><a href=/2021/cipherbliss_blog_239_nouvelles-doctobre-2021>2021 cipherbliss_blog_239_nouvelles doctobre 2021</a><br><a href=/2021/cipherbliss_blog_238_des-sauvegardes-qui-durent-mille-ans>2021 cipherbliss_blog_238_des sauvegardes qui durent mille ans</a></article></body></html>
<footer>
<hr/>
<a href='/'>Retour à l'Accueil</a>
</footer>
<h1>Cipher Bliss</h1>
<p>Code, nouvelles technologies et entrepreneurariat par B. Lemoine</p>
<nav><a href="/">Accueil</a><a href="https://portfolio.cipherbliss.com">Portfolio</a><a href="/feed">Flux RSS</a><a href="/contact">Contact</a><a href="/ressources-de-café-vie-privée">Ressources</a></nav>
</header>
<hr/>
<main>
<html><head><title>cipherbliss_blog</title><link rel="stylesheet" href="/style.css"></link></head><body>
<h1>Navigation</h1><br><a href=/index.html>index.html</a><br><a href=/contact.html>contact.html</a><h1>Articles en Français</h1><br><a href=/2024/20241109231603-connaître-la-couleur-des-jours-edf-tempo-en-ligne-de-commande>2024 20241109231603 connaître la couleur des jours edf tempo en ligne de commande</a><br><a href=/2024/20241109231110-tags>2024 20241109231110 tags</a><br><a href=/2024/20241109230937-ressources-de-café-vie-privée>2024 20241109230937 ressources de café vie privée</a><br><a href=/2022/cipherbliss_blog_241_programme-pour-une-annee-2022-moins-pire>2022 cipherbliss_blog_241_programme pour une annee 2022 moins pire</a><br><a href=/2021/cipherbliss_blog_240_video-du-premier-chatons-camp-2021>2021 cipherbliss_blog_240_video du premier chatons camp 2021</a><br><a href=/2021/cipherbliss_blog_239_nouvelles-doctobre-2021>2021 cipherbliss_blog_239_nouvelles doctobre 2021</a><br><a href=/2021/cipherbliss_blog_238_des-sauvegardes-qui-durent-mille-ans>2021 cipherbliss_blog_238_des sauvegardes qui durent mille ans</a></article></body></html>
</main>
<hr/>
<footer>
<nav><a href="/">Accueil</a><a href="https://portfolio.cipherbliss.com">Portfolio</a><a href="/feed">Flux RSS</a><a href="/contact">Contact</a><a href="/ressources-de-café-vie-privée">Ressources</a></nav>
</footer>
</body>
</html>

View File

@ -0,0 +1,26 @@
<!DOCTYPE html>
<!-- généré avec orgmode-to-gemini-blog par Tykayn -->
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>Cipher Bliss</title>
<link rel="stylesheet" href="/style.css"></link>
</head>
<body>
<header>
<h1>Cipher Bliss</h1>
<p>Code, nouvelles technologies et entrepreneurariat par B. Lemoine</p>
<nav><a href="/">Accueil</a><a href="https://portfolio.cipherbliss.com">Portfolio</a><a href="/feed">Flux RSS</a><a href="/contact">Contact</a><a href="/ressources-de-café-vie-privée">Ressources</a></nav>
</header>
<hr/>
<main>
</main>
<hr/>
<footer>
<nav><a href="/">Accueil</a><a href="https://portfolio.cipherbliss.com">Portfolio</a><a href="/feed">Flux RSS</a><a href="/contact">Contact</a><a href="/ressources-de-café-vie-privée">Ressources</a></nav>
</footer>
</body>
</html>

View File

@ -10,7 +10,6 @@ html {
}
body {
text-align: left;
margin: 0 auto;
font-size: 1.5rem;
@ -20,12 +19,7 @@ body {
background: #fff;
}
h1,
h2,
h3,
h4,
h5,
h6 {
h1, h2, h3, h4, h5, h6 {
font-family: Helvetica, "Ubuntu Sans", "Noto Sans", Calibri, Arial, sans-serif;
margin-top: 1em;
margin-bottom: 2rem;
@ -33,9 +27,10 @@ h6 {
}
/* 1. Use a more-intuitive box-sizing model */
*,
*::before,
*::after {
* {
box-sizing: border-box;
}
*::before, *::after {
box-sizing: border-box;
}
@ -49,11 +44,7 @@ body {
}
/* Improve media defaults */
img,
picture,
video,
canvas,
svg {
img, picture, video, canvas, svg {
display: block;
width: 100%;
margin-top: 1rem;
@ -62,21 +53,12 @@ svg {
}
/* Inherit fonts for form controls */
input,
button,
textarea,
select {
input, button, textarea, select {
font: inherit;
}
/* Avoid text overflows */
p,
h1,
h2,
h3,
h4,
h5,
h6 {
p, h1, h2, h3, h4, h5, h6 {
overflow-wrap: break-word;
}
@ -89,7 +71,7 @@ p {
h1 {
font-size: 4rem;
color: #221d30
color: #221d30;
}
h2 {
@ -100,28 +82,26 @@ h3 {
font-size: 1.5rem;
}
h1,
h2,
h3,
h4,
h5,
h6 {
h1, h2, h3, h4, h5, h6 {
text-wrap: balance;
line-height: 1.3em;
}
#root,
#__next {
#root, #__next {
isolation: isolate;
}
input,
button,
textarea,
select {
input, button, textarea, select {
font: inherit;
}
a {
display: inline-block;
padding: 0.5rem 2rem;
margin-right: 1rem;
margin-bottom: 1rem;
}
ul {
padding-left: 4ch;
padding-right: 4ch;
@ -141,3 +121,5 @@ li {
padding: 1rem;
}
}
/*# sourceMappingURL=style_general.css.map */

11
index_cil_gometz.gmi Normal file
View File

@ -0,0 +1,11 @@
# Navigation
-------------------------
=> index..gmi
=> 20200909152039_blog_cil_gometz_12_panel-dactivites-de-la-rentree-post-covid19..gmi
=> 20200803124344_blog_cil_gometz_11_ecrire-une-comptine-en-python-bonjour-le-jour..gmi
=> 20200518182215_blog_cil_gometz_7_activites-en-cours..gmi
=> 20200513215141_blog_cil_gometz_1_a-propos-du-cil-de-gometz-la-ville..gmi

4
index_cil_gometz.html Normal file
View File

@ -0,0 +1,4 @@
<html><head><title>cil_gometz</title><link rel="stylesheet" href="/style.css"></link></head><body>
<h1>Navigation</h1><br><a href=/index.html>index.html</a><br><a href=/2020/blog_cil_gometz_12_panel-dactivites-de-la-rentree-post-covid19>2020 blog_cil_gometz_12_panel dactivites de la rentree post covid19</a><br><a href=/2020/blog_cil_gometz_11_ecrire-une-comptine-en-python-bonjour-le-jour>2020 blog_cil_gometz_11_ecrire une comptine en python bonjour le jour</a><br><a href=/2020/blog_cil_gometz_7_activites-en-cours>2020 blog_cil_gometz_7_activites en cours</a><br><a href=/2020/blog_cil_gometz_1_a-propos-du-cil-de-gometz-la-ville>2020 blog_cil_gometz_1_a propos du cil de gometz la ville</a></article></body></html>

View File

@ -1,5 +1,5 @@
# cipherbliss_blog - Articles
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Navigation
@ -9,6 +9,9 @@
# Articles en Français
-------------------------
=> 20241109231603-connaître-la-couleur-des-jours-edf-tempo-en-ligne-de-commande..gmi
=> 20241109231110-tags..gmi
=> 20241109230937-ressources-de-café-vie-privée..gmi
=> 20220106183554_cipherbliss_blog_241_programme-pour-une-annee-2022-moins-pire..gmi
=> 20211023195028_cipherbliss_blog_240_video-du-premier-chatons-camp-2021..gmi
=> 20211023192307_cipherbliss_blog_239_nouvelles-doctobre-2021..gmi

View File

@ -0,0 +1,4 @@
<html><head><title>cipherbliss_blog</title><link rel="stylesheet" href="/style.css"></link></head><body>
<h1>Navigation</h1><br><a href=/index.html>index.html</a><br><a href=/contact.html>contact.html</a><h1>Articles en Français</h1><br><a href=/2024/20241109231603-connaître-la-couleur-des-jours-edf-tempo-en-ligne-de-commande>2024 20241109231603 connaître la couleur des jours edf tempo en ligne de commande</a><br><a href=/2024/20241109231110-tags>2024 20241109231110 tags</a><br><a href=/2024/20241109230937-ressources-de-café-vie-privée>2024 20241109230937 ressources de café vie privée</a><br><a href=/2022/cipherbliss_blog_241_programme-pour-une-annee-2022-moins-pire>2022 cipherbliss_blog_241_programme pour une annee 2022 moins pire</a><br><a href=/2021/cipherbliss_blog_240_video-du-premier-chatons-camp-2021>2021 cipherbliss_blog_240_video du premier chatons camp 2021</a><br><a href=/2021/cipherbliss_blog_239_nouvelles-doctobre-2021>2021 cipherbliss_blog_239_nouvelles doctobre 2021</a><br><a href=/2021/cipherbliss_blog_238_des-sauvegardes-qui-durent-mille-ans>2021 cipherbliss_blog_238_des sauvegardes qui durent mille ans</a></article></body></html>

5
sass_styles.sh Normal file
View File

@ -0,0 +1,5 @@
#!/bin/bash
# conversion de style pour le html
# https://sass-lang.com
sass templates/styles_src/style_general.scss templates/styles/style_general.css

1
series_posts_build.py Normal file
View File

@ -0,0 +1 @@
# construit une liste des séries des fichiers orgmode en les reliant aux slugs de ces pages, génère une page pour lister les tags, et chaque page listant les articles liés à un tag.

View File

@ -1,2 +1,23 @@
* contact
le dragon mail
* Contact
où me trouver: //[[https://web.archive.org/web/20240721071559/mailto:contact@cipherbliss.com][contact@cipherbliss.com]]//
Tel bureau CipherBliss: [[tel:0185461173][0185461173]][[https://web.archive.org/web/20240721071559/https://signal.org/][Signal si vous avez mon numéro perso]] 
Sur Matrix/Riot, pour tout support ou contribution lié à mes services et projets en lignes [[https://web.archive.org/web/20240721071559/https://matrix.to/#/!jfoYESqTObXYlKAOVM:matrix.org?via=matrix.org][#cipherbliss:matrix.org]]
XMPP: [[https://web.archive.org/web/20240721071559/xmpp:tykayn@chapril.org][tykayn@chapril.org]]
[[https://web.archive.org/web/20240721071559im_/https://www.telegram.org/img/t_logo.png]]  Telegram: [[https://web.archive.org/web/20240721071559/https://t.me/tykayn][https://t.me/tykayn]]
Empreinte mail RSA: /548acf17d1e7a5d4d7572b95d4f4356a2bd69c47/ [[https://web.archive.org/web/20240721071559/https://mastodon.cipherbliss.com/@tykayn][
]]Mastodon: [[https://web.archive.org/web/20240721071559/https://mastodon.cipherbliss.com/@tykayn][https://mastodon.cipherbliss.com/@tykayn]]
Peertube: [[https://web.archive.org/web/20240721071559/https://mastodon.cipherbliss.com/][https://peertube.cipherbliss.com]] 
[[https://web.archive.org/web/20240721071559/https://peertube.cipherbliss.com/video-channels/root_channel/videos][Ma chaine peertube perso
]][[https://web.archive.org/web/20240721071559/https://www.openstreetmap.org/user/tykayn][OpenStreetMaps Tykayn
]]
[[https://web.archive.org/web/20240721071559/https://framagit.org/tykayn][Sources de projets libres sur le Gitlab Framagit
]]
N° SIRET Cipher Bliss:[[https://web.archive.org/web/20240721071559/https://www.infogreffe.fr/entreprise-societe/799424163-lemoine-baptiste-paul-jean-79942416300019.html?typeProduitOnglet=EXTRAIT&afficherretour=false][79942416300027
]]Ingénieur front-end sur Orsay, Essonne, France. [[https://web.archive.org/web/20240721071559/https://www.cipherbliss.com/][www.cipherbliss.com]]

View File

@ -168,7 +168,39 @@
<header id="title-block-header">
<h1 class="title">cipherbliss_blog</h1>
</header>
<h1 id="contact">contact</h1>
<p>le dragon mail</p>
<h1 id="contact">Contact</h1>
<p>où me trouver: //<a
href="https://web.archive.org/web/20240721071559/mailto:contact@cipherbliss.com">contact@cipherbliss.com</a>//</p>
<p>Tel bureau CipherBliss: <a href="tel:0185461173">0185461173</a><a
href="https://web.archive.org/web/20240721071559/https://signal.org/">Signal
si vous avez mon numéro perso</a> </p>
<p>Sur Matrix/Riot, pour tout support ou contribution lié à mes services
et projets en lignes <a
href="https://web.archive.org/web/20240721071559/https://matrix.to/#/!jfoYESqTObXYlKAOVM:matrix.org?via=matrix.org">#cipherbliss:matrix.org</a>
XMPP: <a
href="https://web.archive.org/web/20240721071559/xmpp:tykayn@chapril.org">tykayn@chapril.org</a></p>
<p><img
src="https://web.archive.org/web/20240721071559im_/https://www.telegram.org/img/t_logo.png" /> 
Telegram: <a
href="https://web.archive.org/web/20240721071559/https://t.me/tykayn"><span>https://t.me/tykayn</span></a></p>
<p>Empreinte mail RSA: <em>548acf17d1e7a5d4d7572b95d4f4356a2bd69c47</em>
[[<a
href="https://web.archive.org/web/20240721071559/https://mastodon.cipherbliss.com/@tykayn">https://web.archive.org/web/20240721071559/https://mastodon.cipherbliss.com/@tykayn</a>][
]]Mastodon: <a
href="https://web.archive.org/web/20240721071559/https://mastodon.cipherbliss.com/@tykayn"><span>https://mastodon.cipherbliss.com/@tykayn</span></a>
Peertube: <a
href="https://web.archive.org/web/20240721071559/https://mastodon.cipherbliss.com/"><span>https://peertube.cipherbliss.com</span></a> 
[[<a
href="https://web.archive.org/web/20240721071559/https://peertube.cipherbliss.com/video-channels/root_channel/videos">https://web.archive.org/web/20240721071559/https://peertube.cipherbliss.com/video-channels/root_channel/videos</a>][Ma
chaine peertube perso ]][[<a
href="https://web.archive.org/web/20240721071559/https://www.openstreetmap.org/user/tykayn">https://web.archive.org/web/20240721071559/https://www.openstreetmap.org/user/tykayn</a>][OpenStreetMaps
Tykayn ]]</p>
<p>[[<a
href="https://web.archive.org/web/20240721071559/https://framagit.org/tykayn">https://web.archive.org/web/20240721071559/https://framagit.org/tykayn</a>][Sources
de projets libres sur le Gitlab Framagit ]]</p>
<p>N° SIRET Cipher Bliss:[[<a
href="https://web.archive.org/web/20240721071559/https://www.infogreffe.fr/entreprise-societe/799424163-lemoine-baptiste-paul-jean-79942416300019.html?typeProduitOnglet=EXTRAIT&amp;afficherretour=false">https://web.archive.org/web/20240721071559/https://www.infogreffe.fr/entreprise-societe/799424163-lemoine-baptiste-paul-jean-79942416300019.html?typeProduitOnglet=EXTRAIT&amp;afficherretour=false</a>][79942416300027
]]Ingénieur front-end sur Orsay, Essonne, France. <a
href="https://web.archive.org/web/20240721071559/https://www.cipherbliss.com/">www.cipherbliss.com</a></p>
</body>
</html>

View File

@ -13,7 +13,7 @@
** alias symfony et git pour linux
ceci_est_du_html
# ceci_est_du_html
Les alias c'est fort pratique quand on bouffe de la ligne de commande quotidiennement.
voici donc mon fichier .bash_aliases actuel (se trouvant dans mon répertoire d'utilisateur) sur mon ubuntu maison. Enjoyez les commandes raccourcies!

View File

@ -1,38 +1,41 @@
:PROPERTIES:
:ID: 8ec7ed54-3036-4063-826a-97736ae3d024
:END:
#+title: video-du-premier-chatons-camp-2021
#+post_ID: 1606
#+post_slug: video-du-premier-chatons-camp-2021
#+post_url: https://www.ciperbliss.com/2021/video-du-premier-chatons-camp-2021
#+post_title: Vidéo du premier CHATONS Camp 2021
#+post_type: post
#+post_mime_types:
#+post_guid: https://www.cipherbliss.com/?p=1606
#+post_status: publish
#+post_date_published: <2021-10-23 19:50:28>
#+post_date_modified: <2021-10-23 19:50:28>
#+post_index_page_roam_id: [[id:af49c64c-d6d5-479c-8661-047ea8d6dc41][Cipherbliss blog]]
#+not_converted: true
#+retrieved_from_db_at: <2024-11-07 15:16:25>
* Article
- ID: 1606
- guid:
- status: publish
- publié le: <2021-10-23 19:50:28>
- modifié: <2021-10-23 19:50:28>
- Index des articles du blog [[id:39e91a2e-d003-4acd-a99a-b58dca74df77][Cipherbliss blog]]
** Vidéo du premier CHATONS Camp 2021
* Vidéo du premier CHATONS Camp 2021
ceci_est_du_html
<iframe title="Présentation du collectif des Chatons (Camp Chatons 2021)" src="https://video.colibris-outilslibres.org/videos/embed/e320c9f7-e1d4-4e47-bc92-eacb1280e282" width="560" height="315" frameborder="0" sandbox="allow-same-origin allow-scripts allow-popups" allowfullscreen="allowfullscreen"></iframe>
<<error-block>> * :PROPERTIES: :CUSTOM_ID: error-title :END: <<error-content>> <<video-password-block>> * :PROPERTIES: :CUSTOM_ID: video-password-title :END: <<video-password-content>> <<video-password-error>> [[data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0cmVtIiBoZWlnaHQ9IjRyZW0iIHZpZXdib3g9IjAgMCAyNCAyNCI+PGcgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzRjNGM0IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiI+PHJlY3Qgd2lkdGg9IjE4IiBoZWlnaHQ9IjExIiB4PSIzIiB5PSIxMSIgcng9IjIiIHJ5PSIyIj48L3JlY3Q+PHBhdGggZD0iTTcgMTFWN2E1IDUgMCAwIDEgMTAgMHY0Ij48L3BhdGg+PC9nPjwvc3ZnPg==]] <<video-wrapper>>
Voici un premier aperçu du camp CHATONS qui a eu lieu dans l'éco lieu du Vigan, nommé la fabrègue. On peut m'y voir faire mon atelier sur les backups qui durent mille ans, un prérequis pour fonder son propre CHATONS.
Je vous en dirai plus un peu plus tard mais c'était tellement chouette ces quelques 3 jours pour faire ensemble plein de choses, découvrir les initatives existantes pour se libérer des GAFAM et apprendre les uns des autres, le tout dans une ambiance super décontractée, avec un lieu incroyablement prometteur.
Voici quelques éléments en plus, vous en trouverez bien d'autres sur le forum des chatons. <a href="https://forum.chatons.org">https://forum.chatons.org</a>
<ul>
<li>la <a href="https://video.colibris-outilslibres.org/w/u3HfhsQgKZkKZxsNf29D8G" rel="noopener nofollow ugc">vidéo de présentation du collectif Chatons <span class="badge badge-notification clicks" title="12 clics">12</span></a> , déjà 168 vues en 3 jours, soit léquivalent du million sur youtube \o/</li>
<li>les restitutions des souvenirs du futur des chatons en 2031, <a href="https://video.colibris-outilslibres.org/w/6SkAsiKdTrfueyJsiC6b8a" rel="noopener nofollow ugc">groupe 1</a>, <a href="https://video.colibris-outilslibres.org/w/ckzGy9msoigFQ3Xrx6qmQT" rel="noopener nofollow ugc">groupe 2</a>, <a href="https://video.colibris-outilslibres.org/w/292CD5GY48M838HLgqNASn" rel="noopener nofollow ugc">groupe  </a></li>
<li><a href="https://photos.colibris-outilslibres.org/index.php?/category/409" rel="noopener nofollow ugc">les photos</a></li>
</ul>
Voici quelques éléments en plus, vous en trouverez bien d'autres sur le forum des chatons. [[https://forum.chatons.org]]
- la [[https://video.colibris-outilslibres.org/w/u3HfhsQgKZkKZxsNf29D8G][vidéo de présentation du collectif Chatons 12]] , déjà 168 vues en 3 jours, soit l'équivalent du million sur youtube o/ - les restitutions des souvenirs du futur des chatons en 2031, [[https://video.colibris-outilslibres.org/w/6SkAsiKdTrfueyJsiC6b8a][groupe 1]], [[https://video.colibris-outilslibres.org/w/ckzGy9msoigFQ3Xrx6qmQT][groupe 2]], [[https://video.colibris-outilslibres.org/w/292CD5GY48M838HLgqNASn][groupe ]] - [[https://photos.colibris-outilslibres.org/index.php?/category/409][les photos]]
Tout est disponible sous licence CC BY SA (Attribution Edouard Marchal).
<a href="https://forum.chatons.org/c/collectif/camp-chatons-2021/85">https://forum.chatons.org/c/collectif/camp-chatons-2021/85</a>
&nbsp;
* Liens
- cipherbliss [[id:d14d8051-bbb9-4279-a574-84d78bfe5b66][Cipherbliss blog]]
[[https://forum.chatons.org/c/collectif/camp-chatons-2021/85]]

View File

@ -0,0 +1,34 @@
:PROPERTIES:
:ID: a780bfd3-bc68-45f1-a131-8abb3d8c15bd
:END:
#+TITLE: Ressources de café vie privée
#+CREATED: <2024-11-09 23:09:37>
#+TAGS:
#+SLUG: ressources-de-café-vie-privée
#+BLOG: cipherbliss_blog
* Ressources de café vie privée
Voici de quoi se repérer dans la jungle des notions voisines à celle de la vie privée.
Vous retrouverez ici de nombreuses notions abordées lors des cafés vie privée que janime, avec dautres personnes intéressées par les les enjeux autour des logiciels libres et des communs, tel que le groupe [[https://web.archive.org/web/20240617080716/https://www.liness.org/][Liness]] en Essonne.
Les slides de mes présentations et les autres fichiers de support de présentation sont disponibles dans [[https://web.archive.org/web/20240617080716/https://cloud.tykayn.fr/index.php/s/FQ57cqXmJ6ngDfo][le dossier de partage nextcloud]]: [[https://web.archive.org/web/20240617080716/https://cloud.tykayn.fr/index.php/s/FQ57cqXmJ6ngDfo][https://cloud.tykayn.fr/index.php/s/FQ57cqXmJ6ngDfo]]
Vous pouvez me contacter via les divers moyens listés dans [[https://web.archive.org/web/20240617080716/https://www.cipherbliss.com/contact][la page dédiée aux moyens de contact]].
Dans un café vie privée on vulgarise auprès du grand public des enjeux et des notions autour de la vie privée et des technologies numériques. Voici quelques sujets régulièrement abordés dans les ateliers:
Comprendre les dangers dun monde sans vie privée répandu sous la fameuse idée que l' »on a rien à cacher », communiquer de façon sécurisée, réaliser des sauvegardes automatiques, comprendre larchitecture dinternet et du web, contribuer au libre, défendre le droit daccès à linformation de qualité, comprendre les sciences, sortir des GAFAM, adopter [[https://web.archive.org/web/20240617080716/https://www.chatons.org/][les CHATONS]], protéger des accès avec des [[https://web.archive.org/web/20240617080716/https://www.cipherbliss.com/comment-ne-plus-perdre-de-temps-avec-ses-mots-de-passe/][gestionnaires de mot de passe]], sortir des bulles de filtrage des médias sociaux, récupérer son temps dattention, suivre les évolutions juridiques et les atteintes aux libertés fondamentales, remettre la solidarité humaine et lémancipation au cœur des enjeux de société.
Des évènements et groupes de personnes similaires peuvent être retrouvés dans l[[https://web.archive.org/web/20240617080716/https://www.agendadulibre.org/][agenda du libre]] et dans le fédiverse.
Des recettes de cookies sous licence libre, la fameuse pâtisserie qui habite dans nos navigateurs web : [[https://web.archive.org/web/20240617080716/https://www.cuisine-libre.org/cookies][https://www.cuisine-libre.org/cookies]]
Trouver des alternatives aux logiciels privateurs: [[https://web.archive.org/web/20240617080716/https://alternativeto.net/][https://alternativeto.net]]
Le covoiturage libre: [[https://web.archive.org/web/20240617080716/https://www.mobicoop.fr/][https://www.mobicoop.fr]]
Sci hub pour libérer laccès aux publications scientifiques: [[https://web.archive.org/web/20240617080716/https://sci-hub.hkvisa.net/][https://sci-hub.hkvisa.net]]
Bon voyage sur les internets!

View File

@ -0,0 +1,14 @@
:PROPERTIES:
:ID: 89b4761f-1d03-476c-afa5-7dbb141d76c0
:END:
#+TITLE: Tags
#+CREATED: <2024-11-09 23:11:10>
#+TAGS:
#+SLUG: tags
#+BLOG: cipherbliss_blog
* Tags
**** Étiquettes
[[/tag/ai/][AI]] [[/tag/archives/][archives]] [[/tag/autohebergement/][autohébergement]] [[/tag/backup/][backup]] [[/tag/blockchain/][blockchain]] [[/tag/borg/][borg]] [[/tag/caisse/][caisse]] [[/tag/comptabilite/][comptabilité]] [[/tag/comptes/][comptes]] [[/tag/data-visualisation/][data visualisation]] [[/tag/design/][design]] [[/tag/email/][email]] [[/tag/entreprise/][entreprise]] [[/tag/entreprise-individuelle/][entreprise individuelle]] [[/tag/ethereum/][ethereum]] [[/tag/facebook/][facebook]] [[/tag/factures/][factures]] [[/tag/floss/][FLOSS]] [[/tag/fediverse/][fédiverse]] [[/tag/gestion-de-projet/][gestion de projet]] [[/tag/gestion-du-temps/][gestion du temps]] [[/tag/gestionnaire-de-mot-de-passe/][gestionnaire de mot de passe]] [[/tag/gimp/][gimp]] [[/tag/git/][git]] [[/tag/logiciellibre/][logiciellibre]] [[/tag/logiciel-libre/][logiciel libre]] [[/tag/mastodon/][mastodon]] [[/tag/mobilizon/][mobilizon]] [[/tag/mot-de-passe/][mot de passe]] [[/tag/mysql/][mysql]] [[/tag/nextcloud/][nextcloud]] [[/tag/open-source/][open source]] [[/tag/openstreetmap/][openstreetmap]] [[/tag/orgmode/][orgmode]] [[/tag/osm/][OSM]] [[/tag/photos/][photos]] [[/tag/pim/][pim]] [[/tag/projet/][projet]] [[/tag/prevision/][prévision]] [[/tag/python/][python]] [[/tag/reseau-social/][réseau social]] [[/tag/sauvegardes/][sauvegardes]] [[/tag/script/][script]] [[/tag/ux/][UX]] [[/tag/vie-privee/][vie privée]]

View File

@ -0,0 +1,82 @@
:PROPERTIES:
:ID: 39744df0-f5c4-4e9b-9ca2-3aec58319751
:END:
#+TITLE: Connaître la couleur des jours EDF Tempo en ligne de commande
#+CREATED: <2024-11-09 23:16:03>
#+TAGS:
#+SLUG: connaître-la-couleur-des-jours-edf-tempo-en-ligne-de-commande
#+BLOG: cipherbliss_blog
* Connaître la couleur des jours EDF Tempo en ligne de commande
EDF expose une API pour connaître les couleurs de jour TEMPO, mais cette api n'est pas bien référencée sur le wouaib, ce sont donc des sites qui n'ont rien à voir qui vous donneront cette info avec moult trackers et pubs de partout.
Voici l'url dont vous avez besoin:
> https://api-commerce.edf.fr/commerce/activet/v1/calendrier-jours-effacement?option=TEMPO&dateApplicationBorneInf={date_inférieure}&dateApplicationBorneSup={date_supérieure}&identifiantConsommateur=src
Cette API de commerce EDF ne fonctionne que si vous demandez des dates ayant 365 jours d'écart de différence, et si vous ne mettez pas de zéro précédant le numéro de journée au format année-mois-jour.
Autre limitation, la couleur du jour du lendemain vous sera donnée seulement à partir de 11h du matin dans la journée.
Fabriquez vous un petit script en python pour aller pêcher ce calendrier, piocher les couleurs des deux derniers jours. Il vous suffira d'un alias de commande pour lancer "python mon_script_tempo.py" en ayant le dossier où le script est placé dans votre variable d'environnement PATH.
#+begin_src python
import requests
import json
from datetime import datetime, timedelta
def date_il_y_a_un_an(date):
date_obj = datetime.strptime(date, "%Y-%m-%d")
date_il_y_a_un_an = date_obj - timedelta(days=365)
return date_il_y_a_un_an.strftime("%Y-%m-%d")
def get_tempo_for_today_and_tomorrow():
# Obtenir la date d'aujourd'hui
datenow = datetime.now()
sup = (datenow + timedelta(days=1))
inf = date_il_y_a_un_an(datenow.strftime("%Y-%m-%d"))
# Obtenir la date de demain
sup = sup.strftime("%Y-%m-%d")
sup = sup.replace("-0", "-")
inf = inf.replace("-0", "-")
# print("Date inf :", inf)
# print("Date sup:", sup)
# URL de l'API d'EDF pour récupérer les informations sur les couleurs des jours de l'offre Tempo
url = f"https://api-commerce.edf.fr/commerce/activet/v1/calendrier-jours-effacement?option=TEMPO&dateApplicationBorneInf={inf}&dateApplicationBorneSup={sup}&identifiantConsommateur=src"
print(url)
# Effectuer la requête HTTP et récupérer la réponse JSON
response = requests.get(url)
data = json.loads(response.text)
# Récupérer la liste des couleurs des jours pour les 30 prochains jours
calendrier = data["content"]["options"][0]["calendrier"]
texte_retour=""
# # Afficher les couleurs des jours pour le prochain jour
for jour in calendrier[-2:]:
date = jour["dateApplication"]
code_couleur = jour["statut"]
if code_couleur == "TEMPO_BLEU":
texte_retour+=(f"\033[34m{date}: journée {code_couleur}\033[0m\n")
elif code_couleur == "TEMPO_BLANC":
texte_retour+=(f"\033[37m{date}: journée {code_couleur}\033[0m\n")
elif code_couleur == "TEMPO_ROUGE":
texte_retour+=(f"\033[31m{date}: journée {code_couleur}\033[0m\n")
else:
texte_retour+=(f"{date}: journée {code_couleur}")
return texte_retour
texte = get_tempo_for_today_and_tomorrow()
print(texte)
#+end_src
Bonne réduction des pointes de conso!

View File

@ -0,0 +1,246 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
<head>
<meta charset="utf-8" />
<meta name="generator" content="pandoc" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
<title>cipherbliss_blog</title>
<style>
html {
color: #1a1a1a;
background-color: #fdfdfd;
}
body {
margin: 0 auto;
max-width: 36em;
padding-left: 50px;
padding-right: 50px;
padding-top: 50px;
padding-bottom: 50px;
hyphens: auto;
overflow-wrap: break-word;
text-rendering: optimizeLegibility;
font-kerning: normal;
}
@media (max-width: 600px) {
body {
font-size: 0.9em;
padding: 12px;
}
h1 {
font-size: 1.8em;
}
}
@media print {
html {
background-color: white;
}
body {
background-color: transparent;
color: black;
font-size: 12pt;
}
p, h2, h3 {
orphans: 3;
widows: 3;
}
h2, h3, h4 {
page-break-after: avoid;
}
}
p {
margin: 1em 0;
}
a {
color: #1a1a1a;
}
a:visited {
color: #1a1a1a;
}
img {
max-width: 100%;
}
h1, h2, h3, h4, h5, h6 {
margin-top: 1.4em;
}
h5, h6 {
font-size: 1em;
font-style: italic;
}
h6 {
font-weight: normal;
}
ol, ul {
padding-left: 1.7em;
margin-top: 1em;
}
li > ol, li > ul {
margin-top: 0;
}
blockquote {
margin: 1em 0 1em 1.7em;
padding-left: 1em;
border-left: 2px solid #e6e6e6;
color: #606060;
}
code {
font-family: Menlo, Monaco, Consolas, 'Lucida Console', monospace;
font-size: 85%;
margin: 0;
hyphens: manual;
}
pre {
margin: 1em 0;
overflow: auto;
}
pre code {
padding: 0;
overflow: visible;
overflow-wrap: normal;
}
.sourceCode {
background-color: transparent;
overflow: visible;
}
hr {
background-color: #1a1a1a;
border: none;
height: 1px;
margin: 1em 0;
}
table {
margin: 1em 0;
border-collapse: collapse;
width: 100%;
overflow-x: auto;
display: block;
font-variant-numeric: lining-nums tabular-nums;
}
table caption {
margin-bottom: 0.75em;
}
tbody {
margin-top: 0.5em;
border-top: 1px solid #1a1a1a;
border-bottom: 1px solid #1a1a1a;
}
th {
border-top: 1px solid #1a1a1a;
padding: 0.25em 0.5em 0.25em 0.5em;
}
td {
padding: 0.125em 0.5em 0.25em 0.5em;
}
header {
margin-bottom: 4em;
text-align: center;
}
#TOC li {
list-style: none;
}
#TOC ul {
padding-left: 1.3em;
}
#TOC > ul {
padding-left: 0;
}
#TOC a:not(:hover) {
text-decoration: none;
}
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
div.columns{display: flex; gap: min(4vw, 1.5em);}
div.column{flex: auto; overflow-x: auto;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
/* The extra [class] is a hack that increases specificity enough to
override a similar rule in reveal.js */
ul.task-list[class]{list-style: none;}
ul.task-list li input[type="checkbox"] {
font-size: inherit;
width: 0.8em;
margin: 0 0.8em 0.2em -1.6em;
vertical-align: middle;
}
.display.math{display: block; text-align: center; margin: 0.5rem auto;}
</style>
</head>
<body>
<header id="title-block-header">
<h1 class="title">cipherbliss_blog</h1>
</header>
<h1 id="article">Article</h1>
<ul>
<li>ID: 1595</li>
<li>guid:</li>
<li>status: publish</li>
<li>publié le: &lt;2021-09-27 09:22:38&gt;</li>
<li>modifié: &lt;2021-09-27 09:22:42&gt;</li>
<li>Index des articles du blog <a
href="id:39e91a2e-d003-4acd-a99a-b58dca74df77">Cipherbliss blog</a></li>
</ul>
<h2 id="des-sauvegardes-qui-durent-mille-ans-1">Des sauvegardes qui
durent mille ans</h2>
<p>ceci<sub>estduhtml</sub></p>
<p>J'ai animé un atelier au cours du premier camp CHATONS qui a eu lieu
le week-end dernier. (Le &lt;a href="<a
href="https://www.chatons.org/">https://www.chatons.org/</a>"&gt;Collectif
des Hébergeurs Alternatifs, Transparents, Ouverts, Neutres et
Solidaires&lt;/a&gt; vise à rassembler des structures proposant des
&lt;strong&gt;services en ligne libres, éthiques et
décentralisés&lt;/strong&gt; afin de permettre aux utilisateur⋅ices de
&lt;a href="<a
href="https://www.chatons.org/search/by-service">https://www.chatons.org/search/by-service</a>"&gt;trouver
rapidement des alternatives&lt;/a&gt; respectueuses de leurs données et
de leur vie privée)#+begin<sub>src</sub> shell</p>
<p>Pas de compte rendu du camp en lui même pour tout de suite, cependant
voici un résumé de l'atelier qui aura duré près d'une
heure.&lt;br&gt;&lt;a href="<a
href="https://libreto.sans-nuage.fr/camps-chatons/programme">https://libreto.sans-nuage.fr/camps-chatons/programme</a>"&gt;<a
href="https://libreto.sans-nuage.fr/camps-chatons/programme">https://libreto.sans-nuage.fr/camps-chatons/programme</a>&lt;/a&gt;&lt;br&gt;&lt;br&gt;Comment
se protéger des pertes de données et ne pas perdre la confiance et les
précieuses données des membres de son
CHATONS?&lt;br&gt;&lt;br&gt;L'atelier aborde la définition d'un modèle
de menace pour savoir contre quoi se prémunir, et quels critères de
qualité utiliser pour réaliser automatiquement ses sauvegardes en tant
que particulier, ou en tant que CHATONS.&lt;br&gt;On y voit de la façon
la plus "grand public" à la façon la plus "techno geek" comment
récupérer ses données éparpillées en ligne, historiser, chiffrer,
dédupliquer, compresser, répliquer, partager les clés d'accès, et
prévoir des restaurations périodiques, de sorte que les données les plus
cruciales survivent à leurs administrateurs et
administratrices.#+begin<sub>src</sub> shell</p>
<p>&lt;! wp:image
{"id":1598,"sizeSlug":"large","linkDestination":"none"} &gt; &lt;figure
class="wp-block-image size-large"&gt;&lt;img src="<a
href="https://www.cipherbliss.com/wp-content/uploads/2021/09/Screenshot_2021-09-27-Les-Sauvegardes-automatiques-Slides-1024x747.jpg">https://www.cipherbliss.com/wp-content/uploads/2021/09/Screenshot_2021-09-27-Les-Sauvegardes-automatiques-Slides-1024x747.jpg</a>"
alt="" class="wp-image-1598"/&gt;&lt;figcaption&gt;Jancovici et le
stockage à froid, une remarquable utilisation des couches géologiquement
stables&lt;/figcaption&gt;&lt;/figure&gt; &lt;! /wp:image &gt;</p>
<p>&lt;br&gt;Liens:&lt;br&gt;Les slides sont disponibles
ici:&lt;br&gt;&lt;a href="<a
href="https://slides.com/tykayn/les-sauvegardes-automatiques">https://slides.com/tykayn/les-sauvegardes-automatiques</a>"&gt;<a
href="https://slides.com/tykayn/les-sauvegardes-automatiques">https://slides.com/tykayn/les-sauvegardes-automatiques</a>&lt;/a&gt;&lt;br&gt;&lt;br&gt;La
feuille de calcul pour cartographier son matériel&lt;br&gt;&lt;a
href="<a
href="https://cloud.tykayn.fr/index.php/s/KQfYHpaSpgwrWam">https://cloud.tykayn.fr/index.php/s/KQfYHpaSpgwrWam</a>"&gt;<a
href="https://cloud.tykayn.fr/index.php/s/KQfYHpaSpgwrWam">https://cloud.tykayn.fr/index.php/s/KQfYHpaSpgwrWam</a>&lt;/a&gt;#+begin<sub>src</sub>
shell</p>
<p>Le site des CHATONS: &lt;br&gt;&lt;a href="<a
href="https://www.chatons.org">https://www.chatons.org</a>"&gt;<a
href="https://www.chatons.org">https://www.chatons.org</a>&lt;/a&gt;#+begin<sub>src</sub>
shell</p>
<p>Le forum où tout se discute:&lt;br&gt;&lt;a href=" <a
href="https://forum.chatons.org">https://forum.chatons.org</a>"&gt; <a
href="https://forum.chatons.org">https://forum.chatons.org</a>&lt;/a&gt;#+begin<sub>src</sub>
shell</p>
<p>La documentation pour ne pas réinventer la roue: &lt;br&gt;&lt;a
href="<a
href="https://wiki.chatons.org">https://wiki.chatons.org</a>"&gt;<a
href="https://wiki.chatons.org">https://wiki.chatons.org</a>&lt;/a&gt;</p>
<h1 id="liens">Liens</h1>
<ul>
<li>cipherbliss <a
href="id:d14d8051-bbb9-4279-a574-84d78bfe5b66">Cipherbliss blog</a></li>
</ul>
</body>
</html>

View File

@ -0,0 +1,222 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
<head>
<meta charset="utf-8" />
<meta name="generator" content="pandoc" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
<title>cipherbliss_blog</title>
<style>
html {
color: #1a1a1a;
background-color: #fdfdfd;
}
body {
margin: 0 auto;
max-width: 36em;
padding-left: 50px;
padding-right: 50px;
padding-top: 50px;
padding-bottom: 50px;
hyphens: auto;
overflow-wrap: break-word;
text-rendering: optimizeLegibility;
font-kerning: normal;
}
@media (max-width: 600px) {
body {
font-size: 0.9em;
padding: 12px;
}
h1 {
font-size: 1.8em;
}
}
@media print {
html {
background-color: white;
}
body {
background-color: transparent;
color: black;
font-size: 12pt;
}
p, h2, h3 {
orphans: 3;
widows: 3;
}
h2, h3, h4 {
page-break-after: avoid;
}
}
p {
margin: 1em 0;
}
a {
color: #1a1a1a;
}
a:visited {
color: #1a1a1a;
}
img {
max-width: 100%;
}
h1, h2, h3, h4, h5, h6 {
margin-top: 1.4em;
}
h5, h6 {
font-size: 1em;
font-style: italic;
}
h6 {
font-weight: normal;
}
ol, ul {
padding-left: 1.7em;
margin-top: 1em;
}
li > ol, li > ul {
margin-top: 0;
}
blockquote {
margin: 1em 0 1em 1.7em;
padding-left: 1em;
border-left: 2px solid #e6e6e6;
color: #606060;
}
code {
font-family: Menlo, Monaco, Consolas, 'Lucida Console', monospace;
font-size: 85%;
margin: 0;
hyphens: manual;
}
pre {
margin: 1em 0;
overflow: auto;
}
pre code {
padding: 0;
overflow: visible;
overflow-wrap: normal;
}
.sourceCode {
background-color: transparent;
overflow: visible;
}
hr {
background-color: #1a1a1a;
border: none;
height: 1px;
margin: 1em 0;
}
table {
margin: 1em 0;
border-collapse: collapse;
width: 100%;
overflow-x: auto;
display: block;
font-variant-numeric: lining-nums tabular-nums;
}
table caption {
margin-bottom: 0.75em;
}
tbody {
margin-top: 0.5em;
border-top: 1px solid #1a1a1a;
border-bottom: 1px solid #1a1a1a;
}
th {
border-top: 1px solid #1a1a1a;
padding: 0.25em 0.5em 0.25em 0.5em;
}
td {
padding: 0.125em 0.5em 0.25em 0.5em;
}
header {
margin-bottom: 4em;
text-align: center;
}
#TOC li {
list-style: none;
}
#TOC ul {
padding-left: 1.3em;
}
#TOC > ul {
padding-left: 0;
}
#TOC a:not(:hover) {
text-decoration: none;
}
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
div.columns{display: flex; gap: min(4vw, 1.5em);}
div.column{flex: auto; overflow-x: auto;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
/* The extra [class] is a hack that increases specificity enough to
override a similar rule in reveal.js */
ul.task-list[class]{list-style: none;}
ul.task-list li input[type="checkbox"] {
font-size: inherit;
width: 0.8em;
margin: 0 0.8em 0.2em -1.6em;
vertical-align: middle;
}
.display.math{display: block; text-align: center; margin: 0.5rem auto;}
</style>
</head>
<body>
<header id="title-block-header">
<h1 class="title">cipherbliss_blog</h1>
</header>
<h1 id="article">Article</h1>
<ul>
<li>ID: 1600</li>
<li>guid:</li>
<li>status: publish</li>
<li>publié le: &lt;2021-10-23 19:23:07&gt;</li>
<li>modifié: &lt;2021-10-23 19:38:11&gt;</li>
<li>Index des articles du blog <a
href="id:39e91a2e-d003-4acd-a99a-b58dca74df77">Cipherbliss blog</a></li>
</ul>
<h2 id="nouvelles-doctobre-2021-1">Nouvelles d'Octobre 2021</h2>
<p>ceci<sub>estduhtml</sub></p>
<p>j'espère que ça roule pour tout le monde en ce début de
vacances.&lt;br&gt;J'ai pu faire un atelier sur la création graphique et
le dessin à Gometz, et suite à son succès je réitère l'expérience
pendant les 4 prochaines semaines et ai publié ces évènements sur
l'agenda du libre et sur mobilizon.&lt;br&gt;J'en ai profité aussi pour
alimenter le mobilizon d'OSM avec les prochains évènements référencés
sur le wiki, l'agenda du libre, microcosm, et d'autres
recherches.&lt;br&gt;&lt;br&gt;La nouvelle version de Framadate avance,
on peut tester les maquettes sur sketch, un outil non libre
:D&lt;br&gt;&lt;a href="<a
href="https://www.sketch.com/s/5833607c-e93e-4e9b-9c7e-0614238c6d8c/a/JnbVGxk/play">https://www.sketch.com/s/5833607c-e93e-4e9b-9c7e-0614238c6d8c/a/JnbVGxk/play</a>"&gt;<a
href="https://www.sketch.com/s/5833607c-e93e-4e9b-9c7e-0614238c6d8c/a/JnbVGxk/play">https://www.sketch.com/s/5833607c-e93e-4e9b-9c7e-0614238c6d8c/a/JnbVGxk/play</a>&lt;/a&gt;&lt;br&gt;J'ai
pas encore de démo qui ressemble vraiment à cette
maquette.&lt;br&gt;&lt;br&gt;Cependant j'ai avancé sur l'exportateur
d'archive mastodon qui fournit des stats et un rendu HTML filtrable à
partir du contenu d'une archive mastodon. On peut filtrer les posts
selon qu'ils aient des médias attachés ou non, un nombre min et max de
caractères, un terme de recherche basique, et on obtient des
statistiques sur les tags qu'on a utilisé, ainsi que les gens a qui on a
envoyé nos posts mastodon, le tout entièrement hors
ligne.&lt;br&gt;&lt;a href="<a
href="https://forge.chapril.org/tykayn/mastodon-archive-stats">https://forge.chapril.org/tykayn/mastodon-archive-stats</a>"&gt;<a
href="https://forge.chapril.org/tykayn/mastodon-archive-stats">https://forge.chapril.org/tykayn/mastodon-archive-stats</a>&lt;/a&gt;&lt;br&gt;&lt;br&gt;Et
j'ai enfin pu participer a une réunion mensuelle CHATONS, victoire! du
coup y'a de l'activité à suivre sur le forum chatons :D&lt;br&gt;&lt;a
href="<a
href="https://forum.chatons.org">https://forum.chatons.org</a>"&gt;<a
href="https://forum.chatons.org">https://forum.chatons.org</a>&lt;/a&gt;#+begin<sub>src</sub>
shell</p>
<p>On prévoit de lancer le premier chapéro parisien de l'année en
Novembre, voir les détails sur le forum.&lt;br&gt;&lt;br&gt;J'avance sur
ma gestion de tâches avec emacs / orgmode. Le chemin est long mais ça
vaut le coup.&lt;br&gt;&lt;br&gt;et vous quoi de beau?</p>
<h1 id="liens">Liens</h1>
<ul>
<li>cipherbliss <a
href="id:d14d8051-bbb9-4279-a574-84d78bfe5b66">Cipherbliss blog</a></li>
</ul>
</body>
</html>

View File

@ -0,0 +1,213 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
<head>
<meta charset="utf-8" />
<meta name="generator" content="pandoc" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
<title>cipherbliss_blog</title>
<style>
html {
color: #1a1a1a;
background-color: #fdfdfd;
}
body {
margin: 0 auto;
max-width: 36em;
padding-left: 50px;
padding-right: 50px;
padding-top: 50px;
padding-bottom: 50px;
hyphens: auto;
overflow-wrap: break-word;
text-rendering: optimizeLegibility;
font-kerning: normal;
}
@media (max-width: 600px) {
body {
font-size: 0.9em;
padding: 12px;
}
h1 {
font-size: 1.8em;
}
}
@media print {
html {
background-color: white;
}
body {
background-color: transparent;
color: black;
font-size: 12pt;
}
p, h2, h3 {
orphans: 3;
widows: 3;
}
h2, h3, h4 {
page-break-after: avoid;
}
}
p {
margin: 1em 0;
}
a {
color: #1a1a1a;
}
a:visited {
color: #1a1a1a;
}
img {
max-width: 100%;
}
h1, h2, h3, h4, h5, h6 {
margin-top: 1.4em;
}
h5, h6 {
font-size: 1em;
font-style: italic;
}
h6 {
font-weight: normal;
}
ol, ul {
padding-left: 1.7em;
margin-top: 1em;
}
li > ol, li > ul {
margin-top: 0;
}
blockquote {
margin: 1em 0 1em 1.7em;
padding-left: 1em;
border-left: 2px solid #e6e6e6;
color: #606060;
}
code {
font-family: Menlo, Monaco, Consolas, 'Lucida Console', monospace;
font-size: 85%;
margin: 0;
hyphens: manual;
}
pre {
margin: 1em 0;
overflow: auto;
}
pre code {
padding: 0;
overflow: visible;
overflow-wrap: normal;
}
.sourceCode {
background-color: transparent;
overflow: visible;
}
hr {
background-color: #1a1a1a;
border: none;
height: 1px;
margin: 1em 0;
}
table {
margin: 1em 0;
border-collapse: collapse;
width: 100%;
overflow-x: auto;
display: block;
font-variant-numeric: lining-nums tabular-nums;
}
table caption {
margin-bottom: 0.75em;
}
tbody {
margin-top: 0.5em;
border-top: 1px solid #1a1a1a;
border-bottom: 1px solid #1a1a1a;
}
th {
border-top: 1px solid #1a1a1a;
padding: 0.25em 0.5em 0.25em 0.5em;
}
td {
padding: 0.125em 0.5em 0.25em 0.5em;
}
header {
margin-bottom: 4em;
text-align: center;
}
#TOC li {
list-style: none;
}
#TOC ul {
padding-left: 1.3em;
}
#TOC > ul {
padding-left: 0;
}
#TOC a:not(:hover) {
text-decoration: none;
}
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
div.columns{display: flex; gap: min(4vw, 1.5em);}
div.column{flex: auto; overflow-x: auto;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
/* The extra [class] is a hack that increases specificity enough to
override a similar rule in reveal.js */
ul.task-list[class]{list-style: none;}
ul.task-list li input[type="checkbox"] {
font-size: inherit;
width: 0.8em;
margin: 0 0.8em 0.2em -1.6em;
vertical-align: middle;
}
.display.math{display: block; text-align: center; margin: 0.5rem auto;}
</style>
</head>
<body>
<header id="title-block-header">
<h1 class="title">cipherbliss_blog</h1>
</header>
<h1 id="vidéo-du-premier-chatons-camp-2021">Vidéo du premier CHATONS
Camp 2021</h1>
<p><span id="error-block"></span>* :PROPERTIES: :CUSTOM<sub>ID</sub>:
error-title :END: <span id="error-content"></span><span
id="video-password-block"></span>* :PROPERTIES: :CUSTOM<sub>ID</sub>:
video-password-title :END: <span
id="video-password-content"></span><span
id="video-password-error"></span><a
href="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0cmVtIiBoZWlnaHQ9IjRyZW0iIHZpZXdib3g9IjAgMCAyNCAyNCI+PGcgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzRjNGM0IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiI+PHJlY3Qgd2lkdGg9IjE4IiBoZWlnaHQ9IjExIiB4PSIzIiB5PSIxMSIgcng9IjIiIHJ5PSIyIj48L3JlY3Q+PHBhdGggZD0iTTcgMTFWN2E1IDUgMCAwIDEgMTAgMHY0Ij48L3BhdGg+PC9nPjwvc3ZnPg==">data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0cmVtIiBoZWlnaHQ9IjRyZW0iIHZpZXdib3g9IjAgMCAyNCAyNCI+PGcgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzRjNGM0IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiI+PHJlY3Qgd2lkdGg9IjE4IiBoZWlnaHQ9IjExIiB4PSIzIiB5PSIxMSIgcng9IjIiIHJ5PSIyIj48L3JlY3Q+PHBhdGggZD0iTTcgMTFWN2E1IDUgMCAwIDEgMTAgMHY0Ij48L3BhdGg+PC9nPjwvc3ZnPg==</a>
<span id="video-wrapper"></span></p>
<p>Voici un premier aperçu du camp CHATONS qui a eu lieu dans l'éco lieu
du Vigan, nommé la fabrègue. On peut m'y voir faire mon atelier sur les
backups qui durent mille ans, un prérequis pour fonder son propre
CHATONS.</p>
<p>Je vous en dirai plus un peu plus tard mais c'était tellement
chouette ces quelques 3 jours pour faire ensemble plein de choses,
découvrir les initatives existantes pour se libérer des GAFAM et
apprendre les uns des autres, le tout dans une ambiance super
décontractée, avec un lieu incroyablement prometteur.</p>
<p>Voici quelques éléments en plus, vous en trouverez bien d'autres sur
le forum des chatons. <a
href="https://forum.chatons.org">https://forum.chatons.org</a></p>
<ul>
<li>la <a
href="https://video.colibris-outilslibres.org/w/u3HfhsQgKZkKZxsNf29D8G">vidéo
de présentation du collectif Chatons 12</a> , déjà 168 vues en 3 jours,
soit l'équivalent du million sur youtube o/ - les restitutions des
souvenirs du futur des chatons en 2031, <a
href="https://video.colibris-outilslibres.org/w/6SkAsiKdTrfueyJsiC6b8a">groupe
1</a>, <a
href="https://video.colibris-outilslibres.org/w/ckzGy9msoigFQ3Xrx6qmQT">groupe
2</a>, <a
href="https://video.colibris-outilslibres.org/w/292CD5GY48M838HLgqNASn">groupe </a>
- <a
href="https://photos.colibris-outilslibres.org/index.php?/category/409">les
photos</a></li>
</ul>
<p>Tout est disponible sous licence CC BY SA (Attribution Edouard
Marchal).</p>
<p><a
href="https://forum.chatons.org/c/collectif/camp-chatons-2021/85">https://forum.chatons.org/c/collectif/camp-chatons-2021/85</a></p>
</body>
</html>

View File

@ -0,0 +1,235 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
<head>
<meta charset="utf-8" />
<meta name="generator" content="pandoc" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
<title>cipherbliss_blog</title>
<style>
html {
color: #1a1a1a;
background-color: #fdfdfd;
}
body {
margin: 0 auto;
max-width: 36em;
padding-left: 50px;
padding-right: 50px;
padding-top: 50px;
padding-bottom: 50px;
hyphens: auto;
overflow-wrap: break-word;
text-rendering: optimizeLegibility;
font-kerning: normal;
}
@media (max-width: 600px) {
body {
font-size: 0.9em;
padding: 12px;
}
h1 {
font-size: 1.8em;
}
}
@media print {
html {
background-color: white;
}
body {
background-color: transparent;
color: black;
font-size: 12pt;
}
p, h2, h3 {
orphans: 3;
widows: 3;
}
h2, h3, h4 {
page-break-after: avoid;
}
}
p {
margin: 1em 0;
}
a {
color: #1a1a1a;
}
a:visited {
color: #1a1a1a;
}
img {
max-width: 100%;
}
h1, h2, h3, h4, h5, h6 {
margin-top: 1.4em;
}
h5, h6 {
font-size: 1em;
font-style: italic;
}
h6 {
font-weight: normal;
}
ol, ul {
padding-left: 1.7em;
margin-top: 1em;
}
li > ol, li > ul {
margin-top: 0;
}
blockquote {
margin: 1em 0 1em 1.7em;
padding-left: 1em;
border-left: 2px solid #e6e6e6;
color: #606060;
}
code {
font-family: Menlo, Monaco, Consolas, 'Lucida Console', monospace;
font-size: 85%;
margin: 0;
hyphens: manual;
}
pre {
margin: 1em 0;
overflow: auto;
}
pre code {
padding: 0;
overflow: visible;
overflow-wrap: normal;
}
.sourceCode {
background-color: transparent;
overflow: visible;
}
hr {
background-color: #1a1a1a;
border: none;
height: 1px;
margin: 1em 0;
}
table {
margin: 1em 0;
border-collapse: collapse;
width: 100%;
overflow-x: auto;
display: block;
font-variant-numeric: lining-nums tabular-nums;
}
table caption {
margin-bottom: 0.75em;
}
tbody {
margin-top: 0.5em;
border-top: 1px solid #1a1a1a;
border-bottom: 1px solid #1a1a1a;
}
th {
border-top: 1px solid #1a1a1a;
padding: 0.25em 0.5em 0.25em 0.5em;
}
td {
padding: 0.125em 0.5em 0.25em 0.5em;
}
header {
margin-bottom: 4em;
text-align: center;
}
#TOC li {
list-style: none;
}
#TOC ul {
padding-left: 1.3em;
}
#TOC > ul {
padding-left: 0;
}
#TOC a:not(:hover) {
text-decoration: none;
}
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
div.columns{display: flex; gap: min(4vw, 1.5em);}
div.column{flex: auto; overflow-x: auto;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
/* The extra [class] is a hack that increases specificity enough to
override a similar rule in reveal.js */
ul.task-list[class]{list-style: none;}
ul.task-list li input[type="checkbox"] {
font-size: inherit;
width: 0.8em;
margin: 0 0.8em 0.2em -1.6em;
vertical-align: middle;
}
.display.math{display: block; text-align: center; margin: 0.5rem auto;}
</style>
</head>
<body>
<header id="title-block-header">
<h1 class="title">cipherbliss_blog</h1>
</header>
<h1 id="article">Article</h1>
<ul>
<li>ID: 1614</li>
<li>guid:</li>
<li>status: publish</li>
<li>publié le: &lt;2022-01-06 18:35:54&gt;</li>
<li>modifié: &lt;2022-01-06 21:14:35&gt;</li>
<li>Index des articles du blog <a
href="id:39e91a2e-d003-4acd-a99a-b58dca74df77">Cipherbliss blog</a></li>
</ul>
<h2 id="programme-pour-une-année-2022-moins-pire">Programme pour une
année 2022 moins pire</h2>
<p>ceci<sub>estduhtml</sub></p>
<p>Woof, que de choses se sont passées cette année Migration d'un
système de gestion de projets depuis Getting Things Gnome vers des
fichiers Orgmode dans Emacs, qui reste une chose compliquée et
nécessitant de nombreux ajustements pour en avoir une utilisation
efficace. Plein de donations envoyées à des assos, ainsi que des
créateurs et créatrices (comme Wikimedia, Archive.org, Gnupg, La
quadrature du net, Nos Oignons, Framasoft, Openstreetmap, les voix du
nucléaire, Le Réveilleur, Méta de choc…) pour un montant total d'environ
1500€ dans l'année passée.</p>
<p>Aucune donation reçue sur le compte liberapay de cipherbliss cette
année comparée à l'année précédente. Si vous trouvez que les services
déployés par mon entreprise et que ce que l'on fait ici vous est utile,
je vous invite à nous faire un don par ici &lt;a href="<a
href="https://liberapay.com/cipherbliss">https://liberapay.com/cipherbliss</a>"&gt;<a
href="https://liberapay.com/cipherbliss">https://liberapay.com/cipherbliss</a>&lt;/a&gt;.
ça nous aide à payer les infrastructures (700€ par an pour mastodon,
peertube, leurs backups et d'autres choses à venir) dégager d'avantage
de temps à la modération des service, leur maintenance, la mise en place
d'ateliers gratuits d'éducation populaire et l'amélioration de logiciels
libres.</p>
<p>Le boulot, c'était pas évident durant 2020, mais au final ça a pu se
faire à peu près normalement et à quasi 100% en télétravail, avec
d'avantage de missions en direct avec le client, ce qui est mieux sur
beaucoup de points quand on est freelance. Alors que d'habitude des tas
de boites me contactent régulièrement, même si j'affiche ne pas être
disponible, c'était le calme plat pendant les premières périodes de
confinement, soit les trois quarts de 2020. 2021 s'est déroulé un brin
plus normalement de ce côté là. Et la famille, bah ça se passe. Les
amis, on les voit un peu plus quand y'a pas moult contaminations de
partout et moyens de santé publique défoncés. Donc pas hyper souvent non
plus. Et le turfu pour cette année? Premièrement, réaliser au moins un
café vie privée dans des petits patelins d'Essonne. &lt;a href="<a
href="https://www.cipherbliss.com/wp-content/uploads/2022/01/affiche-scaled.jpg">https://www.cipherbliss.com/wp-content/uploads/2022/01/affiche-scaled.jpg</a>"&gt;&lt;img
class="aligncenter size-large wp-image-1615" src="<a
href="https://www.cipherbliss.com/wp-content/uploads/2022/01/affiche-724x1024.jpg">https://www.cipherbliss.com/wp-content/uploads/2022/01/affiche-724x1024.jpg</a>"
alt="" width="620" height="877" /&gt;&lt;/a&gt; Le premier aura lieu le
Samedi 22 Janvier, voilà son &lt;a href="<a
href="https://mobilizon.chapril.org/events/8ca0c0e3-3c3e-4ec1-92bd-13507f1a3a08">https://mobilizon.chapril.org/events/8ca0c0e3-3c3e-4ec1-92bd-13507f1a3a08</a>"&gt;évènement
mobilizon.&lt;/a&gt; ça causera gestionnaire de mot de passe et vie
privée en général. Puis sortir une version bêta pour Framadate funky,
sous un nom à définir avec la DINUM. Compléter mon wiki personnel,
publier des tas de dessins et leurs sources numériques. Faire davantage
de vélo, voir un peu plus de monde. Et on sera déjà bien.</p>
<p>Et vous, que prévoyez vous de beau cette année?</p>
<p>Allez à tantôt!</p>
<h1 id="liens">Liens</h1>
<ul>
<li>cipherbliss <a
href="id:d14d8051-bbb9-4279-a574-84d78bfe5b66">Cipherbliss blog</a></li>
</ul>
</body>
</html>

View File

@ -0,0 +1,220 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
<head>
<meta charset="utf-8" />
<meta name="generator" content="pandoc" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
<title>cipherbliss_blog</title>
<style>
html {
color: #1a1a1a;
background-color: #fdfdfd;
}
body {
margin: 0 auto;
max-width: 36em;
padding-left: 50px;
padding-right: 50px;
padding-top: 50px;
padding-bottom: 50px;
hyphens: auto;
overflow-wrap: break-word;
text-rendering: optimizeLegibility;
font-kerning: normal;
}
@media (max-width: 600px) {
body {
font-size: 0.9em;
padding: 12px;
}
h1 {
font-size: 1.8em;
}
}
@media print {
html {
background-color: white;
}
body {
background-color: transparent;
color: black;
font-size: 12pt;
}
p, h2, h3 {
orphans: 3;
widows: 3;
}
h2, h3, h4 {
page-break-after: avoid;
}
}
p {
margin: 1em 0;
}
a {
color: #1a1a1a;
}
a:visited {
color: #1a1a1a;
}
img {
max-width: 100%;
}
h1, h2, h3, h4, h5, h6 {
margin-top: 1.4em;
}
h5, h6 {
font-size: 1em;
font-style: italic;
}
h6 {
font-weight: normal;
}
ol, ul {
padding-left: 1.7em;
margin-top: 1em;
}
li > ol, li > ul {
margin-top: 0;
}
blockquote {
margin: 1em 0 1em 1.7em;
padding-left: 1em;
border-left: 2px solid #e6e6e6;
color: #606060;
}
code {
font-family: Menlo, Monaco, Consolas, 'Lucida Console', monospace;
font-size: 85%;
margin: 0;
hyphens: manual;
}
pre {
margin: 1em 0;
overflow: auto;
}
pre code {
padding: 0;
overflow: visible;
overflow-wrap: normal;
}
.sourceCode {
background-color: transparent;
overflow: visible;
}
hr {
background-color: #1a1a1a;
border: none;
height: 1px;
margin: 1em 0;
}
table {
margin: 1em 0;
border-collapse: collapse;
width: 100%;
overflow-x: auto;
display: block;
font-variant-numeric: lining-nums tabular-nums;
}
table caption {
margin-bottom: 0.75em;
}
tbody {
margin-top: 0.5em;
border-top: 1px solid #1a1a1a;
border-bottom: 1px solid #1a1a1a;
}
th {
border-top: 1px solid #1a1a1a;
padding: 0.25em 0.5em 0.25em 0.5em;
}
td {
padding: 0.125em 0.5em 0.25em 0.5em;
}
header {
margin-bottom: 4em;
text-align: center;
}
#TOC li {
list-style: none;
}
#TOC ul {
padding-left: 1.3em;
}
#TOC > ul {
padding-left: 0;
}
#TOC a:not(:hover) {
text-decoration: none;
}
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
div.columns{display: flex; gap: min(4vw, 1.5em);}
div.column{flex: auto; overflow-x: auto;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
/* The extra [class] is a hack that increases specificity enough to
override a similar rule in reveal.js */
ul.task-list[class]{list-style: none;}
ul.task-list li input[type="checkbox"] {
font-size: inherit;
width: 0.8em;
margin: 0 0.8em 0.2em -1.6em;
vertical-align: middle;
}
.display.math{display: block; text-align: center; margin: 0.5rem auto;}
</style>
</head>
<body>
<header id="title-block-header">
<h1 class="title">cipherbliss_blog</h1>
</header>
<h1 id="ressources-de-café-vie-privée-1">Ressources de café vie
privée</h1>
<p>Voici de quoi se repérer dans la jungle des notions voisines à celle
de la vie privée.</p>
<p>Vous retrouverez ici de nombreuses notions abordées lors des cafés
vie privée que janime, avec dautres personnes intéressées par les les
enjeux autour des logiciels libres et des communs, tel que le groupe <a
href="https://web.archive.org/web/20240617080716/https://www.liness.org/">Liness</a>
en Essonne.</p>
<p>Les slides de mes présentations et les autres fichiers de support de
présentation sont disponibles dans <a
href="https://web.archive.org/web/20240617080716/https://cloud.tykayn.fr/index.php/s/FQ57cqXmJ6ngDfo">le
dossier de partage nextcloud</a>: <a
href="https://web.archive.org/web/20240617080716/https://cloud.tykayn.fr/index.php/s/FQ57cqXmJ6ngDfo"><span>https://cloud.tykayn.fr/index.php/s/FQ57cqXmJ6ngDfo</span></a></p>
<p>Vous pouvez me contacter via les divers moyens listés dans <a
href="https://web.archive.org/web/20240617080716/https://www.cipherbliss.com/contact">la
page dédiée aux moyens de contact</a>.</p>
<p>Dans un café vie privée on vulgarise auprès du grand public des
enjeux et des notions autour de la vie privée et des technologies
numériques. Voici quelques sujets régulièrement abordés dans les
ateliers:</p>
<p>Comprendre les dangers dun monde sans vie privée répandu sous la
fameuse idée que l' »on a rien à cacher », communiquer de façon
sécurisée, réaliser des sauvegardes automatiques, comprendre
larchitecture dinternet et du web, contribuer au libre, défendre le
droit daccès à linformation de qualité, comprendre les sciences,
sortir des GAFAM, adopter <a
href="https://web.archive.org/web/20240617080716/https://www.chatons.org/">les
CHATONS</a>, protéger des accès avec des <a
href="https://web.archive.org/web/20240617080716/https://www.cipherbliss.com/comment-ne-plus-perdre-de-temps-avec-ses-mots-de-passe/">gestionnaires
de mot de passe</a>, sortir des bulles de filtrage des médias sociaux,
récupérer son temps dattention, suivre les évolutions juridiques et les
atteintes aux libertés fondamentales, remettre la solidarité humaine et
lémancipation au cœur des enjeux de société.</p>
<p>Des évènements et groupes de personnes similaires peuvent être
retrouvés dans l<a
href="https://web.archive.org/web/20240617080716/https://www.agendadulibre.org/">agenda
du libre</a> et dans le fédiverse.</p>
<p>Des recettes de cookies sous licence libre, la fameuse pâtisserie qui
habite dans nos navigateurs web : <a
href="https://web.archive.org/web/20240617080716/https://www.cuisine-libre.org/cookies"><span>https://www.cuisine-libre.org/cookies</span></a></p>
<p>Trouver des alternatives aux logiciels privateurs: <a
href="https://web.archive.org/web/20240617080716/https://alternativeto.net/"><span>https://alternativeto.net</span></a></p>
<p>Le covoiturage libre: <a
href="https://web.archive.org/web/20240617080716/https://www.mobicoop.fr/"><span>https://www.mobicoop.fr</span></a></p>
<p>Sci hub pour libérer laccès aux publications scientifiques: <a
href="https://web.archive.org/web/20240617080716/https://sci-hub.hkvisa.net/"><span>https://sci-hub.hkvisa.net</span></a></p>
<p>Bon voyage sur les internets!</p>
</body>
</html>

View File

@ -0,0 +1,217 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
<head>
<meta charset="utf-8" />
<meta name="generator" content="pandoc" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
<title>cipherbliss_blog</title>
<style>
html {
color: #1a1a1a;
background-color: #fdfdfd;
}
body {
margin: 0 auto;
max-width: 36em;
padding-left: 50px;
padding-right: 50px;
padding-top: 50px;
padding-bottom: 50px;
hyphens: auto;
overflow-wrap: break-word;
text-rendering: optimizeLegibility;
font-kerning: normal;
}
@media (max-width: 600px) {
body {
font-size: 0.9em;
padding: 12px;
}
h1 {
font-size: 1.8em;
}
}
@media print {
html {
background-color: white;
}
body {
background-color: transparent;
color: black;
font-size: 12pt;
}
p, h2, h3 {
orphans: 3;
widows: 3;
}
h2, h3, h4 {
page-break-after: avoid;
}
}
p {
margin: 1em 0;
}
a {
color: #1a1a1a;
}
a:visited {
color: #1a1a1a;
}
img {
max-width: 100%;
}
h1, h2, h3, h4, h5, h6 {
margin-top: 1.4em;
}
h5, h6 {
font-size: 1em;
font-style: italic;
}
h6 {
font-weight: normal;
}
ol, ul {
padding-left: 1.7em;
margin-top: 1em;
}
li > ol, li > ul {
margin-top: 0;
}
blockquote {
margin: 1em 0 1em 1.7em;
padding-left: 1em;
border-left: 2px solid #e6e6e6;
color: #606060;
}
code {
font-family: Menlo, Monaco, Consolas, 'Lucida Console', monospace;
font-size: 85%;
margin: 0;
hyphens: manual;
}
pre {
margin: 1em 0;
overflow: auto;
}
pre code {
padding: 0;
overflow: visible;
overflow-wrap: normal;
}
.sourceCode {
background-color: transparent;
overflow: visible;
}
hr {
background-color: #1a1a1a;
border: none;
height: 1px;
margin: 1em 0;
}
table {
margin: 1em 0;
border-collapse: collapse;
width: 100%;
overflow-x: auto;
display: block;
font-variant-numeric: lining-nums tabular-nums;
}
table caption {
margin-bottom: 0.75em;
}
tbody {
margin-top: 0.5em;
border-top: 1px solid #1a1a1a;
border-bottom: 1px solid #1a1a1a;
}
th {
border-top: 1px solid #1a1a1a;
padding: 0.25em 0.5em 0.25em 0.5em;
}
td {
padding: 0.125em 0.5em 0.25em 0.5em;
}
header {
margin-bottom: 4em;
text-align: center;
}
#TOC li {
list-style: none;
}
#TOC ul {
padding-left: 1.3em;
}
#TOC > ul {
padding-left: 0;
}
#TOC a:not(:hover) {
text-decoration: none;
}
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
div.columns{display: flex; gap: min(4vw, 1.5em);}
div.column{flex: auto; overflow-x: auto;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
/* The extra [class] is a hack that increases specificity enough to
override a similar rule in reveal.js */
ul.task-list[class]{list-style: none;}
ul.task-list li input[type="checkbox"] {
font-size: inherit;
width: 0.8em;
margin: 0 0.8em 0.2em -1.6em;
vertical-align: middle;
}
.display.math{display: block; text-align: center; margin: 0.5rem auto;}
</style>
</head>
<body>
<header id="title-block-header">
<h1 class="title">cipherbliss_blog</h1>
</header>
<h1 id="tags-1">Tags</h1>
<p>Étiquettes</p>
<p><a href="file:///tag/ai/">AI</a> <a
href="file:///tag/archives/">archives</a> <a
href="file:///tag/autohebergement/">autohébergement</a> <a
href="file:///tag/backup/">backup</a> <a
href="file:///tag/blockchain/">blockchain</a> <a
href="file:///tag/borg/">borg</a> <a
href="file:///tag/caisse/">caisse</a> <a
href="file:///tag/comptabilite/">comptabilité</a> <a
href="file:///tag/comptes/">comptes</a> <a
href="file:///tag/data-visualisation/">data visualisation</a> <a
href="file:///tag/design/">design</a> <a
href="file:///tag/email/">email</a> <a
href="file:///tag/entreprise/">entreprise</a> <a
href="file:///tag/entreprise-individuelle/">entreprise individuelle</a>
<a href="file:///tag/ethereum/">ethereum</a> <a
href="file:///tag/facebook/">facebook</a> <a
href="file:///tag/factures/">factures</a> <a
href="file:///tag/floss/">FLOSS</a> <a
href="file:///tag/fediverse/">fédiverse</a> <a
href="file:///tag/gestion-de-projet/">gestion de projet</a> <a
href="file:///tag/gestion-du-temps/">gestion du temps</a> <a
href="file:///tag/gestionnaire-de-mot-de-passe/">gestionnaire de mot de
passe</a> <a href="file:///tag/gimp/">gimp</a> <a
href="file:///tag/git/">git</a> <a
href="file:///tag/logiciellibre/">logiciellibre</a> <a
href="file:///tag/logiciel-libre/">logiciel libre</a> <a
href="file:///tag/mastodon/">mastodon</a> <a
href="file:///tag/mobilizon/">mobilizon</a> <a
href="file:///tag/mot-de-passe/">mot de passe</a> <a
href="file:///tag/mysql/">mysql</a> <a
href="file:///tag/nextcloud/">nextcloud</a> <a
href="file:///tag/open-source/">open source</a> <a
href="file:///tag/openstreetmap/">openstreetmap</a> <a
href="file:///tag/orgmode/">orgmode</a> <a
href="file:///tag/osm/">OSM</a> <a href="file:///tag/photos/">photos</a>
<a href="file:///tag/pim/">pim</a> <a
href="file:///tag/projet/">projet</a> <a
href="file:///tag/prevision/">prévision</a> <a
href="file:///tag/python/">python</a> <a
href="file:///tag/reseau-social/">réseau social</a> <a
href="file:///tag/sauvegardes/">sauvegardes</a> <a
href="file:///tag/script/">script</a> <a href="file:///tag/ux/">UX</a>
<a href="file:///tag/vie-privee/">vie privée</a></p>
</body>
</html>

View File

@ -0,0 +1,313 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
<head>
<meta charset="utf-8" />
<meta name="generator" content="pandoc" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
<title>cipherbliss_blog</title>
<style>
html {
color: #1a1a1a;
background-color: #fdfdfd;
}
body {
margin: 0 auto;
max-width: 36em;
padding-left: 50px;
padding-right: 50px;
padding-top: 50px;
padding-bottom: 50px;
hyphens: auto;
overflow-wrap: break-word;
text-rendering: optimizeLegibility;
font-kerning: normal;
}
@media (max-width: 600px) {
body {
font-size: 0.9em;
padding: 12px;
}
h1 {
font-size: 1.8em;
}
}
@media print {
html {
background-color: white;
}
body {
background-color: transparent;
color: black;
font-size: 12pt;
}
p, h2, h3 {
orphans: 3;
widows: 3;
}
h2, h3, h4 {
page-break-after: avoid;
}
}
p {
margin: 1em 0;
}
a {
color: #1a1a1a;
}
a:visited {
color: #1a1a1a;
}
img {
max-width: 100%;
}
h1, h2, h3, h4, h5, h6 {
margin-top: 1.4em;
}
h5, h6 {
font-size: 1em;
font-style: italic;
}
h6 {
font-weight: normal;
}
ol, ul {
padding-left: 1.7em;
margin-top: 1em;
}
li > ol, li > ul {
margin-top: 0;
}
blockquote {
margin: 1em 0 1em 1.7em;
padding-left: 1em;
border-left: 2px solid #e6e6e6;
color: #606060;
}
code {
font-family: Menlo, Monaco, Consolas, 'Lucida Console', monospace;
font-size: 85%;
margin: 0;
hyphens: manual;
}
pre {
margin: 1em 0;
overflow: auto;
}
pre code {
padding: 0;
overflow: visible;
overflow-wrap: normal;
}
.sourceCode {
background-color: transparent;
overflow: visible;
}
hr {
background-color: #1a1a1a;
border: none;
height: 1px;
margin: 1em 0;
}
table {
margin: 1em 0;
border-collapse: collapse;
width: 100%;
overflow-x: auto;
display: block;
font-variant-numeric: lining-nums tabular-nums;
}
table caption {
margin-bottom: 0.75em;
}
tbody {
margin-top: 0.5em;
border-top: 1px solid #1a1a1a;
border-bottom: 1px solid #1a1a1a;
}
th {
border-top: 1px solid #1a1a1a;
padding: 0.25em 0.5em 0.25em 0.5em;
}
td {
padding: 0.125em 0.5em 0.25em 0.5em;
}
header {
margin-bottom: 4em;
text-align: center;
}
#TOC li {
list-style: none;
}
#TOC ul {
padding-left: 1.3em;
}
#TOC > ul {
padding-left: 0;
}
#TOC a:not(:hover) {
text-decoration: none;
}
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
div.columns{display: flex; gap: min(4vw, 1.5em);}
div.column{flex: auto; overflow-x: auto;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
/* The extra [class] is a hack that increases specificity enough to
override a similar rule in reveal.js */
ul.task-list[class]{list-style: none;}
ul.task-list li input[type="checkbox"] {
font-size: inherit;
width: 0.8em;
margin: 0 0.8em 0.2em -1.6em;
vertical-align: middle;
}
.display.math{display: block; text-align: center; margin: 0.5rem auto;}
/* CSS for syntax highlighting */
pre > code.sourceCode { white-space: pre; position: relative; }
pre > code.sourceCode > span { line-height: 1.25; }
pre > code.sourceCode > span:empty { height: 1.2em; }
.sourceCode { overflow: visible; }
code.sourceCode > span { color: inherit; text-decoration: inherit; }
div.sourceCode { margin: 1em 0; }
pre.sourceCode { margin: 0; }
@media screen {
div.sourceCode { overflow: auto; }
}
@media print {
pre > code.sourceCode { white-space: pre-wrap; }
pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; }
}
pre.numberSource code
{ counter-reset: source-line 0; }
pre.numberSource code > span
{ position: relative; left: -4em; counter-increment: source-line; }
pre.numberSource code > span > a:first-child::before
{ content: counter(source-line);
position: relative; left: -1em; text-align: right; vertical-align: baseline;
border: none; display: inline-block;
-webkit-touch-callout: none; -webkit-user-select: none;
-khtml-user-select: none; -moz-user-select: none;
-ms-user-select: none; user-select: none;
padding: 0 4px; width: 4em;
color: #aaaaaa;
}
pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa; padding-left: 4px; }
div.sourceCode
{ }
@media screen {
pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }
}
code span.al { color: #ff0000; font-weight: bold; } /* Alert */
code span.an { color: #60a0b0; font-weight: bold; font-style: italic; } /* Annotation */
code span.at { color: #7d9029; } /* Attribute */
code span.bn { color: #40a070; } /* BaseN */
code span.bu { color: #008000; } /* BuiltIn */
code span.cf { color: #007020; font-weight: bold; } /* ControlFlow */
code span.ch { color: #4070a0; } /* Char */
code span.cn { color: #880000; } /* Constant */
code span.co { color: #60a0b0; font-style: italic; } /* Comment */
code span.cv { color: #60a0b0; font-weight: bold; font-style: italic; } /* CommentVar */
code span.do { color: #ba2121; font-style: italic; } /* Documentation */
code span.dt { color: #902000; } /* DataType */
code span.dv { color: #40a070; } /* DecVal */
code span.er { color: #ff0000; font-weight: bold; } /* Error */
code span.ex { } /* Extension */
code span.fl { color: #40a070; } /* Float */
code span.fu { color: #06287e; } /* Function */
code span.im { color: #008000; font-weight: bold; } /* Import */
code span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Information */
code span.kw { color: #007020; font-weight: bold; } /* Keyword */
code span.op { color: #666666; } /* Operator */
code span.ot { color: #007020; } /* Other */
code span.pp { color: #bc7a00; } /* Preprocessor */
code span.sc { color: #4070a0; } /* SpecialChar */
code span.ss { color: #bb6688; } /* SpecialString */
code span.st { color: #4070a0; } /* String */
code span.va { color: #19177c; } /* Variable */
code span.vs { color: #4070a0; } /* VerbatimString */
code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warning */
</style>
</head>
<body>
<header id="title-block-header">
<h1 class="title">cipherbliss_blog</h1>
</header>
<h1
id="connaître-la-couleur-des-jours-edf-tempo-en-ligne-de-commande-1">Connaître
la couleur des jours EDF Tempo en ligne de commande</h1>
<p>EDF expose une API pour connaître les couleurs de jour TEMPO, mais
cette api n'est pas bien référencée sur le wouaib, ce sont donc des
sites qui n'ont rien à voir qui vous donneront cette info avec moult
trackers et pubs de partout.</p>
<p>Voici l'url dont vous avez besoin:</p>
<p>&gt; <a
href="https://api-commerce.edf.fr/commerce/activet/v1/calendrier-jours-effacement?option=TEMPO&amp;dateApplicationBorneInf=%7Bdate_inférieure%7D&amp;dateApplicationBorneSup=%7Bdate_supérieure%7D&amp;identifiantConsommateur=src">https://api-commerce.edf.fr/commerce/activet/v1/calendrier-jours-effacement?option=TEMPO&amp;dateApplicationBorneInf={date_inférieure}&amp;dateApplicationBorneSup={date_supérieure}&amp;identifiantConsommateur=src</a></p>
<p>Cette API de commerce EDF ne fonctionne que si vous demandez des
dates ayant 365 jours d'écart de différence, et si vous ne mettez pas de
zéro précédant le numéro de journée au format année-mois-jour. Autre
limitation, la couleur du jour du lendemain vous sera donnée seulement à
partir de 11h du matin dans la journée.</p>
<p>Fabriquez vous un petit script en python pour aller pêcher ce
calendrier, piocher les couleurs des deux derniers jours. Il vous
suffira d'un alias de commande pour lancer "python
mon<sub>scripttempo</sub>.py" en ayant le dossier où le script est placé
dans votre variable d'environnement PATH.</p>
<div class="sourceCode" id="cb1"><pre
class="sourceCode python"><code class="sourceCode python"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-2"><a href="#cb1-2" aria-hidden="true" tabindex="-1"></a><span class="im">import</span> requests</span>
<span id="cb1-3"><a href="#cb1-3" aria-hidden="true" tabindex="-1"></a><span class="im">import</span> json</span>
<span id="cb1-4"><a href="#cb1-4" aria-hidden="true" tabindex="-1"></a><span class="im">from</span> datetime <span class="im">import</span> datetime, timedelta </span>
<span id="cb1-5"><a href="#cb1-5" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-6"><a href="#cb1-6" aria-hidden="true" tabindex="-1"></a><span class="kw">def</span> date_il_y_a_un_an(date):</span>
<span id="cb1-7"><a href="#cb1-7" aria-hidden="true" tabindex="-1"></a> date_obj <span class="op">=</span> datetime.strptime(date, <span class="st">&quot;%Y-%m-</span><span class="sc">%d</span><span class="st">&quot;</span>)</span>
<span id="cb1-8"><a href="#cb1-8" aria-hidden="true" tabindex="-1"></a> date_il_y_a_un_an <span class="op">=</span> date_obj <span class="op">-</span> timedelta(days<span class="op">=</span><span class="dv">365</span>)</span>
<span id="cb1-9"><a href="#cb1-9" aria-hidden="true" tabindex="-1"></a> <span class="cf">return</span> date_il_y_a_un_an.strftime(<span class="st">&quot;%Y-%m-</span><span class="sc">%d</span><span class="st">&quot;</span>)</span>
<span id="cb1-10"><a href="#cb1-10" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-11"><a href="#cb1-11" aria-hidden="true" tabindex="-1"></a><span class="kw">def</span> get_tempo_for_today_and_tomorrow():</span>
<span id="cb1-12"><a href="#cb1-12" aria-hidden="true" tabindex="-1"></a> <span class="co"># Obtenir la date d&#39;aujourd&#39;hui</span></span>
<span id="cb1-13"><a href="#cb1-13" aria-hidden="true" tabindex="-1"></a> datenow <span class="op">=</span> datetime.now()</span>
<span id="cb1-14"><a href="#cb1-14" aria-hidden="true" tabindex="-1"></a> sup <span class="op">=</span> (datenow <span class="op">+</span> timedelta(days<span class="op">=</span><span class="dv">1</span>))</span>
<span id="cb1-15"><a href="#cb1-15" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-16"><a href="#cb1-16" aria-hidden="true" tabindex="-1"></a> inf <span class="op">=</span> date_il_y_a_un_an(datenow.strftime(<span class="st">&quot;%Y-%m-</span><span class="sc">%d</span><span class="st">&quot;</span>))</span>
<span id="cb1-17"><a href="#cb1-17" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-18"><a href="#cb1-18" aria-hidden="true" tabindex="-1"></a> <span class="co"># Obtenir la date de demain</span></span>
<span id="cb1-19"><a href="#cb1-19" aria-hidden="true" tabindex="-1"></a> sup <span class="op">=</span> sup.strftime(<span class="st">&quot;%Y-%m-</span><span class="sc">%d</span><span class="st">&quot;</span>)</span>
<span id="cb1-20"><a href="#cb1-20" aria-hidden="true" tabindex="-1"></a> sup <span class="op">=</span> sup.replace(<span class="st">&quot;-0&quot;</span>, <span class="st">&quot;-&quot;</span>)</span>
<span id="cb1-21"><a href="#cb1-21" aria-hidden="true" tabindex="-1"></a> inf <span class="op">=</span> inf.replace(<span class="st">&quot;-0&quot;</span>, <span class="st">&quot;-&quot;</span>)</span>
<span id="cb1-22"><a href="#cb1-22" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-23"><a href="#cb1-23" aria-hidden="true" tabindex="-1"></a> <span class="co"># print(&quot;Date inf :&quot;, inf)</span></span>
<span id="cb1-24"><a href="#cb1-24" aria-hidden="true" tabindex="-1"></a> <span class="co"># print(&quot;Date sup:&quot;, sup)</span></span>
<span id="cb1-25"><a href="#cb1-25" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-26"><a href="#cb1-26" aria-hidden="true" tabindex="-1"></a> <span class="co"># URL de l&#39;API d&#39;EDF pour récupérer les informations sur les couleurs des jours de l&#39;offre Tempo</span></span>
<span id="cb1-27"><a href="#cb1-27" aria-hidden="true" tabindex="-1"></a> url <span class="op">=</span> <span class="ss">f&quot;https://api-commerce.edf.fr/commerce/activet/v1/calendrier-jours-effacement?option=TEMPO&amp;dateApplicationBorneInf=</span><span class="sc">{</span>inf<span class="sc">}</span><span class="ss">&amp;dateApplicationBorneSup=</span><span class="sc">{</span>sup<span class="sc">}</span><span class="ss">&amp;identifiantConsommateur=src&quot;</span></span>
<span id="cb1-28"><a href="#cb1-28" aria-hidden="true" tabindex="-1"></a> <span class="bu">print</span>(url)</span>
<span id="cb1-29"><a href="#cb1-29" aria-hidden="true" tabindex="-1"></a> <span class="co"># Effectuer la requête HTTP et récupérer la réponse JSON</span></span>
<span id="cb1-30"><a href="#cb1-30" aria-hidden="true" tabindex="-1"></a> response <span class="op">=</span> requests.get(url)</span>
<span id="cb1-31"><a href="#cb1-31" aria-hidden="true" tabindex="-1"></a> data <span class="op">=</span> json.loads(response.text)</span>
<span id="cb1-32"><a href="#cb1-32" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-33"><a href="#cb1-33" aria-hidden="true" tabindex="-1"></a> <span class="co"># Récupérer la liste des couleurs des jours pour les 30 prochains jours</span></span>
<span id="cb1-34"><a href="#cb1-34" aria-hidden="true" tabindex="-1"></a> calendrier <span class="op">=</span> data[<span class="st">&quot;content&quot;</span>][<span class="st">&quot;options&quot;</span>][<span class="dv">0</span>][<span class="st">&quot;calendrier&quot;</span>]</span>
<span id="cb1-35"><a href="#cb1-35" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-36"><a href="#cb1-36" aria-hidden="true" tabindex="-1"></a> texte_retour<span class="op">=</span><span class="st">&quot;&quot;</span></span>
<span id="cb1-37"><a href="#cb1-37" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-38"><a href="#cb1-38" aria-hidden="true" tabindex="-1"></a> <span class="co"># # Afficher les couleurs des jours pour le prochain jour</span></span>
<span id="cb1-39"><a href="#cb1-39" aria-hidden="true" tabindex="-1"></a> <span class="cf">for</span> jour <span class="kw">in</span> calendrier[<span class="op">-</span><span class="dv">2</span>:]:</span>
<span id="cb1-40"><a href="#cb1-40" aria-hidden="true" tabindex="-1"></a> date <span class="op">=</span> jour[<span class="st">&quot;dateApplication&quot;</span>]</span>
<span id="cb1-41"><a href="#cb1-41" aria-hidden="true" tabindex="-1"></a> code_couleur <span class="op">=</span> jour[<span class="st">&quot;statut&quot;</span>]</span>
<span id="cb1-42"><a href="#cb1-42" aria-hidden="true" tabindex="-1"></a> <span class="cf">if</span> code_couleur <span class="op">==</span> <span class="st">&quot;TEMPO_BLEU&quot;</span>:</span>
<span id="cb1-43"><a href="#cb1-43" aria-hidden="true" tabindex="-1"></a> texte_retour<span class="op">+=</span>(<span class="ss">f&quot;</span><span class="ch">\033</span><span class="ss">[34m</span><span class="sc">{</span>date<span class="sc">}</span><span class="ss">: journée </span><span class="sc">{</span>code_couleur<span class="sc">}</span><span class="ch">\033</span><span class="ss">[0m</span><span class="ch">\n</span><span class="ss">&quot;</span>)</span>
<span id="cb1-44"><a href="#cb1-44" aria-hidden="true" tabindex="-1"></a> <span class="cf">elif</span> code_couleur <span class="op">==</span> <span class="st">&quot;TEMPO_BLANC&quot;</span>:</span>
<span id="cb1-45"><a href="#cb1-45" aria-hidden="true" tabindex="-1"></a> texte_retour<span class="op">+=</span>(<span class="ss">f&quot;</span><span class="ch">\033</span><span class="ss">[37m</span><span class="sc">{</span>date<span class="sc">}</span><span class="ss">: journée </span><span class="sc">{</span>code_couleur<span class="sc">}</span><span class="ch">\033</span><span class="ss">[0m</span><span class="ch">\n</span><span class="ss">&quot;</span>)</span>
<span id="cb1-46"><a href="#cb1-46" aria-hidden="true" tabindex="-1"></a> <span class="cf">elif</span> code_couleur <span class="op">==</span> <span class="st">&quot;TEMPO_ROUGE&quot;</span>:</span>
<span id="cb1-47"><a href="#cb1-47" aria-hidden="true" tabindex="-1"></a> texte_retour<span class="op">+=</span>(<span class="ss">f&quot;</span><span class="ch">\033</span><span class="ss">[31m</span><span class="sc">{</span>date<span class="sc">}</span><span class="ss">: journée </span><span class="sc">{</span>code_couleur<span class="sc">}</span><span class="ch">\033</span><span class="ss">[0m</span><span class="ch">\n</span><span class="ss">&quot;</span>)</span>
<span id="cb1-48"><a href="#cb1-48" aria-hidden="true" tabindex="-1"></a> <span class="cf">else</span>:</span>
<span id="cb1-49"><a href="#cb1-49" aria-hidden="true" tabindex="-1"></a> texte_retour<span class="op">+=</span>(<span class="ss">f&quot;</span><span class="sc">{</span>date<span class="sc">}</span><span class="ss">: journée </span><span class="sc">{</span>code_couleur<span class="sc">}</span><span class="ss">&quot;</span>)</span>
<span id="cb1-50"><a href="#cb1-50" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-51"><a href="#cb1-51" aria-hidden="true" tabindex="-1"></a> <span class="cf">return</span> texte_retour</span>
<span id="cb1-52"><a href="#cb1-52" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-53"><a href="#cb1-53" aria-hidden="true" tabindex="-1"></a>texte <span class="op">=</span> get_tempo_for_today_and_tomorrow()</span>
<span id="cb1-54"><a href="#cb1-54" aria-hidden="true" tabindex="-1"></a><span class="bu">print</span>(texte)</span>
<span id="cb1-55"><a href="#cb1-55" aria-hidden="true" tabindex="-1"></a></span></code></pre></div>
<p>Bonne réduction des pointes de conso!</p>
</body>
</html>

View File

@ -0,0 +1,12 @@
---------------
Si vous aimez ce que nous faisons à Cipher Bliss, vous pouvez nous soutenir de plusieurs façons: en faisant un micro don sur liberapay , ou en cryptomonnaies. Le plus simple nous pour nous faire connaître étant de partager cet article.
Suivez moi sur Mastodon @tykayn@mastodon.cipherbliss.com.
Ce site restera libre comme un gnou dans la nature et sans pubs, parce qu'on vous aime. Que la source soit avec vous!
Cipher Bliss, entreprise individuelle en ingénierie informatique spécialisé dans le front-end, à Orsay.
Faire un don à CipherBliss :
[[https://liberapay.com/cipherbliss/donate]]

View File

@ -1,2 +0,0 @@
# Cipherbliss
----------------

View File

@ -9,7 +9,9 @@ hasardeuses du gouvernement qui ont conduit à une distanciation de plus
en plus énorme. Avec l'âge, les difficultés à affronter pour revoir ses
potes et ses proches sont croissantes. Petit récap sur ces dix quinze
dernières
années.[[https://www.flickr.com/photos/11493299@N00/8044046451][photo
années.
[[https://www.flickr.com/photos/11493299@N00/8044046451][photo
entête: "DSC00031/French Polynésia/Mooréa Island/"]] by
[[https://www.flickr.com/photos/11493299@N00][dany13]] is licensed under
[[https://creativecommons.org/licenses/by/2.0/?ref=ccsearch&atype=rich][CC

1
tag_pages_build.py Normal file
View File

@ -0,0 +1 @@
# construit une liste des tags présents dans les fichiers orgmode en les reliant aux slugs de ces pages, génère une page pour lister les tags, et chaque page listant les articles liés à un tag.

View File

@ -24,55 +24,64 @@
<meta property="og:locale" content="$$LOCALE$$">
<!-- Description de la page -->
<meta name="description" content="$$DESCRIPTION$$">
<meta name="reply-to" content="contact@cipherbliss.com"><!-- Adresse de contact -->
<link rel="icon" type="image/png" href="/img/site_icon.png">
<meta name="reply-to" content="$$EMAIL$$">
<link rel="icon" type="$$SITE_ICON$$" href="$$SITE_ICON$$">
</head>
<body>
<header>
<header id="masthead" class="site-header">
<nav class="navbar is-fixed-top is-dark" role="navigation" aria-label="main navigation">
<div class="navbar-brand">
<a class="navbar-item" href="https://portfolio.cipherbliss.com">
<img src="https://www.cipherbliss.com/wp-content/uploads/2016/12/rond.png" class="img-fluid">
</a>
</div>
<div id="navbarBasicExample" class="navbar-menu">
<div class="navbar-start">
<div id="page">
<header>
<header id="masthead" class="site-header">
<nav class="navbar is-fixed-top is-dark" role="navigation" aria-label="main navigation">
<div class="navbar-brand">
<a class="navbar-item" href="https://portfolio.cipherbliss.com">
<img src="https://www.cipherbliss.com/wp-content/uploads/2016/12/rond.png"
class="img-fluid">
</a>
$$NAVIGATION$$
</div>
<div class="navbar-end">
<div class="navbar-item">
<form role="search" method="get" class="search-form" action="https://www.cipherbliss.com/">
<label>
<input class="search-field" placeholder="Recherche" value="" name="s" type="search">
</label>
<input class="is-hidden search-submit" value="Rechercher" type="submit">
</form>
<div id="navbarBasicExample" class="navbar-menu">
<div class="navbar-start">
<a class="navbar-item" href="https://portfolio.cipherbliss.com">
<img src="https://www.cipherbliss.com/wp-content/uploads/2016/12/rond.png"
class="img-fluid">
</a>
$$NAVIGATION$$
</div>
<div class="navbar-end">
<div class="navbar-item">
<form role="search" method="get" class="search-form" action="/">
<label>
<input class="search-field" placeholder="Recherche" value="" name="s"
type="search">
</label>
<input class="is-hidden search-submit" value="Rechercher" type="submit">
</form>
</div>
</div>
</div>
</div>
</nav>
</header>
</header>
<main class="body-wrap boxed-container">
<article class="content">
$$ARTICLE$$
</article>
</main>
<footer class="site-footer has-top-divider">
<div class="container">
<div class="site-footer-inner">
$$FOOTER$$
</nav>
</header>
<div class="header-image">
$$BANNIERE_ENTETE$$
<!-- <img src="https://clairelemoine.art/wp-content/uploads/2023/10/cropped-SiteEntete-Oiseau-aquarelle-1.jpg" alt="$$BANNIERE_ENTETE_ALT$$"> -->
</div>
</div>
</footer>
</header>
<main class="body-wrap boxed-container">
<article class="content">
$$ARTICLE$$
</article>
</main>
<footer class="site-footer has-top-divider">
<div class="container">
<div class="site-footer-inner">
$$FOOTER$$
</div>
</div>
</footer>
</div>
</body>
<!-- généré avec orgmode-to-gemini-blog par Tykayn -->
</html>

View File

@ -10,7 +10,6 @@ html {
}
body {
text-align: left;
margin: 0 auto;
font-size: 1.5rem;
@ -20,12 +19,7 @@ body {
background: #fff;
}
h1,
h2,
h3,
h4,
h5,
h6 {
h1, h2, h3, h4, h5, h6 {
font-family: Helvetica, "Ubuntu Sans", "Noto Sans", Calibri, Arial, sans-serif;
margin-top: 1em;
margin-bottom: 2rem;
@ -33,9 +27,10 @@ h6 {
}
/* 1. Use a more-intuitive box-sizing model */
*,
*::before,
*::after {
* {
box-sizing: border-box;
}
*::before, *::after {
box-sizing: border-box;
}
@ -49,11 +44,7 @@ body {
}
/* Improve media defaults */
img,
picture,
video,
canvas,
svg {
img, picture, video, canvas, svg {
display: block;
width: 100%;
margin-top: 1rem;
@ -62,21 +53,12 @@ svg {
}
/* Inherit fonts for form controls */
input,
button,
textarea,
select {
input, button, textarea, select {
font: inherit;
}
/* Avoid text overflows */
p,
h1,
h2,
h3,
h4,
h5,
h6 {
p, h1, h2, h3, h4, h5, h6 {
overflow-wrap: break-word;
}
@ -89,7 +71,7 @@ p {
h1 {
font-size: 4rem;
color: #221d30
color: #221d30;
}
h2 {
@ -100,28 +82,26 @@ h3 {
font-size: 1.5rem;
}
h1,
h2,
h3,
h4,
h5,
h6 {
h1, h2, h3, h4, h5, h6 {
text-wrap: balance;
line-height: 1.3em;
}
#root,
#__next {
#root, #__next {
isolation: isolate;
}
input,
button,
textarea,
select {
input, button, textarea, select {
font: inherit;
}
a {
display: inline-block;
padding: 0.5rem 2rem;
margin-right: 1rem;
margin-bottom: 1rem;
}
ul {
padding-left: 4ch;
padding-right: 4ch;
@ -141,3 +121,5 @@ li {
padding: 1rem;
}
}
/*# sourceMappingURL=style_general.css.map */

View File

@ -0,0 +1 @@
{"version":3,"sourceRoot":"","sources":["../styles_src/style_general.scss"],"names":[],"mappings":"AAAA;EACI;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;AAEA;EACE;;AAEA;EACE;;;AAIJ;AACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;AAEA;EACE;EACA;EACA;EACA;EACA;;;AAGF;AAEA;EACE;;;AAGF;AAEA;EACE;;;AAGF;AAEA;EACE;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;;;AAEF;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;IACE","file":"style_general.css"}

View File

@ -0,0 +1,129 @@
* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
html {
font-size: 1rem;
font-family: Helvetica, "Ubuntu Sans", "Noto Sans", Calibri, Arial, sans-serif;
}
body {
text-align: left;
margin: 0 auto;
font-size: 1.5rem;
line-height: 1.5em;
max-width: 70ch;
color: #000;
background: #fff;
}
h1, h2, h3, h4, h5, h6 {
font-family: Helvetica, "Ubuntu Sans", "Noto Sans", Calibri, Arial, sans-serif;
margin-top: 1em;
margin-bottom: 2rem;
color: #333;
}
/* 1. Use a more-intuitive box-sizing model */
* {
box-sizing: border-box;
&::before, &::after {
box-sizing: border-box;
}
}
body {
/* Improve text rendering */
-webkit-font-smoothing: antialiased;
font-family: Helvetica, Arial, sans-serif;
padding-bottom: 20vh;
padding-left: 2rem;
padding-bottom: 2rem;
}
/* Improve media defaults */
img, picture, video, canvas, svg {
display: block;
width: 100%;
margin-top: 1rem;
margin-bottom: 1rem;
max-width: 100%;
}
/* Inherit fonts for form controls */
input, button, textarea, select {
font: inherit;
}
/* Avoid text overflows */
p, h1, h2, h3, h4, h5, h6 {
overflow-wrap: break-word;
}
/* Improve line wrapping */
p {
text-wrap: pretty;
margin-top: 1.5rem;
margin-bottom: 1rem;
}
h1 {
font-size: 4rem;
color: #221d30;
}
h2 {
font-size: 3rem;
}
h3 {
font-size: 1.5rem;
}
h1, h2, h3, h4, h5, h6 {
text-wrap: balance;
line-height: 1.3em;
}
#root, #__next {
isolation: isolate;
}
input, button, textarea, select {
font: inherit;
}
a{
display: inline-block;
padding: 0.5rem 2rem;
margin-right: 1rem;
margin-bottom: 1rem;
}
ul {
padding-left: 4ch;
padding-right: 4ch;
}
li {
margin-bottom: 1em;
}
#title-block-header {
border-bottom: 1px solid #333;
margin-bottom: 1rem;
}
@media (max-width: 20rem) {
body {
padding: 1rem;
}
}