Oiseaux
Bienvenue sur le site Estérel-Tech !
Samedi 21 septembre 2019

ACCUEIL

Xfce 4.14 : Les vrais Gnous ne dératisent pas leur système !

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.

Le thème Gtk3 que j'ai créé et adapté pour Xfce 4.14 a été mis à jour : ETechGreyPanther.

Geany et DevHelp : deux outils très appréciés des Gnous

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 et construire des programmes robustes.

Debian 10 : "Un système qui a du chien" dit le gnou !

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 :

  • 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
  • Noyau Linux : Série 4.19
  • 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

« 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.

Plusieurs personnalités de l'informatique expliquent l'importance du logiciel libre et commentent la naissance et l'histoire de GNU/Linux, parmi lesquelles :

  • Richard Stallman
  • Linus Torvalds
  • Alan Cox
  • Ari Lemmke
  • Miguel de Icaza
  • Theodore Ts'o
  • Eric S. Raymond
  • Jon Hall

Le film s'achève par cette assertion : « Ce serait peut-être l'une des plus grandes opportunités manquées de notre époque si le logiciel libre ne libérait rien d'autre que du code. »

Des projets et du code 'Estérel-Tech' sur GitLab et Framagit

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 !

Parmi les technologies que j'utilise il y a une base de données embarquée transactionnelle de stockage clé-valeur (dite no-sql), héritière de Berkeley DB, que je considère (et je ne suis pas le seul) comme étant une des plus performantes : LMDB (Lightning Memory-Mapped Database).

Certains affirment même qu'elle est la plus rapide du monde !

C'est bien possible car ses performances sont surprenantes. Ce qui d'emblée m'a beaucoup plu est son interface de programmation en langage C qui est plus dépouillée et accessible que celle de Berkeley DB (que j'avais découvert en 2001 et dont LMDB s'inspire) comme le montre la documentation en ligne.

LMDB est la base de données idéale pour des sites internet hautes performances comme les modules Apache ou les applications FastCGI. La liaison du code du site ou de l'application à la bibliothèque partagée permet de se passer de serveurs comme MySQL/MariaDB, Postgresql, Firebird ou autres, consommateurs de ressources processeur ou de mémoire vive et c'est aussi une expérience fort intéressante pour tout programmeur qui souhaite s'affranchir du SQL obligatoire dans les serveurs de données précités. Berkeley DB étant passée dans le giron d'Oracle après son acquisition de Sleepycat Software en 2006, la licence originale (identique à GNU GPL) a été modifiée, LMDB, sa moderne et libre héritière, lui succède donc avantageusement : plus moderne, plus performante et libre. Son créateur, Howard Chu (Symas Corp.), présente en détail (en anglais) Lightning Memory-Mapped Database dans la vidéo ci-dessus (conférence donnée en 2015).

Estérel-Tech modifie son nom de domaine principal (.com vers .fr)

Depuis ce jour www.estereltech.com est redirigé vers www.estereltech.fr.

J'ai décidé de regrouper les services internet dont j'ai besoin : serveurs et noms de domaines dans une unique entreprise qui me donne entière satisfaction depuis plusieurs années, la société EvxOnline.

Modules Apache

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.

Mon serveur est une pieuvre violette qui aime bien les gnous

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

Décision prise pour les développements futurs

Le développement d'applications pour le système d'exploitation Microsoft Windows est abandonné.

Je privilégie dorénavant le logiciel libre et les systèmes GNU/Linux; j'utilise Debian pour mon serveur internet ainsi que pour mes postes de travail fixes ou portables. Les outils de développement que j'utilise sont indiqués à la page "Informations".

Je me suis intéressé aux distributions Linux il y a maintenant plus de douze ans et ai commencé à prendre mes distances avec Windows à la sortie de Windows 8 en 2012. Je travaille sous Linux depuis bientôt cinq ans et regrette de ne pas avoir pris la décision plus tôt ! J'y ai trouvé tous les outils dont j'avais besoin et le code ouvert permet d'avancer très vite.

Je développerai donc des applications système et FastCGI sous Linux en utilisant les technologies et langages que je préfère dont le langage C ainsi que C++ pour quelques projets spécifiques. Pour les applications à interface graphique j'utilise dès à présent l'ensemble de bibliothèques logicielles GTK+.

J'ai commencé, modestement, à contribuer aux tests de paquets logiciels sous Linux Debian, comme dernièrement avec le paquet du serveur de données Firebird 3.01.

Les quelques applications en téléchargement sur "Estérel-Tech" ne seront donc pas mises à jour et le projet Wonderkeys++ qui était prometteur et presque finalisé est, de même et à regret, abandonné.


W3C HTML 5
Mise à jour : 5 août 2019
W3C CSS