Compressed images, use WebP, mention Forgejo

This commit is contained in:
Pascal Engélibert 2023-04-16 20:43:55 +02:00
parent 4d58e6860b
commit 63694b54b7
Signed by: tuxmain
GPG key ID: 3504BC6D362F7DCA
25 changed files with 190 additions and 32 deletions

View file

@ -5,14 +5,14 @@ insert_anchor_links = "left"
<div class="service_boxes"> <div class="service_boxes">
{{ service_box(href="https://flim.txmn.tk", title="PeerTube", img="/img/peertube.svg", img_alt="Logotipo PeerTube") }} {{ service_box(href="https://flim.txmn.tk", title="PeerTube", img="/img/peertube.svg", img_alt="Logotipo PeerTube") }}
{{ service_box(href="/framadate", title="Framadate", img="/img/framadate.png", img_alt="Logotipo Framadate") }} {{ service_box(href="/framadate", title="Framadate", img="/img/framadate.webp", img_alt="Logotipo Framadate") }}
{{ service_box(href="/element", title="Matrix / Element", img="/img/element.svg", img_alt="Logotipo Element") }} {{ service_box(href="/element", title="Matrix / Element", img="/img/element.svg", img_alt="Logotipo Element") }}
{{ service_box(href="https://forum.progaccess.net", title="Forumo ProgAccess", img="/img/progaccess.png", img_alt="Logotipo ProgAccess") }} {{ service_box(href="https://forum.progaccess.net", title="Forumo ProgAccess", img="/img/progaccess.webp", img_alt="Logotipo ProgAccess") }}
{{ service_box(href="https://cloud.txmn.tk", title="NextCloud", img="/img/nextcloud.svg", img_alt="Logotipo NextCloud") }} {{ service_box(href="https://cloud.txmn.tk", title="NextCloud", img="/img/nextcloud.svg", img_alt="Logotipo NextCloud") }}
{{ service_box(href="/lufi", title="Lufi", img="/img/lufi.svg", img_alt="Logotipo Lufi") }} {{ service_box(href="/lufi", title="Lufi", img="/img/lufi.svg", img_alt="Logotipo Lufi") }}
{{ service_box(href="/lutim", title="Lutim", img="/img/lutim.png", img_alt="Logotipo Lutim") }} {{ service_box(href="/lutim", title="Lutim", img="/img/lutim.webp", img_alt="Logotipo Lutim") }}
{{ service_box(href="/l", title="LSTU", img="/img/lstu.svg", img_alt="Logotipo LSTU") }} {{ service_box(href="/l", title="LSTU", img="/img/lstu.svg", img_alt="Logotipo LSTU") }}
{{ service_box(href="https://pad.txmn.tk", title="Etherpad", img="/img/etherpad.png", img_alt="Logotipo Etherpad") }} {{ service_box(href="https://pad.txmn.tk", title="Etherpad", img="/img/etherpad.webp", img_alt="Logotipo Etherpad") }}
{{ service_box(href="/mumble", title="Mumble", img="/img/mumble.svg", img_alt="Logotipo Mumble") }} {{ service_box(href="/mumble", title="Mumble", img="/img/mumble.svg", img_alt="Logotipo Mumble") }}
</div> </div>
@ -30,10 +30,10 @@ insert_anchor_links = "left"
## Projektoj {#projektoj} ## Projektoj {#projektoj}
<div class="service_boxes"> <div class="service_boxes">
{{ service_box(href="https://progaccess.net", title="ProgAccess", img="/img/progaccess.png", img_alt="Logotipo ProgAccess") }} {{ service_box(href="https://progaccess.net", title="ProgAccess", img="/img/progaccess.webp", img_alt="Logotipo ProgAccess") }}
{{ service_box(href="//zettascript.org/projects/gmixer/", title="ĞMixer", img="/img/gmixer.svg", img_alt="Logotipo ĞMixer") }} {{ service_box(href="//zettascript.org/projects/gmixer/", title="ĞMixer", img="/img/gmixer.svg", img_alt="Logotipo ĞMixer") }}
{{ service_box(href="https://framagit.org/ZettaScript/syeve", title="Syeve", img="/img/syeve.svg", img_alt="Logotipo Syeve") }} {{ service_box(href="https://framagit.org/ZettaScript/syeve", title="Syeve", img="/img/syeve.svg", img_alt="Logotipo Syeve") }}
{{ service_box(href="https://framagit.org/ZettaScript/forceatlas2-rs", title="ForceAtlas2-rs", img="/img/forceatlas2.png", img_alt="Grafo") }} {{ service_box(href="https://framagit.org/ZettaScript/forceatlas2-rs", title="ForceAtlas2-rs", img="/img/forceatlas2.webp", img_alt="Grafo") }}
{{ service_box(href="//worldwotmap.duniter.org", title="WorldWotMap", img="/img/gbreve.svg", img_alt="Ğ") }} {{ service_box(href="//worldwotmap.duniter.org", title="WorldWotMap", img="/img/gbreve.svg", img_alt="Ğ") }}
</div> </div>
@ -82,14 +82,14 @@ insert_anchor_links = "left"
* [Ğ.ML](//xn--tea.ml): sous-domaines gratuits pour la monnaie libre * [Ğ.ML](//xn--tea.ml): sous-domaines gratuits pour la monnaie libre
* Servilo STUN publika: `stun:txmn.tk:3478` * Servilo STUN publika: `stun:txmn.tk:3478`
* [Historique des données géographiques Cesium+ de la Ğ1](/g1/history/cesiumplusmap) * [Historique des données géographiques Cesium+ de la Ğ1](/g1/history/cesiumplusmap)
* Hébergement/installation de site/blog/boutique Odoo, WordPress, ou autres. Payable en Ğ1, me contacter par e-mail. * Hébergement/installation de site/blog/boutique WordPress, ou autres. Payable en Ğ1, me contacter par e-mail.
* 🗒 [Etherpad](https://pad.txmn.tk): document partagé de prise de notes en temps réel * 🗒 [Etherpad](https://pad.txmn.tk): document partagé de prise de notes en temps réel
## Ankaŭ gastigas {#gastigas} ## Ankaŭ gastigas {#gastigas}
<div class="service_boxes"> <div class="service_boxes">
{{ service_box(href="//dubitaristes.fr", title="Les Dubitaristes Girondins", img="/img/dubitaristes.png", img_alt="Logotipo Dubitaristes") }} {{ service_box(href="//dubitaristes.fr", title="Les Dubitaristes Girondins", img="/img/dubitaristes.webp", img_alt="Logotipo Dubitaristes") }}
{{ service_box(href="https://collectifsources.fr", title="Collectif Sources", img="/img/collectifsources.png", img_alt="Logo Collectif Sources") }} {{ service_box(href="https://collectifsources.fr", title="Collectif Sources", img="/img/collectifsources.webp", img_alt="Logo Collectif Sources") }}
{{ service_box(href="//juneland.fr", title="Juneland", img="/img/minetest.svg", img_alt="Logotipo MineTest") }} {{ service_box(href="//juneland.fr", title="Juneland", img="/img/minetest.svg", img_alt="Logotipo MineTest") }}
</div> </div>

View file

@ -5,14 +5,14 @@ insert_anchor_links = "left"
<div class="service_boxes"> <div class="service_boxes">
{{ service_box(href="https://flim.txmn.tk", title="PeerTube", img="/img/peertube.svg", img_alt="Logo PeerTube") }} {{ service_box(href="https://flim.txmn.tk", title="PeerTube", img="/img/peertube.svg", img_alt="Logo PeerTube") }}
{{ service_box(href="/framadate", title="Framadate", img="/img/framadate.png", img_alt="Logo Framadate") }} {{ service_box(href="/framadate", title="Framadate", img="/img/framadate.webp", img_alt="Logo Framadate") }}
{{ service_box(href="/element", title="Matrix / Element", img="/img/element.svg", img_alt="Logo Element") }} {{ service_box(href="/element", title="Matrix / Element", img="/img/element.svg", img_alt="Logo Element") }}
{{ service_box(href="https://forum.progaccess.net", title="Forum ProgAccess", img="/img/progaccess.png", img_alt="Logo ProgAccess") }} {{ service_box(href="https://forum.progaccess.net", title="Forum ProgAccess", img="/img/progaccess.webp", img_alt="Logo ProgAccess") }}
{{ service_box(href="https://cloud.txmn.tk", title="NextCloud", img="/img/nextcloud.svg", img_alt="Logo NextCloud") }} {{ service_box(href="https://cloud.txmn.tk", title="NextCloud", img="/img/nextcloud.svg", img_alt="Logo NextCloud") }}
{{ service_box(href="/lufi", title="Lufi", img="/img/lufi.svg", img_alt="Logo Lufi") }} {{ service_box(href="/lufi", title="Lufi", img="/img/lufi.svg", img_alt="Logo Lufi") }}
{{ service_box(href="/lutim", title="Lutim", img="/img/lutim.png", img_alt="Logo Lutim") }} {{ service_box(href="/lutim", title="Lutim", img="/img/lutim.webp", img_alt="Logo Lutim") }}
{{ service_box(href="/l", title="LSTU", img="/img/lstu.svg", img_alt="Logo LSTU") }} {{ service_box(href="/l", title="LSTU", img="/img/lstu.svg", img_alt="Logo LSTU") }}
{{ service_box(href="https://pad.txmn.tk", title="Etherpad", img="/img/etherpad.png", img_alt="Logo Etherpad") }} {{ service_box(href="https://pad.txmn.tk", title="Etherpad", img="/img/etherpad.webp", img_alt="Logo Etherpad") }}
{{ service_box(href="/mumble", title="Mumble", img="/img/mumble.svg", img_alt="Logo Mumble") }} {{ service_box(href="/mumble", title="Mumble", img="/img/mumble.svg", img_alt="Logo Mumble") }}
</div> </div>
@ -30,10 +30,10 @@ insert_anchor_links = "left"
## Projets {#projets} ## Projets {#projets}
<div class="service_boxes"> <div class="service_boxes">
{{ service_box(href="https://progaccess.net", title="ProgAccess", img="/img/progaccess.png", img_alt="Logo ProgAccess") }} {{ service_box(href="https://progaccess.net", title="ProgAccess", img="/img/progaccess.webp", img_alt="Logo ProgAccess") }}
{{ service_box(href="//zettascript.org/projects/gmixer/", title="ĞMixer", img="/img/gmixer.svg", img_alt="Logo ĞMixer") }} {{ service_box(href="//zettascript.org/projects/gmixer/", title="ĞMixer", img="/img/gmixer.svg", img_alt="Logo ĞMixer") }}
{{ service_box(href="https://framagit.org/ZettaScript/syeve", title="Syeve", img="/img/syeve.svg", img_alt="Logo Syeve") }} {{ service_box(href="https://framagit.org/ZettaScript/syeve", title="Syeve", img="/img/syeve.svg", img_alt="Logo Syeve") }}
{{ service_box(href="https://framagit.org/ZettaScript/forceatlas2-rs", title="ForceAtlas2-rs", img="/img/forceatlas2.png", img_alt="Graphe") }} {{ service_box(href="https://framagit.org/ZettaScript/forceatlas2-rs", title="ForceAtlas2-rs", img="/img/forceatlas2.webp", img_alt="Graphe") }}
{{ service_box(href="//worldwotmap.duniter.org", title="WorldWotMap", img="/img/gbreve.svg", img_alt="Ğ") }} {{ service_box(href="//worldwotmap.duniter.org", title="WorldWotMap", img="/img/gbreve.svg", img_alt="Ğ") }}
</div> </div>
@ -82,14 +82,14 @@ insert_anchor_links = "left"
* [Ğ.ML](//xn--tea.ml)&nbsp;: sous-domaines gratuits pour la monnaie libre * [Ğ.ML](//xn--tea.ml)&nbsp;: sous-domaines gratuits pour la monnaie libre
* Serveur STUN public&nbsp;: `stun:txmn.tk:3478` * Serveur STUN public&nbsp;: `stun:txmn.tk:3478`
* [Historique des données géographiques Cesium+ de la Ğ1](/g1/history/cesiumplusmap) * [Historique des données géographiques Cesium+ de la Ğ1](/g1/history/cesiumplusmap)
* Hébergement/installation de site/blog/boutique Odoo, WordPress, ou autres. Payable en Ğ1, me contacter par e-mail. * Hébergement/installation de site/blog/boutique WordPress, ou autres. Payable en Ğ1, me contacter par e-mail.
* 🗒 [Etherpad](https://pad.txmn.tk)&nbsp;: document partagé de prise de notes en temps réel * 🗒 [Etherpad](https://pad.txmn.tk)&nbsp;: document partagé de prise de notes en temps réel
## Héberge aussi {#heberge} ## Héberge aussi {#heberge}
<div class="service_boxes"> <div class="service_boxes">
{{ service_box(href="//dubitaristes.fr", title="Les Dubitaristes Girondins", img="/img/dubitaristes.png", img_alt="Logo Dubitaristes") }} {{ service_box(href="//dubitaristes.fr", title="Les Dubitaristes Girondins", img="/img/dubitaristes.webp", img_alt="Logo Dubitaristes") }}
{{ service_box(href="https://collectifsources.fr", title="Collectif Sources", img="/img/collectifsources.png", img_alt="Logo Collectif Sources") }} {{ service_box(href="https://collectifsources.fr", title="Collectif Sources", img="/img/collectifsources.webp", img_alt="Logo Collectif Sources") }}
{{ service_box(href="//juneland.fr", title="Juneland", img="/img/minetest.svg", img_alt="Logo MineTest") }} {{ service_box(href="//juneland.fr", title="Juneland", img="/img/minetest.svg", img_alt="Logo MineTest") }}
</div> </div>

View file

@ -5,14 +5,14 @@ insert_anchor_links = "left"
<div class="service_boxes"> <div class="service_boxes">
{{ service_box(href="https://flim.txmn.tk", title="PeerTube", img="/img/peertube.svg", img_alt="Logo PeerTube") }} {{ service_box(href="https://flim.txmn.tk", title="PeerTube", img="/img/peertube.svg", img_alt="Logo PeerTube") }}
{{ service_box(href="/framadate", title="Framadate", img="/img/framadate.png", img_alt="Logo Framadate") }} {{ service_box(href="/framadate", title="Framadate", img="/img/framadate.webp", img_alt="Logo Framadate") }}
{{ service_box(href="/element", title="Matrix / Element", img="/img/element.svg", img_alt="Logo Element") }} {{ service_box(href="/element", title="Matrix / Element", img="/img/element.svg", img_alt="Logo Element") }}
{{ service_box(href="https://forum.progaccess.net", title="Forum ProgAccess", img="/img/progaccess.png", img_alt="Logo ProgAccess") }} {{ service_box(href="https://forum.progaccess.net", title="Forum ProgAccess", img="/img/progaccess.webp", img_alt="Logo ProgAccess") }}
{{ service_box(href="https://cloud.txmn.tk", title="NextCloud", img="/img/nextcloud.svg", img_alt="Logo NextCloud") }} {{ service_box(href="https://cloud.txmn.tk", title="NextCloud", img="/img/nextcloud.svg", img_alt="Logo NextCloud") }}
{{ service_box(href="/lufi", title="Lufi", img="/img/lufi.svg", img_alt="Logo Lufi") }} {{ service_box(href="/lufi", title="Lufi", img="/img/lufi.svg", img_alt="Logo Lufi") }}
{{ service_box(href="/lutim", title="Lutim", img="/img/lutim.png", img_alt="Logo Lutim") }} {{ service_box(href="/lutim", title="Lutim", img="/img/lutim.webp", img_alt="Logo Lutim") }}
{{ service_box(href="/l", title="LSTU", img="/img/lstu.svg", img_alt="Logo LSTU") }} {{ service_box(href="/l", title="LSTU", img="/img/lstu.svg", img_alt="Logo LSTU") }}
{{ service_box(href="https://pad.txmn.tk", title="Etherpad", img="/img/etherpad.png", img_alt="Logo Etherpad") }} {{ service_box(href="https://pad.txmn.tk", title="Etherpad", img="/img/etherpad.webp", img_alt="Logo Etherpad") }}
{{ service_box(href="/mumble", title="Mumble", img="/img/mumble.svg", img_alt="Logo Mumble") }} {{ service_box(href="/mumble", title="Mumble", img="/img/mumble.svg", img_alt="Logo Mumble") }}
</div> </div>
@ -30,10 +30,10 @@ insert_anchor_links = "left"
## Projects {#projects} ## Projects {#projects}
<div class="service_boxes"> <div class="service_boxes">
{{ service_box(href="https://progaccess.net", title="ProgAccess", img="/img/progaccess.png", img_alt="Logo ProgAccess") }} {{ service_box(href="https://progaccess.net", title="ProgAccess", img="/img/progaccess.webp", img_alt="Logo ProgAccess") }}
{{ service_box(href="//zettascript.org/projects/gmixer/", title="ĞMixer", img="/img/gmixer.svg", img_alt="Logo ĞMixer") }} {{ service_box(href="//zettascript.org/projects/gmixer/", title="ĞMixer", img="/img/gmixer.svg", img_alt="Logo ĞMixer") }}
{{ service_box(href="https://framagit.org/ZettaScript/syeve", title="Syeve", img="/img/syeve.svg", img_alt="Logo Syeve") }} {{ service_box(href="https://framagit.org/ZettaScript/syeve", title="Syeve", img="/img/syeve.svg", img_alt="Logo Syeve") }}
{{ service_box(href="https://framagit.org/ZettaScript/forceatlas2-rs", title="ForceAtlas2-rs", img="/img/forceatlas2.png", img_alt="Graph") }} {{ service_box(href="https://framagit.org/ZettaScript/forceatlas2-rs", title="ForceAtlas2-rs", img="/img/forceatlas2.webp", img_alt="Graph") }}
{{ service_box(href="//worldwotmap.duniter.org", title="WorldWotMap", img="/img/gbreve.svg", img_alt="Ğ") }} {{ service_box(href="//worldwotmap.duniter.org", title="WorldWotMap", img="/img/gbreve.svg", img_alt="Ğ") }}
</div> </div>
@ -82,14 +82,14 @@ insert_anchor_links = "left"
* [Ğ.ML](//xn--tea.ml): free subdomains for the libre currency * [Ğ.ML](//xn--tea.ml): free subdomains for the libre currency
* Public STUN server: `stun:txmn.tk:3478` * Public STUN server: `stun:txmn.tk:3478`
* [Cesium+ geographical data history of Ğ1](/g1/history/cesiumplusmap) * [Cesium+ geographical data history of Ğ1](/g1/history/cesiumplusmap)
* Hosting/installation of site/blog/shop Odoo, WordPress, or other. Paid in Ğ1, contact me by email. * Hosting/installation of site/blog/shop WordPress, or other. Paid in Ğ1, contact me by email.
* 🗒 [Etherpad](https://pad.txmn.tk): Real time shared document for note taking * 🗒 [Etherpad](https://pad.txmn.tk): Real time shared document for note taking
## Also hosting {#host} ## Also hosting {#host}
<div class="service_boxes"> <div class="service_boxes">
{{ service_box(href="//dubitaristes.fr", title="Les Dubitaristes Girondins", img="/img/dubitaristes.png", img_alt="Logo Dubitaristes") }} {{ service_box(href="//dubitaristes.fr", title="Les Dubitaristes Girondins", img="/img/dubitaristes.webp", img_alt="Logo Dubitaristes") }}
{{ service_box(href="https://collectifsources.fr", title="Collectif Sources", img="/img/collectifsources.png", img_alt="Logo Collectif Sources") }} {{ service_box(href="https://collectifsources.fr", title="Collectif Sources", img="/img/collectifsources.webp", img_alt="Logo Collectif Sources") }}
{{ service_box(href="//juneland.fr", title="Juneland", img="/img/minetest.svg", img_alt="Logo MineTest") }} {{ service_box(href="//juneland.fr", title="Juneland", img="/img/minetest.svg", img_alt="Logo MineTest") }}
</div> </div>

View file

@ -0,0 +1,58 @@
+++
title = "Installer GNU/Linux"
date = 2022-12-26
description = "Installer GNU/Linux sans se prendre la tête et en évitant les ennuis."
draft = true
[taxonomies]
tags = ["informatique", "Linux", "Windows"]
+++
## S'informer
On veut savoir&nbsp;:
* ce qui est sauvegardé ailleurs, et si cette sauvegarde est accessible depuis ailleurs que l'ordinateur à libérer
* si on a assez de temps pour terminer
* si on est disponible les jours qui suivent pour régler les inévitables problèmes qui apparaîtront
## S'équiper
* Une **règle en plastique** servira à appuyer sur toutes les touches Fonction, Échap et Suppr en même temps lors du démarrage, pour accéder à l'interface de paramétrage du BIOS, si la touche précise est inconnue.
* Le **câble d'alimentation**
## Préparer les supports d'installation
* `cp` suffit
## Préparer boot-repair
## Désactiver fast boot et secure boot
## Installer Windows avant Linux
sinon Windows casse tout
## Faire une sauvegarde
## Désactiver le chiffrement de Windows
une partition BitLocker ne peut pas être redimensionnée
## Désactiver les mises à jour automatiques de Windows
sinon Windows casse tout y compris lui-même
## Ajouter un stockage différent
* évite d'avoir à altérer Windows
* il suffit de retirer le stockage de Linux pour que tout remarche, en cas de problème
## Vérifier que Linux marche
* Wifi
* Bouton d'arrêt, capot
* Hibernation
* Lecture de la partition de Windows
## Vérifier que Windows démarre encore

65
content/blog/js.md Normal file
View file

@ -0,0 +1,65 @@
+++
title = "Why I hate JavaScript"
date = 2023-01-20
draft = true
[taxonomies]
tags = []
+++
Why do people use JavaScript? Because it's a great language or because it's the only one ready-to-use in any web browser?
Note that several of these arguments also apply to PHP, another _de facto_ application-specific (web server) language, that I think is mostly used because of technical debt.
This article is about JavaScript for web browsers, not NodeJS or TypeScript.
## TL; DR
JavaScript combines all the problems of both high and low level languages.
## Lack of features
JavaScript is obviously not made for being used in webpages.
* need jQuery
* 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<u8>` 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 date/time string formatting
* When defining an anonymous function (such as a callback) you can't reliably move variables to it.
## What the fuck
JavaScript doesn't respect anything.
* You never know whether you're copying or borrowing (a table or an object), and how deeply.
* Python suffers the same problem.
* Time is expressed in milliseconds, while the convention is seconds everywhere else.
* `"1" == true && "2" != true && "2" != false` is true
* ```js
if("2" == true)
console.log("I am not executed.");
if("2")
console.log("I am executed!");
```
* Hence `==`, `===` and `if` have three distinct strictness levels.
* `&&` is not commutative: `(true && "2") === "2" && ("2" && true) === true` is true
* Operators are inconsistent: `"1"+1 === "11" && "1"*2 === 2` are true
* ```js
var n = "1";
n += 1;
// n is now "11"
n ++;
// n should be "111"?
// but n is now 12
```
* `(-1)%2 == -1` while most of the time the convention is to give the least positive congruent.
* Naming is incoherent. `XMLHttpRequest` is an example mixing all-caps and first-letter-cap conventions for initialisms. It should have been either `XmlHttpRequest` or `XMLHTTPRequest`.
* Is an array really an array, or an object with _some_ of the array's properties? Lua has the same problem.
```js
var foo = [];
foo["bar"] = 42;
console.log(foo["bar"]); // foo["bar"] exists.
console.log(foo.length); // 0
```
* `document.getElementsByClassName` does not return an array: its return type supports indexing but not for/in loops.

View file

@ -9,7 +9,7 @@ tags = ["Minitel", "retro", "Arduino"]
**Celo: uzi unu [Minitel](https://eo.wikipedia.org/wiki/Minitel) kiel terminalo de sistemo GNU/Linux.** **Celo: uzi unu [Minitel](https://eo.wikipedia.org/wiki/Minitel) kiel terminalo de sistemo GNU/Linux.**
{{ float_img(alt="Minitel elmontranta la logotipon de Rust.", src="minitel_rust.jpg", style="max-height:100vh;max-width:min(800px,100%)") }} {{ float_img(alt="Minitel elmontranta la logotipon de Rust.", src="minitel_rust.webp", style="max-height:100vh;max-width:min(800px,100%)") }}
Ĉi tio artikolo publikiĝis en la franclingva revuo [_Programmez!_ #256](https://www.programmez.com/magazine/programmez-253-pdf), kio enhavas multajn artikolojn pri la Minitel kaj sia interfacaĵo. Ĉi tio artikolo publikiĝis en la franclingva revuo [_Programmez!_ #256](https://www.programmez.com/magazine/programmez-253-pdf), kio enhavas multajn artikolojn pri la Minitel kaj sia interfacaĵo.
@ -29,7 +29,7 @@ La Minitel enhavas ĉirkaŭ-komputikan kontaktilon (france "prise péri-informat
Unue mi programis kontrolilon en Python. Ĝi simulas terminalon, kun USB kiel eneligo. Ĝi legas komandan linion, kaj ĝin efektivigas kiam la klavo "Sendo" frapiĝas. Unue mi programis kontrolilon en Python. Ĝi simulas terminalon, kun USB kiel eneligo. Ĝi legas komandan linion, kaj ĝin efektivigas kiam la klavo "Sendo" frapiĝas.
{{ float_img(alt="Minitel ekmontranta la logotipon de Rust.", src="minitel_fortune.jpg", style="max-height:100vh;max-width:min(800px,100%)") }} {{ float_img(alt="Minitel ekmontranta la logotipon de Rust.", src="minitel_fortune.webp", style="max-height:100vh;max-width:min(800px,100%)") }}
Tio sola malfaciligis: Tio sola malfaciligis:

View file

@ -8,7 +8,7 @@ tags = ["Minitel", "rétro", "Arduino"]
**Objectif&nbsp;: utiliser un [Minitel](https://fr.wikipedia.org/wiki/Minitel) comme terminal d'un système GNU/Linux.** **Objectif&nbsp;: utiliser un [Minitel](https://fr.wikipedia.org/wiki/Minitel) comme terminal d'un système GNU/Linux.**
{{ float_img(alt="Minitel affichant le logo de Rust.", src="minitel_rust.jpg", style="max-height:100vh;max-width:min(800px,100%)") }} {{ float_img(alt="Minitel affichant le logo de Rust.", src="minitel_rust.webp", style="max-height:100vh;max-width:min(800px,100%)") }}
Cet article est paru dans le magazine [_Programmez!_ #256](https://www.programmez.com/magazine/programmez-253-pdf), qui contient plusieurs autres articles concernant le Minitel et son interfaçage. Cet article est paru dans le magazine [_Programmez!_ #256](https://www.programmez.com/magazine/programmez-253-pdf), qui contient plusieurs autres articles concernant le Minitel et son interfaçage.
@ -28,7 +28,7 @@ Le Minitel dispose d'une prise "péri-informatique", qui est un port série d'en
J'ai d'abord codé un contrôleur en Python. C'est une sorte d'émulateur de terminal, avec le port USB comme entrée-sortie. Il prend une ligne de commande et l'exécute à l'appui de la touche Envoi. J'ai d'abord codé un contrôleur en Python. C'est une sorte d'émulateur de terminal, avec le port USB comme entrée-sortie. Il prend une ligne de commande et l'exécute à l'appui de la touche Envoi.
{{ float_img(alt="Minitel affichant le logo de Rust.", src="minitel_fortune.jpg", style="max-height:100vh;max-width:min(800px,100%)") }} {{ float_img(alt="Minitel affichant le logo de Rust.", src="minitel_fortune.webp", style="max-height:100vh;max-width:min(800px,100%)") }}
Rien que ça demandait de surmonter plusieurs difficultés&nbsp;: Rien que ça demandait de surmonter plusieurs difficultés&nbsp;:

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

View file

@ -118,6 +118,14 @@ code, pre {
font-family: SourceCodePro, monospace, monospace; font-family: SourceCodePro, monospace, monospace;
} }
code {
background-color: rgba(255, 128, 0, 0.3);
}
pre code {
background-color: initial;
}
.anchor, .anchor:visited { .anchor, .anchor:visited {
margin-left: -1rem; margin-left: -1rem;
margin-right: 0.75rem; margin-right: 0.75rem;

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

BIN
static/img/etherpad.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

BIN
static/img/forceatlas2.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

27
static/img/forgejo.svg Normal file
View file

@ -0,0 +1,27 @@
<svg viewBox="0 0 212 212" xmlns="http://www.w3.org/2000/svg">
<style type="text/css">
circle {
fill: none;
stroke: #000;
stroke-width: 15;
}
path {
fill: none;
stroke: #000;
stroke-width: 25;
}
.orange {
stroke:#ff6600;
}
.red {
stroke:#d40000;
}
</style>
<g transform="translate(6,6)">
<path d="M58 168 v-98 a50 50 0 0 1 50-50 h20" class="orange" />
<path d="M58 168 v-30 a50 50 0 0 1 50-50 h20" class="red" />
<circle cx="142" cy="20" r="18" class="orange" />
<circle cx="142" cy="88" r="18" class="red" />
<circle cx="58" cy="180" r="18" class="red" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 677 B

BIN
static/img/framadate.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

BIN
static/img/lutim.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

BIN
static/img/progaccess.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

View file

@ -58,6 +58,6 @@
<a href="https://liberapay.com/tuxmain/donate" title="Liberapay"><img alt="Liberapay" src="/img/liberapay-donate.svg"/></a> <a href="https://liberapay.com/tuxmain/donate" title="Liberapay"><img alt="Liberapay" src="/img/liberapay-donate.svg"/></a>
</div> </div>
<br/> <br/>
<a href="https://git.txmn.tk/tuxmain/website">Git</a> | <a rel="license" href="//creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0</a> <a href="https://git.txmn.tk/tuxmain/website"><img alt="Forĝejo" src="/img/forgejo.svg" style="width:32px;"/> Git/Forĝejo</a> | <a rel="license" href="//creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0</a>
</footer> </footer>
{% endblock body %} {% endblock body %}