hscc

Soure code of <https://hugo.soucy.cc>.
git clone git://soucy.cc/hscc.git
Log | Files | Refs

unix-web-ide.md (4054B)


      1 # Unix comme IDE Web, ce que l'on doit savoir
      2 
      3 (Voir <https://shellhaters.org/>.)
      4 (Voir <https://missing.csail.mit.edu/2020/shell-tools/>)
      5 (Voir <https://github.com/dbohdan/structured-text-tools>
      6 
      7 (faire un tableau avec des exemples pratiques?)
      8 
      9 Les outils que l'on trouve sur GNU/Linux et BSD et qui pourraient vous
     10 rendre d'exellent services pour le développement web.
     11 
     12 J'ose même prétendre que c'est une approche qui devrait être enseigner
     13 aux apprentis développeurs, c'est-à-dire apprendre à résoudre des
     14 problèmes avec l'interface de programmation qui se trouve par défaut
     15 sur leur machine [Unix].
     16 
     17 Le but est de montrer qu'il exsiste des alternatives aux scripts NPM, pas de les remplacer ...
     18 
     19 * Se réaproprier le Web et son ordinateur.
     20 * Ajouter de la diversité dans les pratiques.
     21 * Limiter la dette technique.
     22 * Créer des outils selon nos besoins.
     23 * Ceux qui sont natifs ou qui se retrouvent par défaut la plupart du
     24   temps.
     25 * Ou ceux que l'on peut installer en complément.
     26 * Avoir une approche plus sobre même si imparfaite.
     27 * Une approche moins industrielle.
     28 
     29 Et `Make` pour regrouper le tout.
     30 
     31 ## Avantages
     32 
     33 * Aquérir une connaissance fine de son système qui vont servir au-delà
     34   du développement web, ce qui n'est pas nécessairement le cas avec
     35   des outils NodeJS.
     36 * Permet de s'adapter à différent besoin.
     37 * Simplifier nos pratiques et alléger la dette technique.
     38 * Limite la pile des dépendances.
     39 * Avoir des pratiques qui pérennes dans le temps et rétrocompatibles.
     40 * Documentation exhautives.
     41 * La plupart sont des technologies éprouvées.
     42 * Facilite l'intégration de plusieurs langages de scripts selon les besoins ou les compétences: bash (shell script), python, perl, lua, etc.
     43 
     44 ## Inconvénients
     45 
     46 * Ne peut pas être facilement appliquer chez des développeurs sous
     47   Windows.
     48 * Certains de ces outils ne sont pas fait spécifiquement pour le web et ne répondent pas à tous les besoins.
     49 
     50 ## top
     51 
     52 pas besoin de htop ou autres seulement utiliser grep
     53 
     54 `top | grep firefox`
     55 
     56 ## Ctrl-z, jobs -l, fg
     57 
     58 ...
     59 
     60 ## Serveur Web sur demande
     61 
     62 * Avec Python
     63 * Avec PHP
     64 * Avec Perl (https://metacpan.org/pod/HTTP::Daemon)
     65 * Autres?
     66 
     67 ## find
     68 
     69 Trouver récurcivement les fichiers PNG:
     70 
     71 `find . -name *.png`
     72 
     73 ## grep, mais aussi ag et ripgrep
     74 
     75 Chercher les fichiers qui contiennent des H2:
     76 
     77 `grep -R "<h2" .`
     78 `grep -rl "mon-nom-de-class"`
     79 
     80 ## entr
     81 
     82 Surveiller les changements avec entr et find
     83 
     84 
     85 ## git et diff
     86 
     87 ...
     88 
     89 ## xdg-*
     90 
     91 ...
     92 
     93 ## ssh (scp, sftp, sshfs)
     94 
     95 ...
     96 
     97 ## rsync (openrsync)
     98 
     99 déployer avec rsync ou git
    100 
    101 
    102 ## stdin, stdout, stderr, |, <, <<, >, >>
    103 
    104 * entrer
    105 * sortir
    106 * récupérer (pipe)
    107 * rediriger (><)
    108 * etc
    109 
    110 ...
    111 
    112 ## tmux
    113 
    114 Travaille sur plusieurs terminal en même temps
    115 
    116 ## history et Ctrl+r
    117 
    118 * Éviter la répétion
    119 * Complément à notre mémoire
    120 
    121 ## .local/bin
    122 
    123 ...
    124 
    125 ## imagemagick
    126 
    127 * Manipuler des images
    128 * Décliner des formats d'image responsive (srcset, sizes)
    129 * Convertir des formats
    130 * Etc
    131 
    132 ## Inkscape et Scour
    133 
    134 * Manipuler et compresser du SVG
    135 * Est-ce possible de convertir des svg en symbols, pour ensuite les regrouper en un SVG de type Sprite?
    136 
    137 ## pngquant, jpegtran, cwebp, etc.
    138 
    139 Compresser les image
    140 
    141 ## woff2
    142 
    143 Pour convertir ttf ou otf en woff2
    144 
    145 ## JSMin, JSLint (Merci Douglas)
    146 
    147 Compresser et tester le javascript
    148 
    149 ## vi, nano (mg, emacs)
    150 
    151 ## xdotool
    152 
    153 Pour rafraichir automatiquement votre navigateur.
    154 
    155 Par exemple:
    156 
    157 `xdotool search --onlyvisible --class Firefox key F5`
    158 
    159 Sinon voir <https://soucy.cc/git/anything-scripts/file/reload-browser.html>.
    160 
    161 ## shell scripts (shellcheck)
    162 
    163 Pour regrouper les commandes et intervenir sur les fichiers.
    164 
    165 ## date
    166 
    167 ## lynx, w3m et autres navigateurs non gui
    168 
    169 * Aide à structurer le contenu de façon sémantique
    170 * Aide à l'accessibilité web
    171 
    172 ## HTML Tidy
    173 
    174 * Tester
    175 * Convertir
    176 * Lint
    177 
    178 ## Make
    179 
    180 ... gestionnaire de tâches?
    181 
    182 ## ffmpeg
    183 
    184 La vidéo
    185 
    186 ## jq
    187 
    188 Manip de ficher JSON.
    189 
    190 ## Miller (mlr)
    191 
    192 Manip de CSV ...
    193 
    194 Un design system à partir de CSV au lieu de JSON ?
    195 
    196 ---
    197 
    198 Sources et références
    199 
    200 * https://blog.sanctum.geek.nz/series/unix-as-ide/