This commit is contained in:
Alexis Métaireau 2024-06-13 19:18:24 +02:00
parent 37b29864b9
commit 0ad8c22cd8
No known key found for this signature in database
GPG key ID: 1C21B876828E5FF2
7 changed files with 253 additions and 6 deletions

View file

@ -0,0 +1,7 @@
---
status: draft
title: Confiance
---

View file

@ -0,0 +1,30 @@
---
title: Bust a specific podman cache entry
tags: podman, cache
status: draft
---
When building images using podman, cache entries are created for the different
steps of your `Dockerfile`. This makes subsequent commands run faster, by
hitting the cache rather than redownloading / computing what's needed.
There is a command to bust all the cache:
```bash
podman system reset
WARNING! This will remove:
- all containers
- all pods
- all images
- all networks
- all build cache
- all machines
- all volumes
```
But I wanted to remove just a specific cache entry. I've had trouble finding it,
but it's possible to just prune a specific cache entry by doing:
```bash
podman rmi <cache-entry> -f
```

View file

@ -6,7 +6,7 @@ status: draft
I've installed [readeck](https://readeck.org/en/) to track the articles I read,
and I'm currently trying to make it a database for the quotes I do. Because
there is a nice Firefox addon I hope it will be convenient to use.
there is a nice Firefox add-on I hope it will be convenient to use.
Readeck proposes an API to retrieve the data it stores, and I wanted to leverage
it to build [my weeknotes](/weeknotes) citations.
@ -37,7 +37,7 @@ Returns:
]
```
From there, turning this to markdown was this [jq](https://jqlang.github.io/jq/manual/) filter:
From there, turning this to Markdown was this [jq](https://jqlang.github.io/jq/manual/) filter:
```json
.[] | "> \(.text) \n> \n> — [\(.bookmark_title)](\(.bookmark_url))\n"
@ -54,7 +54,7 @@ Using `jq -r` to output as raw output, I get the quote I'm looking for:
Because I write these notes every week, I'm only interested in the content of the last week.
Here is how to get "last-week-date" on MacOS:
Here is how to get "last-week-date" on macOS:
```bash
date -v-7d +"%Y-%m-%d"
@ -72,7 +72,6 @@ Putting it all together, I have the following line:
curl -X GET "https://readeck.notmyidea.org/api/bookmarks/annotations" -H "accept: application/json" -H "authorization: Bearer <redacted>" \
| jq -r --arg date $(date -v-7d +"%Y-%m-%d") \
'.[] | select(.created > $date) | "> \\(.text) \\n> \\n> — [\\(.bookmark_title)](\\(.bookmark_url))\\n"'
```
'.[] | select(.created > $date) | "> \\(.text) \\n> \\n> — [\\(.bookmark_title)](\\(.bookmark_url))\\n"'```
I feel like a hairy monster, but an happy one.
I feel like a hairy terminal monster, with smiling eyes.

View file

@ -0,0 +1,50 @@
---
title: Adding collaboration on uMap, fourth update
tags: umap, geojson, websockets
status: draft
---
Since last week, the main branch of uMap ships a web socket server, and the
ability to make peers communicate with each other, replicating local changes to
other peers.
Here is a demonstration of the "real-time" import of some data on one peer, with
its replication on another peer.
<video width="100%" controls src="https://files.notmyidea.org/choropleth-sync.webm">
</video>
Our roadmap to having "real-time" collaboration looks like this:
1. ☑︎ Learn about CRDTs, what they are and find how they can be useful;
2. ☑︎ Make structural changes to the codebase;
3. ☑︎ Allow a replication of a peer state to another connected peer;
4. Sync with peers late to the party ;
5. Handle UX and disconnects.
6. Scale.
## The path behind us
Over the past few months, we did the following changes in the uMap codebase:
First, we [replaced datalayers ids with uuids](https://github.com/umap-project/umap/pull/1630), making it possible to have them generated by the clients in the long term. Then, we [assigned semi-unique ids to each map "features"](https://github.com/umap-project/umap/pull/1649), making it possible to refer to them over different peers. That makes it possible to know which "marker" has moved, for instance.
We then introduced a change in how the data flows, by [separating the UI rendering from data updates](https://github.com/umap-project/umap/pull/1692). With this change, we introduced a way to regenerate only the parts that matters when updating a value. This enabled us to [apply data updates to and from other peers over a web socket connection](https://github.com/umap-project/umap/pull/1754).
## What's still to come
That's a huge step in the right direction, but, that's not the end of the game yet. We still need to do some work in order to finish what's been started.
The current effort is on applying pre-join changes: with the currently shipped code, you only get the changes while you're connected: changes that happened before you join aren't there. As a result, peers can show diverging maps. We're currently considering using [Hybrid Logical Clocks](https://sergeiturukin.com/2017/06/26/hybrid-logical-clocks.html) (HLC) to reapply the operations in a predictable order on the different peers.
Basically, we'll need to:
- Assign each operation an `id` and store them locally ;
- Find a way for the peers to ask another peer about the missing changes since a specific date ;
- Get these changes and reapply them locally.
HLCs will help us avoid clock drift between the different peers, and ensure the operations are applied in the rough same order.
Once that's covered, we'll still need to handle these:
- **Interface changes**: we have some mockups to integrate, making it obvious other peers are connected and interacting on the map, and handle web socket disconnects.
- **Security**: making peers communicate with each other enables new data flows, and with them new "attack vectors". We want to take the time to think this trough, and cover some of the problems we are already envisioning about handling permissions, and escalation trough a peer with greater privileges.
- **Scaling things up**: uMap is used to serve a quite large number of maps, and probably will need to make sure our changes are able to scale. This will potentially require some structural changes on the web socket server, because not everything might fit in memory anymore.

View file

@ -4,6 +4,47 @@ save_as: dangerzone/index.html
template: worklog-en
---
## Jeudi 13 Juin 2024 (8h, 5/5)
- Extended session with w/ Alex where we prepared the next 0.7.0 release, trying to see how much effort each task would be.
- Made some minor changes to the drag-n-drop PR
- Follow-up discussion on an external contributor PR
- Merged rowen's PR, thanks!
- Biweekly dangerzone meeting, where we decided what'll go in the next release
## Mercredi 12 Juin 2024 (12h, 5/5)
- Read the Drag-n-drop PR (#752)and rebased it on latest main branch
- Viewed Ron Deibert's / The Citizen Lab presentation
- Prepared the work for tomorrow "sprint planning", by reading the issues that will probably go into it
- Reviewed [Illegal chars filenames - Pull Request #834](https://github.com/freedomofpress/dangerzone/pull/834)
- Installed the new machine (on arch in the end, I wanted to use ubuntu at first, but was discouraged by a few errors I couldn't debug easily)
Tomorrow looks like:
- Sprint planning
- Read about alternatives to Docker Desktop on macOS and windows.
- [ ] (2) Install Qubes
- [x] (1) Review [Illegal chars filenames - Pull Request #834](https://github.com/freedomofpress/dangerzone/pull/834)
- [ ]
Quite a long day today, but spent a lot of time installing arch on my new machine.
## Mardi 11 Juin 2024 (7h, 5/5)
- Sync w/ Alex in the morning
- Described my plans for the Docker Desktop version check and user notification, followed up with some research on how the retrieved version is stored locally. I which this Docker Desktop was opensource to know where to look at.
- Tried reproducing the CI errors locally on the PR rowen did, pushed a small fix (actually a revert from previous changes) on how the tests are run.
- Proofread the work on gVisor and gVisor design docs another time
Tomorrow will be:
- Trying locally the drag-n-drop feature, reading the changes, rebasing and trying to make it trough.
- Installing the Framework laptop I received today (to replace my Silicon m1 as a development machine).
- Mapping the space of Docker Desktop alternatives on macOS.
## Jeudi 06 Juin 2024 (8h, 5/5)
- Sync w/Alex, and planned what's next
@ -11,12 +52,14 @@ template: worklog-en
- Discussed gVisor specifics w/Alex, and provided feedback on the presentation
- 1:1 with Harris
- Attended the gVisor presentation, with lots of interesting questions :-)
## Mercredi 05 Juin 2024 (6h, 5/5)
- Installed `lima` and `colima` to try to circumvent the "podman in docker" limitation with Apple Silicon. Coming to the same conclusion: it doesn't work, unfortunately. Stated a discussion with podman folks. Let's see where it goes.
- [Landed some "minor changes"](https://github.com/freedomofpress/dangerzone/pull/811) removing dead code, imports, and fixing some minor concerns in the code.
- [Landed a PR](https://github.com/freedomofpress/dangerzone/pull/813) where we change the way fixtures are loaded by pytest, and fixes some tests. This makes it possible to run all tests in the same process, and removes the need for spawning multiple `pytest` commands.
- Started looking at the "on host conversion" PR.
## Mardi 04 Juin 2024 (8h, 2/5)
- Syncing w/ Alex this morning

View file

@ -5,6 +5,12 @@ template: worklog
total_days: 90
---
## Lundi 10 Juin 2024 (6h, 4/5)
- Je rédige un article qui résume là où on en est pour la synchro
- Je relis le code du sync engine et j'ai très envie de le simplifier, je fini par le faire et propose une pull request qui permet de virer certains concepts, pour simplifier de manière générale l'implémentation.
- On se fait une rétrospective sur les 6 dernières semaines
## Vendredi 07 Juin 2024 (2h, 5/5)
- On se retrouve avec David pour échanger autour de ce qu'il traverse en ce moment.

112
content/weeknotes/33.md Executable file
View file

@ -0,0 +1,112 @@
---
date: 2024-06-10
headline: notes hebdo de la semaine
projects: dangerzone, umap
---
# Notes hebdo #33
**[Danger Zone](https://dangerzone.rocks/)**
*DangerZone transforme des documents potentiellement dangereux en documents sûrs.*
- Troisième semaine sur le projet. Je commence à me familiariser avec les outils.
- Assisté à une présentation sur l'inclusion de [gVisor](https://gvisor.dev), dans l'idée d'exposer le moins possible le noyau de la machine hôte.
- Terminé le travail sur la mise à jour de la version minimum de Python. Ça touchait à beaucoup de choses autour du packaging, et aux outils mis en place autour de ce projet.
- Fait quelques petites modifications cosmétiques sur le code actuel, et sur la manière de lancer les tests.
- Commencé à travailler sur une manière de vérifier que Docker Desktop est à jour sur les machines Windows et MacOS.
- J'ai creusé un peu plus pour comprendre [pourquoi il n'est pas possible de faire du « podman dans docker »](https://github.com/freedomofpress/dangerzone/issues/824) sous Apple Silicon.
**[uMap](https://umap-project.org)**
*uMap est un outil libre pour faire des cartes personnalisées*
- Fusionné [le travail effectué jusqu'ici sur la collaboration temps réel](https://github.com/umap-project/umap/pull/1754). yay!
- Planifié les prochaines étapes pour la synchro, commencé à rédiger un article « point d'étape »
- [Trouvé une solution](https://github.com/freedomofpress/dangerzone/issues/824) pour que le serveur websocket ne soit lancé que sur un seul worker lorsqu'on utilise pytest.
- Discuté avec David du vocabulaire à utiliser pour afficher les messages d'erreurs lorsqu'il y a conflit lorsqu'il n'est pas possible de merger les modifications.
- Un mail pour clarification avec NLNet sur le fait que les plans changent un peu de ce qui était prévu.
## Des joies 🤗
- Réussir à mettre la barre moins haute pour ce démarrage sur Dangerzone. Je suis content d'avoir du temps pour apprendre.
- Valider le travail effectué ces derniers mois sur uMap. Beaucoup d'aller-retours utiles, et une étape importante :-)
- Accepter les retours techniques plus facilement, changer de posture et voir que ça permet d'avancer.
- Être présent pour des proches qui en avaient besoin.
- Faire mes premiers pas dans le code de Dangerzone, et merger mes premières modifications, c'est satisfaisant.
- Mesurer la qualité de l'accueil dans cette nouvelle équipe.
- Me mettre en position d'observateur, avant de décider quelle place je veux prendre dans un nouveau groupe.
- Réussir à prendre du temps pour me détendre, même dans une semaine trop chargée
- Apprendre, le temps d'une soirée, comment faire de la lacto fermentation, et de la kombucha. Le retour de la fermentation dans ma vie :-)
## Des peines 😬
- J'ai fait des erreurs « bêtes » à cause de la pression que je me mets tout seul (lié au démarrage). J'ai réussi à lever ce stress pour la suite de la semaine.
- J'ai eu moins de temps de repos que prévu le week-end. Je suis content d'avoir mis le temps où je l'ai mis, mais je rattaque la semaine plus fatigué que ce que je voudrais.
- J'ai encore pu voir de la souffrance émotionelle dans certains collectifs alors même que le soin semble y être une valeur importante. J'aimerai faire quelque chose qui puisse être soutenant.
- Je suis effrayé et affecté par l'actualité politique en France. J'ai eu du mal à trouver des oreilles qui ne me plaquent pas leur analyse (qui se veut reconfortante) de la situation.
## Vu, Lu, etc
- [Encryption At Rest: Whose Threat Model Is It Anyway?](https://scottarc.blog/2024/06/02/encryption-at-rest-whose-threat-model-is-it-anyway/)
- 🕸️ Lu quelques [astuces pour se donner de la force](https://www.hacking-social.com/2024/06/10/lextreme-droite-domine-les-scores-des-elections/)
- 🎵 Découvert [Mayra Andrade](https://music.youtube.com/watch?v=gwa8cX7JOHY), réécouté [Diving with Andy](https://music.youtube.com/watch?v=G0V8YoPJu8k)
- [Le site revolution fermentation](https://revolutionfermentation.com/) qui m'a redonné envie de faire de la lacto et du kombucha !
- Commencé [Zizi Cabane](https://le-tripode.net/livre/berengere-cournut/zizi-cabane) de Bérengère Cournut
## Citations
### Personnages
> Ils naissent d'un éclair de désir, déchirant nos brumes mentales où errent des cortèges de silhouettes évanescentes, arrachant au cours chaotique de nos rêveries une de ces silhouettes pour la jeter, hagarde et solitaire, à la lisière de notre conscience.
>
> — ref manquante
Je ne retrouve pas la référence, mais ça parle de personnages qui font leur
apparition dans nos vies. Je trouve ça beau.
### Soin
> Ce que je pensais être du soin n'était en fait qu'une illusion : un tour
> de passe-passe, pour permettre aux personnes qui décident de ne pas être
> inquiétées. En réalité, ce qui semblait être un outil de cohésion de groupe ne
> permettait que de mesurer le niveau de friction.
>
> (Notes perso)
La différence entre ce qui est annoncé (souhaité) et ce qui est vécu en réalité
me parait plus nette que par le passé. Content de faire cet apprentissage.
### Compassion
> When everything is simply grouped into good or evil like we all have total free will over our selves, there is no room to manoeuvre. There is no space for understanding, no width to learn to see how everything has its cause and effect. Hence we blame, we resign, we become upset when people continue not to make choices we want them to make. **If we dont see the systemic factors and how they feed into each other, we are not addressing the root causes. If we dont address the root causes, we continue to be trapped in vicious cycles**.
>
> This is why I get touchy when people talk about choices, free will, personal responsibility, determination, grit, resilience etc. I learnt that there is so much that is out of our personal control. Some factors are simply an outcome of our history, some are embedded within the systems we live in, some are impacted by our ancestors, some are determined at the stage when were incepted and in the womb, so much is also influenced by what goes on in our early childhood years, etc. And all of them are interconnected, feeding into each other, creating feedback loops that entrench us negatively in our lives.
>
> — [to develop compassion is to develop thinking in systems](https://winnielim.org/journal/to-develop-compassion-is-to-develop-thinking-in-systems/)
Difficile de ne pas faire le lien avec la situation politique actuelle.
### Départ
> After months of careful consideration, talking with Ben about my possible departure, counselling with friends, it became obvious the only way for me to begin healing was to part ways with the work Ive been doing.
>
> — [Founder burnout](https://karolinaszczur.com/journal/founder-burnout/)
Et:
> Aujourdhui, jai annoncé mon souhait de quitter la coopérative que jai co-créée il y a 11 ans.
>
> — [Sensibilité, chez David](https://larlet.fr/david/2024/06/06/)
J'apprends que David part de chez Scopyleft, et ça fait écho chez moi a mon départ de la Brasserie il y a un an.
Je n'avais jamais fait attention au fait que le mot « départ » signifiait « partir de » mais aussi « démarrer ». Une sorte de point de bascule. Content de voir que certaines personnes savent s'écouter.
### Mensonges
> La tête de liste dextrême droite a terminé sans aucune contradiction son intervention en lâchant que la France ne représentait actuellement que « 1 % des émissions mondiales ». Un argument classique des climatosceptiques, qui masque le fait que lHexagone a une responsabilité historique dans le réchauffement planétaire : la France est le douzième plus gros émetteur mondial de CO2 cumulé dans latmosphère depuis 1850.
>
> — [Écologie : refuser la grande offensive réactionnaire](https://www.mediapart.fr/journal/ecologie/030624/ecologie-refuser-la-grande-offensive-reactionnaire)