From 9df3b183b695870f6ec864dae26e92f5803b7a58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexis=20M=C3=A9taireau?= Date: Fri, 29 Sep 2023 18:30:09 +0200 Subject: [PATCH] Enhanced UI & UX; Added New ISBN Plugin. - Added the ability to display book cover for the category "Lectures" if ISBN cover is available. - Moved author's name into a small tag for better hierarchy and readability. - Implemented a feature to indicate link sizes depending on the number of articles associated with a given tag. - Implemented a mini footer element displaying an RSS feed icon. - Improved category display using description dictionary. - Added a new plugin "isbn_downloader" to fetch ISBN information when needed. - Included the count of articles for each category. - Implemented changes for better layout and readability of tags and categories. - Adjusted the layout of the webpage, improving the overall look of the page. - Included "requests" in the requirements.txt for supplanting dependencies required by the new plugin and/or features. --- .../2019-09-01-open-space-technology.md | 1 + .../2019-10-01-refuser-detre-un-homme.md | 2 +- .../2020-01-01-au-dela-de-la-penetration.md | 1 + ...n-feminisme-decolonial-francoise-verges.md | 1 + .../2023-03-10-crucial-conversations.md | 5 ++ .../2023-05-02-micropolitiques-des-groupes.md | 1 + .../Lectures/2023-09-16-eloge-de-lamitie.md | 2 +- ... 2010-06-04-gsoc-distutils-first-report.md | 0 .../2009-12-17-python-go.md | 0 .../2010-05-01-a-distutils2-gsoc.md | 0 ...d-text-rest-to-power-your-presentations.md | 0 ...istutils2-month-pypi-simple-index-ready.md | 0 ...2010-07-10-a-distutils2-sprint-in-tours.md | 0 ...ng-summer-of-code-working-on-distutils2.md | 0 .../2010-10-06-writing-pelican.md | 0 .../2010-10-10-php5-nginx.md | 0 ...ynamically-change-your-gnome-wallpapers.md | 0 .../2010-10-21-bebox-reboot.md | 0 .../2011-01-15-distutils2-paris-sprint.md | 0 .../2011-01-20-pypioncouch.md | 0 ...11-02-08-distutils2-paris-sprint-wrapup.md | 0 .../2011-03-16-unison.md | 0 .../2011-04-01-Link-suggestions.md | 0 .../2011-05-25-un-coup-de-main-memoire.md | 0 .../2011-06-11-jpype-and-boilerpipe.md | 0 .../2011-07-25-pelican-status-update.md | 0 .../2011-08-16-languages-influences.md | 0 .../2011-10-15-ihatemoney.md | 0 .../2011-12-07-introducing-cornice.md | 0 .../2012-04-02-carto-forms-fr.md | 0 .../2012-04-02-carto-forms.md | 0 .../2012-04-16-djangocong-2012.md | 0 .../2012-05-01-refactoring-cornice.md | 0 .../2012-09-17-pyconfr-circus.md | 0 .../2012-10-22-cheese-and-code-result.md | 0 .../2012-12-27-gnome-shell.md | 0 .../{Technologie => code}/2012-12-27-ssh.md | 0 .../2012-12-29-status.md | 0 .../2013-02-04-cornice-cors.md | 0 .../{Technologie => code}/2014-07-31-hawk.md | 0 .../2015-04-01-service-de-nuages.rst | 0 .../2015-04-30-ecosysteme-stockage.md | 2 +- .../2015-05-01-cliquet-permissions.rst | 0 .../2015-05-01-stocker-permissions.rst | 2 +- .../2015-05-09-passphrases.md | 0 .../2015-05-11-keybase.io.md | 0 .../2015-05-25-pgp-problemes.md | 0 .../2015-06-01-kinto.1.0-fr.rst | 0 .../2015-07-01-cliquet.rationale.rst | 10 +-- .../2015-07-01-whistler-use-cases.rst | 0 .../2015-08-01-donnees-et-signatures.rst | 0 ...15-10-12-webcrypto-distribution-signing.md | 0 .../2015-11-24-email-doit-il-mourir.md | 0 .../2016-01-14-atelier-crypto-1.md | 0 .../2016-02-11-lets-encrypt.md | 0 .../2016-03-17-ZeroNet.md | 2 +- .../2016-03-25-ssl-trust.md | 0 .../2016-05-31-formbuilder.md | 0 .../2018-02-25-webnotes.md | 0 .../2018-03-03-groupement-achats.md | 0 .../2022-08-29-deploiement-vps.md | 0 .../isbn-covers/31eql7bSB8L._SL160_.jpg | Bin 0 -> 2631 bytes content/images/isbn-covers/9781260474183.jpg | Bin 0 -> 11977 bytes content/images/isbn-covers/9782080420015.jpg | Bin 0 -> 81935 bytes content/images/isbn-covers/9782354801786.jpg | Bin 0 -> 7818 bytes content/images/isbn-covers/9782358721974.jpg | Bin 0 -> 11419 bytes content/images/isbn-covers/9782371000926.jpg | Bin 0 -> 2631 bytes content/images/isbn-covers/9782849503812.jpg | Bin 0 -> 5942 bytes content/images/isbn-covers/9782954323701.jpg | Bin 0 -> 19749 bytes content/images/isbn-covers/9782955678244.jpg | Bin 0 -> 50602 bytes content/images/isbn-covers/9791091772198.jpg | Bin 0 -> 34893 bytes content/pages/projets.md | 1 + content/weeknotes/2023-39.md | 36 +++++++++++ isbn_downloader.py | 57 ++++++++++++++++++ mnmlist/static/css/main.css | 39 ++++++++++++ mnmlist/static/rss.svg | 38 ++++++++++++ mnmlist/templates/article.html | 7 ++- mnmlist/templates/base.html | 3 + mnmlist/templates/categories.html | 12 +++- mnmlist/templates/category.html | 4 +- mnmlist/templates/tag.html | 2 +- mnmlist/templates/tags.html | 6 +- pelicanconf.py | 8 ++- requirements.txt | 1 + 84 files changed, 222 insertions(+), 21 deletions(-) rename content/{Technologie => code}/ 2010-06-04-gsoc-distutils-first-report.md (100%) rename content/{Technologie => code}/2009-12-17-python-go.md (100%) rename content/{Technologie => code}/2010-05-01-a-distutils2-gsoc.md (100%) rename content/{Technologie => code}/2010-06-25-use-restructured-text-rest-to-power-your-presentations.md (100%) rename content/{Technologie => code}/2010-07-06-a-distutils2-month-pypi-simple-index-ready.md (100%) rename content/{Technologie => code}/2010-07-10-a-distutils2-sprint-in-tours.md (100%) rename content/{Technologie => code}/2010-08-16-an-amazing-summer-of-code-working-on-distutils2.md (100%) rename content/{Technologie => code}/2010-10-06-writing-pelican.md (100%) rename content/{Technologie => code}/2010-10-10-php5-nginx.md (100%) rename content/{Technologie => code}/2010-10-11-dynamically-change-your-gnome-wallpapers.md (100%) rename content/{Technologie => code}/2010-10-21-bebox-reboot.md (100%) rename content/{Technologie => code}/2011-01-15-distutils2-paris-sprint.md (100%) rename content/{Technologie => code}/2011-01-20-pypioncouch.md (100%) rename content/{Technologie => code}/2011-02-08-distutils2-paris-sprint-wrapup.md (100%) rename content/{Technologie => code}/2011-03-16-unison.md (100%) rename content/{Technologie => code}/2011-04-01-Link-suggestions.md (100%) rename content/{Technologie => code}/2011-05-25-un-coup-de-main-memoire.md (100%) rename content/{Technologie => code}/2011-06-11-jpype-and-boilerpipe.md (100%) rename content/{Technologie => code}/2011-07-25-pelican-status-update.md (100%) rename content/{Technologie => code}/2011-08-16-languages-influences.md (100%) rename content/{Technologie => code}/2011-10-15-ihatemoney.md (100%) rename content/{Technologie => code}/2011-12-07-introducing-cornice.md (100%) rename content/{Technologie => code}/2012-04-02-carto-forms-fr.md (100%) rename content/{Technologie => code}/2012-04-02-carto-forms.md (100%) rename content/{Technologie => code}/2012-04-16-djangocong-2012.md (100%) rename content/{Technologie => code}/2012-05-01-refactoring-cornice.md (100%) rename content/{Technologie => code}/2012-09-17-pyconfr-circus.md (100%) rename content/{Technologie => code}/2012-10-22-cheese-and-code-result.md (100%) rename content/{Technologie => code}/2012-12-27-gnome-shell.md (100%) rename content/{Technologie => code}/2012-12-27-ssh.md (100%) rename content/{Technologie => code}/2012-12-29-status.md (100%) rename content/{Technologie => code}/2013-02-04-cornice-cors.md (100%) rename content/{Technologie => code}/2014-07-31-hawk.md (100%) rename content/{Technologie => code}/2015-04-01-service-de-nuages.rst (100%) rename content/{Technologie => code}/2015-04-30-ecosysteme-stockage.md (99%) rename content/{Technologie => code}/2015-05-01-cliquet-permissions.rst (100%) rename content/{Technologie => code}/2015-05-01-stocker-permissions.rst (99%) rename content/{Technologie => code}/2015-05-09-passphrases.md (100%) rename content/{Technologie => code}/2015-05-11-keybase.io.md (100%) rename content/{Technologie => code}/2015-05-25-pgp-problemes.md (100%) rename content/{Technologie => code}/2015-06-01-kinto.1.0-fr.rst (100%) rename content/{Technologie => code}/2015-07-01-cliquet.rationale.rst (98%) rename content/{Technologie => code}/2015-07-01-whistler-use-cases.rst (100%) rename content/{Technologie => code}/2015-08-01-donnees-et-signatures.rst (100%) rename content/{Technologie => code}/2015-10-12-webcrypto-distribution-signing.md (100%) rename content/{Technologie => code}/2015-11-24-email-doit-il-mourir.md (100%) rename content/{Technologie => code}/2016-01-14-atelier-crypto-1.md (100%) rename content/{Technologie => code}/2016-02-11-lets-encrypt.md (100%) rename content/{Technologie => code}/2016-03-17-ZeroNet.md (99%) rename content/{Technologie => code}/2016-03-25-ssl-trust.md (100%) rename content/{Technologie => code}/2016-05-31-formbuilder.md (100%) rename content/{Technologie => code}/2018-02-25-webnotes.md (100%) rename content/{Technologie => code}/2018-03-03-groupement-achats.md (100%) rename content/{Technologie => code}/2022-08-29-deploiement-vps.md (100%) create mode 100644 content/images/isbn-covers/31eql7bSB8L._SL160_.jpg create mode 100644 content/images/isbn-covers/9781260474183.jpg create mode 100644 content/images/isbn-covers/9782080420015.jpg create mode 100644 content/images/isbn-covers/9782354801786.jpg create mode 100644 content/images/isbn-covers/9782358721974.jpg create mode 100644 content/images/isbn-covers/9782371000926.jpg create mode 100644 content/images/isbn-covers/9782849503812.jpg create mode 100644 content/images/isbn-covers/9782954323701.jpg create mode 100644 content/images/isbn-covers/9782955678244.jpg create mode 100644 content/images/isbn-covers/9791091772198.jpg create mode 100644 content/weeknotes/2023-39.md create mode 100644 isbn_downloader.py create mode 100644 mnmlist/static/rss.svg diff --git a/content/Lectures/2019-09-01-open-space-technology.md b/content/Lectures/2019-09-01-open-space-technology.md index 2130673..2d4d62b 100644 --- a/content/Lectures/2019-09-01-open-space-technology.md +++ b/content/Lectures/2019-09-01-open-space-technology.md @@ -3,6 +3,7 @@ author: Harrison Owen tags: organisation, open-space headline: A User's guide read_on: Septembre 2019 +isbn: 979-10-91772-19-8 ## The invitation diff --git a/content/Lectures/2019-10-01-refuser-detre-un-homme.md b/content/Lectures/2019-10-01-refuser-detre-un-homme.md index 7c5be9c..5542e53 100644 --- a/content/Lectures/2019-10-01-refuser-detre-un-homme.md +++ b/content/Lectures/2019-10-01-refuser-detre-un-homme.md @@ -3,7 +3,7 @@ author: John Stolenberg tags: féminisme, masculinisme headline: Pour en finir avec la virilité read_on: Octobre 2019 -image: https://www.syllepse.net/syllepse_images/produits/refuser_d_etre_un_homme.jpg +isbn: 978-2-84950-381-2 ## Mise en situation historique et politique diff --git a/content/Lectures/2020-01-01-au-dela-de-la-penetration.md b/content/Lectures/2020-01-01-au-dela-de-la-penetration.md index 256b928..9588a1e 100644 --- a/content/Lectures/2020-01-01-au-dela-de-la-penetration.md +++ b/content/Lectures/2020-01-01-au-dela-de-la-penetration.md @@ -2,6 +2,7 @@ title: Au delà de la pénétration author: Martin Page tags: sexualité, féminisme read_on: Janvier 2020 +isbn: 9782371000926 headline: Le livre est une ode aux plaisirs, une proposition de dépasser une sexualité étriquée, renfermée sur des pratiques traditionnelles qui ne sont pas forcement les meilleures en terme de plaisirs. C'est un tout petit livre de 150 pages, découpé en trois parties : une introduction, un recueil de témoignages et enfin quelques remerciements. diff --git a/content/Lectures/2021-01-01-un-feminisme-decolonial-francoise-verges.md b/content/Lectures/2021-01-01-un-feminisme-decolonial-francoise-verges.md index f5426ee..49b2a3d 100644 --- a/content/Lectures/2021-01-01-un-feminisme-decolonial-francoise-verges.md +++ b/content/Lectures/2021-01-01-un-feminisme-decolonial-francoise-verges.md @@ -3,5 +3,6 @@ author: Françoise Vergès tags: sexisme, racisme read_on: Janvier 2021 headline: Un livre qui vient questionner la posture colonialiste dans le féminisme +isbn: 9782358721974 > J'ai aussi appris très tôt que si l'État veut écraser un mouvement, il a recours à tous les moyens, à toutes les ressources qui sont à sa disposition d'une part pour réprimer, d'autre part pour diviser les opprimé·e·s. D'une main il frappe, de l'autre il cherche à assimiler. **La peur est une de ses armes favorites pour produire conformise et consentement**. \ No newline at end of file diff --git a/content/Lectures/2023-03-10-crucial-conversations.md b/content/Lectures/2023-03-10-crucial-conversations.md index a4ed934..798fe2e 100644 --- a/content/Lectures/2023-03-10-crucial-conversations.md +++ b/content/Lectures/2023-03-10-crucial-conversations.md @@ -2,6 +2,7 @@ title: Crucial Conversations author: Kerry Patterson, Stephen R. Covey, Joseph Grenny, Ron McMillan et Al Switzler headline: Un livre qui vient questionner nos manières d'intéragir lors des discussions cruciales de nos vies. Des outils pratiques pour éviter de rentrer dans les conflits. +isbn: 9781260474183 --- *Résumé rapide du livre, pour s'y retrouver*. @@ -76,6 +77,7 @@ Concentrez-vous sur **ce que vous voulez réellement : - Demandez-vous ce que vous devriez faire pour aller vers ce que vous souhaitez réellement ? **Refusez le dualisme** : + - Alors que vous considérez ce que vous voulez, notez quand vous vous piégez vous-même dans un dualisme. - Cherchez comment faire l'un **et** l'autre. - Clarifiez ce que vous ne souhaitez pas, ajoutez le à ce que vous voulez et demandez à votre cerveau de chercher des solutions pour retourner sur un dialogue sain. @@ -87,6 +89,7 @@ Les histoires créent des émotions. Les émotions n'arrivent pas d'elles-mêmes Il peut être utile de séparer les faits des histoires qu'on se raconte pour pouvoir repenser nos émotions. Le schéma peut être le suivant : + 1. Voir et entendre (les faits) 2. Se raconter une histoire 3. Ressentir @@ -109,6 +112,7 @@ Comment se rendre compte que la sécurité est mise en jeu ? Il faut apprendre Pour sécuriser la conversation, il faut réussir à sortir du contenu de la conversation d'abord. L'idée étant de se rendre compte quand les gens deviennent violents ou silencieux, pour renouer le dialogue. Une fois que c'est fait on peut reprendre la discussion. Comprendre ce qui crée un risque pour la sécurité : + - **Objectif commun** : Est-ce que les autres pensent que leurs objectifs sont importants pour vous ? Est-ce qu'ils ont confiance dans mes motivations ? - **Respect mutuel** : Est-ce que les autres pensent que vous les respectez ? @@ -119,6 +123,7 @@ Pour commencer la discussion, **partagez vos bonnes intentions** : qu'est-ce que **Contrastez** pour régler les incompréhensions : Commencez par ce que vous ne voulez pas dire, puis expliquez ce que vous voulez dire. Créez un objectif commun lorsque vous vous rendez compte que les choses sont compliquées : + - Dites que votre objectif est de trouver un but commun. - Reconnaissez les buts derrière les stratégies - Inventez un but commun diff --git a/content/Lectures/2023-05-02-micropolitiques-des-groupes.md b/content/Lectures/2023-05-02-micropolitiques-des-groupes.md index 8df5eaf..8b3e2f6 100644 --- a/content/Lectures/2023-05-02-micropolitiques-des-groupes.md +++ b/content/Lectures/2023-05-02-micropolitiques-des-groupes.md @@ -2,6 +2,7 @@ title: Micropolitiques des groupes author: David Vercauteren headline: Une livre qui vise à créer une culture des précédents dans les collectifs (militants). Plusieurs chapitres et un découpage par sujets. A relire au fur et à mesure des expériences. +isbn: 9782354801786 --- ## Artifices diff --git a/content/Lectures/2023-09-16-eloge-de-lamitie.md b/content/Lectures/2023-09-16-eloge-de-lamitie.md index e36bbdc..9c308e3 100644 --- a/content/Lectures/2023-09-16-eloge-de-lamitie.md +++ b/content/Lectures/2023-09-16-eloge-de-lamitie.md @@ -3,9 +3,9 @@ title: Éloge de l'amitié author: Geoffroy de Lagasnerie headline: Livre où il est question d'amitié, de ce qu'elle signifie dans un monde où le devenir-parent, les sociabilités familiales et le volontaire désintérêt dans les relations est la norme. tags: relations, amitié +isbn: 9782080420015 --- - ## Citations > Lorsqu'elle devient un mode de vie, qu'elle devient l'objet d'une culture spécifique qui occupe le cœur de l'existence, le lien d'investissement des intérêts psychiques et non ce qui reste après la famille, le travail, les voisins, etc., **l'amitié pourrait être interprétée comme la recherche d'un dehors**. diff --git a/content/Technologie/ 2010-06-04-gsoc-distutils-first-report.md b/content/code/ 2010-06-04-gsoc-distutils-first-report.md similarity index 100% rename from content/Technologie/ 2010-06-04-gsoc-distutils-first-report.md rename to content/code/ 2010-06-04-gsoc-distutils-first-report.md diff --git a/content/Technologie/2009-12-17-python-go.md b/content/code/2009-12-17-python-go.md similarity index 100% rename from content/Technologie/2009-12-17-python-go.md rename to content/code/2009-12-17-python-go.md diff --git a/content/Technologie/2010-05-01-a-distutils2-gsoc.md b/content/code/2010-05-01-a-distutils2-gsoc.md similarity index 100% rename from content/Technologie/2010-05-01-a-distutils2-gsoc.md rename to content/code/2010-05-01-a-distutils2-gsoc.md diff --git a/content/Technologie/2010-06-25-use-restructured-text-rest-to-power-your-presentations.md b/content/code/2010-06-25-use-restructured-text-rest-to-power-your-presentations.md similarity index 100% rename from content/Technologie/2010-06-25-use-restructured-text-rest-to-power-your-presentations.md rename to content/code/2010-06-25-use-restructured-text-rest-to-power-your-presentations.md diff --git a/content/Technologie/2010-07-06-a-distutils2-month-pypi-simple-index-ready.md b/content/code/2010-07-06-a-distutils2-month-pypi-simple-index-ready.md similarity index 100% rename from content/Technologie/2010-07-06-a-distutils2-month-pypi-simple-index-ready.md rename to content/code/2010-07-06-a-distutils2-month-pypi-simple-index-ready.md diff --git a/content/Technologie/2010-07-10-a-distutils2-sprint-in-tours.md b/content/code/2010-07-10-a-distutils2-sprint-in-tours.md similarity index 100% rename from content/Technologie/2010-07-10-a-distutils2-sprint-in-tours.md rename to content/code/2010-07-10-a-distutils2-sprint-in-tours.md diff --git a/content/Technologie/2010-08-16-an-amazing-summer-of-code-working-on-distutils2.md b/content/code/2010-08-16-an-amazing-summer-of-code-working-on-distutils2.md similarity index 100% rename from content/Technologie/2010-08-16-an-amazing-summer-of-code-working-on-distutils2.md rename to content/code/2010-08-16-an-amazing-summer-of-code-working-on-distutils2.md diff --git a/content/Technologie/2010-10-06-writing-pelican.md b/content/code/2010-10-06-writing-pelican.md similarity index 100% rename from content/Technologie/2010-10-06-writing-pelican.md rename to content/code/2010-10-06-writing-pelican.md diff --git a/content/Technologie/2010-10-10-php5-nginx.md b/content/code/2010-10-10-php5-nginx.md similarity index 100% rename from content/Technologie/2010-10-10-php5-nginx.md rename to content/code/2010-10-10-php5-nginx.md diff --git a/content/Technologie/2010-10-11-dynamically-change-your-gnome-wallpapers.md b/content/code/2010-10-11-dynamically-change-your-gnome-wallpapers.md similarity index 100% rename from content/Technologie/2010-10-11-dynamically-change-your-gnome-wallpapers.md rename to content/code/2010-10-11-dynamically-change-your-gnome-wallpapers.md diff --git a/content/Technologie/2010-10-21-bebox-reboot.md b/content/code/2010-10-21-bebox-reboot.md similarity index 100% rename from content/Technologie/2010-10-21-bebox-reboot.md rename to content/code/2010-10-21-bebox-reboot.md diff --git a/content/Technologie/2011-01-15-distutils2-paris-sprint.md b/content/code/2011-01-15-distutils2-paris-sprint.md similarity index 100% rename from content/Technologie/2011-01-15-distutils2-paris-sprint.md rename to content/code/2011-01-15-distutils2-paris-sprint.md diff --git a/content/Technologie/2011-01-20-pypioncouch.md b/content/code/2011-01-20-pypioncouch.md similarity index 100% rename from content/Technologie/2011-01-20-pypioncouch.md rename to content/code/2011-01-20-pypioncouch.md diff --git a/content/Technologie/2011-02-08-distutils2-paris-sprint-wrapup.md b/content/code/2011-02-08-distutils2-paris-sprint-wrapup.md similarity index 100% rename from content/Technologie/2011-02-08-distutils2-paris-sprint-wrapup.md rename to content/code/2011-02-08-distutils2-paris-sprint-wrapup.md diff --git a/content/Technologie/2011-03-16-unison.md b/content/code/2011-03-16-unison.md similarity index 100% rename from content/Technologie/2011-03-16-unison.md rename to content/code/2011-03-16-unison.md diff --git a/content/Technologie/2011-04-01-Link-suggestions.md b/content/code/2011-04-01-Link-suggestions.md similarity index 100% rename from content/Technologie/2011-04-01-Link-suggestions.md rename to content/code/2011-04-01-Link-suggestions.md diff --git a/content/Technologie/2011-05-25-un-coup-de-main-memoire.md b/content/code/2011-05-25-un-coup-de-main-memoire.md similarity index 100% rename from content/Technologie/2011-05-25-un-coup-de-main-memoire.md rename to content/code/2011-05-25-un-coup-de-main-memoire.md diff --git a/content/Technologie/2011-06-11-jpype-and-boilerpipe.md b/content/code/2011-06-11-jpype-and-boilerpipe.md similarity index 100% rename from content/Technologie/2011-06-11-jpype-and-boilerpipe.md rename to content/code/2011-06-11-jpype-and-boilerpipe.md diff --git a/content/Technologie/2011-07-25-pelican-status-update.md b/content/code/2011-07-25-pelican-status-update.md similarity index 100% rename from content/Technologie/2011-07-25-pelican-status-update.md rename to content/code/2011-07-25-pelican-status-update.md diff --git a/content/Technologie/2011-08-16-languages-influences.md b/content/code/2011-08-16-languages-influences.md similarity index 100% rename from content/Technologie/2011-08-16-languages-influences.md rename to content/code/2011-08-16-languages-influences.md diff --git a/content/Technologie/2011-10-15-ihatemoney.md b/content/code/2011-10-15-ihatemoney.md similarity index 100% rename from content/Technologie/2011-10-15-ihatemoney.md rename to content/code/2011-10-15-ihatemoney.md diff --git a/content/Technologie/2011-12-07-introducing-cornice.md b/content/code/2011-12-07-introducing-cornice.md similarity index 100% rename from content/Technologie/2011-12-07-introducing-cornice.md rename to content/code/2011-12-07-introducing-cornice.md diff --git a/content/Technologie/2012-04-02-carto-forms-fr.md b/content/code/2012-04-02-carto-forms-fr.md similarity index 100% rename from content/Technologie/2012-04-02-carto-forms-fr.md rename to content/code/2012-04-02-carto-forms-fr.md diff --git a/content/Technologie/2012-04-02-carto-forms.md b/content/code/2012-04-02-carto-forms.md similarity index 100% rename from content/Technologie/2012-04-02-carto-forms.md rename to content/code/2012-04-02-carto-forms.md diff --git a/content/Technologie/2012-04-16-djangocong-2012.md b/content/code/2012-04-16-djangocong-2012.md similarity index 100% rename from content/Technologie/2012-04-16-djangocong-2012.md rename to content/code/2012-04-16-djangocong-2012.md diff --git a/content/Technologie/2012-05-01-refactoring-cornice.md b/content/code/2012-05-01-refactoring-cornice.md similarity index 100% rename from content/Technologie/2012-05-01-refactoring-cornice.md rename to content/code/2012-05-01-refactoring-cornice.md diff --git a/content/Technologie/2012-09-17-pyconfr-circus.md b/content/code/2012-09-17-pyconfr-circus.md similarity index 100% rename from content/Technologie/2012-09-17-pyconfr-circus.md rename to content/code/2012-09-17-pyconfr-circus.md diff --git a/content/Technologie/2012-10-22-cheese-and-code-result.md b/content/code/2012-10-22-cheese-and-code-result.md similarity index 100% rename from content/Technologie/2012-10-22-cheese-and-code-result.md rename to content/code/2012-10-22-cheese-and-code-result.md diff --git a/content/Technologie/2012-12-27-gnome-shell.md b/content/code/2012-12-27-gnome-shell.md similarity index 100% rename from content/Technologie/2012-12-27-gnome-shell.md rename to content/code/2012-12-27-gnome-shell.md diff --git a/content/Technologie/2012-12-27-ssh.md b/content/code/2012-12-27-ssh.md similarity index 100% rename from content/Technologie/2012-12-27-ssh.md rename to content/code/2012-12-27-ssh.md diff --git a/content/Technologie/2012-12-29-status.md b/content/code/2012-12-29-status.md similarity index 100% rename from content/Technologie/2012-12-29-status.md rename to content/code/2012-12-29-status.md diff --git a/content/Technologie/2013-02-04-cornice-cors.md b/content/code/2013-02-04-cornice-cors.md similarity index 100% rename from content/Technologie/2013-02-04-cornice-cors.md rename to content/code/2013-02-04-cornice-cors.md diff --git a/content/Technologie/2014-07-31-hawk.md b/content/code/2014-07-31-hawk.md similarity index 100% rename from content/Technologie/2014-07-31-hawk.md rename to content/code/2014-07-31-hawk.md diff --git a/content/Technologie/2015-04-01-service-de-nuages.rst b/content/code/2015-04-01-service-de-nuages.rst similarity index 100% rename from content/Technologie/2015-04-01-service-de-nuages.rst rename to content/code/2015-04-01-service-de-nuages.rst diff --git a/content/Technologie/2015-04-30-ecosysteme-stockage.md b/content/code/2015-04-30-ecosysteme-stockage.md similarity index 99% rename from content/Technologie/2015-04-30-ecosysteme-stockage.md rename to content/code/2015-04-30-ecosysteme-stockage.md index 83aa192..7bbefe9 100644 --- a/content/Technologie/2015-04-30-ecosysteme-stockage.md +++ b/content/code/2015-04-30-ecosysteme-stockage.md @@ -5,7 +5,7 @@ hésitons à continuer à nous entêter avec notre propre solution de stockage/synchronisation.** Comme nous l'écrivions [dans l'article -précédent]({filename}/technologie/2015-04-01-service-de-nuages.rst), nous +précédent]({filename}/code/2015-04-01-service-de-nuages.rst), nous souhaitons construire une solution de stockage générique. On refait [Daybed](http://daybed.readthedocs.org) chez Mozilla \! diff --git a/content/Technologie/2015-05-01-cliquet-permissions.rst b/content/code/2015-05-01-cliquet-permissions.rst similarity index 100% rename from content/Technologie/2015-05-01-cliquet-permissions.rst rename to content/code/2015-05-01-cliquet-permissions.rst diff --git a/content/Technologie/2015-05-01-stocker-permissions.rst b/content/code/2015-05-01-stocker-permissions.rst similarity index 99% rename from content/Technologie/2015-05-01-stocker-permissions.rst rename to content/code/2015-05-01-stocker-permissions.rst index 1affd60..6d6f0e1 100755 --- a/content/Technologie/2015-05-01-stocker-permissions.rst +++ b/content/code/2015-05-01-stocker-permissions.rst @@ -63,7 +63,7 @@ Obtenir la liste des "principals" d'un ACE d'une ACL (e.g. *modifier un enregistrement*). Avec le `système de permissions choisi -<{filename}/technologie/2015-05-01-cliquet-permissions.rst>`_, les permissions d'un +<{filename}/code/2015-05-01-cliquet-permissions.rst>`_, les permissions d'un objet héritent de celle de l'objet parent. Par exemple, avoir le droit d'écriture sur un *bucket* permet la diff --git a/content/Technologie/2015-05-09-passphrases.md b/content/code/2015-05-09-passphrases.md similarity index 100% rename from content/Technologie/2015-05-09-passphrases.md rename to content/code/2015-05-09-passphrases.md diff --git a/content/Technologie/2015-05-11-keybase.io.md b/content/code/2015-05-11-keybase.io.md similarity index 100% rename from content/Technologie/2015-05-11-keybase.io.md rename to content/code/2015-05-11-keybase.io.md diff --git a/content/Technologie/2015-05-25-pgp-problemes.md b/content/code/2015-05-25-pgp-problemes.md similarity index 100% rename from content/Technologie/2015-05-25-pgp-problemes.md rename to content/code/2015-05-25-pgp-problemes.md diff --git a/content/Technologie/2015-06-01-kinto.1.0-fr.rst b/content/code/2015-06-01-kinto.1.0-fr.rst similarity index 100% rename from content/Technologie/2015-06-01-kinto.1.0-fr.rst rename to content/code/2015-06-01-kinto.1.0-fr.rst diff --git a/content/Technologie/2015-07-01-cliquet.rationale.rst b/content/code/2015-07-01-cliquet.rationale.rst similarity index 98% rename from content/Technologie/2015-07-01-cliquet.rationale.rst rename to content/code/2015-07-01-cliquet.rationale.rst index 970475e..77a658e 100755 --- a/content/Technologie/2015-07-01-cliquet.rationale.rst +++ b/content/code/2015-07-01-cliquet.rationale.rst @@ -18,7 +18,7 @@ Les origines ============ L'objectif pour le premier trimestre 2015 était de construire un service de -stockage et de `synchronisation de listes de lecture <{filename}/technologie/2015-04-01-service-de-nuages.rst>`_. +stockage et de `synchronisation de listes de lecture <{filename}/code/2015-04-01-service-de-nuages.rst>`_. Au démarrage du projet, nous avons tenté de rassembler toutes les bonnes pratiques et recommandations, venant de différentes équipes et surtout des derniers projets déployés. @@ -142,10 +142,10 @@ de *Firefox Sync* pour la gestion de la concurrence et de l'«offline-first». Il est `documenté en détail `_. Dans un monde idéal, ce protocole serait versionné, et formalisé dans une RFC. -En rêve, il existerait même plusieurs implémentations avec des technologies différentes +En rêve, il existerait même plusieurs implémentations avec des codes différentes (Python, Go, Node, etc.). [#]_ -.. [#] Voir notre `article dédié sur les permissions <{filename}/technologie/2015-05-01-cliquet-permissions.rst>`_ +.. [#] Voir notre `article dédié sur les permissions <{filename}/code/2015-05-01-cliquet-permissions.rst>`_ .. [#] Rappel: nous sommes une toute petite équipe ! @@ -220,7 +220,7 @@ mais rien n'empêcherait d'implémenter le stockage dans un modèle relationnel. Comme les composants peuvent être remplacés depuis la configuration, il est tout à fait possible d'étendre *Cliquet* avec des notions métiers ou des -technologies exotiques ! Nous avons posé quelques idées dans `la documentation +codes exotiques ! Nous avons posé quelques idées dans `la documentation de l'éco-système `_. Dans les prochaines semaines, nous allons introduire la notion d'«évènements» (ou signaux), @@ -426,7 +426,7 @@ Quelques questions courantes Pourquoi Python ? On prend beaucoup de plaisir à écrire du Python, et le calendrier annoncé -initialement était très serré: pas question de tituber avec une technologie +initialement était très serré: pas question de tituber avec une code mal maitrisée ! Et puis, après avoir passé près d'un an sur un projet Node.js, l'équipe avait diff --git a/content/Technologie/2015-07-01-whistler-use-cases.rst b/content/code/2015-07-01-whistler-use-cases.rst similarity index 100% rename from content/Technologie/2015-07-01-whistler-use-cases.rst rename to content/code/2015-07-01-whistler-use-cases.rst diff --git a/content/Technologie/2015-08-01-donnees-et-signatures.rst b/content/code/2015-08-01-donnees-et-signatures.rst similarity index 100% rename from content/Technologie/2015-08-01-donnees-et-signatures.rst rename to content/code/2015-08-01-donnees-et-signatures.rst diff --git a/content/Technologie/2015-10-12-webcrypto-distribution-signing.md b/content/code/2015-10-12-webcrypto-distribution-signing.md similarity index 100% rename from content/Technologie/2015-10-12-webcrypto-distribution-signing.md rename to content/code/2015-10-12-webcrypto-distribution-signing.md diff --git a/content/Technologie/2015-11-24-email-doit-il-mourir.md b/content/code/2015-11-24-email-doit-il-mourir.md similarity index 100% rename from content/Technologie/2015-11-24-email-doit-il-mourir.md rename to content/code/2015-11-24-email-doit-il-mourir.md diff --git a/content/Technologie/2016-01-14-atelier-crypto-1.md b/content/code/2016-01-14-atelier-crypto-1.md similarity index 100% rename from content/Technologie/2016-01-14-atelier-crypto-1.md rename to content/code/2016-01-14-atelier-crypto-1.md diff --git a/content/Technologie/2016-02-11-lets-encrypt.md b/content/code/2016-02-11-lets-encrypt.md similarity index 100% rename from content/Technologie/2016-02-11-lets-encrypt.md rename to content/code/2016-02-11-lets-encrypt.md diff --git a/content/Technologie/2016-03-17-ZeroNet.md b/content/code/2016-03-17-ZeroNet.md similarity index 99% rename from content/Technologie/2016-03-17-ZeroNet.md rename to content/code/2016-03-17-ZeroNet.md index 8fe0a9d..c5e503f 100644 --- a/content/Technologie/2016-03-17-ZeroNet.md +++ b/content/code/2016-03-17-ZeroNet.md @@ -112,7 +112,7 @@ est de chiffrer les messages avec la clé du destinataire et de le mettre dans un *pot commun*. Tout le monde essaye de déchiffrer tous les messages, mais ne peut déchiffrer que les siens. -Cela permet de ne **pas** fuiter de méta-données, [à l'inverse de PGP]({filename}/technologie/2015-05-25-pgp-problemes.md). +Cela permet de ne **pas** fuiter de méta-données, [à l'inverse de PGP]({filename}/code/2015-05-25-pgp-problemes.md). Je n'ai en fait pas de réponse claire à donner à cette question: l'auteur de ZeroNet me disait que 10MB (la limite de taille d'un site, par défaut) diff --git a/content/Technologie/2016-03-25-ssl-trust.md b/content/code/2016-03-25-ssl-trust.md similarity index 100% rename from content/Technologie/2016-03-25-ssl-trust.md rename to content/code/2016-03-25-ssl-trust.md diff --git a/content/Technologie/2016-05-31-formbuilder.md b/content/code/2016-05-31-formbuilder.md similarity index 100% rename from content/Technologie/2016-05-31-formbuilder.md rename to content/code/2016-05-31-formbuilder.md diff --git a/content/Technologie/2018-02-25-webnotes.md b/content/code/2018-02-25-webnotes.md similarity index 100% rename from content/Technologie/2018-02-25-webnotes.md rename to content/code/2018-02-25-webnotes.md diff --git a/content/Technologie/2018-03-03-groupement-achats.md b/content/code/2018-03-03-groupement-achats.md similarity index 100% rename from content/Technologie/2018-03-03-groupement-achats.md rename to content/code/2018-03-03-groupement-achats.md diff --git a/content/Technologie/2022-08-29-deploiement-vps.md b/content/code/2022-08-29-deploiement-vps.md similarity index 100% rename from content/Technologie/2022-08-29-deploiement-vps.md rename to content/code/2022-08-29-deploiement-vps.md diff --git a/content/images/isbn-covers/31eql7bSB8L._SL160_.jpg b/content/images/isbn-covers/31eql7bSB8L._SL160_.jpg new file mode 100644 index 0000000000000000000000000000000000000000..35069843089bbcc313bc75181a4c34e2605b75f4 GIT binary patch literal 2631 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 EZ@M>SO#lD@ literal 0 HcmV?d00001 diff --git a/content/images/isbn-covers/9781260474183.jpg b/content/images/isbn-covers/9781260474183.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fa6f267fcb72e8c7b5c303bae0ad177677191136 GIT binary patch literal 11977 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 D+;*j$ literal 0 HcmV?d00001 diff --git a/content/images/isbn-covers/9782080420015.jpg b/content/images/isbn-covers/9782080420015.jpg new file mode 100644 index 0000000000000000000000000000000000000000..eae0733712b8b9e2483d076b7db99a15765a7f1b GIT binary patch literal 81935 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