diff --git a/content/_index.eo.md b/content/_index.eo.md index 14ac0c2..ad34883 100644 --- a/content/_index.eo.md +++ b/content/_index.eo.md @@ -111,13 +111,14 @@ insert_anchor_links = "left" * [GitLab Framagit](https://framagit.org/ZettaScript) (projektoj) * [GitLab Duniter](https://git.duniter.org/tuxmain) (projektoj pri la libera mono) * [Gitea P2P.legal](https://git.p2p.legal/tuxmain) (aliaj projektoj pri la libera mono) -* [Gitea JSB](https://gitea.jeunes-science.asso.fr/tuxmain) (projektoj [Jeunes-Science Bordeaux](https://jeunes-science.asso.fr)) * [Gitxmn](https://git.txmn.tk/tuxmain) (etaj projektoj kiuj mi ne sciis kien publikigi) * [GitLab Gnome](https://gitlab.gnome.org/tuxmain) * [GitHub](https://github.com/ZettaScript) (malpreferata) Doni kun Liberapay +⬘ Doni en Ethereum al `0x5e2101A637b28e561432fda9ffADB2b0D12c2116` + ## Pri {#pri} 🦀 Retejo generita kun [zola](https://www.getzola.org/). diff --git a/content/_index.fr.md b/content/_index.fr.md index d610017..88ecf4b 100644 --- a/content/_index.fr.md +++ b/content/_index.fr.md @@ -111,13 +111,14 @@ insert_anchor_links = "left" * [GitLab Framagit](https://framagit.org/ZettaScript) (projets en général) * [GitLab Duniter](https://git.duniter.org/tuxmain) (projets pour la monnaie libre) * [Gitea P2P.legal](https://git.p2p.legal/tuxmain) (autres projets pour la monnaie libre) -* [Gitea JSB](https://gitea.jeunes-science.asso.fr/tuxmain) (projets [Jeunes-Science Bordeaux](https://jeunes-science.asso.fr)) * [Gitxmn](https://git.txmn.tk/tuxmain) (petits projets que je ne savais pas où mettre) * [GitLab Gnome](https://gitlab.gnome.org/tuxmain) * [GitHub](https://github.com/ZettaScript) (déprécié, conservé pour la rétrocompatibilité seulement) Donner avec Liberapay +⬘ Donner en Ethereum à `0x5e2101A637b28e561432fda9ffADB2b0D12c2116` + ## À propos {#a-propos} 🦀 Site généré avec [zola](https://www.getzola.org/). diff --git a/content/_index.md b/content/_index.md index 836f917..7a5fa3a 100644 --- a/content/_index.md +++ b/content/_index.md @@ -111,13 +111,14 @@ insert_anchor_links = "left" * [GitLab Framagit](https://framagit.org/ZettaScript) (projects in general) * [GitLab Duniter](https://git.duniter.org/tuxmain) (projects about libre currency) * [Gitea P2P.legal](https://git.p2p.legal/tuxmain) (also projects about libre currency) -* [Gitea JSB](https://gitea.jeunes-science.asso.fr/tuxmain) (projects about [Jeunes-Science Bordeaux](https://jeunes-science.asso.fr)) * [Gitxmn](https://git.txmn.tk/tuxmain) (small projects I didn't know where to publish) * [GitLab Gnome](https://gitlab.gnome.org/tuxmain) * [GitHub](https://github.com/ZettaScript) (deprecated, used for backward compatibility only) Donate with Liberapay +⬘ Donate Ethereum at `0x5e2101A637b28e561432fda9ffADB2b0D12c2116` + ## About {#about} 🦀 Site generated with [zola](https://www.getzola.org/). diff --git a/content/blog/asm-cheatsheet.md b/content/blog/asm-cheatsheet.md new file mode 100644 index 0000000..8143777 --- /dev/null +++ b/content/blog/asm-cheatsheet.md @@ -0,0 +1,52 @@ ++++ +title = "Assembly cheatsheets" +date = 2024-10-24 +description = "Some resources and cheatsheets about assembly" +insert_anchor_links = "left" +draft = true +[taxonomies] +tags = ["assembly"] ++++ + + + +* [x86 Linux syscalls](https://syscalls32.paolostivanin.com/) +* [x86_64 Linux syscalls](https://syscalls64.paolostivanin.com/) +* [Another website with Linux syscalls](https://syscall.sh/) +* [x86 and x86_64 instruction reference](https://www.felixcloutier.com/x86/) + +## Conditional jump + +```asm +cmp A, B +jcc after +; conditionally executed code, see the table below +after: +``` + +| `Jcc` | code executed if | jump if | +|--------|----------|----------| +| `ja` | `A <= B` | `A > B` | +| `jae` | `A < B` | `A >= B` | +| `jb` | `A >= B` | `A < B` | +| `jbe` | `A > B` | `A <= B` | +| `je` | `A == B` | `A != B` | +| `jg` | `A <= B` | `A > B` | +| `jge` | `A < B` | `A >= B` | +| `jl` | `A >= B` | `A < B` | +| `jle` | `A > B` | `A <= B` | +| `jna` | `A > B` | `A <= B` | +| `jnae` | `A >= B` | `A < B` | +| `jne` | `A != B` | `A == B` | +| `jnb` | `A < B` | `A >= B` | +| `jnbe` | `A <= B` | `A > B` | +| `jng` | `A > B` | `A <= B` | +| `jnge` | `A >= B` | `A < B` | +| `jnl` | `A < B` | `A >= B` | +| `jnle` | `A <= B` | `A > B` | +| `jnz` | `A == B` | `A != B` | +| `jz` | `A != B` | `A == B` | diff --git a/content/blog/js.md b/content/blog/js.md index 73898b6..5a5a250 100644 --- a/content/blog/js.md +++ b/content/blog/js.md @@ -25,7 +25,7 @@ JavaScript is obviously not made for being used in webpages. * no native HTML escaping function * no native basic templating system (need `String.replaceAll("{{foo}}", foo)`) * no easy-to-use bytes array (like `Bytes` in Python or `Vec` in Rust), but many different bytes arrays with weird interfaces -* no native cryptographic tools if you aren't using HTTPS and satisfying other strange "security" requirements (you often end up inefficiently implementing SHA2 or AES in JS, while the browser natively uses OpenSSL) +* no native cryptographic primitives if you aren't using HTTPS and satisfying other strange "security" requirements (you often end up inefficiently implementing SHA2 or AES in JS, while the browser natively uses OpenSSL) * no native date/time string formatting * When defining an anonymous function (such as a callback) you can't reliably move variables to it. @@ -46,7 +46,8 @@ JavaScript doesn't respect anything. ``` * Hence `==`, `===` and `if` have three distinct strictness levels. * `&&` is not commutative: `(true && "2") === "2" && ("2" && true) === true` is true - * It is even inconsistent: `"0" == false && "1" == true` is true... but so is `"0" && "1"`. + * It is even inconsistent: `"0" == false && "1" == true` is true... + but so is `"0" && "1"`. * Operators are inconsistent: we have both `"1"+1 === "11"` and `"1"*2 === 2` * ```js var n = "1"; @@ -67,10 +68,10 @@ JavaScript doesn't respect anything. ``` * `document.getElementsByClassName` does not return an array: its return type supports indexing but not for/in loops. - - ## Conclusion Let's deprecate JavaScript and replace it with better languages compiled into WASM. -However, plain HTML/CSS should *always* be prefered, for performance, compatibility and accessibility. Form inputs crafted with tons of CSS and JS are often unresponsive, not accessible to screen readers, incompatible with native features, inefficient. It is even worse for pages rendered in a canvas. Please use the wonderful possibilities offered by HTML5 and CSS3, and follow the accessibility recommendations by the [W3C](https://www.w3.org/WAI/) and [Mozilla](https://developer.mozilla.org/en-US/docs/Web). +However, plain HTML/CSS should *always* be prefered, for performance, compatibility and accessibility. Form inputs crafted with tons of CSS and JS are often unresponsive, not accessible to screen readers, incompatible with native features, inefficient. It is even worse for pages rendered in a canvas. + +Please use the wonderful possibilities offered by HTML5 and CSS3, and follow the accessibility recommendations by the [W3C](https://www.w3.org/WAI/) and [Mozilla](https://developer.mozilla.org/en-US/docs/Web). diff --git a/content/blog/surveillance.fr.md b/content/blog/surveillance.fr.md index 82d643a..7fc7ff6 100644 --- a/content/blog/surveillance.fr.md +++ b/content/blog/surveillance.fr.md @@ -15,7 +15,7 @@ Il est habituel que des expérimentations sécuritaires illégales ou dérogatoi ## Donnez la main à la police, elle vous arrache le bras -Quand la police reçoit un nouveau jouet avec un certain cadre légal, elle se permet de l'étendre à outrance. Par exemple le FNAEG (Fichier National Automatisé des Empreintes Génétiques) était destiné à identifier génétiquement les délinquants sexuels et les meutriers susceptibles de récidive, mais contenait en 2021 les empreintes génétiques de plus de 7,5% de la population française. +Quand la police reçoit un nouveau jouet avec un certain cadre légal, elle se permet de l'étendre à outrance. Par exemple le FNAEG (Fichier National Automatisé des Empreintes Génétiques) était destiné à identifier génétiquement les délinquants sexuels et les meurtriers susceptibles de récidive, mais contenait en 2021 les empreintes génétiques de plus de 7,5% de la population française. ## Incompétence des décisionnaires @@ -27,11 +27,11 @@ Voir la conférence [Internet ou Minitel 2.0](https://framatube.org/w/9a8642c0-6 ## C'est pour notre sécurité -Toutes les occasions sont bonnes pour ajouter des caméras et de l'intelligence artificielle. L'exécutif se justifie généralemment de manière très confuse, prétendant que ces mesures auraient évité tel ou tel accident. Cette réponse est la plupart du temps disproportionnée, inadaptée et inefficace, alors que des solutions plus simples existent. Voir le fiasco du stade de France de 2022 qui est un exemple de mauvaise gestion de foule instrumentalisée pour promouvoir la vidéosurveillance algorithmique. Voir aussi comment ce genre de problème peut être évité (vidéos de Fouloscopie) (spoiler : sans IA ni vidéosurveillance). +Toutes les occasions sont bonnes pour ajouter des caméras et de l'intelligence artificielle. L'exécutif se justifie généralement de manière très confuse, prétendant que ces mesures auraient évité tel ou tel accident. Cette réponse est la plupart du temps disproportionnée, inadaptée et inefficace, alors que des solutions plus simples existent. Voir le fiasco du stade de France de 2022 qui est un exemple de mauvaise gestion de foule instrumentalisée pour promouvoir la vidéosurveillance algorithmique. Voir aussi comment ce genre de problème peut être évité (vidéos de Fouloscopie) (spoiler : sans IA ni vidéosurveillance). -## Pédophiles et terroristes en épouvantail +## Pédocriminels et terroristes en épouvantail -Les motifs invoqués par les politiciens pour augmenter la surveillance et les moyens de censure sont généralement les luttes contre les violences sexuelles et contre le terrorisme. Une majorité des agressions sexuelles étant commise par des proches (conjoint, parent, camarade de classe, entraîneur sportif...), l'efficacité d'une surveillance des communications électroniques sera réduite. De plus, ces criminels sont plus motivés que la moyenne à trouver des systèmes de communication sûrs : la surveillance va donc toucher toute la population de manière disproportionnée, pour un bénéfice très faible. +Les motifs invoqués par les politiciens pour augmenter la surveillance et les moyens de censure sont généralement les luttes contre la pédocriminalité et contre le terrorisme. Une majorité des agressions sexuelles étant commise par des proches (conjoint, parent, camarade de classe, entraîneur sportif...), d'autant plus quand la victime est un enfant, il ne s'agit pas en général d'inconnus chassant sur les réseaux sociaux. De plus, ces criminels sont plus motivés que la moyenne à trouver des systèmes de communication sûrs : la surveillance va donc toucher toute la population de manière disproportionnée, pour un bénéfice très faible. ## Sécurité des communications @@ -55,7 +55,7 @@ La vie privée doit être un droit individuel fondamental, et est nécessaire à ## Corruption et lobbyisme -Beaucoup de décisions menant directement à plus de surveillance (par l'investissement dans des solutions de surveillance), ou indirectement (par le choix de solutions informatiques non respectueuses de la vie privée), sont le résultat d'un énorme lobyyisme de la part des GAFAM et compagnie auprès des décideurs à tous les niveaux, des écoles aux parlementaires. +Beaucoup de décisions menant directement à plus de surveillance (par l'investissement dans des solutions de surveillance), ou indirectement (par le choix de solutions informatiques non respectueuses de la vie privée), sont le résultat d'un énorme lobbyisme de la part des GAFAM et compagnie auprès des décideurs à tous les niveaux, des écoles aux parlementaires. On se souviendra notamment du [contrat open-bar entre Microsoft et l'Éducation Nationale](https://www.anticor.org/affaires-anticor/affaire-education-nationale-microsoft/), qui permet de graver le monopole de Windows dans les cerveaux des écoliers. Si toutes vos interactions avec l'informatique sont passées par des outils Microsoft (à l'école, à la maison, au travail), ces outils vous seront familiers et donc vous irez probablement les chercher spécifiquement, même si des alternatives existent. Est-ce votre choix ? Pas vraiment, puisque Windows est installé dans les écoles sans concertation et sans présentation des alternatives.