badawok 7 – yaml et tests unitaires

L’inspiration m’est revenu voulant éviter Mecaclac 9 qui me sort par tous les trous. C’est ainsi que la relance de badawok 7, non terminé, m’a pris.

Je me suis mis en tête de mettre en application mes récentes recherches au sujet de PHPUnit. Ayant déjà pratiqué simpleTest, c’était là l’occasion de tester autre chose. J’aime assez bien, même si NetBeans n’a pas l’air de le reconnaitre, ce qui n’aide pas.

J’ai attaqué gentiment avec les classes t et st pour commencer en douceur, mais cela a déjà mis en évidence certaines petite lacunes de structure ou de contrôle. But atteint donc, et ce n’est là que le début, je vise une couverture maximale.

Sur mon portable, le pear yaml n’était pas installé du coup je me suis à nouveau confronté à cette non inclusion du yaml dans PHP. Chance pour moi, Fabien Potencier (Symfony) a mis sur GitHub la partie de Symfony concernant le yaml, version 1.2, mieux que ce que ne propose les libraires en ligne ou même le pear.

Il m’a suffit de quelques adaptations (pas d’utilisation de namespace, tous dans un seul répertoire), cf logger, et le tour était joué.

Ceci dit je me suis donc intéressé à l’idée namespace pour badawok, mais là, manquant de compréhention, je vais parfaire mes recherches afin de décider si oui ou non cela peut aller avec badawok. ainsi que la migration des projets clefs comme comitards.be, terragusto.be ou racougree.be v2 à venir.

Tout cela m’a donné une bouffée d’air frais. Corriger, refondre, mettre en forme le code, adapter, simplifier, factoriser … que du bonheur !

L’avenir de badawok se dessine plus clairement maintenant. Je pense ajouter une installation, retirer ses dépendances vhost et .urls, ajouter un .htaccess longtemps mis de côté (.urls), ajouter dès lors un panneau d’administration de son badawok, donc aussi gérer les utilisateurs directement par badawok, même si cela semble se rapprocher du CMS, ce que la fusion BaB donnera probablement.

En parlant de fusion BaB, cela s’éclaircit également, un design de menu contextuel a été pensé, changeant de l’habitude mais qui pourrait être bien sympa, plus graphique ainsi que l’idée générale du comment cette édition contextuelle va se glisser, ce qu’elle gèrera, ce que cela va apporter, ses possibilités de développement pur (PHP, JS, CSS), et d’autres idées encore, comme la gestion AJAX du contenu vu que l’on gère ici des contenus dans un corps. Accompagné d’un require et d’un class.js le tour serait joué.

Un site badawok.net va arriver et ainsi pouvoir mettre en avant le redmine, le produit, une démo et un téléchargement ! Ceci dit cela se voudra être pour la sortie de la v7, on a encore le temps et il y a d’autres priorités malheureusement.

Comitards 2 – lancement

Comitards 2 a été lancé le 17 mars vers 22h-23h après 27h de boulot en 2 jours pour finir, débugger et migrer de la 1 à la 2.

Le samedi alors que nous annoncions déjà depuis un moment la sortie du site en date du 18 (St Torè) le premier pique de visite ‘pointe’ le bout de son nez avec +1500 vues et 900 le lendemain, puis plus rien pendant 3 jours… FAUX le script de stats n’avait pas été réactivé dans la conf…

Le pique du jeudi (après le St Torè) nous a laissé un indice, soit +1200 vues puis +1500 à nouveau le lendemain.

En même temps la 2.0.4 est sortie corrigeant les quelques petits bugs urgents.

C’est le samedi 6, quand nous avons lancé la newsletter, après avoir ajouté quelques fonctionnalités de modérations et du contenu, que le gros pique a explosé les stats avec +4000 vues pendant 2 jours (pour un nombre de visiteurs unique grandissant).

Et va savoir pourquoi mais lundi 15 bam repique de +2400 vues, sans raison apparente, ah ben si, les mails qui s’ouvrent après coup et boom seconde vague ! Le reste du temps, moyenne agréable de quelques centaines de pages vue et dizaines de visiteurs uniques, pour un site occasionnel… 🙂

Mais comitards 2, il change quoi ?

En gros la base de données a été refondue, et on a coupé 1/3 des tables refondues en un système unifié, plus flexible.

Le design a lui aussi été complètement réécrit, ainsi que les interfaces et la manière d’interagir.

Le contenu a été complété encore et encore et de nouveaux types de contenus ont été introduit comme les autocollants, les guerres, …

