Bienvenue sur Estérel-Tech, un site dédié aux gnous et aux pingouins !
Estérel-Tech devient 'flexible'.
Le 23 octobre 2022.
Le site Estérel-Tech fait peau neuve et devient 'flexible' afin de s'adapter à tous les écrans. La technologie employée est le module 'FlexBox' du W3C.
Le site est donc en phase de transition et de test. La majorité des anciens articles et vidéos créés après 2017 ont été préservés. Les contenus et le code ne concerneront que le logiciel libre.
FastCGI de 1996 à aujourd'hui.
Le 15 octobre 2022.
FastCGI est une interface entre les serveurs Web et les applications qui regroupe certaines des caractéristiques de performance des modules de serveur Web natif avec l'indépendance du serveur Web de l'interface de programmation CGI (Common Gateway Interface).
Créée en 1996 pour gérer les applications dynamiques des applications du World Wide Web (souvent abrégé en Web), la Common Gateway Interface permet l’exécution d'un nouveau processus à chaque requête, permettant ainsi la génération dynamique des pages.
Dans le cas de CGI, chaque requête lance une nouvelle instance de CGI, qui appellera le programme à exécuter.
Le binaire cgi recrée à chaque appel le contexte de l'environnement d'exécution et ne permet pas de limiter le nombre de processus simultanés.
Le nombre de processus simultanés sera donc dépendant du nombre de processus simultanés du serveur web.
Avec FastCGI, les applications générant les pages dynamiques peuvent se situer sur un ou des serveur(s) différent(s) du ou des serveur(s) hébergeant le service HTTP.
Une variable est introduite permettant de déterminer le nombre minimum et maximum de processus CGI à exécuter, indépendamment du nombre de processus HTTP maximum.
Hélas certaines distribution Linux ont fait le choix de ne plus fournir le code ou les binaires de FastCGI, alors que ses performances sont excellentes.
Une grande distribution a continué à fournir et faire évoluer FastCGI, il s'agit d'openSUSE et c'est une des raisons pour lesquelles je l'utilise sur mes postes de travail.
Un complément d'article plus conséquent ainsi qu'une vidéo seront prochainement disponibles.
La mascotte du site : "Hacker".
Le 24 septembre 2021.
La mascotte du site Estérel-Tech est un petit chien Labrador de trois mois et demi, adopté à la SPA il y a quelques jours dont le nom est "Hacker".
Il a les dents pointues comme des aiguilles et il adore la programmation en langage C sous Linux; il a failli écraser la barre espace de mon clavier en y posant une patte !
Le matin, il aime les balades en forêt avec son maître, sans laisse, car il aime trop la liberté !
Dans un autre domaine, cet article de "Developpez.com" apporte une bonne nouvelle en ce qui concerne GNU/Linux qui est de plus en plus utilisé en tant que système d'exploitation de Bureau.
Une grande proportion des ordinateurs Lenovo dont des "ThinkPad" sont maintenant certifiés Linux. Un prochain article expliquera l'intérêt d'installer une distribution Linux sur un ordinateur vieux de plusieurs années.
D'excellents ordinateurs sont aujourd'hui vendus avec Linux installé, c'est le cas des machines proposées par Tuxedo Computers en Allemagne dont j'ai un ordinateur portable "InfinityBook Pro" avec un processeur quadri-cœurs et un superbe écran mat de 14 pouces IPS affichant 1920x1080 pixels idéal pour les déplacements, la programmation et les machines virtuelles.
Debian 11 "Bullseye"
Le 22 août 2021.
La nouvelle version 11 du système d'exploitation Debian GNU/Linux est sortie avec le nom de code "Bullseye". Pour obtenir de plus amples informations ou pour la télécharger, rendez-vous à cette page : https://www.debian.org/.
Le serveur Estérel-Tech tourne donc désormais sur le système d'exploitation Debian GNU/Linux 11 "Bullseye".
Voici les nouvelles versions du noyau, de logiciels et bibliothèques fournis avec Debian 11 utilisés ici, entre autres :
- Noyau Linux : Série 5.10
- Serveur HTTP Apache 2.4.48
- Collection d'outils de compilation GNU GCC 10.2
- Outils de contruction et installation de logiciels (autotools) : autoconf 2.69 et automake 1.16.3
- Le vénérable éditeur de texte (code) Vim 8.2
- Outils et bibliothèques pour la communication sécurisée : OpenSSH 8.4p1
- GnuPG 2.2.20
Pour Debian 11, le nom retenu, "Bullseye", est celui du cheval du personnage nommé Woody depuis le film Toy Story 2.
Code sur Gitee
Le 29 mai 2021
L'application MenuCat et des modules de code en langage C ont leur répertoire 'git' sur la plateforme Chinoise Gitee !
Gitee est une plateforme collaborative de dépôts de code et d'applications où est hébergé, entre autres, le système d'exploitation pour téléphones mobiles de Huawei 'HarmonyOS', concurrent d'Android et iOS.
D'autres applicatifs en développement seront bientôt disponibles sur la plateforme Gitee.
Poème d'un ami disparu
Le 28 février 2021
Je n'aime pas notre vie d'aujourd'hui Je n'ai jamais aimé cette vie d'aujourd'hui Où tout est par malheur profit, tracas, ennui, Je n'ai jamais aimé cette vie d'artifice Où le plus pur amour n'a plus son bénéfice Dirigé lui aussi par la sévère loi Qui en tous points est celle du mieux pourvu que toi. Le désir de richesses, aux autres est supérieur Ainsi surpassant tout, il détruit le bonheur C'est pourquoi de nos jours les unions sont si frêles; Cet appât tout puissant, est source de querelles Et entraîne avec lui, dans son sillon impur Les pires tromperies, et de mauvais augures. Oui, ainsi va la vie, l'homme instrument du vice, Ne se sent pas tomber, dans ce grand précipice, Ce piège que lui-même, a posé sur sa route. Par ce qu'il découvrit, étant grisé, sans doute, Il ne sut se servir de ce qu'il sut créer, Et tenté par le mal, il s'y laissa sombrer. Yannick Percherancier Angers, Février-Juin 1966
Xfce 4.14
Le 12 août 2019
Les vrais Gnous ne dératisent pas !
La sortie de l'environnement de Bureau Xfce en version 4.14 vient d'être annoncée ce jour !
Avec le portage de l'interface graphique des applications et des composants / greffons en GTK 3 les principaux avantages et nouveautés de cette version tant attendue sont, entre autres :
- meilleure gestion du regroupement des fenêtres dans le panneau xfce4-panel
- le gestionnaire de fichiers 'Thunar' passe en version 1.8 avec une meilleure navigation par le clavier et une barre de chemins de navigation refaite
- le gestionnaire de fenêtres 'xfwm4' bénéficie de VSync qui élimine le 'tremblement' lors du déplacement
- le dialogue 'Affichage' permet de sauvegarder une configuration multi-affichages
- meilleur affichage par le gestionnaire d'alimentation lié à UPower de la charge de la batterie
Il y a, bien sûr, de nombreuses autres avancées dans cette nouvelle version. Pour voir dans le détail l'évolution des composants de Xfce en version 4.14, rendez-vous à la page de l'annonce https://www.xfce.org/about/news/?post=1565568000.
J'ai, pour ma part, utilisé les versions intermédiaires (4.13.X) depuis plusieurs mois ainsi que la version 4.14 dès ce matin et j'ai pu noter la facilité de personnalisation de cet environnement de bureau avec les thèmes (sélecteurs CSS) de GTK 3 et les nombreuses corrections appliquées dans le temps par rapport à la version précédente. Légèreté de l'empreinte mémoire, facilité d'utilisation au quotidien et productivité pour le Gnou programmeur sont les grandes qualités de Xfce !
En conclusion, le Gnou bien avisé, à la recherche d'un environnement de bureau léger et très personnalisable pour son poste de travail Linux, n'a pas du tout l'intention de dératiser son système, bien au contraire, et cette nouvelle version 4.14 de l'environnement de bureau Xfce, tant attendue, est la bienvenue.
Geany et DevHelp
Le 5 août 2019
Geany
Geany, créé en 2005, est un éditeur de texte (pour ne pas dire de code) avancé de type environnement de développement intégré léger en mode graphique. Son éditeur de code est basé sur Scintilla. Parmi ses principales qualités, citons :
- coloration syntaxique (personnalisable) et autocomplétion (personnalisable)
- multi-langages et multi-plateformes (Linux, MacOS ou Windows), gestion de projets et liste de symboles
- nombreux greffons / modules d'extension, pliage de code et extraits de code, émulateur de terminal intégré
Quelques raccourcis clavier pratiques :
- F1 : aide, F2 : basculer vers l'éditeur - F4 : basculer vers le Terminal intégré, F5 : exécuter
- Maj+F9 : construire - Maj+F4 : afficher/cacher la barre latérale
Page de Geany : https://www.geany.org
DevHelp
Devhelp, qui existe depuis 2001, est un navigateur de documentation qui intègre automatiquement les documentations générées par l'outil gtk-doc. DevHelp s'avère très efficace dans les recherches et l'apprentissage des structures et fonctionnalités des interfaces de programmation d'application comme, entre autres, GLib, GObject, GTK, GDK, GIO, ATK, Cairo et autres Pango et décrit de façon exhaustive les 'Widgets' GTK (Gimp ToolKit).
L'interface de DevHelp utilise des onglets, ce qui permet d'effectuer plusieurs recherches simultanées. Il est bien sûr possible d'utiliser son navigateur internet pour visualiser les fichiers d'aide au format HTML en pointant sur les chemins des fichiers *.doc, comme par exemple, pour GtK 3 : "file:///usr/share/doc/libgtk-3-doc/gtk3/index.html" mais DevHelp a l'avantage de regrouper toutes les documentations au format gtk-doc installées sur le système dans sa barre latérale gauche et les rend donc disponibles très facilement.
Page de DevHelp : https://wiki.gnome.org/Apps/Devhelp
Avec ces deux outils, même un petit gnou programmeur peut apprendre beaucoup très vite pour construire des programmes robustes.
Debian 10 "Buster"
Le 6 juillet 2019
La nouvelle version 10 du système d'exploitation Debian GNU/Linux baptisée "Buster" vient de sortir ce jour. Pour obtenir de plus amples informations ou pour la télécharger, rendez-vous à cette page : https://www.debian.org/.
Le serveur Estérel-Tech tourne donc désormais sur Debian GNU/Linux 10 "Buster" *. Voici les nouvelles versions de logiciels et bibliothèques fournies avec cette version 10 de Debian utilisés ici, entre autres :
- Noyau Linux : Série 4.19
- Serveur HTTP Apache 2.4.38
- Base de données : LMDB 0.9.14.1
- Collection d'outils de compilation GNU GCC 8.3.0.1
- Outils de contruction et installation de logiciels (autotools) : autoconf 2.69-11 et automake 1.16.1
- Langage C et extensions GNU : Bibliothèque C GNU 2.28
- Le vénérable éditeur de texte (code) Vim 8.1
- Outils et bibliothèques pour la communication sécurisée : OpenSSH 7.9p1
- Règles de pare-feu : nftables remplace iptables
- Pare-feu simplifié en ligne de commande : UFW 0.36.1
Debian et Apache, c'est une stabilité exemplaire et aucun incident durant plus de cinq ans sur ce serveur !
Le chien nommé "Buster" (ou "Rasemotte" en français - sans doute un basset) est un personnage du film d'animation "Toy Story" de 1995.
Nom de code "Linux"
Le 4 avril 2019
« Nom de code : Linux » est un film documentaire de Hannu Puttonen réalisé en 2001. Le film retrace l'histoire des mouvements GNU, Linux, Open Source et du logiciel libre.
Code sur GitLab et FramaGit
Le 4 mai 2019
Plusieurs projets et modules de code sont partagés sur GitLab ainsi que sur le site GitLab de Framasoft, Framagit.
- Tokenizer : Éclatement d'une chaîne en un tableau selon un motif séparateur. Langage C.
- MemBuf : Bloc mémoire de taille variable. Langage C.
- PtrArr : Tableau dynamique de pointeurs. Langage C.
- MenuCat : Menu d'applications par catégories pour système Linux. Langage C, interface graphique GTK+ >= 3.20.
Le projet MenuCat est encore en phase de test et sera accessible en mode public dans quelques jours. À l'origine, j'ai créé cette application pour un ordinateur portable ayant pour système d'exploitation la distribution GNU/Linux Debian "testing" avec l'environnement de Bureau OpenBox. Les autres environnements de bureau, comme les plus connus, Xfce, Gnome, Mate, KDE etc. ont leur propre menu d'applications, MenuCat est donc destiné à des environnements de bureau minimalistes et se montre très efficace avec un raccourci clavier. MenuCat est aussi disponible sur le dépôt GitLab Estérel-Tech, sur cette page : MenuCat. D'autres projets seront prochainement proposés sous forme d'applications système ou Web ou de didacticiels, principalement en langage C et utilisant les 'Widgets' GTK+ pour l'interface graphique utilisateur.
LMDB est plus rapide que l'éclair !
Le 4 avril 2019
Le créateur de LMDB, Howard Chu (Symas Corp.), présente en détail (en anglais) Lightning Memory-Mapped Database dans cette vidéo (conférence donnée en 2015).
Modules Apache
Le 20 novembre 2017
Bien que les performances des exécutables FastCGI soient déjà très satisfaisantes j'ai décidé de tester plusieurs modules Apache - générateurs de contenu, tout d'abord en local puis sur des serveurs distants. Les résultats obtenus ont été très convaincants et le site est maintenant servi par ce type de technologie.
FastCGI me permettait de m'affranchir des langages de scripts interprétés car j'ai toujours privilégé le langage C et les modules Apache permettent de se passer de la communication inter-processus, ils sont compilés sous forme de bibliothèques partagées, sont chargés par le serveur et interceptent les requêtes.
Un module Apache générateur de contenu reçoit la requête HTTP du client avec tous les éléments qui la composent, la traite et envoie des données formatées en balisage HTML comme c'est le cas ici entre autres. Au cours du traitement de la requête, le code gère, entre autres, le filtrage des données reçues, les Cookies, les paramètres reçus des requêtes GET ou POST et les sessions HTTP.
Les modules développés avec les interfaces de programmation Apache "APR" (Apache Portable Runtime) et "APU" (Apache Portable Utility) sont donc portables et intègrent même des pilotes pour une gestion unifiée des principaux serveurs de bases de données comme MariaDB/MySQL, SQLite ou PostgreSQL.
Les possibilités sont nombreuses et l'ouverture du code du vénérable serveur HTTP Apache (1995) permet à qui s'en donne la peine (une bonne connaissance du protocole HTTP et du langage C sont un préalable) de créer des applications Web adaptées à tous les cas de figure.
La documentation en ligne ainsi que quelques livres sur le sujet dont l'excellent ouvrage de Nick Kew "The Apache Modules Book: Application Development with Apache" permettent d'apprendre à créer des modules et de profiter ainsi de leurs performances hors norme.
Une pieuvre qui aime bien les gnous.
Le 17 juin 2017
Je viens d'effectuer la mise à niveau du système d'exploitation libre du serveur qui héberge Estérel-Tech vers Debian GNU/Linux 9 "Stretch".
La pieuvre nommée "Stretch" est un personnage du film d'animation "Toy Story 3" de 2010.
Voici les principaux outils importants pour mon serveur fournis avec Debian 9 :
- Noyau Linux 4.9.30-2
- systemd 232 : initialisation, services et, entre autres, journalisation
- Outils de compilation : gcc (GNU Compiler Collection) 6.3 : exécutable à position indépendante (PIE)
- libc6 2.24-12 : bibliothèques partagées C et mathématique
- Serveur HTTP : Apache 2.4.25. Les pages seront donc servies avec le protocole HTTP 2.0
- MariaDB 10.1 qui remplace MySQL
- PostgreSQL 9.6
- Firebird 3.0
- SQLite 3.16