dimanche 14 mai 2017

Installer le package DBIx::Class sur Centos 6

Perl Centos

Afin de construire une image docker pour travailler sur une application Perl devant s'exécuter sur une machine Centos 6, j'ai été confronté à l'impossibilité d'installer le package perl-DBIx-Class du fait d'une dépendance manquante avec le paquet perl-MooseX-Types-JSON.

Certes, il eût été possible d'installer le paquet via cpan, mais une autre contrainte est que la machine Centos n'a pas accès à Internet, donc pas à CPAN. Du coup, j'aurais été obligé de télécharger la distribution à la main - tout à fait faisable - mais également toutes ses dépendances, directes et indirectes.... Et là, j'ai reculé.

Précisons que perl-DBIx-Class nécessite d'activer EPEL, mais que notre paquet fugueur, bien évidemment, n'y figure pas.

A grands coups de recherche sur Internet, j'ai fini par trouver le paquet perl-MooseX-Types-JSON sur http://choonrpms.mirror.choon.net. D'où la résolution suivante:

  1. installer epel
  2. installer les paquets perl-DBI et perl-MooseX-Types dont on sent bien qu'ils seront des dépendances nécessaires
  3. installer le paquet perl-JSON-XS dont on s'aperçoit après une première tentative que perl-MooseX-Types-JSON en a besoin
  4. télécharger le rpm ici
  5. installer notre rpm
  6. installer finalement perl-DBIx-Class

ce qui donne:

 yum install epel-release
 yum install perl-DBI perl-MooseX-Types perl-JSON-XS
 wget http://choonrpms.mirror.choon.net/centos/6/choonrpms/x86_64/perl-MooseX-Types-JSON-0.02-3.choon.centos6.noarch.rpm
 rpm -i perl-MooseX-Types-JSON-0.02-3.choon.centos6.noarch.rpm
 yum install perl-DBIx-Class

Voilà, en espérant que ça vous évitera de perdre autant de temps que moi pour surmonter cet obstacle si tant est que vous ayez besoin de vous plier aux mêmes contraintes que moi.

dimanche 5 mars 2017

Validation d'unicité en création ET modification avec Laravel 5

laravel.png

Laravel est un framework PHP assez sympathique qui permet de réaliser très proprement des applications web. Parmi ses fonctionnalités, on trouve un moteur de validation proposant pleins de règles dont l'unicité d'un attribut d'instance de modèle. Mais s'il fonctionne parfaitement pour la création d'une nouvelle instance de modèle, il provoque une erreur si on veut modifier une instance existante sans modifier l'attribut déclaré comme devant être unique. Voici donc la façon que j'ai trouvée (un peu difficilement d'où ce billet) pour y remédier.

Je précise que je suis loin d'être un expert PHP ou Laravel, donc s'il y a une meilleure façon de faire telle ou telle chose, je suis bien évidemment preneur.

Lire la suite

dimanche 11 décembre 2016

Regroupement par mois de données avec DBIx::Class

Perl

Supposons que nous ayons une base de données Postgresql, une table activite qui contient, entre autre:

  • jour: une date au format jj/mm/aaaa
  • duree: une durée en heures
  • projet: l'identifiant d'un projet éventuellement nul
  • personne: l'identifiant d'une personne

Cette table permettant de relever l'activité des personnes sur des projets doit être utilisée pour fournir un récapitulatif du total des heures par mois et par personnes depuis un script Perl utilisant DBIx::Class.

Lire la suite

lundi 11 avril 2016

Des images Docker pour LibrePlan

docker & LibrePlan

Pour ceux qui veulent rapidement essayer (ou utiliser) LibrePlan, outil web de gestion de projet, je viens d'uploader sur le hub docker deux images prêtes à l'emploi, l'une qui fonctionne avec Postgresql, l'autre avec MySQL ou MariaDB. Le mode d'emploi détaillé est joint.

Vous trouverez également dans le dépôt Github associé la traduction du mode d'emploi en français et des fichiers docker-compose notamment pour jouer avec deux instances et les faires communiquer (oui, LibrePlan sait aussi faire ça).

Accessoirement, j'ai également commis une image (très perfectible) pour ceux qui veulent hacker Libreplan. Elle est ici.

samedi 16 janvier 2016

CMDBuild et Kerberos AD

cmdbuild.png

CMDBuild est une CMDB libre très souple bâtie sur Java, Postgres, ExtJS, JasperReport et d'autres.

CMDBuild permet d'identifier les utilisateurs en créant des comptes dans sa base de données ou sur une source extérieure: LDAP, CAS ou, et c'est le sujet ici, Kerberos. Comme la documentation ne traite que de la configuration de CMDBuild, voici le reste.

Lire la suite

samedi 7 février 2015

Attendre qu'une page ExtJs soit chargée avec Selenium

Moonraker

Il existe pleins de frameworks de tests d'IHM en Javascript, et notamment pour faire du test fonctionnel ou BDD. Outre cucumber-js, on trouve aussi l'excellent Yadda qui a le bon goût d'avoir une localisation en français... Et plus encore, on trouve le formidable Moonraker qui propose une solution complète clef en main: Yadda plus mocha, WebDriverJs et Chai et, cerise sur le pompon: des page objects !

Mais avec ExtJs, quand on met un splashscreen pendant le chargement et la création de la page, on a un problème: comment cliquer sur un élément seulement quand le splashscreen a disparu ?

Lire la suite

dimanche 21 septembre 2014

Créer une machine virtuelle de Centos 6.4 64bits

Centos

Lors de la création d'une machine virtuelle d'une Centos 6.4 64bits, avec virt-manager, je bloquais sur le message suivant:

centos-notfound.png

Pourtant le test de l'iso téléchargée pour ce faire était ok. Les tentatives suivantes n'ont pas eu plus de succès:

  • ne pas tester l'image avant (car un message disait que le CD était éjecté à l'issue)
  • mettre l'iso dans un stockage créé pour l'occasion
  • utiliser l'iso minimal plutôt que la net-install
  • utiliser la Centos 6.5
  • tester avec VirtualBox

Après un petit tour sur le net, voilà un contournement qui fonctionne:

samedi 13 septembre 2014

Declarative listeners avec Ext JS 5

ExtJS

Ceci est la traduction de l'article de Phil Guerrant publié le 10 septembre 2014.

Introduction

Dans un article précédent, Using ViewControllers in Ext JS 5 (traduit ici), nous avons rapidement évoqué une fonctionnalité qui a été grandement améliorée dans Ext JS 5 — les declarative event listeners. Dans cet article, nous allons creuser le sujet et explorer la façon d'utiliser ces declarative listeners pour simplifier les vues de votre application et réduire le code spaghetti dans vos Components personnalisés.

NOTE: cet article suppose que vous utilisez au minimum Ext JS 5.0.1.

Lire la suite

Utiliser les ViewControllers avec Ext JS 5

ExtJS

Cet article est une traduction de l'article de Don Griffin publié le 22 mai 2014.

Introduction

Ext JS 5 apporte plusieurs améliorations enthousiasmantes à utiliser pour architecturer votre application. Nous avons ajouté la prise en charge des ViewModels et des MVVM ainsi que celle des ViewControllers pour améliorer les applications MVC. Et le meilleur, c'est que ces apports ne sont pas mutuellement exclusifs si bien que vous pouvez introduire ces fonctionnalités de manière incrémentale voire les ignorer.

Lire la suite

samedi 6 septembre 2014

Node, Grunt, Bower et Yeoman - Une boîte à outils pour le développeur web moderne

Une introduction pour débutants ambitieux

Cet article a pour objet de présenter certains des outils actuellement les plus populaires pour développer des applications web modernes en JavaScript. Ces outils ne viennent pas de sortir et existent depuis plusieurs années maintenant. Cependant, on trouve de nombreux développeurs qui ne les utilisent pas ou ne les connaissent pas (ce qui pourrait être votre cas). C'est pourquoi cet article va essayer de vous donner une introduction rapide et concise pour vous permettre de démarrer.

NdT: Cet article est la traduction d'un excellent article de Juri Strumpflohner traduit et publié avec son autorisation.

Lire la suite

dimanche 16 février 2014

Mémorisation du mot de passe avec ExtJS

ExtJS ExtJS est un formidable framework JavaScript tout-en-un sous double licence dont la Gnu GPL3 et qui permet notamment de faire du MVC.

Toutefois, il génère lui-même l'interface utilisateur, ce qui le rend plus approprié pour des applications web d'entreprise (interface mimant du client lourd). Mais il faut bien dire que, quelque fois, certaines choses ne sont pas immédiates. Voici par exemple, comment faire en sorte, dans une application ExtJS MVC que le navigateur propose à l'utilisateur de mémoriser le mot de passe associé à l'identifiant saisi, ce qui ne fonctionne pas a priori avec un formulaire ExtJS.

Lire la suite

mardi 14 janvier 2014

Mettre à jour vers SonarQube 4.1

SonarQube SonarQube est sortie en version 4.1 le 13 janvier. Au menu, suivi des augmentations de coûts de correction, intégration d'Elasticsearch, diagramme Bubble Chart, nouveaux formulaires de recherche pour les problèmes et les métriques, nouveaux droits pour administrer les problèmes, modèle clef sur les canevas de droits d'accès. Voir le détail et télécharger.

Pour fêter ça, je joins la traduction de la procédure de mise à jour à utiliser ...

Lire la suite

jeudi 9 janvier 2014

Inventaire des frameworks Javascript

javascriptCeci n'est pas un scoop, Javascript explose. Il est loin le temps des petits bouts de code pour afficher une boîte d'alerte dans une page. Depuis, il y a eu AJAX et maintenant, il existe une multitude de framework pour faire pleins de choses. Je vais reporter ici (et tenir à jour) mes notes concernant les différents frameworks et outils Javascript au fur et à mesure de mes investigations....

Lire la suite

vendredi 8 mars 2013

Sortie de IceScrum 6#3

IceScrum

Le 6 mars 2013, sortie directement de la release 6#3 d'IceScrum sans passer par la 6#2 qui a rencontré des problèmes de stabilité.

J'ai retenu, outre les améliorations de la version Pro:

  • reste à faire initial pour les tâches
  • la possibilité de commenter les tâches
  • l'envoi d'un email à la création d'une tâche urgente ou la suppression du bac à sable (avec raison)
  • la conservation de l’historique de recherche du finder (filtres dans l’URL)
  • l'affichage du nombre de stories, features et acteurs dans le titre des vues
  • l'amélioration des performances du push
  • des zones plus grandes pour la description des stories et des textes d'acceptation
  • une amélioration du formatage du texte riche
  • des logs détaillés pour la sécurité et l'authentification

ainsi que la correction de :

  • perte d'information lors des copies de story
  • correction du reste à faire du sprint burndown
  • affichage de la mauvaise release dans le plan
  • liens incorrects
  • info bulles persistantes
  • perte de pièce jointes

Enfin, on s'oriente vers l'abandon du support de Tomcat 6 au profit du 7, la migration est encouragée. Pour les détails, c'est ici et pour télécharger, .