Un long travail, jamais fini, mais qui en cet état représente une belle évolution de sa version précédente.

Cela n’a pas été facile mais pour ceux qui nous ont envoyé (à Sophie et moi) des mails de contribution et même des remerciements, ça me fait plaisir de l’avoir fait. Aux autres qui râlent sans prendre la mesure, même si on traite leur demande, on a juste envie des les envoyer au diable avec leçons de politesse, de comprendre qu’il ne paye pas et que quelqu’un derrière fait nuit blanche pour eux…

Le lancement ne c’est pas fait que sur internet.

Effectivement nous avons pris part à la St Torè (Liège) et distribué des centaines de flyers et autocollants de penne en guise de campagne promotionnelle. Merci à ceux qui nous ont aidé !

Là tout de suite Comitards 2.0.4 c’est 1928 inscrits, 267 groupes folkloriques pour 4 pays et 6 traductions.

Ce n’est pas fini 🙂

724_g

Noyé Joël et Ânesse Molle

Reprise de Comitards (v2), Be a Buzz remanié et j’espère le DVD OQR.

Ça ça serait bien, et si je pouvais tenter une expérience Web 3D (Nahyan) ça serait encore mieux !

Il y a aussi le site ‘maison’ (bihin-vinders.be) qu’il serait bien de construire petit à petit.

Comitards 2.0

On est au w-e de deadline et Comitards v2.0 n’est pas prêt comme il devrait. Il y a eu des imprévus, beaucoup, et des soucis, qui ont été réglés. Cependant, la phase 1 est clôturée.

Il s’agissait de faire passer Comitards sous le nouveau framework badawok 7, toujours en développement. Ce dimanche aura été le rush des derniers tests et débogages et on y est, ce soir, Comitards ronronne.

Il se peut qu’on ai oublié un cas ou l’autre, on est jamais à l’abri, mais le site fonctionne comme il doit, comme il l’a fait jusqu’à présent.

La phase 2 consiste à transformer la base de données vers sa nouvelle formules et faire l’équivalent des fonctionnalités.

Ensuite la phase 3 intègrera les nouveautés et modifications attendues (fonctionnelles), et peut-être un coup de neuf sur le design. Bien sur une mise à jours des dépendances avec upgrade du code est également prévu.

Badawok 7 – c’est parti

L’installation a été adaptée :

– suppression du module home par défaut et ajout dans le wiki une aide pour faire un module
– ajout du fichier vide pages.yml
– ajout du répertoire pour y mettre les pages

Ensuite, le nouveau système de gestion de page prend place tout doucement. Le routeur a été réécrit pour en tenir compte et une fonction d’accès avec utilisation du cache persistant a été ajoutée.

La structure permet d’avoir un nombre non fini de répertoires virtuels ainsi que des arguments !

Le fichiers des pages peut-être édité à la main et des scripts d’édition seront ajoutés plus tard pour faciliter le travail.

La prochaine étape primordiale est d’ajouter le nouveau système de rendu des contenu (cf BaB).

Ainsi le projet Comitards.be v2 pourra débuter et tester Badawok 7 concrètement.

Tout en gardant la structure des urls actuelle, le système devra gérer le contenu et les modules.

À suivre sur le redmine également.

Badawok 7

Badawok 7, anciennement 6.2, est planifié !

Il passe de 6.2 à 7 car il ne sera pas compatible à la 6.0 actuelle, du fait qu’un changement au niveau du cœur (route, aiguillage, …) sera nécessaire, même si on ne change rien au reste.

On va intégrer à Badawok la partie contenu YML de Be a Buzz et le système d’édition (à la fin). Ce qui oblige de revoir la logique de routage qui ne sera plus ‘module/action’ mais ‘page’ contenant des widgets/composants qui utiliseront les ‘modules/actions’, en gros on ajoute une étape en plus pour augmenter les possibilités.

La partie YML utilisera le système de cache pour garder la performance, de même que pour les widgets qui le désireront.

Une généralisation du système d’édition en direct est prévue également, permettant d’éditer des partie uniquement, tel qu’on l’imaginerait pour un blog ou une « bordure » (cf BaB).

Les widgets ou composants, représenteront des parties de code réutilisable tel un système de représentation tabulaire, un album photo ou une simple liste.

Cette version sera bientôt mise en développement et les informations suivront, ainsi que sur le redmine de daaboo 🙂

Badawok 6.0

Badawok, le framework web de daaboo.net continue son évolution et poursuit son développement de la version 6.0.

Il gère désormais les informations de page « par action » au lieu de « par page » avec un effet dégressif à l’infos « par page ».

