mirror of
https://forge.chapril.org/tykayn/orgmode-to-gemini-blog
synced 2025-06-20 09:04:42 +02:00
remake detection already built
This commit is contained in:
parent
a029792664
commit
3b9061514f
24 changed files with 248 additions and 1696 deletions
|
@ -28,10 +28,58 @@ if not sorted_articles:
|
|||
|
||||
# Convert the date string to a valid ISO format
|
||||
def convert_to_iso(date_str):
|
||||
# Check if the string contains 'T' and replace it with a single 'T'
|
||||
if 'T' in date_str:
|
||||
date_str = date_str.replace('T', '', 1) # Replace only the first occurrence
|
||||
return f"{date_str[:4]}-{date_str[4:6]}-{date_str[6:8]}T{date_str[8:10]}:{date_str[10:12]}:{date_str[12:14]}"
|
||||
"""
|
||||
Convertit une chaîne de date en format ISO 8601.
|
||||
Gère les formats:
|
||||
- YYYYMMDDHHMMSS
|
||||
- YYYYMMDDTHHMMSS
|
||||
- YYYY-MM-DD
|
||||
|
||||
Retourne: YYYY-MM-DDTHH:MM:SS
|
||||
"""
|
||||
try:
|
||||
# Nettoyer la chaîne d'entrée
|
||||
date_str = date_str.strip()
|
||||
|
||||
# Supprimer tous les 'T' existants
|
||||
date_str = date_str.replace('T', '')
|
||||
|
||||
# Si la date contient des tirets, la convertir au format attendu
|
||||
if '-' in date_str:
|
||||
try:
|
||||
parsed_date = datetime.strptime(date_str, '%Y-%m-%d')
|
||||
return parsed_date.strftime('%Y-%m-%dT00:00:00')
|
||||
except ValueError:
|
||||
print(f"Format de date invalide: {date_str}")
|
||||
return datetime.now().strftime('%Y-%m-%dT%H:%M:%S')
|
||||
|
||||
# S'assurer que la chaîne a la bonne longueur
|
||||
if len(date_str) < 14:
|
||||
date_str = date_str.ljust(14, '0')
|
||||
elif len(date_str) > 14:
|
||||
date_str = date_str[:14]
|
||||
|
||||
# Extraire les composants de la date
|
||||
year = date_str[:4]
|
||||
month = date_str[4:6]
|
||||
day = date_str[6:8]
|
||||
hour = date_str[8:10]
|
||||
minute = date_str[10:12]
|
||||
second = date_str[12:14]
|
||||
|
||||
# Vérifier que tous les composants sont des nombres
|
||||
components = [year, month, day, hour, minute, second]
|
||||
if not all(c.isdigit() for c in components):
|
||||
print(f"Date invalide détectée: {date_str}, utilisation de la date actuelle")
|
||||
return datetime.now().strftime('%Y-%m-%dT%H:%M:%S')
|
||||
|
||||
# Construire la chaîne ISO
|
||||
return f"{year}-{month}-{day}T{hour}:{minute}:{second}"
|
||||
|
||||
except Exception as e:
|
||||
print(f"Erreur lors de la conversion de la date {date_str}: {e}")
|
||||
# En cas d'erreur, retourner la date actuelle
|
||||
return datetime.now().strftime('%Y-%m-%dT%H:%M:%S')
|
||||
|
||||
# Génération du flux Atom
|
||||
with open(f"html-websites/{args.blog}/feed/index.xml", "w", encoding="utf-8") as f:
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
import argparse
|
||||
import json
|
||||
from collections import defaultdict
|
||||
import os
|
||||
|
||||
from jinja2 import Environment, FileSystemLoader
|
||||
import json
|
||||
|
@ -39,11 +40,20 @@ count_not_tagged_files = 0
|
|||
count_orgfiles = 0
|
||||
destination_json = f'sources/{args.blog}/build'
|
||||
json_file = destination_json + '/articles_info.json'
|
||||
# Charger les données JSON
|
||||
with open(json_file, 'r', encoding='utf-8') as f:
|
||||
articles_info = json.load(f)
|
||||
|
||||
if not os.path.exists(json_file):
|
||||
print(f"Le fichier {json_file} n'existe pas. Veuillez d'abord générer le fichier articles_info.json")
|
||||
exit(1)
|
||||
|
||||
try:
|
||||
with open(json_file, 'r', encoding='utf-8') as f:
|
||||
articles_info = json.load(f)
|
||||
except FileNotFoundError:
|
||||
print(f"Impossible de trouver le fichier {json_file}")
|
||||
exit(1)
|
||||
except Exception as e:
|
||||
print(f"Erreur lors de la lecture du fichier {json_file}: {e}")
|
||||
exit(1)
|
||||
|
||||
def find_org_files(directory):
|
||||
org_files = []
|
||||
|
|
|
@ -100,172 +100,197 @@ if generate_linkings_json :
|
|||
# Parcourir les fichiers du dossier
|
||||
|
||||
for index, directory in enumerate(directories_to_scan):
|
||||
print(f"Traitement du dossier {directory}, {index}/{len(directories_to_scan)}")
|
||||
for index, subdir in enumerate(os.listdir(directory)):
|
||||
print(f"Traitement du dossier {directory}/{subdir}, {index}/{len(os.listdir(directory))}")
|
||||
if subdir == ".." or subdir == "build" or subdir == "templates" or subdir == "img":
|
||||
print(f"Traitement du dossier {directory}, {index+1}/{len(directories_to_scan)}")
|
||||
try:
|
||||
# Vérifier si le répertoire existe
|
||||
if not os.path.exists(directory):
|
||||
print(f"Le répertoire {directory} n'existe pas, on passe au suivant")
|
||||
continue
|
||||
# Déterminer le type d'article en fonction du chemin
|
||||
if directory == '/':
|
||||
article_type = "page"
|
||||
else:
|
||||
article_type = "article"
|
||||
# Extraire la langue du dossier si elle commence par "lang_"
|
||||
if directory.split('/')[-1].startswith('lang_'):
|
||||
lang_folder = directory.split('/')[-1][5:] # Prend les caractères après "lang_"
|
||||
for index, file_name in enumerate(os.listdir(f'{directory}/{subdir}')):
|
||||
print(f"directory: {subdir}, {article_type}, {file_name}, {index}/{len(os.listdir(f'{directory}/{subdir}'))}")
|
||||
# Vérifier si le fichier se termine par une extension supportée
|
||||
if not (file_name.endswith('.org') or file_name.endswith('.md') or file_name.endswith('.gmi')):
|
||||
print(f"Fichier {file_name} non supporté")
|
||||
continue
|
||||
if file_name.endswith('.org'):
|
||||
counter+=1
|
||||
# print(f"Traitement de l'article {counter}/{count_articles} {file_name}")
|
||||
file_path = os.path.join(directory, subdir, file_name)
|
||||
if force_html_regen and counter % 10 == 0:
|
||||
print(f"{time.strftime('%H:%M:%S')} : Articles traités : {counter}/{count_articles}")
|
||||
|
||||
# on ouvre chacun des fichiers interprétables
|
||||
# pour déterminer les informations qu'il contient
|
||||
# afin de les stocker dans un json pour la génération des pages html et gemini
|
||||
with open(file_path, "r", encoding="utf-8") as f:
|
||||
print(f"----- Traitement de l'article {counter}/{count_articles} {file_name}")
|
||||
content = f.read()
|
||||
# Convertir le contenu Org en HTML
|
||||
title = find_first_level1_title(content)
|
||||
|
||||
subdirs = [d for d in os.listdir(directory)
|
||||
if os.path.isdir(os.path.join(directory, d))
|
||||
and d not in ["..", "build", "templates", "img"]]
|
||||
|
||||
for subdir_index, subdir in enumerate(subdirs):
|
||||
print(f"Traitement du sous-dossier {subdir}, {subdir_index+1}/{len(subdirs)}")
|
||||
subdir_path = os.path.join(directory, subdir)
|
||||
|
||||
try:
|
||||
# Liste tous les fichiers du sous-dossier avec les extensions supportées
|
||||
files = [f for f in os.listdir(subdir_path)
|
||||
if f.endswith(('.org', '.md', '.gmi'))]
|
||||
|
||||
for file_index, file_name in enumerate(files):
|
||||
print(f"Traitement du fichier {file_name}, {file_index+1}/{len(files)}")
|
||||
# Vérifier si le fichier se termine par une extension supportée
|
||||
if not (file_name.endswith('.org') or file_name.endswith('.md') or file_name.endswith('.gmi')):
|
||||
print(f"Fichier {file_name} non supporté")
|
||||
continue
|
||||
if file_name.endswith('.org'):
|
||||
counter+=1
|
||||
# print(f"Traitement de l'article {counter}/{count_articles} {file_name}")
|
||||
file_path = os.path.join(directory, subdir, file_name)
|
||||
if force_html_regen and counter % 10 == 0:
|
||||
print(f"{time.strftime('%H:%M:%S')} : Articles traités : {counter}/{count_articles}")
|
||||
|
||||
# on ouvre chacun des fichiers interprétables
|
||||
# pour déterminer les informations qu'il contient
|
||||
# afin de les stocker dans un json pour la génération des pages html et gemini
|
||||
with open(file_path, "r", encoding="utf-8") as f:
|
||||
print(f"----- Traitement de l'article {counter}/{count_articles} {file_name}")
|
||||
content = f.read()
|
||||
# Convertir le contenu Org en HTML
|
||||
title = find_first_level1_title(content)
|
||||
|
||||
date_modified = time.ctime(os.path.getmtime(file_path))
|
||||
date_modified = time.ctime(os.path.getmtime(file_path))
|
||||
|
||||
rebuild_this_article_gemini = False
|
||||
rebuild_this_article_html = False
|
||||
|
||||
basename = get_basename(file_name)
|
||||
date_str, annee, slug = find_year_and_slug_on_filename(basename)
|
||||
slug = slugify_title(title)
|
||||
tags = extract_tags_from_file(file_path, global_config['excluded_tags'])
|
||||
|
||||
# Convertir les tags en liste si c'est un set
|
||||
if isinstance(tags, set):
|
||||
tags = list(tags)
|
||||
boom = basename.split('__')
|
||||
|
||||
|
||||
# Désactiver les warning d'identifiant dupliqué dans la conversion pandoc
|
||||
content_without_h1 = re.sub(r'^\*.*?$', '', content, count=1, flags=re.MULTILINE)
|
||||
|
||||
gemini_content = ''
|
||||
html_content = ''
|
||||
html_content_without_h1 = ''
|
||||
# Vérifier l'existence du fichier HTML pour déterminer last_html_build
|
||||
html_path = f"html-websites/{args.blog}/{annee}/{slug}/index.html"
|
||||
print(f"html_path existe il? : {html_path}")
|
||||
last_html_build_time = None
|
||||
if os.path.exists(html_path):
|
||||
# Obtenir la date de création du fichier HTML
|
||||
last_html_build_time = os.path.getctime(html_path)
|
||||
|
||||
print(f"----- last_html_build EXISTE: {last_html_build_time} : {html_path}")
|
||||
else:
|
||||
print(f"html_path n'existe pas: on va le créer")
|
||||
#print(f"----------- last_html_build html_path: {html_path} n'existe pas")
|
||||
# Vérifier l'existence du fichier Gemini pour déterminer last_gemini_build
|
||||
|
||||
gemini_path = f"./gemini-capsules/{args.blog}/{annee}/{slug}.gmi"
|
||||
last_gemini_build = None
|
||||
if os.path.exists(gemini_path):
|
||||
last_gemini_build = time.ctime(os.path.getmtime(gemini_path))
|
||||
# Vérifier si l'article doit être reconstruit en comparant les dates de modification
|
||||
if last_gemini_build:
|
||||
file_modified_time = os.path.getmtime(file_path)
|
||||
last_build_time = time.mktime(time.strptime(last_gemini_build))
|
||||
rebuild_this_article_gemini = file_modified_time > last_build_time
|
||||
else:
|
||||
rebuild_this_article_gemini = True
|
||||
# print(f"rebuild_this_article_gemini: {rebuild_this_article_gemini}")
|
||||
|
||||
# Vérifier si l'article doit être reconstruit en comparant les dates de modification
|
||||
|
||||
if last_html_build_time:
|
||||
file_modified_time = os.path.getmtime(file_path)
|
||||
print(f"--------- file_modified_time: {file_path} : {file_modified_time}")
|
||||
print(f"--------- last_html_build_time: {last_html_build_time}")
|
||||
# Obtenir l'heure de dernière modification du fichier HTML
|
||||
|
||||
rebuild_this_article_html = file_modified_time > last_html_build_time
|
||||
if rebuild_this_article_html:
|
||||
print(f"--------- article modifié après le build de son rendu html: {file_path}, {rebuild_this_article_html}")
|
||||
else:
|
||||
print(f"--------- article non modifié après le build de son rendu html: {file_path}, {rebuild_this_article_html}, on ne recrée pas")
|
||||
rebuild_this_article_gemini = False
|
||||
rebuild_this_article_html = False
|
||||
else:
|
||||
# si il n'y a pas de fichier html, on le construit pour la première fois
|
||||
print('on reconstruit le html de l\'article', file_name)
|
||||
rebuild_this_article_html = True
|
||||
|
||||
if rebuild_this_article_html:
|
||||
rebuild_counter += 1
|
||||
|
||||
basename = get_basename(file_name)
|
||||
date_str, annee, slug = find_year_and_slug_on_filename(basename)
|
||||
slug = slugify_title(title)
|
||||
tags = extract_tags_from_file(file_path, global_config['excluded_tags'])
|
||||
|
||||
# Convertir les tags en liste si c'est un set
|
||||
if isinstance(tags, set):
|
||||
tags = list(tags)
|
||||
boom = basename.split('__')
|
||||
|
||||
|
||||
# Désactiver les warning d'identifiant dupliqué dans la conversion pandoc
|
||||
content_without_h1 = re.sub(r'^\*.*?$', '', content, count=1, flags=re.MULTILINE)
|
||||
|
||||
gemini_content = ''
|
||||
html_content = ''
|
||||
html_content_without_h1 = ''
|
||||
# Vérifier l'existence du fichier HTML pour déterminer last_html_build
|
||||
html_path = f"html-websites/{args.blog}/{annee}/{slug}/index.html"
|
||||
print(f"html_path existe il? : {html_path}")
|
||||
last_html_build_time = None
|
||||
if os.path.exists(html_path):
|
||||
# Obtenir la date de création du fichier HTML
|
||||
last_html_build_time = os.path.getctime(html_path)
|
||||
|
||||
print(f"----- last_html_build EXISTE: {last_html_build_time} : {html_path}")
|
||||
else:
|
||||
print(f"html_path n'existe pas: on va le créer")
|
||||
# Vérifier l'existence du fichier Gemini pour déterminer last_gemini_build
|
||||
|
||||
gemini_path = f"./gemini-capsules/{args.blog}/{annee}/{slug}.gmi"
|
||||
last_gemini_build = None
|
||||
if os.path.exists(gemini_path):
|
||||
try:
|
||||
# Obtenir directement le timestamp au lieu de la chaîne de date
|
||||
last_gemini_build_time = os.path.getmtime(gemini_path)
|
||||
last_gemini_build = time.ctime(last_gemini_build_time)
|
||||
|
||||
# Vérifier si l'article doit être reconstruit
|
||||
file_modified_time = os.path.getmtime(file_path)
|
||||
rebuild_this_article_gemini = file_modified_time > last_gemini_build_time
|
||||
except Exception as e:
|
||||
print(f"Erreur lors de la vérification des dates pour {gemini_path}: {e}")
|
||||
rebuild_this_article_gemini = True
|
||||
else:
|
||||
rebuild_this_article_gemini = True
|
||||
# print(f"rebuild_this_article_gemini: {rebuild_this_article_gemini}")
|
||||
|
||||
# Vérifier si l'article doit être reconstruit en comparant les dates de modification
|
||||
|
||||
if last_html_build_time:
|
||||
file_modified_time = os.path.getmtime(file_path)
|
||||
print(f"--------- file_modified_time: {file_path} : {file_modified_time}")
|
||||
print(f"--------- last_html_build_time: {last_html_build_time}")
|
||||
# Obtenir l'heure de dernière modification du fichier HTML
|
||||
|
||||
rebuild_this_article_html = file_modified_time > last_html_build_time
|
||||
if rebuild_this_article_html:
|
||||
print(f"--------- article modifié après le build de son rendu html: {file_path}, {rebuild_this_article_html}")
|
||||
else:
|
||||
print(f"--------- article non modifié après le build de son rendu html: {file_path}, {rebuild_this_article_html}, on ne recrée pas")
|
||||
rebuild_this_article_html = False
|
||||
else:
|
||||
# si il n'y a pas de fichier html, on le construit pour la première fois
|
||||
print('on reconstruit le html de l\'article', file_name)
|
||||
rebuild_this_article_html = True
|
||||
|
||||
if rebuild_this_article_html:
|
||||
rebuild_counter += 1
|
||||
|
||||
|
||||
# Garder le contenu HTML existant si déjà présent
|
||||
if f"{annee}/{slug}" in files_dict and 'html_content' in files_dict[f"{annee}/{slug}"]:
|
||||
#print('on reprend le contenu html existant')
|
||||
if len(files_dict[f"{annee}/{slug}"]['html_content']) > 0:
|
||||
html_content = files_dict[f"{annee}/{slug}"]['html_content']
|
||||
if len(files_dict[f"{annee}/{slug}"]['html_content_without_h1']) > 0:
|
||||
html_content_without_h1 = files_dict[f"{annee}/{slug}"]['html_content_without_h1']
|
||||
else:
|
||||
html_content_without_h1 = re.sub(r'<h1>.*?</h1>', '', html_content)
|
||||
# Garder le contenu HTML existant si déjà présent
|
||||
if f"{annee}/{slug}" in files_dict and 'html_content' in files_dict[f"{annee}/{slug}"]:
|
||||
#print('on reprend le contenu html existant')
|
||||
if len(files_dict[f"{annee}/{slug}"]['html_content']) > 0 :
|
||||
html_content = files_dict[f"{annee}/{slug}"]['html_content']
|
||||
if len(files_dict[f"{annee}/{slug}"]['html_content_without_h1']) > 0 :
|
||||
html_content_without_h1 = files_dict[f"{annee}/{slug}"]['html_content_without_h1']
|
||||
else:
|
||||
html_content_without_h1 = re.sub(r'<h1>.*?</h1>', '', html_content)
|
||||
else:
|
||||
print(f"\033[91m {time.strftime('%H:%M:%S')} BRRRRRRRRRRRRR pandoc : {title} en html\033[0m")
|
||||
pandoc_runs_counter += 1
|
||||
html_content = pypandoc.convert_text(content_without_h1, 'html', format='org')
|
||||
html_content_without_h1 = re.sub(r'<h1>.*?</h1>', '', html_content)
|
||||
|
||||
|
||||
|
||||
if run_pandoc and rebuild_this_article_html or force_html_regen:
|
||||
# convertir le contenu d'article org vers html
|
||||
print(f"\033[91m {time.strftime('%H:%M:%S')} BRRRRRRRRRRRRR pandoc : {title} en html\033[0m")
|
||||
# print(f"\033[91m.\033[0m", end='', flush=True)
|
||||
if not html_content:
|
||||
html_content = pypandoc.convert_text(content_without_h1, 'html', format='org')
|
||||
html_content_without_h1 = re.sub(r'<h1>.*?</h1>', '', html_content)
|
||||
pandoc_runs_counter += 1
|
||||
# else:
|
||||
# html_content = content_without_h1
|
||||
|
||||
|
||||
if run_pandoc and rebuild_this_article_html or force_html_regen:
|
||||
# convertir le contenu d'article org vers html
|
||||
print(f"\033[91m {time.strftime('%H:%M:%S')} BRRRRRRRRRRRRR pandoc : {title} en html\033[0m")
|
||||
# print(f"\033[91m.\033[0m", end='', flush=True)
|
||||
|
||||
html_content = pypandoc.convert_text(content_without_h1, 'html', format='org')
|
||||
pandoc_runs_counter += 1
|
||||
else:
|
||||
html_content = content_without_h1
|
||||
# if run_gemini and rebuild_this_article_gemini:
|
||||
# #print('-----------on régénère le gemini')
|
||||
# # convertir le contenu d'article org vers gmi pour la capsule gemini
|
||||
# gemini_content = org_to_gmi(content_without_h1)
|
||||
# #print('len(gemini_content)', len(gemini_content))
|
||||
# else:
|
||||
# print('-----------on ne régénère pas le gemini')
|
||||
if rebuild_this_article_gemini:
|
||||
print(f"\033[91m {time.strftime('%H:%M:%S')} BRRRRRRRRRRRRR gemini : {title} en gmi\033[0m")
|
||||
gemini_content = org_to_gmi(content_without_h1)
|
||||
|
||||
# if run_gemini and rebuild_this_article_gemini:
|
||||
# #print('-----------on régénère le gemini')
|
||||
# # convertir le contenu d'article org vers gmi pour la capsule gemini
|
||||
# gemini_content = org_to_gmi(content_without_h1)
|
||||
# #print('len(gemini_content)', len(gemini_content))
|
||||
# else:
|
||||
# print('-----------on ne régénère pas le gemini')
|
||||
if rebuild_this_article_gemini:
|
||||
print(f"\033[91m {time.strftime('%H:%M:%S')} BRRRRRRRRRRRRR gemini : {title} en gmi\033[0m")
|
||||
gemini_content = org_to_gmi(content_without_h1)
|
||||
files_dict[f"{annee}/{slug}"] = {
|
||||
'path': file_path,
|
||||
'basename': basename,
|
||||
'roam_id': find_org_roam_id(content),
|
||||
'slug': f"{slug}/",
|
||||
'slug_with_year': f"{annee}/{slug}",
|
||||
'date': boom[0],
|
||||
'lang': lang_folder,
|
||||
'article_type': article_type,
|
||||
'date_modified' : date_modified,
|
||||
'first_picture_url' : get_first_picture_url(content),
|
||||
'date_formattee': format_date_str(date_str),
|
||||
'annee': annee,
|
||||
'tags': tags,
|
||||
'title': title,
|
||||
'next': None,
|
||||
'previous': None,
|
||||
'last_html_build': last_html_build_time,
|
||||
'last_gemini_build': last_gemini_build,
|
||||
'org_content': content, # Contenu Org original
|
||||
'html_content_without_h1': html_content_without_h1, # Contenu HTML converti sans le titre de premier niveau
|
||||
'html_content': html_content, # Contenu first_picture_urlHTML converti
|
||||
'gemini_content': gemini_content,
|
||||
'gemini_file_path': f"{annee}/{slug}.gmi",
|
||||
# Contenu gemini
|
||||
}
|
||||
|
||||
files_dict[f"{annee}/{slug}"] = {
|
||||
'path': file_path,
|
||||
'basename': basename,
|
||||
'roam_id': find_org_roam_id(content),
|
||||
'slug': f"{slug}/",
|
||||
'slug_with_year': f"{annee}/{slug}",
|
||||
'date': boom[0],
|
||||
'lang': lang_folder,
|
||||
'article_type': article_type,
|
||||
'date_modified' : date_modified,
|
||||
'first_picture_url' : get_first_picture_url(content),
|
||||
'date_formattee': format_date_str(date_str),
|
||||
'annee': annee,
|
||||
'tags': tags,
|
||||
'title': title,
|
||||
'next': None,
|
||||
'previous': None,
|
||||
'last_html_build': last_html_build_time,
|
||||
'last_gemini_build': last_gemini_build,
|
||||
'org_content': content, # Contenu Org original
|
||||
'html_content_without_h1': html_content_without_h1, # Contenu HTML converti sans le titre de premier niveau
|
||||
'html_content': html_content, # Contenu first_picture_urlHTML converti
|
||||
'gemini_content': gemini_content,
|
||||
'gemini_file_path': f"{annee}/{slug}.gmi",
|
||||
# Contenu gemini
|
||||
}
|
||||
except OSError as e:
|
||||
print(f"Erreur lors de la lecture du sous-dossier {subdir_path}: {e}")
|
||||
continue
|
||||
|
||||
except OSError as e:
|
||||
print(f"Erreur lors de la lecture du dossier {directory}: {e}")
|
||||
continue
|
||||
|
||||
print(f"======= Nombre d'articles reconstruits: {rebuild_counter}")
|
||||
print(f"======= Nombre de runs de pandoc: {pandoc_runs_counter}")
|
||||
|
@ -497,41 +522,3 @@ generate_article_pages(destination_json + '/articles_info.json', 'templates/html
|
|||
# À la fin du script, calculer et afficher le temps d'exécution
|
||||
execution_time = time.time() - start_time
|
||||
#print(f"Temps d'exécution : {execution_time:.2f} secondes")
|
||||
|
||||
def format_date_str(date_str):
|
||||
"""
|
||||
Formate une chaîne de date dans différents formats possibles
|
||||
"""
|
||||
try:
|
||||
# Format YYYYMMDDHHMMSS (14 caractères)
|
||||
if len(date_str) == 14:
|
||||
return datetime.strptime(date_str, '%Y%m%d%H%M%S').strftime('%d %B %Y à %H:%M:%S')
|
||||
|
||||
# Format YYYYMMDDTHHMMSS (15 caractères avec T)
|
||||
elif len(date_str) == 15 and 'T' in date_str:
|
||||
return datetime.strptime(date_str, '%Y%m%dT%H%M%S').strftime('%d %B %Y à %H:%M:%S')
|
||||
|
||||
# Format YYYYMMDDTHHMM (13 caractères avec T)
|
||||
elif len(date_str) == 13 and 'T' in date_str:
|
||||
return datetime.strptime(date_str, '%Y%m%dT%H%M').strftime('%d %B %Y à %H:%M')
|
||||
|
||||
# Format YYYY-MM-DD
|
||||
elif len(date_str) == 10 and '-' in date_str:
|
||||
return datetime.strptime(date_str, '%Y-%m-%d').strftime('%d %B %Y')
|
||||
|
||||
# Format YYYYMMDDTHHMMS (14 caractères avec T, manque un chiffre pour les secondes)
|
||||
elif len(date_str) == 14 and 'T' in date_str:
|
||||
# Ajouter un '0' pour compléter les secondes
|
||||
date_str = date_str + '0'
|
||||
return datetime.strptime(date_str, '%Y%m%dT%H%M%S').strftime('%d %B %Y à %H:%M:%S')
|
||||
|
||||
else:
|
||||
print(f"Format de date non reconnu: {date_str}")
|
||||
return date_str
|
||||
|
||||
except ValueError as e:
|
||||
print(f"Erreur lors du formatage de la date {date_str}: {str(e)}")
|
||||
return date_str
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -1,35 +0,0 @@
|
|||
:PROPERTIES:
|
||||
:ID: 3a1e3fd2-1c51-43ac-9864-0127d54d1692
|
||||
:END:
|
||||
#+title:
|
||||
|
||||
* Article
|
||||
- ID: 616
|
||||
- guid:
|
||||
- status: draft
|
||||
- publié le: <2017-11-05 21:30:39>
|
||||
- modifié: <2017-11-05 21:30:39>
|
||||
- Index des articles du blog [[id:39e91a2e-d003-4acd-a99a-b58dca74df77][Cipherbliss blog]]
|
||||
|
||||
** Faire une timelapse sur raspberry pi avec module caméra (normal ou noIR)
|
||||
|
||||
ceci_est_du_html
|
||||
|
||||
Montage du circuit
|
||||
|
||||
Script
|
||||
|
||||
Crontab
|
||||
|
||||
Prise de vue
|
||||
|
||||
Assemblage
|
||||
|
||||
???
|
||||
|
||||
Profit!
|
||||
|
||||
* Liens
|
||||
- cipherbliss [[id:d14d8051-bbb9-4279-a574-84d78bfe5b66][Cipherbliss blog]]
|
||||
|
||||
|
|
@ -1,23 +0,0 @@
|
|||
:PROPERTIES:
|
||||
:ID: 1d00384c-91f3-43b9-a2f4-59727c91241a
|
||||
:END:
|
||||
#+title:
|
||||
|
||||
* Article
|
||||
- ID: 634
|
||||
- guid:
|
||||
- status: draft
|
||||
- publié le: <2017-12-18 13:57:28>
|
||||
- modifié: <2017-12-18 13:57:28>
|
||||
- Index des articles du blog [[id:39e91a2e-d003-4acd-a99a-b58dca74df77][Cipherbliss blog]]
|
||||
|
||||
** ajouter des modules Z-wave et EnOcean sur Domoticz et raspberry pi
|
||||
|
||||
ceci_est_du_html
|
||||
|
||||
|
||||
|
||||
* Liens
|
||||
- cipherbliss [[id:d14d8051-bbb9-4279-a574-84d78bfe5b66][Cipherbliss blog]]
|
||||
|
||||
|
|
@ -1,36 +0,0 @@
|
|||
:PROPERTIES:
|
||||
:ID: 7af99c68-dab9-4233-917f-a6c8e5000aa4
|
||||
:END:
|
||||
#+title:
|
||||
|
||||
* Article
|
||||
- ID: 743
|
||||
- guid:
|
||||
- status: draft
|
||||
- publié le: <2018-04-16 17:39:59>
|
||||
- modifié: <2018-04-16 17:39:59>
|
||||
- Index des articles du blog [[id:39e91a2e-d003-4acd-a99a-b58dca74df77][Cipherbliss blog]]
|
||||
|
||||
** dompter le mammouth
|
||||
|
||||
ceci_est_du_html
|
||||
|
||||
<a href="https://www.cipherbliss.com/wp-content/uploads/2018/04/mastodon_social.jpeg"><img class="wp-image-735 size-medium" src="https://www.cipherbliss.com/wp-content/uploads/2018/04/mastodon_social-300x168.jpeg" alt="" width="300" height="168" /></a>
|
||||
|
||||
Mastodon, le mammouth hypersocial open source
|
||||
|
||||
|
||||
|
||||
Tim urban, du site<em> <a href="https://www.waitbutwhy.com">wait but why</a></em> écrivait précisément à ce propos dans son article "<a href="https://waitbutwhy.com/2013/10/why-procrastinators-procrastinate.html">pourquoi les procrastinateurs procrastinent</a>" (en englishe) sur le mammouth qui est en nous: nous avons une partie de notre cerveau qui n'a pas changé depuis l'époque où l'on était des Hommes des cavernes, c'est comme si dans notre conscience on avait des animaux qui venaient perturber la direction du cerveau le plus évolué.
|
||||
|
||||
|
||||
On a par exemple le singe de la gratification immédiate qui vient tout le temps perturber l'humain raisonné et prend le commandement dès que l'on est happé par des petites choses pas bien utiles mais qui ont l'avantage d'être immédiatement gratifiantes, satisfaisantes. Un vrai truc pour lutter contre la procrastination est de prendre conscience de l'existence de ce singe en nous pour ensuite bosser avec et le laisser diriger la barre quand cela nous est le plus utile. Afin que l'on fasse des trucs de nos journées, enfin, on verra ça demain hein :D
|
||||
|
||||
Pour avoir des infos claires sur comment vaincre la procrastination, c'est par ici: <a href="https://waitbutwhy.com/2013/11/how-to-beat-procrastination.html">https://waitbutwhy.com/2013/11/how-to-beat-procrastination.html</a> (toujours en englishe)
|
||||
|
||||
Mais le singe n'est pas le seul à nous embrouiller les idées. Il y a aussi le Monstre de la Panique, et le Mammouth social que l'on nourrit avec des tas de choses à la con qui ne sont plus vitales depuis bien longtemps. S'il est difficile de lutter contre des instincts primitifs, il est néanmoins bien plus simple de lâcher cette saleté de Facebook et d'adopter un Mammouth en se rendant sur
|
||||
|
||||
* Liens
|
||||
- cipherbliss [[id:d14d8051-bbb9-4279-a574-84d78bfe5b66][Cipherbliss blog]]
|
||||
|
||||
|
|
@ -1,38 +0,0 @@
|
|||
:PROPERTIES:
|
||||
:ID: 271a5c87-a65b-4ab4-8942-81d8534b986f
|
||||
:END:
|
||||
#+title:
|
||||
|
||||
* Article
|
||||
- ID: 752
|
||||
- guid:
|
||||
- status: draft
|
||||
- publié le: <2018-04-16 18:17:29>
|
||||
- modifié: <2018-04-16 18:17:29>
|
||||
- Index des articles du blog [[id:39e91a2e-d003-4acd-a99a-b58dca74df77][Cipherbliss blog]]
|
||||
|
||||
** Des outils pour la vie privée
|
||||
|
||||
ceci_est_du_html
|
||||
|
||||
<div>parce qu'il est crucial que la vie privée reste privée et sous le contrôle des gens normaux qui ne sont pas experts en informatique,</div>
|
||||
<div>je ne saurai que trop vous conseiller de laisser tomber facebook, whatsapp et messenger pour les remplacer par des outils bien plus sympas.</div>
|
||||
<div></div>
|
||||
<div>Des logiciels qui eux ne sont pas des logiciels espions dont la seule mission est de revendre toute info vous concernant vous et vos proches afin de <a title="https://www.cipherbliss.com/comment-facebook-choisit-vos-amis-a-votre-place/" href="https://www.cipherbliss.com/comment-facebook-choisit-vos-amis-a-votre-place/" target="_blank" rel="noreferrer nofollow noopener">vous profiler et vous manipuler de diverses façons</a> (hausse des prix d'assurance, lien social avec des personnes jugées peu fiables, refus d'emploi, pub ciblée, censure de publications, revente de vos historiques de positions, habitudes, infos bancaires et médicales, la liste est longue mais bien réelle).</div>
|
||||
<div>Pas besoin de hackers pour usurper des identités ou vous faire voler des infos qui seront forcément utilisées contre vous, lorsque vous les donnez de votre plein gré.</div>
|
||||
<div><b>Heureusement il existe des alternatives bien plus propres dont la façon de gagner leur vie n'implique absolument pas ce genre de saletés:</b></div>
|
||||
<div></div>
|
||||
<div>installez <a title="https://www.telegram.org/" href="https://www.telegram.org/" target="_blank" rel="noreferrer nofollow noopener">Telegram</a> (ordi et tel) pour remplacer les conversations instantanées, appels et les SMS (qui ne sont pas chiffrés par défaut),</div>
|
||||
<div>utilisez <a title="https://mamot.fr" href="https://mamot.fr" target="_blank" rel="noreferrer nofollow noopener">Mamot.fr</a> pour les réseaux sociaux (celui ci est sans publicité, et sans pistage/revente de votre vie privée) ,</div>
|
||||
<div>adoptez une boite <a title="https://protonmail.com/fr/" href="https://protonmail.com/fr/" target="_blank" rel="noreferrer nofollow noopener">Protonmail</a> pour les email.</div>
|
||||
<div>utilisez <a title="https://www.mozilla.org/fr/" href="https://www.mozilla.org/fr/" target="_blank" rel="noreferrer nofollow noopener">Firefox</a> au lieu de google Chrome.</div>
|
||||
<div><a title="https://duckduckgo.com/" href="https://duckduckgo.com/" target="_blank" rel="noreferrer nofollow noopener">recherchez sur le web avec DuckDuckGo</a> au lieu de Google search.</div>
|
||||
<div>utilisez <a title="https://fr.libreoffice.org/" href="https://fr.libreoffice.org/" target="_blank" rel="noreferrer nofollow noopener">LibreOffice</a> au lieu de microsoft office (de façon générale toute version logiciel libre est préférable a une version de logiciel privatif)</div>
|
||||
<div>et utilisez un gestionnaire de mots de passe comme <a title="https://www.lastpass.com/" href="https://www.lastpass.com/" target="_blank" rel="noreferrer nofollow noopener">LastPass</a> protégé par une phrase de passe forte et facile a retenir (du style "il était thym Petit Navire") au lieu d'un pass identique partout qui sera deviné en une dizaine de secondes par des scripts capables de deviner des milliers de combinaisons possible par seconde. chaque caractère supplémentaire représente un temps de recherche exponentiel, et la plupart des gens utilisent des mots de passe tout pourris de 6 caractères qui se trouvent en une dizaine de secondes)</div>
|
||||
<div></div>
|
||||
<div>Plus on sera nombreux à utiliser des alternatives respectueuses de la vie privée, et plus ce sera un message fort pour les industries que les gens normaux ne veulent pas utiliser de services qui leur font des sales coups dans le dos et surtout qui ont des répercussions dans la vraie vie.</div>
|
||||
|
||||
* Liens
|
||||
- cipherbliss [[id:d14d8051-bbb9-4279-a574-84d78bfe5b66][Cipherbliss blog]]
|
||||
|
||||
|
|
@ -1,29 +0,0 @@
|
|||
:PROPERTIES:
|
||||
:ID: 29027b6c-ca3f-411a-9aea-5aa9d6645e50
|
||||
:END:
|
||||
#+title:
|
||||
|
||||
* Article
|
||||
- ID: 774
|
||||
- guid:
|
||||
- status: draft
|
||||
- publié le: <2018-05-10 19:27:21>
|
||||
- modifié: <2018-05-10 19:27:21>
|
||||
- Index des articles du blog [[id:39e91a2e-d003-4acd-a99a-b58dca74df77][Cipherbliss blog]]
|
||||
|
||||
** installez votre peertube sur serveur ubuntu
|
||||
|
||||
ceci_est_du_html
|
||||
|
||||
Vérifiez les dépendances requises
|
||||
|
||||
Clonez le dépot
|
||||
|
||||
Gérez votre virtual host
|
||||
|
||||
Lancez le serveur
|
||||
|
||||
* Liens
|
||||
- cipherbliss [[id:d14d8051-bbb9-4279-a574-84d78bfe5b66][Cipherbliss blog]]
|
||||
|
||||
|
|
@ -1,30 +0,0 @@
|
|||
:PROPERTIES:
|
||||
:ID: 253d3b39-abd2-41bf-b663-17843b2541b7
|
||||
:END:
|
||||
#+title:
|
||||
|
||||
* Article
|
||||
- ID: 863
|
||||
- guid:
|
||||
- status: draft
|
||||
- publié le: <2018-08-22 12:04:41>
|
||||
- modifié: <2019-01-08 16:58:44>
|
||||
- Index des articles du blog [[id:39e91a2e-d003-4acd-a99a-b58dca74df77][Cipherbliss blog]]
|
||||
|
||||
** Installer Gitlab sur Ubuntu 18
|
||||
|
||||
ceci_est_du_html
|
||||
|
||||
<!-- wp:embed {"url":"https://linuxize.com/post/how-to-install-and-configure-gitlab-on-ubuntu-18-04/","type":"rich","providerNameSlug":"prise-en-charge-des-contenus-embarques"} -->
|
||||
<figure class="wp-block-embed is-type-rich is-provider-prise-en-charge-des-contenus-embarques">
|
||||
https://linuxize.com/post/how-to-install-and-configure-gitlab-on-ubuntu-18-04/
|
||||
</figure>
|
||||
<!-- /wp:embed -->
|
||||
|
||||
source : <a href="https://linuxize.com/post/how-to-install-and-configure-gitlab-on-ubuntu-18-04/">https://linuxize.com/post/how-to-install-and-configure-gitlab-on-ubuntu-18-04/</a>
|
||||
|
||||
|
||||
* Liens
|
||||
- cipherbliss [[id:d14d8051-bbb9-4279-a574-84d78bfe5b66][Cipherbliss blog]]
|
||||
|
||||
|
|
@ -1,61 +0,0 @@
|
|||
:PROPERTIES:
|
||||
:ID: 206ab35b-34f4-47fe-b9f2-591a6b5008ea
|
||||
:END:
|
||||
#+title:
|
||||
|
||||
* Article
|
||||
- ID: 672
|
||||
- guid:
|
||||
- status: draft
|
||||
- publié le: <2018-08-22 12:07:23>
|
||||
- modifié: <2018-08-22 12:07:23>
|
||||
- Index des articles du blog [[id:39e91a2e-d003-4acd-a99a-b58dca74df77][Cipherbliss blog]]
|
||||
|
||||
** miner de la cryptomonnaie
|
||||
|
||||
ceci_est_du_html
|
||||
|
||||
<h2>Donc, faut bien piger de quoi on cause</h2>
|
||||
Les créateurs du bitcoin ont écrit un minuscule livre blanc (de 10 pages) à son lancement pour éclairer à quoi c'est censé servir, et à quels besoins ce système doit répondre. Vous pouvez trouver <a href="https://www.cipherbliss.com/wp-content/uploads/2018/01/bitcoin_fr.pdf">sa traduction en français ici</a> en pdf.
|
||||
|
||||
|
||||
La blockchain (ou chaîne de blocs) c'est comme un carnet de transactions sécurisé et transparent où chaque page serait sécurisée de telle sorte qu'elle dépend de la page précédente.
|
||||
|
||||
|
||||
Chacun peut créer une monnaie selon ses propres règles afin par exemple de <a href="https://www.economie.gouv.fr/particuliers/monnaie-locale">favoriser le commerce local</a>.
|
||||
|
||||
|
||||
On peut donc voir en temps réel le volume monétaire du monde entier pour une monnaire, où chacun peut rajouter des lignes, vérifier les transactions réalisées, mais pas n'importe comment et surtout sans pouvoir modifier les lignes précédentes.
|
||||
|
||||
|
||||
Actuellement, chaque banque fait des transactions et les garde en mémoire dans des sortes de grands livres de transactions, dans des énormes bases de données auxquelles aucun client n'a accès. On fait une confiance aveugle en les institutions régissant les livres de comptes sans avoir de contrôle dessus, on peut annuler des transactions à posteriori, on a aucun contrôle si quelqu'un de la banque veut modifier notre solde sans notre accord, ou si la banque fait faillite, on se base sur des étalons pour établir la valeur de la monnaie régie par des règles institutionnelles, et on peut avoir un solde négatif.
|
||||
|
||||
|
||||
Avec des bitcoins par exemple, vous ne pouvez pas dépenser plus que vous n'avez investi dedans, vous ne pouvez pas avoir de solde négatif sur un portefeuille bitcoin, ethereum ou dogecoin.
|
||||
|
||||
|
||||
<img class="aligncenter size-full" src="https://cdn.worldvectorlogo.com/logos/ethereum.svg" width="2500" height="1715">
|
||||
|
||||
Les personnes qui se chargent de créer les blocs de transactions de façon sécurisée font d'énormes calculs afin de trouver comment sécuriser un bloc et donc poursuivre la chaîne de blocs, on les appelle des mineurs à l'image des vrais mineurs qui allaient chasser le minerai.
|
||||
|
||||
|
||||
Ce sont des gens disposant de tas de super ordinateurs comme des entreprises spécialisées, ou des gens comme vous et moi qui minent en groupe (on dit en <em>pool</em>) et se répartissent la récompense de la création de bloc à hauteur de la puissance de calcul que vous mettez en place dedans.
|
||||
|
||||
|
||||
[caption id="" align="aligncenter" width="1000"]<img src="https://www.avoir-alire.com/IMG/jpg/deadpool_white_poster.jpg" alt="" width="1000" height="392"> si vous minez avec une pool où y'a personne ça fait une dead pool[/caption]
|
||||
|
||||
Pour ma part à titre d'exemple , avec une carte graphique Nvidia GTX 1060 je peux faire entre 18 et 30 Méga hash par seconde pour miner de l'ethereum avec ethminer, ce qui me fournit quelque chose de l'ordre de 0.002 ethereum par jour. à côté de ça je ne peux pas vraiment utiliser mon ordi pour faire quoi que ce soit d'autre en même temps. Ce qui n'est donc pas hyper intéressant si on regarde l'investissement d'un ordi avec une carte graphique contre ce que ça rapporte en ethereum, à moins que la valeur des ethereum grimpe de beaucoup comme ça a été le cas avec le bitcoin en Décembre 2017 où il est passé de 8000€ à pas loin de 20 000€.
|
||||
|
||||
|
||||
Un montage plus intéressant consisterait à se créer une petite ferme perso, un mining rig avec plusieurs cartes graphiques. Mais ça demande un gros investissement de départ et du savoir faire sur le montage d'ordi.
|
||||
|
||||
|
||||
En résumé, sur une distribution type debian / ubuntu avec une machine équipée de carte graphique nvidia récente il vous faudra avoir installé les drivers nvidia les plus récents capable de faire du CUDA, du calcul distribué. ça peut vous servir aussi à faire du TensorFlow et autres trucs d'apprentissage d'intelligence artificielle.
|
||||
|
||||
|
||||
|
||||
|
||||
* Liens
|
||||
- cipherbliss [[id:d14d8051-bbb9-4279-a574-84d78bfe5b66][Cipherbliss blog]]
|
||||
|
||||
|
|
@ -1,27 +0,0 @@
|
|||
:PROPERTIES:
|
||||
:ID: b506ee6f-5b9d-4ec1-bf9e-c6ad09658f56
|
||||
:END:
|
||||
#+title:
|
||||
|
||||
* Article
|
||||
- ID: 950
|
||||
- guid:
|
||||
- status: draft
|
||||
- publié le: <2018-09-05 18:32:48>
|
||||
- modifié: <2018-09-05 18:32:48>
|
||||
- Index des articles du blog [[id:39e91a2e-d003-4acd-a99a-b58dca74df77][Cipherbliss blog]]
|
||||
|
||||
** mon titre
|
||||
|
||||
ceci_est_du_html
|
||||
|
||||
jeijsijgijdijgd#+begin_src shell
|
||||
|
||||
<!-- wp:image {"id":945} -->
|
||||
<figure class="wp-block-image"><img src="https://www.cipherbliss.com/wp-content/uploads/2018/09/caisse_bliss_descritpion_open_source_cipherbliss.png" alt="" class="wp-image-945"/></figure>
|
||||
<!-- /wp:image -->
|
||||
|
||||
* Liens
|
||||
- cipherbliss [[id:d14d8051-bbb9-4279-a574-84d78bfe5b66][Cipherbliss blog]]
|
||||
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
:PROPERTIES:
|
||||
:ID: a9e4094a-b14f-4697-843c-e956b0394237
|
||||
:END:
|
||||
#+title:
|
||||
|
||||
* Article
|
||||
- ID: 1011
|
||||
- guid:
|
||||
- status: draft
|
||||
- publié le: <2018-10-10 10:49:08>
|
||||
- modifié: <2019-01-08 16:48:50>
|
||||
- Index des articles du blog [[id:39e91a2e-d003-4acd-a99a-b58dca74df77][Cipherbliss blog]]
|
||||
|
||||
** Comment intégrer un front end Angular sur un site web en Symfony
|
||||
|
||||
ceci_est_du_html
|
||||
|
||||
on fait un projet git pour le front, et un pour le back symfony
|
||||
|
||||
on range notre multi projet à coup de git submodule,
|
||||
|
||||
on compile les sources du front dans un dossier accessible à symfony
|
||||
|
||||
on insère le js compilé dans un template twig
|
||||
|
||||
et hop, on peut voir le tout intégré dans l'app symfony en local.
|
||||
|
||||
|
||||
roulez jeunesse!
|
||||
|
||||
* Liens
|
||||
- cipherbliss [[id:d14d8051-bbb9-4279-a574-84d78bfe5b66][Cipherbliss blog]]
|
||||
|
||||
|
|
@ -1,96 +0,0 @@
|
|||
:PROPERTIES:
|
||||
:ID: bb12d744-bfae-4042-9823-f80e7c1e3518
|
||||
:END:
|
||||
#+title:
|
||||
|
||||
* Article
|
||||
- ID: 1144
|
||||
- guid:
|
||||
- status: draft
|
||||
- publié le: <2019-01-11 23:14:49>
|
||||
- modifié: <2019-01-11 23:14:49>
|
||||
- Index des articles du blog [[id:39e91a2e-d003-4acd-a99a-b58dca74df77][Cipherbliss blog]]
|
||||
|
||||
** Passer son oneplus à lineageOS
|
||||
|
||||
ceci_est_du_html
|
||||
|
||||
Touts les petits pas pour se dégager de Google sont bons, Android étant un projet libre à la base, pourquoi utiliser la version pleine de trackers Google de ce projet quand on peut se servir de la version libre?
|
||||
|
||||
Avec le bon tuto ce n'est pas bien compliqué.
|
||||
|
||||
|
||||
Avant tout il faut faire un bon backup de son tel par câble usb.
|
||||
|
||||
|
||||
Il faut installer deux logiciels sur son ordi pour gérer son tel branché en usb. Ces logiciels sont Adb et Fastboot.
|
||||
|
||||
|
||||
Chopper le système linerage os en zip. Chopper le mode recovery de twrp qui permet de démarrer sur le téléphone et de faire le ménage pour installer un nouveau système d'exploitation.
|
||||
|
||||
|
||||
Vérifier l'intégrité du zip.
|
||||
|
||||
|
||||
Mettre le mode développeur sur son ordi Phone.
|
||||
|
||||
|
||||
Débloquer le démarreur.
|
||||
|
||||
|
||||
Utiliser fastboot pour rooter le téléphone
|
||||
|
||||
Installer un mode récupération (recovery)
|
||||
|
||||
Mettre le nouveau système dans la mémoire du tel par Adb sideload.
|
||||
|
||||
|
||||
Virer l'ancien système en balayant plusieurs trucs. Le cache dalvik, les fichiers perso, l'os précèdent. Et enfin installer le zip du nouveau système, ce qui prend entre 5 et 10 min.
|
||||
|
||||
|
||||
Une fois que c'est bon on redémarre et voilà le nouveau système tout propre qui fonctionne sans avoir besoin du play store ou d'un compte chez Google.
|
||||
|
||||
|
||||
Vous pouvez profiter des applications du play store en utilisant le Yalp store. Que vous pouvez récupérer par f-droid. Que vous pouvez récupérer en allant chercher son fichier d'installation .apk sur le site officiel de f-droid ou en le copiant par usb depuis votre ordi.
|
||||
|
||||
|
||||
Voilà.
|
||||
|
||||
|
||||
Mais le jeu en vaut la chandelle.
|
||||
|
||||
|
||||
|
||||
|
||||
Ensuite dans les trucs à faire.
|
||||
|
||||
|
||||
Récupérer son gestionnaire de mot de passe avant les autres applis pour gagner un temps fou à ne pas aller chercher plein de mots de passe.
|
||||
|
||||
|
||||
Son compte Firefox.
|
||||
|
||||
|
||||
Réinstaller quelques applis bien pratiques pour syncroniser son calendrier et ses contacts sur nextcloud. Avec caldav.
|
||||
|
||||
|
||||
Changer de clavier de base, désactiver ces phutin de vibrations à chaque touches.
|
||||
|
||||
|
||||
Profiter du mode ne pas déranger sur certaines plages horaires.
|
||||
|
||||
|
||||
Désactiver les utilisations de nfc, GPS, Bluetooth.
|
||||
|
||||
|
||||
Verouiller l'accès au tel par schéma ou empreinte ou ce que vous voulez mais pas question de sortir à poil.
|
||||
|
||||
|
||||
Enjaillez !
|
||||
|
||||
|
||||
|
||||
* Liens
|
||||
- cipherbliss [[id:d14d8051-bbb9-4279-a574-84d78bfe5b66][Cipherbliss blog]]
|
||||
|
||||
|
|
@ -1,30 +0,0 @@
|
|||
:PROPERTIES:
|
||||
:ID: 3e6eb17d-4c4d-4900-92ec-f0b2bc28ff07
|
||||
:END:
|
||||
#+title:
|
||||
|
||||
* Article
|
||||
- ID: 1235
|
||||
- guid:
|
||||
- status: draft
|
||||
- publié le: <2019-05-08 00:01:41>
|
||||
- modifié: <2019-05-08 00:01:41>
|
||||
- Index des articles du blog [[id:39e91a2e-d003-4acd-a99a-b58dca74df77][Cipherbliss blog]]
|
||||
|
||||
** L'internet des objets au service de la surveillance
|
||||
|
||||
ceci_est_du_html
|
||||
|
||||
« Le capitalisme de surveillance sait tout de nous, alors que ses opérations sont conçues pour que nous n’en sachions rien », il « annule les droits fondamentaux associés à l’autonomie individuelle », droits« essentiels à la possibilité même d’une société démocratique ».
|
||||
|
||||
|
||||
Il n’y a pas de fatalité technologique, estime au contraire l’autrice. Les technologies ne sont pas des fins en soi mais des moyens au service de l’économie : « S’il est possible d’imaginer quelque chose comme l’Internet des objets sans le capitalisme de surveillance, il n’est pas possible d’imaginer le capitalisme de surveillance sans l’Internet des objets. »
|
||||
|
||||
https://www.rallumerlesetoiles.com/2019/03/le-capitalisme-de-surveillance-maitre-des-marionnettes.html
|
||||
|
||||
https://www.laquadrature.net/2019/05/01/la-vie-privee-pour-les-faibles-la-transparence-pour-les-puissants/
|
||||
|
||||
* Liens
|
||||
- cipherbliss [[id:d14d8051-bbb9-4279-a574-84d78bfe5b66][Cipherbliss blog]]
|
||||
|
||||
|
|
@ -1,57 +0,0 @@
|
|||
:PROPERTIES:
|
||||
:ID: 229210f2-e1ed-4448-a51d-1fadf9baf930
|
||||
:END:
|
||||
#+title:
|
||||
|
||||
* Article
|
||||
- ID: 1239
|
||||
- guid:
|
||||
- status: draft
|
||||
- publié le: <2019-05-11 21:07:43>
|
||||
- modifié: <2019-05-11 21:07:43>
|
||||
- Index des articles du blog [[id:39e91a2e-d003-4acd-a99a-b58dca74df77][Cipherbliss blog]]
|
||||
|
||||
** Mettre à jour nextcloud avec plusieurs versions majeures de retard
|
||||
|
||||
ceci_est_du_html
|
||||
|
||||
C'est pas faisable. Voilà. Bisous!
|
||||
Bon, c'est faisable mais en plusieurs fois avec l'outil en ligne de commande occ (own cloud command line interface)
|
||||
|
||||
|
||||
|
||||
Vous devez faire une mise à jour de votre dépôt via gît en allant à la version majeure juste au dessus de la vôtre.
|
||||
|
||||
|
||||
Mettez à jour votre dépôt
|
||||
|
||||
Git pull origin master
|
||||
|
||||
Listez les tags de nextcloud avec
|
||||
|
||||
Git tag -l
|
||||
|
||||
Ce qui vous donnera une longue liste de versions. Vous pouvez naviguer avec les flèches du clavier et appuyer sur la touche q pour quitter la liste.
|
||||
|
||||
|
||||
Pour savoir votre version vous pouvez utiliser status
|
||||
|
||||
Git status
|
||||
|
||||
Ensuite on bouge à la version majeure juste au dessus de la notre. Si vous êtes sur la version 14.truc.bidule,
|
||||
|
||||
Allez à la version v15.0.0
|
||||
|
||||
Git checkout v15.0.0
|
||||
|
||||
Appliquez les migrations de base de donnée,
|
||||
|
||||
Puis faites un autre checkout + mise à jour jusqu'à arriver à la version majeure la plus à l'heure actuelle.
|
||||
|
||||
|
||||
Et voala !
|
||||
|
||||
* Liens
|
||||
- cipherbliss [[id:d14d8051-bbb9-4279-a574-84d78bfe5b66][Cipherbliss blog]]
|
||||
|
||||
|
|
@ -1,59 +0,0 @@
|
|||
:PROPERTIES:
|
||||
:ID: f0b3d7ed-9a3b-4bff-8f30-6d8a61983a4d
|
||||
:END:
|
||||
#+title:
|
||||
|
||||
* Article
|
||||
- ID: 1291
|
||||
- guid:
|
||||
- status: draft
|
||||
- publié le: <2019-06-18 18:44:29>
|
||||
- modifié: <2019-06-18 18:44:29>
|
||||
- Index des articles du blog [[id:39e91a2e-d003-4acd-a99a-b58dca74df77][Cipherbliss blog]]
|
||||
|
||||
** Le temps c'est un non problème
|
||||
|
||||
ceci_est_du_html
|
||||
|
||||
Comme vous le dirait ce cher Jean Pierre Coffe, le problème du temps, c'est un non-problème. Hors, il se trouve aussi que, plus vous vivez près de la pauvreté, plus la notion de temps libre vous est étrangère. Non seulement vous vivez sans cesse en mode survie, mais vous n'avez pas la possibilité d'envisager quoi que ce soit à long terme: vous n'êtes pas maître de votre temps ni de votre argent, et ce n'est pas de votre faute. Comme le montre <a href="https://www.atd-quartmonde.org/wp-content/uploads/2019/05/Dim_Pauvr_fr_FINAL1.pdf">cette étude d'Atd Quart-monde</a>
|
||||
|
||||
Hors il se trouve que pour pouvoir acquérir des compétences dans les métiers de l'informatique, il faut pouvoir disposer de temps d'exploration, d'espace au calme afin de lire et de comprendre ce que l'on lit, d'un environnement assez calme pour ne pas être interrompu toutes les 6 minutes maxiumum comme c'est le cas dans les open-space. Bref, cela demande de pouvoir s'instruire et expérimenter librement.
|
||||
|
||||
|
||||
Et il se trouve que le temps c'est aussi de l'argent, qui n'est pas forcément le vôtre.
|
||||
|
||||
|
||||
Prendre le contrôle de son temps c'est aussi savoir refuser de se mettre à disposition de l'agenda d'autres personnes. Il vous faut donc apprendre à dire non, à refuser des choses à faire, les ordonner selon votre propre conception du temps afin de dégager du temps libre parmi le bullshit de tâches absconses que constitue la violence administrative qui gangrène toujours plus l'agenda de tout un chacun.
|
||||
|
||||
|
||||
Cette bullshitisation des métiers est un véritable fléau à plusieurs visages.
|
||||
|
||||
<ul>
|
||||
<li>Création d'amnésie chez les experts en changeant les technoslogies tendances afin de rallonger les délais de production de projets.</li>
|
||||
<li>Dépossession des prises de décision aux exécutants.</li>
|
||||
<li>Création de procédures administratives totalement absurdes.</li>
|
||||
<li>Réglementations et retouches dans les procédés afin d'occuper le temps d'une armée de cols blancs.</li>
|
||||
<li>Obligations de passer par des paperasses interminables demandant plusieurs fois les mêmes informations au sein d'un même formulaire (sic).</li>
|
||||
<li>Emplois de larbins qui n'ont d'autre objet que de donner l'impression qu'une personne est importante, de rustine, de porte flingue, de cocheur de case, de pancarte humaine... Tels que théorisés par l'anthropologue David Graeber et illustrés de nombreux exemples dans son livre "bullshit jobs : les métiers à la con", disponible en Français et que je vous recommande chaudement.</li>
|
||||
</ul>
|
||||
Beaucoup de stratégies managériales et d'objectifs d'emploi ne sont <strong>vraiment pas</strong> louables (le programme de management next chez France Telecom qui a engendré près de vingt mille démissions et qui a été surtout plus connu du fait de nombreux suicides. Une recette que l'on retrouve de nos jours <a href="https://blogs.mediapart.fr/wael-mejrissi/blog/110119/suicides-des-agents-sncf-dans-lindifference-generale">sous un angle encore plus tragique à la SNCF</a> en phase de privatisation: 57 suicides sur leur lieu de travail en 2017) et répondent à un système proche de la féodalité où l'importance d'une personne se mesure à l'aune de son grand nombre de sous-fifres.
|
||||
|
||||
|
||||
Le travail est un monde hérissé de tabous.
|
||||
|
||||
|
||||
Sans parler du rapport sado masochiste que des employés vivent avec leurs managers et supérieurs en général, si vous ne passez pas votre vie à souffir et à détester votre travail, il y a de grandes chances que vos proches (et moins proches) vous en veuillent.
|
||||
|
||||
|
||||
S'approprier le temps des gens est donc une forme de pouvoir permise par nos structures hiérarchiques dignes du moyen âge. Savoir s'en dépêtrer est à la fois nécessaire mais aussi souhaitable à une vie équilibrée. Ce qui ne <a href="https://duckduckgo.com/l/?kh=-1&uddg=https%3A%2F%2Fmedium.com%2Fs%2Ffuturehuman%2Fsurvival-of-the-richest-9ef6cddd0cc1">va bien entendu pas dans le sens des personnes à la tête de la pyramide</a>, qui n'ont pas encore saisi l'importance de l'effondrement prochain, et qu'une de leur piste de survie serait:
|
||||
<ul>
|
||||
<li>d'arrêter leurs conneries mégalomanes</li>
|
||||
<li>de commencer à mieux considérer leurs employés dès aujourd'hui.</li>
|
||||
<li>de détruire le présentéisme afin que les personnes aient une vie et des contacts sociaux en dehors de leur travail</li>
|
||||
</ul>
|
||||
|
||||
|
||||
* Liens
|
||||
- cipherbliss [[id:d14d8051-bbb9-4279-a574-84d78bfe5b66][Cipherbliss blog]]
|
||||
|
||||
|
|
@ -1,35 +0,0 @@
|
|||
:PROPERTIES:
|
||||
:ID: 9e4f435f-b264-4eaa-822c-4dbcc3a2f313
|
||||
:END:
|
||||
#+title:
|
||||
|
||||
* Article
|
||||
- ID: 1379
|
||||
- guid:
|
||||
- status: draft
|
||||
- publié le: <2020-06-01 09:42:02>
|
||||
- modifié: <2020-06-01 09:42:02>
|
||||
- Index des articles du blog [[id:39e91a2e-d003-4acd-a99a-b58dca74df77][Cipherbliss blog]]
|
||||
|
||||
** Se mettre au bépo
|
||||
|
||||
ceci_est_du_html
|
||||
|
||||
Ben c'est pas facile
|
||||
|
||||
|
||||
Typematrix avec d'énorme frais de douane
|
||||
|
||||
|
||||
Klavaro
|
||||
|
||||
|
||||
Régler son clavier au boot comme indiqué sur le wiki
|
||||
|
||||
|
||||
avoir de la patience
|
||||
|
||||
* Liens
|
||||
- cipherbliss [[id:d14d8051-bbb9-4279-a574-84d78bfe5b66][Cipherbliss blog]]
|
||||
|
||||
|
|
@ -1,70 +0,0 @@
|
|||
:PROPERTIES:
|
||||
:ID: e8aa3a61-93cf-4e70-b012-70abf156becf
|
||||
:ROAM_ALIASES: "framadate histoire"
|
||||
:END:
|
||||
#+title:
|
||||
#+filetags: :framadate:
|
||||
|
||||
* Article
|
||||
- ID: 1381
|
||||
- guid:
|
||||
- status: draft
|
||||
- publié le: <2020-06-01 09:42:29>
|
||||
- modifié: <2020-06-01 09:42:29>
|
||||
- Index des articles du blog [[id:39e91a2e-d003-4acd-a99a-b58dca74df77][Cipherbliss blog]]
|
||||
|
||||
** Framadate version funky
|
||||
|
||||
Il était une fois Framadate, une petite histoire de télétravail hors
|
||||
pandémie de Covid-19. Comme beaucoup de boulots collaboratifs de
|
||||
logiciels libre, c'est une contribution faite à distance, par beaucoup
|
||||
de personnes dans le monde, sur leur temps libre. De quoi apprendre des
|
||||
choses utiles en ces temps où le télétravail semble être totalement
|
||||
nouveau, alors que *pour beaucoup de contributeurs au libre, le travail
|
||||
de loin à plusieurs a toujours été l'unique façon de faire*. Donc
|
||||
Framadate, installé sur [[https://framadate.org/][framadate.org]], c'est
|
||||
comme Doodle (qui est devenu très cher pour le commun des mortels), mais
|
||||
en mieux du point de vue éthique.
|
||||
|
||||
|
||||
** Qu'est-ce que c'est, Framadate?
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: quest-ce-que-cest-framadate
|
||||
:END:
|
||||
|
||||
[[https://www.cipherbliss.com/wp-content/uploads/2020/04/framadate_date.jpg]]
|
||||
[[https://www.cipherbliss.com/wp-content/uploads/2020/04/framadate_classic.jpg]]
|
||||
|
||||
C'est un petit logiciel que vous pouvez installer sur votre serveur afin
|
||||
de permettre à n'importe qui d'organiser des sondages pour se faire des
|
||||
rendez-vous (au lieu d'utiliser la technique moisie des échanges
|
||||
interminables d'email "moi je suis dispo tel jour" "ha moi non" "ah moi
|
||||
oui" "oui mais toi on s'en fout Bébert!" ... pauvre Bébert!), sans que
|
||||
les gens que vous souhaitiez réunir n'aient besoin de s'sinscrire, de
|
||||
faire chauffer la carte bleue, ou de se faire pister par les GAFAM.
|
||||
|
||||
|
||||
C'est un logiciel très utilisé, mais qui souffre de problème d'ergonomie
|
||||
énorme sur mobile. Comme beaucoup de projets libres, faits par des gens
|
||||
qui ne sont pas experts en User eXperience, design, accessibilité,
|
||||
traduction. Il était question de retaper son front end depuis un bout de
|
||||
temps, et Maiwann s'est lancé dans la réunion d'idées en 2018, a produit
|
||||
des design d'écrans en 2019, et fait un appel a discuter du truc avec le
|
||||
hashtag #framadate, depuis un post Mastodon en Aout 2019. Les maquettes
|
||||
étaient prêtes et n'attendaient qu'à être traduites en logiciel.
|
||||
|
||||
|
||||
Nouvelle tête de framadate, maquettes sur Zeplin, cette version n'est
|
||||
pas encore en production:
|
||||
|
||||
[[https://www.cipherbliss.com/wp-content/uploads/2020/04/Screenshot_2020-04-10-Zeplin-Project.png]]
|
||||
[[id:ce0c7b63-604e-42bf-94eb-486ace36b055][contribuer_projet_libre]]
|
||||
|
||||
** histoire
|
||||
|
||||
* Liens
|
||||
- cipherbliss [[id:d14d8051-bbb9-4279-a574-84d78bfe5b66][Cipherbliss blog]]
|
||||
|
||||
[[id:19c34cd0-8e0e-4484-85d6-5a8ed056fb04][refonte-de-framadate-avec-api]]
|
||||
[[id:c2c9fce0-fd7d-4b82-8b08-cd97840ca112][quelques-avancements-sur-framadate-funky]]
|
||||
|
|
@ -1,132 +0,0 @@
|
|||
:PROPERTIES:
|
||||
:ID: b0740252-a4ed-4117-ace5-63254483ad2d
|
||||
:END:
|
||||
#+title:
|
||||
|
||||
* Article
|
||||
- ID: 1383
|
||||
- guid:
|
||||
- status: draft
|
||||
- publié le: <2020-06-04 18:56:54>
|
||||
- modifié: <2020-06-04 18:56:54>
|
||||
- Index des articles du blog [[id:39e91a2e-d003-4acd-a99a-b58dca74df77][Cipherbliss blog]]
|
||||
|
||||
** échec de sauvegarde
|
||||
|
||||
je n'avais pas automatisé suffisamment de choses et soudain bam ! Mon
|
||||
serveur mysql ne veut plus démarrer.
|
||||
|
||||
|
||||
<https://blog.ledez.net/informatique/comment-r%C3%A9cup%C3%A9rer-un-rm-rf-var-lib-mysql/>
|
||||
|
||||
# Regrouper tout le bazar
|
||||
|
||||
# Supprimer les dossiers et fichiers vides dans le bazar
|
||||
|
||||
compter les fichiers et dossiers vides
|
||||
|
||||
find ./ -empty -type f |wc -l
|
||||
|
||||
find ./ -empty -type d |wc -l
|
||||
|
||||
les supprimer
|
||||
|
||||
find ./ -empty -type f -delete
|
||||
|
||||
find ./ -empty -type d -delete
|
||||
|
||||
# Définir son architecture de sauvegarde
|
||||
|
||||
## ranger la destination
|
||||
/home/tykayn/backup
|
||||
- serveurs
|
||||
- sys
|
||||
- postgresql
|
||||
- dump
|
||||
- lib
|
||||
- mysql
|
||||
- dump
|
||||
- lib
|
||||
- home
|
||||
- www
|
||||
- mastodon
|
||||
- tykayn
|
||||
- spare
|
||||
- peertube
|
||||
- vps
|
||||
- cloudland
|
||||
- nextcloud
|
||||
- mysql
|
||||
- dump
|
||||
|
||||
les scripts de sauvegarde doivent faire partie de la sauvegarde
|
||||
## ranger les sources en recherchant par type de fichier
|
||||
|
||||
bases de données
|
||||
- mysql
|
||||
- postgresql
|
||||
- snap mysql
|
||||
|
||||
plusieurs serveurs
|
||||
- 3 serveurs de 2To chacun répliquent la sauvegarde
|
||||
- Mon NAS de 10 To se syncronise avec un de ces trois serveurs.
|
||||
|
||||
|
||||
fichiers de chaque serveur à copier
|
||||
- configuration nginx
|
||||
- dossier de snap nextcloud
|
||||
- tout le contenu des sites web
|
||||
- des archives diverses
|
||||
|
||||
tout réunir avec **Borg Backup**
|
||||
```
|
||||
apt install borgbackup
|
||||
```
|
||||
|
||||
Créer le dossier de destination des sauvegardes
|
||||
|
||||
borg init --encryption=repokey-blake2 /home/tykayn/borg
|
||||
borg create /borg::{now} /home/tykayn/backup
|
||||
|
||||
faire le ménage dans les sauvegardes passées et ne garder que quelques
|
||||
copies
|
||||
|
||||
borg prune -v --list --stats --keep-daily=4 --keep-weekly=4
|
||||
--keep-monthly=3 /media/tykayn/tk4to/backup_land4to
|
||||
|
||||
syncroniser le dossier de borg
|
||||
|
||||
## cronjob de sauvegarde
|
||||
### Résoudre le problème de connection sans mot de passe
|
||||
https://www.thegeekstuff.com/2008/11/3-steps-to-perform-ssh-login-without-password-using-ssh-keygen-ssh-copy-id/
|
||||
|
||||
|
||||
### Créer le script avec son log
|
||||
```
|
||||
sudo nano /etc/cron.daily/tykayn-backup
|
||||
```
|
||||
#!/bin/bash
|
||||
|
||||
echo "start daily tykayn-backup cron job" >>
|
||||
/home/tykayn/backup/all.log
|
||||
sudo su - mastodon -c "cd && today=$(date +"%Y-%m-%d_%H-%I-%s") ;
|
||||
pg_dump -Fc mastodon -f
|
||||
/home/mastodon/backups/backup_${today}_mastodon-cipherbliss-com.dump"
|
||||
bash /home/tykayn/rsync_all.sh
|
||||
alias dumpall='today=$(date +"%Y-%m-%d_%H-%I-%S") ; mysqldump -utykayn
|
||||
-pplopplop01 --all-databases >
|
||||
/home/tykayn/backup/mysql_dump_all_databases/backup_mysql_${today}_.sql';
|
||||
alias mysimport='mysqlimport -uroot -pplopplop01'
|
||||
|
||||
|
||||
|
||||
# Script de healthcheck
|
||||
|
||||
ping sur différents sites
|
||||
vérification de services qui fonctionnent
|
||||
|
||||
|
||||
* Liens
|
||||
- cipherbliss [[id:d14d8051-bbb9-4279-a574-84d78bfe5b66][Cipherbliss blog]]
|
||||
|
||||
|
|
@ -1,38 +0,0 @@
|
|||
:PROPERTIES:
|
||||
:ID: 15172771-391d-4ee5-ab5d-0dab8b4595a4
|
||||
:END:
|
||||
#+title:
|
||||
|
||||
* Article
|
||||
- ID: 1359
|
||||
- guid:
|
||||
- status: draft
|
||||
- publié le: <2020-06-21 19:47:19>
|
||||
- modifié: <2020-06-21 19:47:19>
|
||||
- Index des articles du blog [[id:39e91a2e-d003-4acd-a99a-b58dca74df77][Cipherbliss blog]]
|
||||
|
||||
** Avoir de la belle imagerie dans JOSM avec la Bd Ortho IGN et Mapillary
|
||||
|
||||
ceci_est_du_html
|
||||
|
||||
JOSM propose des tas d'imageries que l'on peut ajouter dans notre éditeur.
|
||||
|
||||
La meilleure imagerie sattelite disponible actuellement est la BD Ortho de l'IGN.
|
||||
|
||||
Pour l'activer il faut se rendre dans le menu imagerie > préférences.
|
||||
|
||||
Ajouter la couche BD Ortho. Ensuite, l'activer. Et voilà!
|
||||
|
||||
Pour avoir des images au niveau du sol, contribuées par des millions de gens il existe le projet Mapillary.
|
||||
|
||||
Vous pouvez aussi activer son calque de lignes et points verts marquant les séquences disponbles dans la zone que vous avez en vue actuellement.
|
||||
|
||||
JOSM peut aussi vous permettre de réaligner vos séquences de photos.
|
||||
|
||||
|
||||
|
||||
|
||||
* Liens
|
||||
- cipherbliss [[id:d14d8051-bbb9-4279-a574-84d78bfe5b66][Cipherbliss blog]]
|
||||
|
||||
|
|
@ -1,297 +0,0 @@
|
|||
:PROPERTIES:
|
||||
:ID: 97d851d5-88c4-4def-bf16-28622d03dc7b
|
||||
:END:
|
||||
#+title:
|
||||
|
||||
* Article
|
||||
- ID: 1448
|
||||
- guid:
|
||||
- status: draft
|
||||
- publié le: <2020-07-15 11:34:16>
|
||||
- modifié: <2020-07-15 11:34:16>
|
||||
- Index des articles du blog [[id:39e91a2e-d003-4acd-a99a-b58dca74df77][Cipherbliss blog]]
|
||||
|
||||
** construction de maison
|
||||
[[id:ec45b2ee-3358-4fa6-a1bf-b2912bad7281][construction_maison]]
|
||||
RTIES:
|
||||
:CUSTOM_ID: combien-de-gens-à-la-fois
|
||||
:END:
|
||||
|
||||
Le nombre d'enfants et la fréquence à laquelle vous hébergez des gens
|
||||
aussi change le nombre de pièces que vous allez devoir placer. Pour
|
||||
atteindre notre objectif on a donc comparé deux entreprises de maîtrise
|
||||
d'ouvrage, puis choisi une qui a le mieux répondu à nos questions durant
|
||||
l'entretien, et qui a été capable de faire quelques schémas répondant au
|
||||
besoin en live. On est tombé sur quelqu'un de très compétant gérant une
|
||||
boîte, on a lancé la procédure de permis de construire, et notre héros
|
||||
est malheureusement tombé en /burnout/ et a du déléguer l'intégralité du
|
||||
dossier à ses collègues qui n'ont malheureusement pas les mêmes
|
||||
compétences. (tin tin tinnnnn!!)
|
||||
|
||||
** Gestion de projet
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: gestion-de-projet
|
||||
:END:
|
||||
|
||||
La base pour s'organiser c'est d'avoir un suivi de tout ce qu'on doit
|
||||
entreprendre, les contacts de tous nos interlocuteurs, savoir avec qui
|
||||
on entreprend, quelles décisions prendre, quels sont les options,
|
||||
combien coûte différentes hypothèses et qui investit combien à quel
|
||||
moment... bref, savoir gérer un projet d'envergure *sur plusieurs
|
||||
années*. Il se trouve que compter uniquement sur sa boite mail pour
|
||||
faire tout ça est un désastre garanti. Surtout quand il s'agit à chauqe
|
||||
fois de devoir situer de quel endroit on parle sur un plan. Mais on le
|
||||
savait à l'avance, c'est pourquoi on s'est fabriqué une bonne feuille de
|
||||
calcul qu'on a fait évoluer au fil des jours et de nos interrogations.
|
||||
|
||||
Bien sûr il existe des logiciels tout à fait adaptés à la gestion de
|
||||
projet de cette envergure, voire pour des projets beaucoup plus
|
||||
complexes, mais on a fait un truc assez bon à notre sauce.
|
||||
|
||||
|
||||
* Faire sa feuille de calcul de suivi
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: faire-sa-feuille-de-calcul-de-suivi
|
||||
:END:
|
||||
|
||||
Notre feuille de suivi répond a plusieurs besoins, un pour chaque tab.
|
||||
|
||||
Puisqu'il nous fallait pouvoir y accéder de plusieurs endroits nous
|
||||
avons utilisé une feuille google drive, que nous avons ensuite migré
|
||||
dans notre NAS, ce qui nous permettait de la modifier à distance dans
|
||||
une page web. voici les feuilles de notre classeur, éditées avec
|
||||
LibreOffice Calc et syncronisées avec notre NAS. La suite dans le
|
||||
prochaine épisode.
|
||||
|
||||
pour une maison neuve
|
||||
|
||||
- réflexion, décisions
|
||||
|
||||
- études techniques
|
||||
- croquis
|
||||
- prises de mesure sur place pour ajuster les plans
|
||||
|
||||
- communication:
|
||||
|
||||
- prise d'infos
|
||||
- recherche de prestataires
|
||||
- transmission d'infos
|
||||
- négociations
|
||||
- se réunir
|
||||
|
||||
- faire des achats
|
||||
|
||||
- transporter du gros matos
|
||||
- couts de livraison à prévoir
|
||||
|
||||
- sur chantier: réalisation de travaux / ouvrage
|
||||
|
||||
- paperasse administrative
|
||||
|
||||
- signature de devis
|
||||
- fournir éléments pour permis de construire
|
||||
|
||||
- logistique des échafaudages, outils et machines
|
||||
|
||||
- contrôle chantier
|
||||
|
||||
- suivi des avancements
|
||||
- désigner responsable des étapes
|
||||
- faire signer les gens
|
||||
- retapage des erreurs
|
||||
|
||||
- attendre beaucoup
|
||||
|
||||
savoir ce que l'on veut
|
||||
|
||||
faire un budget
|
||||
|
||||
en prévoyant qu'il est fréquent que le budget augmente en cours de
|
||||
construction à hauteur de 5% environ.
|
||||
|
||||
|
||||
généralement, la matière première compte 1/3 du budget, et les services
|
||||
de prestation 2/3. donc vous pouvez vous construire une maison pour 1/3
|
||||
du prix si vous la faites à la main, easy!
|
||||
|
||||
pour ça vous pourrez trouver conseil sur l'association régionale des
|
||||
castors d'ile de france, par exemple [[https://www.arcif.net/]]
|
||||
|
||||
lieu
|
||||
|
||||
définir nos exigences en termes de commerce, de densité de population,
|
||||
de calme ou de bordel constant, de boulot / centre de télétravail, de
|
||||
proximité d'une forêt, d'accès aux transports en commun, aux études et
|
||||
groupes scolaires, crèche si vous avez un gaminou, aux loisirs, aux
|
||||
grands axes routiers, aux voies cyclables, de proximité du reste de la
|
||||
famille.
|
||||
|
||||
|
||||
trouver un terrain
|
||||
|
||||
plans
|
||||
|
||||
dessiner des croquis de plans trouver un architecte
|
||||
|
||||
savoir comment vous voulez répartir vos pièces, comment garer vos
|
||||
véhicules, comment orienter la maison de sorte à pouvoir profiter des
|
||||
apports solaires, organiser plusieurs étages
|
||||
|
||||
savoir où placer les machines
|
||||
|
||||
faire en sorte que vos tuyeaux d'eau soient le plus court possible
|
||||
|
||||
savoir si vous voulez pouvoir habiter sur un seul étage (si vous n'aimez
|
||||
pas les escaliers / vous êtes plsu tout jeune, et que vous avez de la
|
||||
surface de terrain)
|
||||
|
||||
réfléchir à ce que vous voulez faire de votre jardin
|
||||
|
||||
espace de jeux
|
||||
|
||||
piscine ou non
|
||||
|
||||
terrasse pour manger ou glander dehors
|
||||
|
||||
avoir des arbres ou non
|
||||
|
||||
réfléchir à comment aménager le sol, gérer ses pentes, ses bosses, ses
|
||||
trous, ses accès
|
||||
|
||||
voir un paysagiste
|
||||
|
||||
gestion des réseaux, position des prises et interrupteurs, domotique,
|
||||
|
||||
home cinéma, enceintes multi room,
|
||||
|
||||
disposition de la cuisine
|
||||
|
||||
chambre d'ami
|
||||
|
||||
laisser la possibilité à vos habitudes d'évoluer
|
||||
|
||||
quand tout est clair on peut lancer le permis de construire
|
||||
|
||||
[[https://www.service-public.fr/particuliers/vosdroits/F1986]]
|
||||
|
||||
(un mois minimum si tout est bon)
|
||||
|
||||
afficher le permis de construire dans la rue. attendre la période
|
||||
d'opposition publique de 2 mois avant de pouvoir commencer les travaux.
|
||||
|
||||
|
||||
au fur et a mesure de l'avancement des plans, vous serez amenés à écrire
|
||||
de longs mails pour préciser des choses sur des endroits de plans à
|
||||
retoucher. Et donc passer un temps énorme a juste décrire de quoi vous
|
||||
voulez parler.
|
||||
|
||||
|
||||
alors que vous pouvez mettre en ligne vos plans et créer des points de
|
||||
discussion dessus avec des outils comme Marvel.
|
||||
|
||||
|
||||
vous pourrez clore les discussions au fur et à mesure que les soucis
|
||||
sont résolus et que les plans sont mis à jour.
|
||||
|
||||
|
||||
comme ça, pas la peine de vous trimballer ouatmille plans pas à jour
|
||||
imprimés partout.
|
||||
|
||||
|
||||
suivre ses dépenses
|
||||
|
||||
prospection des prestataires
|
||||
|
||||
suivi des paiements
|
||||
|
||||
savoir qui paie quoi
|
||||
|
||||
paiement en plusieurs fois, toujours
|
||||
|
||||
les boites ne finissent pas toujours ce qu'elles commencent
|
||||
|
||||
réflexion sur les éléments à acheter
|
||||
|
||||
savoir quel prestataire fournit des éléments
|
||||
|
||||
échéancier
|
||||
|
||||
des travaux empêchent l'avancement d'autres travaux, il est rare que les
|
||||
prestataires puissent travailler en même temps, et ce n'est d'ailleurs
|
||||
pas permis par leurs assurances
|
||||
|
||||
savoir quel prestataire s'occupe de quel percement
|
||||
|
||||
diagramme de gantt
|
||||
|
||||
visiter le chantier souvent
|
||||
|
||||
mettre à jour nos envies
|
||||
|
||||
en se baladant sur le chantier nous avons retapé les emplacement de pas
|
||||
mal de pièces
|
||||
|
||||
relever les anomalies, les erreurs de placement
|
||||
|
||||
faire face aux contraintes qui apparaissent au fur et à mesure, et qui
|
||||
demandent de retaper les plans
|
||||
|
||||
gérer les malfaçons
|
||||
|
||||
constater et faire constater
|
||||
|
||||
désigner les responsables et couper court aux jeux de patate chaude
|
||||
entre les prestataires
|
||||
|
||||
réparer dans un délai raisonnable
|
||||
|
||||
activer les réseaux un trimestre avant la fin
|
||||
|
||||
eau
|
||||
|
||||
elec, enedis
|
||||
|
||||
internet, orange, même si vous êtes chez un fournisseur éthique, c'est
|
||||
orange qui construit les nouvelles lignes.
|
||||
|
||||
|
||||
commander les meubles de sorte qu'ils arrivent après les revêtements de
|
||||
sol
|
||||
|
||||
réceptionner la maison
|
||||
|
||||
en contrôlant bien le tout
|
||||
|
||||
préparer le déménagement
|
||||
|
||||
rediriger ses courriers
|
||||
|
||||
installer sa nouvelle boite à lettre / étiquette
|
||||
|
||||
Réexpédition définitive nationale - 1 contrat, 6 Mois
|
||||
|
||||
[[https://www.laposte.fr]]
|
||||
|
||||
changer son adresse sur https://www.service-public.fr
|
||||
|
||||
virer ou donner des trucs dont on ne se sert pas
|
||||
|
||||
cartonner
|
||||
|
||||
protéger la vaisselle
|
||||
|
||||
enrouler les fauteuils/canapés/matelas
|
||||
|
||||
ressources:
|
||||
|
||||
oalley [[https://www.oalley.net/map]]
|
||||
|
||||
feuille de calcul regroupant le tout
|
||||
|
||||
[[https://fr.smartsheet.com/modeles-de-gestion-de-construction-pour-Excel]]
|
||||
|
||||
[[/ns/dv/WLh9w/d1904e19d03a575e12581f2402704252e3ec21ba/_ZkOZIQBw75NA97waGYktaA/1556800112467.jpg?SynoToken=KraWgUUq0PUzE&_sid=%22Xr9ppM4oRyQrM15C0MIN193500%22&thumb=true]]
|
||||
|
||||
* Liens
|
||||
- cipherbliss [[id:d14d8051-bbb9-4279-a574-84d78bfe5b66][Cipherbliss blog]]
|
||||
|
|
@ -1,169 +0,0 @@
|
|||
:PROPERTIES:
|
||||
:ID: f5b6a3e6-34c1-4c3b-92f7-30f48b2609de
|
||||
:END:
|
||||
#+title:
|
||||
|
||||
* Article
|
||||
- ID: 1457
|
||||
- guid:
|
||||
- status: draft
|
||||
- publié le: <2020-08-07 00:38:25>
|
||||
- modifié: <2020-08-07 00:38:25>
|
||||
- Index des articles du blog [[id:39e91a2e-d003-4acd-a99a-b58dca74df77][Cipherbliss blog]]
|
||||
|
||||
** Duniter et la monnaie libre, la seule monnaie sans inflation nominale
|
||||
|
||||
ceci_est_du_html
|
||||
|
||||
Dans les logiciels libres, ce qui est libre, ce sont les gens qui les utilisent. Dans les logiciels privateurs, ce sont les gens sont utilisés, privés de leur libertés et de leur autonomie au même titre que du bétail passant sur le chemin d'un fermier en quête de marchés industriels juteux.
|
||||
|
||||
|
||||
lorsque vous êtes considérés comme une marchandise ce n'est jamais à votre avantage. Si c'est gratuit, et que ce n'est pas libre, c'est vous le produit. vous avez déjà certainement entendu cette phrase mais savez vous à quel point c'est une mauvaise affaire et à quoi vous renoncez quand vous épousez un produit de Google, Apple, Facebook, d'Amazon, ou Microsoft... ou que vous utilisez une monnaie non libre qui est par construction une pyramide de Ponzi autorisée par la loi ?
|
||||
|
||||
Le concept de monnaie dette m'avait été narré il y a pas mal d'années, bien avant que je bosse avec une banque, mais j'ignorais qu'on pouvait concevoir de la monnaie autrement.
|
||||
|
||||
|
||||
j'ignorais aussi à quel point la création monétaire est réellement de l'argent qui sort de nulle part: d'une ligne dans un livre comptable, écrite sur un disque dur, d'un ensemble de serveurs gérés par des banques. Comme dit Ploum, notre argent c'est aussi vrai qu'un score sur une borne d'arcade. Est il donc judicieux d'organiser toute sa vie pour faire juste grimper un score ?
|
||||
|
||||
moi j'pense la question elle est vite répondue.
|
||||
|
||||
|
||||
Il est évident que le rôle de la confiance dans une monnaie est une composante essentielle de ce qui fait que l'on peut vraiment s'en servir.
|
||||
|
||||
|
||||
j'avais entendu parler du projet de la monnaie libre et de son implémentation dans le monde réel en 2017 avec la blockchain Duniter, qui permet d'utiliser la G1 (la June, lancée le jour de la fête internationale du droit des femmes). Une monnaie basée sur la Théorie Relative de la Monnaie de Stéphane L'aborde, qui conçoit un ensemble de règles définissant ce qu'est une monnaie libre.
|
||||
|
||||
|
||||
Je m'étais créé un compte il y a quelques temps après avoir lu des articles par ci par la, après avoir vu une conférence Ted de Lionel Dricot - aka Ploum, puis en croisant des gens comme Pouhiou ainsi que d'autres gens qui en parlaient au festival Pas Sage En Seine, je me suis rappelé du sujet. Puis j'ai étudié un peu plus en détail le tout sur le site officiel duniter.org, en fouillant les dépôts du gitlab, les sujets du forum monnaie-libre.fr, en regardant sur l'agenda du libre les rencontres qui arrivaient, en causant avec des gens via une recherche par hashtag sur Mastodon, puis en rencontrant un des développeurs dans un patelin à 15 minutes de chez moi. Après avoir vu une petite demo avec des cartes pour montrer le fonctionnement des crédits en monnaie habituelle et du dividende universel en monnaie libre, j'ai fouillé un peu plus le sujet en zieutant des vidéos puis en lisant le livre de la théorie relative de la monnaie.
|
||||
|
||||
|
||||
Depuis j'ai appris pas mal de trucs que j'ai recoupé avec d'autres sources. Un sujet qui peut être aussi barbant que la monnaie à première vue peut se révéler en fait très intéressant si on s'éloigne des conneries racontées par les écoles de commerce.
|
||||
|
||||
|
||||
Ce n'est pas du tout aussi compliqué que ça en a l'air.
|
||||
|
||||
|
||||
Ça a des implications dans le monde réel qui sont catastrophiques très régulièrement.
|
||||
|
||||
|
||||
Le simple fait que l'on ne soit pas correctement éduqué à ce en quoi consiste la création monétaire montre à quel point on nous a appris à utiliser des choses sans les comprendre et sans chercher à les remettre en question. Ce qui est un signe de soumission assez évident. "L'ignorance c'est la force"
|
||||
|
||||
A quel point les banques se gavent sur l'asservissement généralisé de la population, d'une façon que personne d'autre n'a le droit de faire.
|
||||
|
||||
|
||||
Adosser la valeur d'une monnaie sur un métal précieux ne le rend pas stable pour autant.
|
||||
|
||||
|
||||
Il n'a jamais existé de société ou l'on ne faisait que du troc pour échanger des biens et des services.
|
||||
|
||||
|
||||
Le Prix intérieur brut est la somme de tous les salaires déclarés.
|
||||
|
||||
|
||||
La croissance dont on vous rabâche les oreilles à longueur de temps mesure la vitesse à laquelle circule la monnaie officielle déclarée.
|
||||
|
||||
|
||||
L'économie, La finance, et la monnaie, ce sont des choses différentes que tout le monde utilise pour désigner l'un ou l'autre, même dans des lieux où on s'attendait à ce que les gens sachent de quoi ils parlent. Ce qui n'aide pas.
|
||||
|
||||
|
||||
Comment fonctionne la création monétaire. Beaucoup de choses sont beaucoup plus faciles à comprendre quand on a vu ça.
|
||||
|
||||
|
||||
Il existe une toute petite proportion d'euros qui est palpable en billets et en pièces.
|
||||
|
||||
|
||||
Il est possible de savoir précisément dans le temps combien il existe d'euros et d'autres devises. ce qui permet de mesurer des tas de choses.
|
||||
|
||||
|
||||
Comment comparer deux zones économiques.
|
||||
|
||||
|
||||
Quand on ne se donne pas de direction à ses choix on va forcément tendre vers celles qui permettent un accroissement de son pognon.
|
||||
|
||||
|
||||
La lutte des classes est bien réelle, d'une violence sans précédent, et la monnaie est un des moyens de la mener.
|
||||
|
||||
|
||||
mais malheureusement elle est menée avec beaucoup plus de force et violence de toutes sortes envers les classes en dessous de la classe dominante.
|
||||
|
||||
|
||||
il y a cinq ans, 50 personnes détenaient autant de pognon que la moitié de l'humanité la plus pauvre, en 2020 on fait cette comparaison avec seulement 7 personnes les plus riches versus la moitié la plus pauvre.
|
||||
|
||||
|
||||
L'inflation nominale n'est pas une fatalité.
|
||||
|
||||
|
||||
Le dividende universel est techniquement possible.
|
||||
|
||||
|
||||
Le revenu de base est techniquement possible sans avoir à "aller chercher les sous quelque part".
|
||||
|
||||
|
||||
L'euro est une monnaie aussi numérique que le bitcoin ou la G1. La confiance dans une monnaie est plus déterminante à son utilisation que son aspect technique.
|
||||
|
||||
|
||||
Le bitcoin n'est pas une monnaie libre.
|
||||
|
||||
|
||||
Une cryptomonnaie n'est pas obligée d'être un objet de spéculation.
|
||||
|
||||
|
||||
Une cryptomonnaie peut parfaitement fonctionner sans être obligée de bouffer un maximum d'électricité. D'ailleurs vous êtes vous déjà demandé combien d'électricité bouffait le réseau Visa / Mastercard / AmericanExpress et le chauffage de ses châteaux remplis d'employés au travail fictif qui mangent des énergies fossiles pour faire le trajet tous les jours ?
|
||||
|
||||
Les choses qui ont de la valeur sont déterminées par ceux qui sont en mesure de créer la monnaie. Dans la monnaie libre, tout le monde est égal face à cette création monétaire, redistribuée de façon égale tous les jours.
|
||||
|
||||
|
||||
Ce n'est pas parce que vous gagnez votre vie et que vous pouvez vous payer des abonnements à des loisirs, ou que vous vous qualifiez de classe moyenne, que vous échappez à la violence bourgeoise.
|
||||
|
||||
|
||||
Des personnes qui sont nées rentières et ne feront jamais de travail pénible dans leur vie viennent tous les jours répéter dans les grands médias que ceux qui ne gagnent pas d'argent méritent une mort douloureuse. Si vous adhérez à cette idée vous pourrez alors diriger votre colère contre l'ennemi intérieur au lieu de questionner la raison pour laquelle ces personnes tiennent absolument à ce que l'on concoive la société autrement. Ou que l'on se demande si les parasites, ce ne seraient pas ces mêmes membres de la classe dominante.
|
||||
|
||||
|
||||
Donc quand vous apprenez qu'il serait en fait sain et normal que tout le monde touche un revenu universel, ça contrarie cette idée de requin bourgeois qui n'aime pas que des gens ne soient pas à son service, de près ou de loin.
|
||||
|
||||
|
||||
Il y a de grandes chances que vous vous tirez une balle dans le pied en perpetrant la violence bourgeoise. Que ce soit en répétant ses mythes de méritocratie qui fait omission de tout ce qu'ont découvert les sciences sociales telles que l'anthropologie depuis bien des années.
|
||||
|
||||
|
||||
Vouloir de la croissance implique nécessairement de la création de monnaie, et donc, de l'asservissement humain au bénéfice des créateurs de dette.
|
||||
|
||||
|
||||
Une création d'argent avec des intérêts implique que l'on doive... de l'argent qui n'existe pas. La monnaie dette est un schéma de Ponzi, mathématiquement impossible à faire fonctionner dans le temps. Et qui a des conséquences gravissimes sur la vie de la majorité des gens.
|
||||
|
||||
|
||||
Combattre la régulation bancaire c'est précipiter les conséquences fatales.
|
||||
|
||||
|
||||
Toute sainte croissance économique est basée sur l'utilisation de ressources fossiles.
|
||||
|
||||
|
||||
Notre plus gros problème, c'est le CO2, qui pilote les autres gaz à effet de serre.
|
||||
|
||||
|
||||
Cela fait depuis 1970 que les menaces sur la vie humaine par le changement climatique du à la pollution anthropique ont été très bien étudiés dans le rapport Meadows. Mais si les choses ne changent pas radicalement c'est parce qu'à la racine, la bourgeoisie qui bénéficie de l'exploitation humaine et fossile n'a aucun intérêt à rendre les clés de la ville et la propriété de leur temps aux gens bien sagement. Elle emploie d'ailleurs toute son énergie et force policière pour attaquer physiquement toute contestation depuis 2018.
|
||||
|
||||
|
||||
La haine des riches semble être le moyen de se faire converger les luttes pour la survie de l'humanité. En tous cas, c'est ce qui se déroule dans les rues de tous les pays du monde, ainsi qu'au cinéma ces dernières années.
|
||||
|
||||
|
||||
Nous sommes gouvernés par des connards, comme le détaille Lordon dans Le Monde.
|
||||
|
||||
|
||||
Les emmerdes ne vont pas arriver progressivement, mais par palier. Il suffit d'une voiture à l'arrêt pour obtenir des centaines de kilomètres de bouchon sur une route.
|
||||
|
||||
|
||||
Il ne peut pas y avoir de croissance infinie dans un monde aux ressources finies, que l'on fait partir en fumée de façon de plus en plus rapide. Adopter une monnaie qui ralentit de cent millions de fois ce processus est donc un acte bien plus efficace que de faire pipi sous la douche.
|
||||
|
||||
|
||||
il est parfaitement possible d'utiliser une monnaie sans avoir besoin de banques.
|
||||
|
||||
|
||||
il est possible d'obtenir un consensus distribué sans autorité centrale, c'est un des principes fondateurs d'une blockchain.
|
||||
|
||||
|
||||
|
||||
|
||||
* Liens
|
||||
- cipherbliss [[id:d14d8051-bbb9-4279-a574-84d78bfe5b66][Cipherbliss blog]]
|
||||
|
||||
|
|
@ -1,198 +0,0 @@
|
|||
:PROPERTIES:
|
||||
:ID: 98f5927a-aeea-414b-b391-fca09f8be696
|
||||
:END:
|
||||
#+title:
|
||||
|
||||
* Article
|
||||
- ID: 1387
|
||||
- guid:
|
||||
- status: draft
|
||||
- publié le: <2021-02-11 21:56:10>
|
||||
- modifié: <2021-02-11 21:56:10>
|
||||
- Index des articles du blog [[id:39e91a2e-d003-4acd-a99a-b58dca74df77][Cipherbliss blog]]
|
||||
|
||||
** quelle messagerie instantanée libre pour rassembler le monde
|
||||
|
||||
Comment communiquer avec ses proches ou des inconnus, de façon vraiment
|
||||
sécurisée par défaut, sans se faire pister en permanence par des
|
||||
entreprises qui asservissent l'humanité, sans avoir à être un fondu de
|
||||
la ligne de commande, et que ça soit utilisable au quotidien ?
|
||||
|
||||
** La mode qui passe
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: la-mode-qui-passe
|
||||
:END:
|
||||
|
||||
Selon Stéphane Bortzmeyer, bien que les gens semblent coincés dans
|
||||
l'utilisation d'un logiciel en particulier pour communiquer, les modes
|
||||
passent et les gens s'inscrivent massivement à un nouveau truc plein de
|
||||
paillettes tous les cinq ans environ. Ce ne sont pas les propriétés des
|
||||
logiciels qui sucitent la mode, comme le fait qu'ils soient facile a
|
||||
utiliser, beaux, pratiques, gratuits, permettant de s'envoyer des gifs,
|
||||
de faire de la visio conférence a cinq cent à la fois, hé non. c'est
|
||||
parce que des gens influent ont fait croire à suffisament de monde que
|
||||
ça valait le coup, pour qu'émerge
|
||||
[[https://fr.wikipedia.org/wiki/Effet_de_r%C3%A9seau][un effet de
|
||||
réseau]].
|
||||
|
||||
|
||||
#+BEGIN_QUOTE
|
||||
L'*effet de réseau* (ou rarement *effet-club*) est le phénomène par
|
||||
lequel l'[[https://fr.wikipedia.org/wiki/Utilit%C3%A9][utilité]]
|
||||
réelle d'une [[https://fr.wikipedia.org/wiki/Technique][technique]] ou
|
||||
d'un produit dépend de la quantité de ses utilisateurs. “J'y suis et
|
||||
j'y reste parce que tout le monde est là”.
|
||||
|
||||
#+END_QUOTE
|
||||
|
||||
Ou plus précisément, j'y suis jusqu'à ce que quelqu'un d'assez influent
|
||||
sur moi m'ordonne de le suivre ailleurs. C'est pénible à reconnaître,
|
||||
mais dans nos fréquentations, certaines personnes vont avoir une posture
|
||||
hiérarchique sur nous, et nous sur eux. Il est clair que pour certaines
|
||||
personnes avec qui on communique, il est très facile de les convaincre
|
||||
de n'importe laquelle de nos convictions et leur faire adopter une
|
||||
pratique similaire à la notre pour beaucoup de sujets, pour d'autres
|
||||
cela relève de la mission impossible, et pour encore d'autres ce sont
|
||||
eux qui nous font changer de comportement sans que l'on se sente
|
||||
légitime à remettre en cause cette domination. Le mot fait peur, mais
|
||||
c'est une réalité.
|
||||
|
||||
|
||||
Ainsi, lorsqu'un service basé sur le
|
||||
[[https://www.monde-diplomatique.fr/2019/01/ZUBOFF/59443][capitalisme de
|
||||
surveillance]] (théorisé par Shoshana Zuboff) obtient un effet de mode,
|
||||
il devient cool de faire la promotion de ce service et de se porter
|
||||
garant de sa communication en criant à qui veut bien l'entendre qu'on a
|
||||
un compte dessus, comme si la coolitude du dit service était aussi un
|
||||
peu la nôtre, [[https://www.youtube.com/watch?v=e5jDspIC4hY][de la même
|
||||
façon que l'on partage son engouement à soutenir un club de sport]]. On
|
||||
ne soutient pas un membre en particulier, mais une équipe, quand bien
|
||||
même cette équipe ne comporte plus une seule des personnes de l'époque
|
||||
où on l'a connu. On a alors une approche dogmatique de ce qu'il convient
|
||||
de suivre et la remise en question du dogme devient difficile au fur et
|
||||
à mesure qu'on en fait la promotion en demandant de ne pas le remettre
|
||||
en question. Bref, on se tire une balle dans le pied quand on soutient
|
||||
une cause si on ne nous autorise pas à la comprendre ou a la
|
||||
questionner.
|
||||
|
||||
|
||||
D'un autre côté, pour gérer leur identité en ligne, beaucoup de gens ont
|
||||
toujours en usage une ou deux très vieilles adresse e-mail, créé il y a
|
||||
fort fort longtemps avec un mot de passe tout pourri de 5 caractères et
|
||||
un chèque en blanc au fournisseur d'e-mail pour tout savoir de nos
|
||||
communications et de notre graphe social. C'est le cas pour Gmail mais
|
||||
aussi pour n'importe quel fournisseur d'e-mail qui ne pratique pas par
|
||||
défaut un chiffrement intégral et de bout en bout.
|
||||
|
||||
|
||||
Des boites comme Protonmail ou Tutanota le font de façon ultra simple
|
||||
pour les utilisateurs, tout en gagnant leur pain avec des abonnements et
|
||||
des donations. Des gens qui s'auto-hébergent peuvent aussi le faire sur
|
||||
leur propre ordinateur, mais c'est long, difficile et demande beaucoup
|
||||
de montée en compétences. Dans thunderbird il existe l'extension
|
||||
Enigmail qui permet de faire les choses plutôt facilement, mais là aussi
|
||||
ce n'est pas par défaut. L'e-mail reste la base de l'identité numérique
|
||||
sur le web et c'est bien souvent la première chose qu'on vous demande
|
||||
pour créer un compte quelque part. Comme tout le monde a au moins une
|
||||
adresse email, ça pourrait servir à communiquer.
|
||||
|
||||
|
||||
** Le souci de l'inscription
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: le-souci-de-linscription
|
||||
:END:
|
||||
|
||||
S'incrire à un service est une chose pénible, en général. Enfin, sauf si
|
||||
on sait
|
||||
[[https://www.cipherbliss.com/comment-ne-plus-perdre-de-temps-avec-ses-mots-de-passe/][utiliser
|
||||
un gestionnaire de mot de passe]] ;)
|
||||
|
||||
De ce fait, fournir une identité qui vous permet de vous connecter a un
|
||||
site “via” un autre pour lequel vous avez déjà un compte, devient un
|
||||
grand atout face à la flemme. Google et Facebook l'ont bien compris et
|
||||
fourni de quoi faire en sorte de se connecter à des millions d'autres
|
||||
sites via leur
|
||||
[[https://fr.wikipedia.org/wiki/Authentification_unique][Single Sign
|
||||
On]], qui leur permet de savoir et de contrôler qui se connecte à quoi,
|
||||
et comment.
|
||||
|
||||
|
||||
Partant du principe que
|
||||
“[[https://knowyourmeme.com/memes/do-you-guys-not-have-phones][tout le
|
||||
monde a un smartphone]]”, certaines messageries comme
|
||||
[[https://signal.org/fr/][Signal]] ou
|
||||
[[https://telegram.org/][Telegram]] ont d'ailleurs fait le pari de
|
||||
prendre un numéro de téléphone comme base de l'identité, et non pas un
|
||||
email ou un autre compte. Ce qui facilite l'inscription, permet de
|
||||
retrouver tous ses contacts très facilement, et permet de sortir de
|
||||
Whatsapp, filiale de Facebook, très simplement en pratique.
|
||||
|
||||
|
||||
ça permet aussi de faire du commerce d'une donnée identifiant une
|
||||
personne de façon assez forte partout dans le monde (le numéro IMEI, le
|
||||
VIN du téléphone, l'adresse MAC, l'identifiant publicitaire adwords ou
|
||||
facebook), et de compter sur un fournisseur d'identité à l'international
|
||||
déjà existant: les services télécom.
|
||||
|
||||
|
||||
C'est votre numéro IMEI qui permet à votre opérateur Français de vous
|
||||
dire "coucou, vous venez de passer la frontière, voilà comment ça se
|
||||
passe le roaming et voici les tarifs" ou encore "bienvenu dans tel pays,
|
||||
on est trop sympa de vous facturer seulement 7€ la minute si vous
|
||||
appelez vers la France métropolitaine"
|
||||
|
||||
** La mort des entreprises
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: la-mort-des-entreprises
|
||||
:END:
|
||||
|
||||
Un logiciel privateur, (et donc fermé à la contribution et à l'audit du
|
||||
fonctionnement par des gens externes à l'entreprise) maintenu par une
|
||||
entreprise n'est pérenne que tant que ladite entreprise qui le maintient
|
||||
décide de faire bosser des gens compétents dessus... et que l'entreprise
|
||||
elle même reste en vie. Si un des deux disparaît, c'est fini. Pas
|
||||
forcément tout de suite, mais très rapidement. N'allez pas croire que
|
||||
c'est réservé aux petites entreprises et admirez donc le nombre de
|
||||
[[https://gcemetery.co/][logiciels tués par Google sur son cimetière]],
|
||||
qui propose également des alternatives.
|
||||
|
||||
|
||||
Contrairement à un logiciel libre, qui peut parfaitement survivre à ses
|
||||
créateurs et être repris par d'autres, tant qu'il reste accessible à la
|
||||
communauté. C'est pourquoi tout mettre sur Github, détenu par Microsoft
|
||||
et uniquement là bas est forcément une bêtise. L'enjeu de la pérennité
|
||||
de la forge logicielle et du partage des sources sous une licence
|
||||
adaptée est donc toute aussi importante. C'est ce qui fait que
|
||||
[[https://www.nextinpact.com/lebrief/41883/11639-github--microsoft--se-paie-le-gestionnaire-de-paquets-npm][github
|
||||
et NPM ont été rachetés par Microsoft]], et Gitlab par Google.
|
||||
|
||||
|
||||
** La messagerie par dessus l'email
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: la-messagerie-par-dessus-lemail
|
||||
:END:
|
||||
|
||||
Deltachat
|
||||
|
||||
** Communiquer avec ceux qui n'ont pas de compte
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: communiquer-avec-ceux-qui-nont-pas-de-compte
|
||||
:END:
|
||||
|
||||
L'enjeu d'une communication globale et privée est donc de taille, et ne
|
||||
saurait passer par un service centralisé sujet à la mort ou au bon
|
||||
vouloir des actionnaires d'une entreprise.
|
||||
|
||||
|
||||
Suite à une conférence de uwu et owo à Pas Sage en seine 2019, j'ai
|
||||
lancé un sondage recensant quelles sont les messageries pour lesquelles
|
||||
vous avez un compte.
|
||||
|
||||
|
||||
https://framaforms.org/quelles-messageries-instantanees-de-groupe-utilisez-vous-1589371245
|
||||
|
||||
|
||||
* Liens
|
||||
- cipherbliss [[id:d14d8051-bbb9-4279-a574-84d78bfe5b66][Cipherbliss blog]]
|
||||
|
||||
|
|
@ -32,12 +32,13 @@
|
|||
<header id="masthead" class="site-header">
|
||||
<div class="header-image" style="background-image: url('{{template_content[" BANNIERE_ENTETE"]}}');
|
||||
background-repeat: no-repeat; background-size: cover;">
|
||||
<div class="template-header">
|
||||
<a href="/">
|
||||
<img src="{{template_content['SITE_ICON']}}" class="site-icon img">
|
||||
</a>
|
||||
<h1 class="blog-title">{{template_content['BLOG_TITLE']}}</h1>
|
||||
<p class="blog-subtitle">{{template_content['BLOG_SUBTITLE']}}</p>
|
||||
<div class="template-header">
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue