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

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
<<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>>
<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>
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>
[[https://forum.chatons.org/c/collectif/camp-chatons-2021/85]]
&nbsp;
* Liens
- cipherbliss [[id:d14d8051-bbb9-4279-a574-84d78bfe5b66][Cipherbliss blog]]

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>