Badawok a désormais son propre dépôt, simple info technique qui ne change rien mais ça le sort du tronc de développement basique.

La volonté est peut-être de distribuer Badawok sous licence GPL v2 non upgradable, ceci est encore à l’étude.

Les projet Be a Buzz et scummweb ainsi que les site bandbleu et comitards vont progressivement passer sous Badawok dans le courant de l’année.

Un site est à l’étude également, faisant promotion avec exemple et dépôt des modules complémentaires. À voir, rien n’est décidé.

Ceci sans vantardise car même si je suis fier du travail accompli, Badawok reste modeste comparé aux autres framework existant.

Affaire à suivre donc. 🙂

Base web, Framework : Badawok 6.0

Ça y est, la 6ème version refactorisée de ma base web est sortie sous le premier nom de Badawok.

Quelles sont les changements majeurs ?

Le système est Orienté Objet jusqu’à la moelle. Le procédural a été découpé en méthode d’un objet Badawok, ce qui ne change absolument rien au déroulement des opérations, juste la manière.

Le système n’appelle plus un module qui se débrouille mais le nouveau routeur cible directement une méthode de ce module, ce qui découpe de manière plus claire les modules (pages/système).

Les fonctions globales ont étés encapsulée par des objets : traduction, authentification (maintenant inclus d’office), templates réparti entre Badawok et la gestion individuelle des pages.

Certaines parties ont juste été affinée, autant en profiter. Tel que la classe existante de stockage ou la configuration globale.

Badawok bénéficie d’un installateur permettant de l’avoir en externals en versionning. Ainsi on peut le mettre facilement à jour et gérer sois-même la mise à jour des fichiers modifiés sans impacter d’office votre projet. Le but étant qu’on ne touche qu’au coeur de Badawok sans impacter le projet. Sauf si on refactorise pour un mieux et que cela rende incompatible tout projet de version antérieur, normal.

Typiquement l’utilisation reste la même, bien qu’éclaircie et plus facile à maîtriser. Badawok, c’est la base web frameworkée en mieux ! 🙂

La flexibilité et les auto-adaptations ont été améliorées, ce qui correspond mieux à l’idée type que nous désirons suivre, tel que le courant web moderne/à venir.

Dernier changement majeur est bien celui des urls. Le fichier pourra surement devenir un .htaccess standard au lieu de la version propre que nous avions mise au point, cependant une config apache personnelle (vhost) reste nécessaire. Nous restons dans une idée « pour développeur/sysadmin », avoir la main sur l’ensemble de son projet. Ceci impacte directement la manière de faire reconnaître les urls dans un idée multilingue mais augmente la facilité de rajouter ou modifier ces urls. Au lieu de les avoir en dur, elle se calcul par le nouveau routeur qui cherchera inversement le mot clef qui donnera les éléments à contacter automatiquement, avec fallback bien entendu.

Cette version est en cours de debug, finitions. Rien de tel qu’un projet réel pour le mettre à l’épreuve.

Tech aura bientôt une page consacrée au suivi de Badawok. Affaire à suivre 🙂 .

Base web deviendra framework

La base web de daaboo.net qui est actuellement à la version 5.0 va passer à la 5.2 et devenir un framework, modeste mais bien 🙂 !

Pourquoi 5.2 et pas 6.0 si ce changement de type annonce une refactorisation importante ?

La base de cette base web sans nom fait exactement ce qu’elle est censé faire, càd interpréter l’url demandée, fournir les modules et rendre un résultat.

Cependant on en apprend tous les jours et il est bon de se remettre en question. Du coup des revues de mécanismes me semble une bonne chose, sans changer les fonctionnalités. Ainsi il me semble plus approprié de faire une 5.2 (incluant la 5.1 qui n’a pas été déclarée comme tel).

Côté versionnage cette version prendra son indépendance, elle pourra, je l’espère devenir une externals à part entière. Beaucoup plus facile de faire des mises à jours du coeur. Ceci entraînera l’apparition d’un installateur.

Côté concret de ce qui va changer, les actions ne seront plus un gros switch du constructeur mais un revue objet de la méthodologie.

Des détails comme la dépendance yml mieux gérée, une maj des js et de quelques aidant divers. LE tout accompagné d’un petit nettoyage générale.

On pourrait y voir un aboutissement plus mûr de cette base web pour développeur, moins de chipotage interne pour la mise en place et encore plus rapidement dans le concret du projet.

Cette 5.2 sera utilisée pour le site terragusto.be actuellement en préparation 🙂 !