update index
This commit is contained in:
parent
99e238ba89
commit
5e444fe7b0
9 changed files with 1062 additions and 25 deletions
20
config.toml
20
config.toml
|
@ -8,8 +8,6 @@ default_language = "en"
|
||||||
|
|
||||||
minify_html = false
|
minify_html = false
|
||||||
|
|
||||||
generate_feed = true
|
|
||||||
|
|
||||||
[slugify]
|
[slugify]
|
||||||
paths = "off"
|
paths = "off"
|
||||||
taxonomies = "off"
|
taxonomies = "off"
|
||||||
|
@ -20,15 +18,6 @@ highlight_code = true
|
||||||
[extra]
|
[extra]
|
||||||
sitename = "tuxmain's homepage"
|
sitename = "tuxmain's homepage"
|
||||||
|
|
||||||
[languages.eo]
|
|
||||||
generate_feed = true
|
|
||||||
taxonomies = [
|
|
||||||
{name = "tags"},
|
|
||||||
]
|
|
||||||
|
|
||||||
[languages.eo.translations]
|
|
||||||
langs_label = "Lingvo"
|
|
||||||
|
|
||||||
[languages.en]
|
[languages.en]
|
||||||
generate_feed = true
|
generate_feed = true
|
||||||
taxonomies = [
|
taxonomies = [
|
||||||
|
@ -38,6 +27,15 @@ taxonomies = [
|
||||||
[languages.en.translations]
|
[languages.en.translations]
|
||||||
langs_label = "Language"
|
langs_label = "Language"
|
||||||
|
|
||||||
|
[languages.eo]
|
||||||
|
generate_feed = true
|
||||||
|
taxonomies = [
|
||||||
|
{name = "tags"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[languages.eo.translations]
|
||||||
|
langs_label = "Lingvo"
|
||||||
|
|
||||||
[languages.fr]
|
[languages.fr]
|
||||||
generate_feed = true
|
generate_feed = true
|
||||||
taxonomies = [
|
taxonomies = [
|
||||||
|
|
|
@ -64,8 +64,8 @@ insert_anchor_links = "left"
|
||||||
|
|
||||||
* [Perkomputile ciferece stirata (CNC) artikigita brako](https://framagit.org/ZettaScript/cnc-arm)
|
* [Perkomputile ciferece stirata (CNC) artikigita brako](https://framagit.org/ZettaScript/cnc-arm)
|
||||||
* [Pervarma lasera printilo kun Arduino](https://framagit.org/ZettaScript/laserprinter) (por printi sur papero sen konsumi inkon)
|
* [Pervarma lasera printilo kun Arduino](https://framagit.org/ZettaScript/laserprinter) (por printi sur papero sen konsumi inkon)
|
||||||
* Multfunkcia sistemo por videkunveno aŭ datumfluo en Rust
|
* [Retservilo en Rust por integreblaj komentoj](https://git.txmn.tk/tuxmain/webcomment/)
|
||||||
* Transformilo de sono al MIDI
|
* [Cultivar](https://git.txmn.tk/tuxmain/cultivar): Ludo por programi AI-on uzanta WASM-on
|
||||||
|
|
||||||
## Servoj {#servoj}
|
## Servoj {#servoj}
|
||||||
|
|
||||||
|
@ -95,7 +95,12 @@ insert_anchor_links = "left"
|
||||||
|
|
||||||
## La kamaradoj {#kamaradoj}
|
## La kamaradoj {#kamaradoj}
|
||||||
|
|
||||||
* [Librezo](https://librezo.com) helpas la profesiulojn liberiĝi de la GAFAM per instali siajn proprajn komputikajn servojn.
|
<div class="service_boxes">
|
||||||
|
{{ service_box(href="https://axiom-team.fr", title="Axiom-Team", img="/img/axiom-light.svg", img_alt="Logo Axiom-Team") }}
|
||||||
|
{{ service_box(href="https://librezo.fr", title="Librezo", img="/img/librezo-color-light.png", img_alt="Logo Librezo") }}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
[Librezo](https://librezo.com) helpas la profesiulojn liberiĝi de la GAFAM per instali siajn proprajn komputikajn servojn.
|
||||||
|
|
||||||
## Kontaktoj {#kontaktoj}
|
## Kontaktoj {#kontaktoj}
|
||||||
|
|
||||||
|
|
|
@ -64,8 +64,8 @@ insert_anchor_links = "left"
|
||||||
|
|
||||||
* [Bras articulé CNC modulaire imprimé en 3D, contrôlé par Arduino](https://framagit.org/ZettaScript/cnc-arm)
|
* [Bras articulé CNC modulaire imprimé en 3D, contrôlé par Arduino](https://framagit.org/ZettaScript/cnc-arm)
|
||||||
* [Imprimante thermique LASER Arduino](https://framagit.org/ZettaScript/laserprinter) (pour imprimer sur papier sans consommer d'encre)
|
* [Imprimante thermique LASER Arduino](https://framagit.org/ZettaScript/laserprinter) (pour imprimer sur papier sans consommer d'encre)
|
||||||
* Système super-modulaire de visioconférence/stream/live en Rust
|
* [Serveur web Rust de commentaires intégrables](https://git.txmn.tk/tuxmain/webcomment/)
|
||||||
* Convertisseur audio vers MIDI
|
* [Cultivar](https://git.txmn.tk/tuxmain/cultivar): Jeu de programmation d'IA utilisant un exécuteur WASM
|
||||||
|
|
||||||
## Services {#services}
|
## Services {#services}
|
||||||
|
|
||||||
|
@ -95,7 +95,12 @@ insert_anchor_links = "left"
|
||||||
|
|
||||||
## Les camarades {#camarades}
|
## Les camarades {#camarades}
|
||||||
|
|
||||||
* [Librezo](https://librezo.com) aide les pros à se libérer des GAFAM en installant chez vous votre infrastructure informatique.
|
<div class="service_boxes">
|
||||||
|
{{ service_box(href="https://axiom-team.fr", title="Axiom-Team", img="/img/axiom-light.svg", img_alt="Logo Axiom-Team") }}
|
||||||
|
{{ service_box(href="https://librezo.fr", title="Librezo", img="/img/librezo-color-light.png", img_alt="Logo Librezo") }}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
[Librezo](https://librezo.com) aide les pros à se libérer des GAFAM en installant chez vous votre infrastructure informatique.
|
||||||
|
|
||||||
## Contacts {#contacts}
|
## Contacts {#contacts}
|
||||||
|
|
||||||
|
|
|
@ -64,8 +64,8 @@ insert_anchor_links = "left"
|
||||||
|
|
||||||
* [Modular articulated arm CNC, 3D-printed, controled by Arduino](https://framagit.org/ZettaScript/cnc-arm)
|
* [Modular articulated arm CNC, 3D-printed, controled by Arduino](https://framagit.org/ZettaScript/cnc-arm)
|
||||||
* [LASER thermal printer with Arduino](https://framagit.org/ZettaScript/laserprinter) (for printing on paper without consuming ink)
|
* [LASER thermal printer with Arduino](https://framagit.org/ZettaScript/laserprinter) (for printing on paper without consuming ink)
|
||||||
* Super-modular visioconference/stream/live system in Rust
|
* [Rust webserver for embeddable comments](https://git.txmn.tk/tuxmain/webcomment/)
|
||||||
* Audio to MIDI converter
|
* [Cultivar](https://git.txmn.tk/tuxmain/cultivar): AI-programming game engine using a WASM executor
|
||||||
|
|
||||||
## Services {#services}
|
## Services {#services}
|
||||||
|
|
||||||
|
@ -95,7 +95,12 @@ insert_anchor_links = "left"
|
||||||
|
|
||||||
## The camarades {#camarades}
|
## The camarades {#camarades}
|
||||||
|
|
||||||
* [Librezo](https://librezo.com) helps the professionals to liberate themselves from the GAFAM by installing your own computing services.
|
<div class="service_boxes">
|
||||||
|
{{ service_box(href="https://axiom-team.fr", title="Axiom-Team", img="/img/axiom-light.svg", img_alt="Logo Axiom-Team") }}
|
||||||
|
{{ service_box(href="https://librezo.fr", title="Librezo", img="/img/librezo-color-light.png", img_alt="Logo Librezo") }}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
[Librezo](https://librezo.fr) helps the professionals to liberate themselves from the GAFAM by installing your own computing services.
|
||||||
|
|
||||||
## Contacts {#contacts}
|
## Contacts {#contacts}
|
||||||
|
|
||||||
|
|
|
@ -14,13 +14,13 @@ This article is about JavaScript for web browsers, not NodeJS or TypeScript.
|
||||||
|
|
||||||
## TL; DR
|
## TL; DR
|
||||||
|
|
||||||
JavaScript combines all the problems of both high and low level languages.
|
JavaScript combines most of the problems of both high and low level languages.
|
||||||
|
|
||||||
## Lack of features
|
## Lack of features
|
||||||
|
|
||||||
JavaScript is obviously not made for being used in webpages.
|
JavaScript is obviously not made for being used in webpages.
|
||||||
|
|
||||||
* need jQuery
|
* jQuery is needed for manipulating DOM or network in a convenient way.
|
||||||
* no native HTML escaping function
|
* no native HTML escaping function
|
||||||
* no native basic templating system (need `String.replaceAll("{{foo}}", foo)`)
|
* 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 easy-to-use bytes array (like `Bytes` in Python or `Vec<u8>` in Rust), but many different bytes arrays with weird interfaces
|
||||||
|
@ -28,6 +28,8 @@ JavaScript is obviously not made for being used in webpages.
|
||||||
* no native date/time string formatting
|
* no native date/time string formatting
|
||||||
* When defining an anonymous function (such as a callback) you can't reliably move variables to it.
|
* When defining an anonymous function (such as a callback) you can't reliably move variables to it.
|
||||||
|
|
||||||
|
Having a decent standard library would reduce the use of weird hacks hence the number of bugs, and the use of libraries hence the traffic and webpage size and loading time.
|
||||||
|
|
||||||
## What the fuck
|
## What the fuck
|
||||||
|
|
||||||
JavaScript doesn't respect anything.
|
JavaScript doesn't respect anything.
|
||||||
|
@ -35,7 +37,6 @@ JavaScript doesn't respect anything.
|
||||||
* You never know whether you're copying or borrowing (a table or an object), and how deeply.
|
* You never know whether you're copying or borrowing (a table or an object), and how deeply.
|
||||||
* Python suffers the same problem.
|
* Python suffers the same problem.
|
||||||
* Time is expressed in milliseconds, while the convention is seconds everywhere else.
|
* Time is expressed in milliseconds, while the convention is seconds everywhere else.
|
||||||
* `"1" == true && "2" != true && "2" != false` is true
|
|
||||||
* ```js
|
* ```js
|
||||||
if("2" == true)
|
if("2" == true)
|
||||||
console.log("I am not executed.");
|
console.log("I am not executed.");
|
||||||
|
@ -44,7 +45,8 @@ JavaScript doesn't respect anything.
|
||||||
```
|
```
|
||||||
* Hence `==`, `===` and `if` have three distinct strictness levels.
|
* Hence `==`, `===` and `if` have three distinct strictness levels.
|
||||||
* `&&` is not commutative: `(true && "2") === "2" && ("2" && true) === true` is true
|
* `&&` is not commutative: `(true && "2") === "2" && ("2" && true) === true` is true
|
||||||
* Operators are inconsistent: `"1"+1 === "11" && "1"*2 === 2` are true
|
* 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
|
* ```js
|
||||||
var n = "1";
|
var n = "1";
|
||||||
n += 1;
|
n += 1;
|
||||||
|
@ -63,3 +65,11 @@ JavaScript doesn't respect anything.
|
||||||
console.log(foo.length); // 0
|
console.log(foo.length); // 0
|
||||||
```
|
```
|
||||||
* `document.getElementsByClassName` does not return an array: its return type supports indexing but not for/in loops.
|
* `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).
|
||||||
|
|
|
@ -10,4 +10,4 @@ h30x: https://git.42l.fr/HugoTrentesaux/toucan
|
||||||
/* SITE */
|
/* SITE */
|
||||||
Language: English, French, Esperanto, Spanish
|
Language: English, French, Esperanto, Spanish
|
||||||
Components: katex
|
Components: katex
|
||||||
Software: Zola, VSCodium, Gitea, webhookd, Apache
|
Software: Zola, VSCodium, Forgejo, webhookd, Apache
|
||||||
|
|
1014
static/img/axiom-light.svg
Normal file
1014
static/img/axiom-light.svg
Normal file
File diff suppressed because it is too large
Load diff
After Width: | Height: | Size: 100 KiB |
BIN
static/img/librezo-color-dark.png
Normal file
BIN
static/img/librezo-color-dark.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 35 KiB |
BIN
static/img/librezo-color-light.png
Normal file
BIN
static/img/librezo-color-light.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 11 KiB |
Loading…
Reference in a new issue