Publié par : collaborateurvdu | février 27, 2009

Intégration continue Ruby on Rails avec continuous4r

Après un petit mois de travail, voici venu la nouvelle version de continuous4r. Cette mouture 0.0.2 est beaucoup plus orientée code Ruby. Clairement, le but est d’orienter le gem sur la collecte d’indicateurs qualité issus des différentes tâches de construction (test, couverture du code, etc…). Je travaille d’ailleurs déjà sur la prochaine version 0.0.3 qui collecte ces indicateurs (de manière unitaire par build, le but étant dans les futures versions de pouvoir voir l’évolution de la qualité entre les builds).

Voici les nouveautés de cette version 0.0.2 :

  • Support complet de Windows, pas besoin de définir la variable d’environnement HOME.
  • Seulement les outils en relation directe avec le code on été conservés (au revoir capistrano, httperf, railroad…).
  • Plus besoin de se créer un fichier de projet de zéro dorénavant, tapez ‘rake continuous4r:init’, et vous avez un fichier de projet initialisé.
  • Extensibilité du système : les tâches de construction sont définies dans des fichiers [task]_builder.rb qui sont instanciés dynamiquement.
  • Refactoring complet (Ruby HTML, et RHTML).
  • Support du gestionnaire de sources Git.
  • Support pour les proxys HTTP.
  • Plus besoin d’avoir eruby installé, utilisation d’erb (intégré à Rails).
  • Corrections dans le template global.
  • Plus besoin de configurer vos tâches désormais, tout est préconfiguré.

En résumé : une version beaucoup plus simple, orientée sur la qualité.

Documentation du gem
Page Rubyforge du projet

Publicités
Publié par : collaborateurvdu | février 6, 2009

I’m on GitHub

C’est officiel, je suis sous git, la gestion des versions pour les railers. Et plus précisément, je suis hébergé sur Github.com.

J’en avait ras le bol du Subversion de rubyforge.org, toujours le même problème, pas facile de publier en ligne de commande. Du coup, il ne me restait que le plugin sous NetBeans. Mais quand ça fait un an qu’on a pas mis le nez dans le code d’un projet, Subversion sait appuyer là où ça fait mal. Certains fichiers n’étaient pas versionnés, et du coup, impossible de publier sans erreurs. J’ai donc profité de l’occasion pour me mettre à git, et je dois dire que je ne suis pas déçu.

Le premier projet que je publie sur Github est, sans surprise, le gem continuous4r . Je suis en train de le réécrire entièrement, pour le rendre plus souple (comment ça, il ne l’était pas ?). L’objectif que je me fixe sur cette version est la compatibilité sur plusieurs plateformes, et orienter le gem sur la qualité du code et la restitution synthétique de métriques de qualité (donc je supprime tout ce qui est outils annexes, style capistrano, httperf…).

Si vous souhaitez récupérer le gem pour le construire vous même, tapez : git clone git://github.com/vdubois/continuous4r.git

Si vous souhaitez en savoir plus sur git, vous pouvez consulter les guides Github, qui sont très bien faits.

Publié par : collaborateurvdu | février 2, 2009

J’ai essayé Vista

Ce week end, j’ai essayé Windows Vista, et je me devais de partager avec vous cette expérience. Il est vrai que je savais que la plupart des gens qui le possèdent s’en sont séparés pour remettre leur bon vieux XP, mais là encore, j’étais très loin de me douter de l’ampleur d’un tel… truc (je vais rester poli).

Bref, je resitue le contexte, pour ceux qui me connaissent, qui sont en train de se dire : ah ? il est repassé sous Windows ? Il était pas sous Ubuntu ? Si, je vous rassure, je suis bien sous Linux, et ça ne risque pas changer de sitôt. Bref. J’étais chez un couple d’amis, et lui de me dire : j’ai des soucis avec Windows, il y a des messages qui apparaissent au démarrage, il faut que je clique quinze fois pour m’en débarrasser à chaque fois.
Etant plutôt une bonne poire, et surtout voulant faire la nique à Vista, je décide de relever le défi.

Waou… Et là, je découvre Vista. Vista, qui demande non pas un, mais deux clics de confirmation pour simplement renommer un fichier. Glups. On frise le vertigineux, là.
Sous Vista, les fenêtres sont jolies. Oooooohhh. Ca s’arrête là. Au bout de 5 minutes d’utilisation, on a une furieuse envie de jeter l’ordinateur par la fenêtre. Bref, j’ai réussi tant bien que mal à enlever les messages, et les saletés qui se lançaient au démarrage du susdit ordinateur, mais je ne pense pas réitérer l’expérience.

