Mes projets

Malacostraca

Malacostraca est une application web destinée à la gestion de contenu personnel. Cela peut inclure entre autre des articles, du microblogging, et d'autres types de contenu.

La principale innovation apportée par Malacostraca est la compatibilité avec le protcole Activity Pub, qui charpente le réseau fédéré connu sous le nom de Fediverse.

Philosophie

Malacostraca se veut respectueuses des philosophies de conception KISS : Keep It Simple, Stupid. et UNIX : Do one thing, but do it well.. Elle repose sur une architecture très simple, bidouillable à souhait, afin de l'adapter au mieux au besoin de l'utilisateur. La configuration se fait via de simples fichiers textes, à la syntaxe basique. Par exemple, pour la configuration des menus :

Accueil:home

Cela signifie "Créer un lien dont le contenu est accueil, redirigeant vers la page "home".

Cela implique quelques sacrifices. Malacostraca ne sera pas aussi complet qu'un bon vieux CMS blotware ni ne vous mâchera le travail qui vous incombe. Malacostraca ainsi ne vous proposera aucune fonctionne pour rédiger votre contenu. Vous devrez vous reposer pour cela sur des logiciels extérieurs, tels qu'un éditeur HTML. Malacostraca ne repassera pas derrière vous pour s'assurer que votre HTML est correct. Pour vous sentir à l'aise dans l'usage du web en général, vous devez apprendre les grandes lignes de ces standards. Et la documentation abonde en ligne.

Malacostraca se veut le plus léger possible, dépourvu des innombrables fonctionnalités inutiles qui caractérise des CMS comme Wordpress ou Joomla, et peu consommateur de ressources systèmes. Cela afin de pouvoir tourner sur des systèmes très minimaux, tel le fameux Raspberry Pi. Malacostraca se veut le plus autonomne possible, minimisant l'emploi de librairies logicielles afin d'en faciliter l'installation et la maintenance.

Malacostraca est centré sur l'individu. Il n'est pas pas prévu pour des organisations ou même pour un usage collectif. Une instance de Malacostraca = une personne. Bien sûr, rien ne vous empêche de contourner cela, ou de créer plusieurs comptes utilisateurs, mais vous ne rentrerez plus dans les cas d'utilisation prévus lors du développement.

L'application doit délivrer du contenu parfaitement lisible par des humains, et des machines. En conséquence, ce contenu doit être sémantique. C'est pourquoi nous essayons d'observer le respect le plus strict des standards du web, en particulier XHTML et HTML5 afin que le contenu puisse être pris en charge par une grande diversité d'applications, d'une part, mais aussi pour qu'il soit accessible à tous, y compris ceux à qui certains sens font défaut et qui doivent se reposer sur des technologies particulières, comme la synthèse vocale.

Aspects techniques

Langage de programmation

Malacostraca est développée en Julia. Un langage performant, polyvalent et innovant, inspiré du Lisp et des langages de scripts tels que le Python. La mémoire est gerée par un ramasse miette, le typage est strict et dynamique, bien qu'il soit possible de fixer les types pour gagner en rapidité de compilation et d'exécution (100 fois plus rapide que Python, quand utilisé correctement !). Julia intègre un paradigme objet un peu particulier, mais très confortable une fois manipulé correctement, se basant fortement sur la composition.

Vous pouvez en apprendre plus sur le site officiel de Julia : Julialang.org.

Gestion des données

Malacostraca n'utilise pour l'instant aucun système de gestion de base de donnée, et se repose le plus possible sur le système de fichier. Cela est peut-être amené à changer, mais nous souhaiterions poursuivre sur cette voie, par soucis de simplicité et de sécurité. Le but de Malacostraca étant de gérer les données d'un seul utilisateur, nous n'avons pas besoin de permettre une très grande scalabilité pour les usages ciblés.

Si le besoin d'un système de gestion de base de donnée se fait sentir, au cours du projet, il est probable que nous ferons le choix de MongoDB, en raison de son orientation documents, qui correspond au but de notre application.

Fonctionnalités

Malacostraca proposera à terme un système de publication de contenu (articles + microblogging), web-semantic ready, au format ActivityStreams, et une pleine prise en charge d'Activity Pub.

Aspects juridiques

Malacostraca est destiné à être un logiciel libre, et son code source, publié et librement accessible. Pour le moment, je le garde bien au chaud en attendant d'avoir une preuve de concept assez etayée et fonctionelle. Je n'ai pas encore décidé quelle licence le logiciel allait adopter, n'y connaissant pas grand chose, je dois me renseigner sur le sujet avant toute décision.