C'est très enrichissant de me replonger dans la programmation C ces derniers temps, et mon objectif principal a été mon petit projet, « csend ». C'est une application de chat peer-to-peer sur laquelle je travaille. L'idée principale est de la faire fonctionner correctement sur différents systèmes, notamment les plateformes POSIX modernes comme Linux et, pour un peu de rétro, sur Mac OS classique.
Retour à la programmation en C
Après avoir terminé les fonctionnalités principales de Willow CMS, j'envisageais de lancer un second projet parallèle. Je bidouillais sur mon Mac SE et me demandais à quoi ressemblerait le développement logiciel dessus. Il y a environ 25 ans, j'ai lancé CodeWarror pour la dernière fois sur un Power Macintosh 7500 et j'ai commencé à jouer au C/C++, et il y a environ 20 ans, depuis ma dernière étude universitaire. J'ai décidé de tenter ma chance en développant une application de chat peer-to-peer. Je commencerai par la faire fonctionner sur Ubuntu, puis sur macOS moderne et, espérons-le, dans un avenir proche, sur System 6, en utilisant l'IDE Think C.
Comprendre le plugin CakePHP Queue et les tâches
Dans cet article, nous verrons comment utiliser le plugin Queue de CakePHP pour gérer et exécuter efficacement les tâches en arrière-plan. Nous explorerons la structure, l'implémentation et les avantages de cette approche, en nous concentrant sur le répertoire `src/Job` et les composants associés de Willow CMS.
Création de « MarkItLikeItsHot » : un wrapper FastAPI pour le moteur de conversion MarkItDown de Microsoft
Cet article détaille le développement d'un microservice Python nommé « MarkItLikeItsHot », conçu pour rationaliser la conversion de contenu en Markdown dans Willow CMS. Ce microservice utilise un wrapper FastAPI autour de la puissante bibliothèque MarkItDown de Microsoft, permettant une conversion transparente des fichiers, des URL et du texte brut en Markdown propre et formaté. Nous explorerons les technologies sous-jacentes, aborderons la structure du code et mettrons en évidence des aspects clés tels que le déploiement, les tests et la configuration de Docker.
Refactorisation du code de la couche modèle dans Willow CMS avec CakePHP Behaviors
Cet article couvre le refactoring du code lié au comportement de l'arbre CakePHP et aux slugs dans Willow CMS. À l'origine, les articles et les balises avaient du code dupliqué pour les opérations d'arborescence. Cela a été refactorisé dans OrderableBehavior, rendant le code réutilisable et testable. De même, la gestion des slugs, auparavant dispersée sur plusieurs emplacements, a été consolidée dans le nouveau SlugBehavior. Ce comportement gère la génération, la validation et l'historique des slugs, simplifiant les classes ArticlesTable et TagsTable tout en ajoutant des fonctionnalités telles que la génération automatique de slugs à partir des titres, les slugs personnalisés et le suivi de l'historique des slugs pour un meilleur référencement. Ce refactoring a considérablement réduit la duplication de code et amélioré la maintenabilité et la testabilité.
Migrations dans CakePHP
Les migrations sont un outil de CakePHP permettant de gérer les modifications du schéma de base de données. Elles permettent de modifier la structure de votre base de données de manière contrôlée par version, ce qui facilite le suivi, le partage et le déploiement des modifications dans différents environnements ou installations de votre application. CakePHP dispose d'outils permettant de générer des instantanés de la structure de votre base de données et des migrations entre elles. Étant donné que les migrations peuvent également exécuter des instructions de langage de requête sur votre base de données, elles peuvent également être utilisées pour modifier les données. Willow CMS a évolué au fil de plusieurs versions depuis sa mise en ligne sur ce site, certaines de ces versions nécessitant des modifications du schéma et des données de la base de données. Dans cet article, je vais vous présenter quelques exemples pratiques de la manière dont j'ai géré cela.