Ces jours-ci, on entend beaucoup parler sur le net du prochain Windows (nom de code 7), qui est annoncé comme une super réussite (même pour une version béta, c’est dire). J’attends vraiment de voir la version finale, celui-ci étant quand même bati sur Vista. Mais je me dis : Microsoft étant toujours là où il faut, ils vont se positionner sur le marché des netbooks et des nouveaux ordis tactiles. Bref, de par leur inondation du marché, je pense qu’ils vont s’en sortir encore sans problème. Bon, je m’égare un peu, là.

Ce que je retiens de ma quasi première utilisation de Windows Vista (en tout cas, la plus longue) : l’utilisation est rebutante à fond, il faut TOUT confirmer, que ce soit en lançant, en copiant, ou en renommant un fichier, ça devient très vite pénible, voire exaspérant. Quand on est habitué aux anciennes versions de Windows, on a du mal à trouver certains programmes (genre démarrer -> exécuter). Ah oui : on ne peut pas lancer Vista en mode sans échec depuis le menu de boot, il faut aller dans un coin sombre du panneau de configuration pour l’activer (autant dire mission impossible pour des informaticiens non-chevronnés). Seul avantage que j’ai pu trouver à Vista : il est visuellement sympathique (et pour ça, il était en retard par rapport à Linux !!!).

Alors, et vous, vous tournez sous quoi ?

Publié par : collaborateurvdu | janvier 27, 2009

Reprise…

Ca fait un bail, je sais… Mais là, je n’ai plus trop d’excuse pour ne pas écrire, ne serait-ce qu’un peu.

Durant presque un an je n’ai pas écrit, ça ne veut pas dire que j’ai arrêté Ruby et Rails. Suis pas fou, non plus. S’il me restait que Java pour vivre, ben… Enfin bon, vous voyez, le Java c’est bien, mais c’est surtout pour me payer à manger, quoi.

Me voici donc de retour, plus déterminé que jamais.

Ce que je vous concocte :

Dans un premier temps, je me vois bien reprendre le développement de mon bébé, continuous4r. Cela risque de prendre du temps, mais je ferai souvent des mises à jour. Il y a des outils sympas pour l’IC en Ruby on Rails maintenant, ce serait dommage de ne pas en profiter.

Dans un deuxième temps, je mettrai à jour ma page sur l’Intégration Continue, elle date d’un peu trop longtemps, et a besoin d’un coup de neuf.

Je vous ferai aussi quelques petits articles sur des plugins/gems/outils que j’ai utilisés et qui valent vraiment le coup.

Tout ça pour dire que je vais sûrement écrire pas mal d’articles, au moins dans les quelques semaines qui viennent.

A bientôt, donc 🙂

Publié par : collaborateurvdu | mars 18, 2008

Fin d’un geek

Bonjour,

Je pense que certains l’auront remarqué, le peu de posts qui caractérisent ce blog depuis les derniers mois est assez inquiétant. Je ne dis pas que j’en suis fier,  mais il y a des périodes des fois dans une vie où il faut savoir revoir ses priorités.

Comme je n’ai plus le temps de blogger, je préfère m’en tenir là pour le moment. Je ne dis pas que ce blog ne réouvrira pas ses portes un jour, mais pour l’instant, autant ne pas s’illusioner…
C’est avec donc un petit pincement que je déclare ce blog fermé -pour l’instant-

Peut être à la revoyure…
Collaborateur VDU

Publié par : collaborateurvdu | janvier 3, 2008

Sortie de Continuous4r en beta version 0.0.1

C’est avec beaucoup de fierté que j’annonce, après un mois de travail dessus, la sortie de continuous4r, ma première vraie contribution au monde Ruby on Rails. Continuous4r répond au besoin pour Ruby on Rails d’une solution de regroupement pour l’intégration continue. En effet, beaucoup d’outils d’intégration continue excellents existent (dcov, rcov, saikuro, etc…), mais aucun dénominateur commun ne permet de les réunir.

Continuous4r permet, à partir d’un simple fichier de description de projet au format XML, de générer un site entier de rappports à la façon de Maven.

Voici l’exhaustivité des rapports générés :

  • Informations du projet
  • Equipe projet
  • Dépendances
  • Informations SCM
  • Informations bugtracker
  • Liste des rapports des différents outils
  • Changelog (changements Subversion)
  • Statistiques Rails
  • Couverture rdoc
  • Couverture des tests
  • Génération rdoc
  • Complexité du code
  • Complexité cyclomatique/Code dupliqué/…(kwala)
  • Graphes pour controleurs et modèles
  • Stress HTTP de l’application
  • Logs des tests unitaires
  • Cohérence du format des tests unitaires
  • Déploiements avec Capistrano

Bon effectivement cela n’est pas complet, mais cette version n’est qu’une première beta, et j’espère qu’il y aura plein de retours et de commentaires dessus pour me permettre de l’améliorer.

Publié par : collaborateurvdu | décembre 4, 2007

Contrôlez votre couverture de documentation Ruby avec dcov

Je viens d’ajouter dans la page Intégration continue Ruby On Rails un paragraphe sur dcov, un outil d’analyse de couverture de documentation ruby (rdoc). C’est un outil intéressant, simple à utiliser et à mettre en oeuvre. Profitez-en !

Publié par : collaborateurvdu | novembre 12, 2007

Comment hacker Jasper Reports

Cela part d’un bon sentiment. Tous mes chers confrères qui travaillent dans le milieu du développement informatique me comprendront, la perte d’un travail effectué est une chose vexante. C’est d’autant plus vexant au moment où l’on doit rendre des comptes. C’est ce qui m’est arrivé très récemment; un client m’a réclamé des sources d’éditions JasperReports qui n’avaient jamais été publiées sur le CVS du projet.

A ce point précis, seul un miracle pouvait me sauver, car à priori avec seulement un fichier binaire d’édition, je ne pouvais pas faire grand chose. Une solution élégante m’a été proposée par un collègue, je me permets donc de la partager avec vous ici.

Voici un programme Java qui permet de passer d’un fichier finaire Jasper Reports (extension .jasper) à un fichier source Jasper Reports (ouvrable avec iReport par exemple) :

 

package net.free.vdu.tools;

import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.util.JRLoader;
import net.sf.jasperreports.engine.xml.JRXmlWriter;

/**
 * Classe permettant de passer d'un fichier binaire .jasper
 * (Jasper Reports) à un fichier source .jrxml
 * @author JasperSoft, VDU
 * @version 1.0
 */
class JasperToJrxml {

   public static void main(String [] args) {
      // Chemin du fichier binaire .jasper
      final String sourcePath = args[0];

      // Chemin du fichier source généré .jrxml
      final String outputPath = args[0].replace(".jasper", ".jrxml");

      // Génération du fichier source à partir du fichier binaire
      generateJrxmlFile(sourcePath, outputPath);
   }

   /**
    * Méthode de génération du fichier source à partir du fichier binaire
    * @param pSourcePath le chemin du fichier binaire en entrée
    * @param pOutputPath le chemin du fichier source généré en sortie
    */
   public static void generateJrxmlFile(String pFileName, String pSourcePath, String pOutputPath) {
      try {
         // Chargement du fichier binaire sous forme d'objet JasperReport
         final JasperReport jasperReport = (JasperReport) JRLoader.loadObject(sourcePath);

         // Ecriture du XML généré à partir de l'objet JasperReport dans le fichier de sortie
         JRXmlWriter.writeReport(jasperReport, outputPath, "UTF-8");

      } catch(JRException e) {
         e.printStackTrace();
      }
   }
}

 

Voici comment utiliser ce programme :

 

javac -cp .: JasperToJrxml.java
java -cp .: net.free.vdu.tools.JasperToJrxml 

Et voilà, plus qu’à récupérer votre fichier source .jxrxml !

Publié par : collaborateurvdu | octobre 18, 2007

Blogger pour blogger : gestion des exceptions en Ruby

Quand je vois le nombre de personnes qui bloggent juste pour blogger, ça fait peur. Et en plus, ça n’est même pas complet.
La gestion des exceptions en Ruby, c’est :

begin
...
rescue
...
ensure
...
end

Exemple :

begin
 file = open("/tmp/some_file", "w")
 # ... écrit dans le fichier ...
rescue
 # ... gère les exceptions ...
ensure
 file.close   # ... et ceci arrive dans tous les cas.
end
Publié par : collaborateurvdu | octobre 8, 2007

Utiliser rcov avec Rails

Je suis certain que les développeurs minutieux que vous êtes pensent à faire des tests de couverture de code. Si cela ne vous évoque rien, vous devriez vous inquiéter très vite, et vous devriez écrire des tests pour les contrôleurs de votre application (voir la page qui en parle). Pour Ruby on Rails, l’outil de test de couverture de code de prédilection est rcov.

Pour ma part, l’écriture des tests des contrôleurs de l’application Rails sur laquelle je travaille m’a permis de démasquer de nombreux problèmes que j’aurais pu regretter plus tard. Je peux l’annoncer fièrement : quand je lance rcov, j’obtiens

Loaded suite /usr/bin/rcov

Started

.............

Finished in 13.016636 seconds.13 tests, 320 assertions, 0 failures, 0 errors

Puis : résultat final 🙂

Je rajoute bien entendu la partie concernant rcov à la page Intégration continue Ruby on Rails.

Older Posts »

Catégories