LeProgrammeur.net

Blogue d'un programmeur.net

Lime Survey

Voici une notre rapide sur un outil complètement gratuit qui s'appel Lime Survey. Lime Survey est un portail de gestion de sondage qui permet à l'administrateur d'un site Internet de mettre en place des questionnaires de sondages. Gestion d'utilisateurs, sondages publiques ou privés avec un engin simpliste de statistique, il est possible d'adapter à la saveur de votre entreprise le thème par questionnaires.

Élément requis, un serveur acceptant l'interprétation des pages PHP et une base de données de type MySQL ou SqlServer.

Alors qu'est-ce que vous en pensez ?

Posted: déc. 12 2009, 04:54 by lturmel | Commentaires (0) RSS comment feed |
  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Filed under: Note Rapide

Parallélisation du travail

Mon collègue Alexandre Brisebois me fait souvent parvenir des articles fort intéressant sur divers sujets et aspects du métier de Consultant. Aujourd'hui, il me faisait parvenir un article traitant du mythe de la parallélisation, écrit par LaurentLC.
 
Parfois dans notre métier de consultant, nous pouvons être vendu à la journée, à la tâche accompli ou même à la journée (basé sur 8hres de travail). En France par exemple, la norme est plutôt de facturer une ressource à la journée, d'où le terme: Jour-Homme. Dans la pratique réelle, souvent les journées dépassent largement les 8hres de travail, surtout lors des fins de projet sont a échéance, bref passont.
 
L'auteur de l'article y explique qu'en fait si une tâche de dévelloppement doit prendre 30 jours-homme à une personne, elle devrait en prendre 15 jours-hommes à deux personnes. Avec un raisonnement aiguillé sur cette forme de pensé, nous pourrions dire que si nous mettons neuf femmes enceintes en même temps, un enfant sous un mois. Dans le cadre d'un projet informatique, il est certe vrai qu'avec deux personnes se divisant les tâches, le terme du projet devrait venir plus rapidement, mais pas deux fois plus.
 
Ce qui semble être de plus en plus la norme chez les chargés de projets d'appliquer cette forme de penser. Dans un mode de fonctionnement de ce type, l'employé se rapproche à la machine et pourrait même devenir une immobilisation dans une ligne budgétaire au même type qu'une machine à fabriquer des pièces de métal.
 
Sauf que dans ce cas concret, imaginons que deux développeurs doivent livrer un projet dans l'urgence d'ici les 20 prochains jours ouvrable. Mais que les gestionnaires voulant être certains que le tout soit livré en temps et en heure, ajoutent deux nouveaux pigistes développeurs, afin d'aider les deux développeurs. Est-ce que le tout pourrait être livré en 10 jours ?
 
Non, plusieurs facteurs entre en ligne de compte: Le temps de formation des nouvelles personnes. Le temps d'adaptation au mode de travail entre les collègues. Le temps d'acquérir une sinergie entre les gens ne se fait pas en criant "ciseau", parfois une chimie entre des collègues de travail peu prendre quelques jours, quelques mois, voir quelques même années.
 
Selon vous, est-ce que trop souvent le facteur humain est oublié dans l'aspect d'évaluation des charges des projets informatique ?
Posted: sept. 28 2009, 17:54 by lturmel | Commentaires (1) RSS comment feed |
  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Filed under: General | Note Rapide

Refactoring de Martin Fowler

Une note rapide sur le Refactoring, voici un livre incontournable portant sur le sujet: Refactoring, Improving the Design of Existing Code. Un livre de Martin Fowler. À ce sujet, je vous invite a visiter le lien suivant, ICI.

 

Posted: janv. 10 2009, 18:38 by lturmel | Commentaires (1) RSS comment feed |
  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Filed under: Conception | Livres | Note Rapide

Common Intermediate Language (CLI ou MSIL) Pourquoi ?

Pourquoi développer une fonctionnalités en Common Language Intermediate, soit du CLI, anciennement nommé Microsoft Intermediate Language ?

C'est un peu la question que j'avais, lorsqu'un collègue m'avait proposer lorsque nous avions évalué notre Assembly. Je connaissais la signification de MSIL, soit le langage Natif .Net. Language qui est interprété par le runtime .Net, mais j'en avais jamais fais auparavant.

La problématique, étant de concevoir un lanceur d'appel de méthode X tout en étant en mesure de pouvoir avoir un "feedback" au début et à la fin de l'appel de la méthode X. Par réflection, le système était devenue tout simplement lourd et non maintenable... mais le besoin était toujours présent, celui d'être dynamique.

La solution ? Développer notre Assembly pour notre besoin en code natif, en CLI.

Schéma du CLI

 
Le meilleur résumé sur la signification du code CLI (MSIL) ce retrouve MSDN: http://msdn.microsoft.com/fr-fr/library/c5tkafs1(VS.80).aspx 
 
"Compilation en MSIL
Lors d'une compilation destinée à produire un code managé, le compilateur convertit le code source en langage MSIL (Microsoft Intermediate Language), un jeu d'instructions indépendant du processeur qui est converti efficacement en code natif. MSIL inclut des instructions pour le chargement, le stockage, l'initialisation et l'appel de méthodes sur des objets, ainsi que des instructions pour la réalisation d'opérations arithmétiques et logiques, le flux de contrôle, l'accès direct à la mémoire, la gestion des exceptions et d'autres opérations. Avant d'exécuter du code, vous devez d'abord convertir le langage MSIL en code spécifique du processeur, généralement à l'aide d'un compilateur JIT (Just-In-Time). Dans la mesure où le Common Language Runtime fournit un ou plusieurs compilateurs JIT pour chaque architecture d'ordinateur qu'il prend en charge, le même jeu de MSIL peut être traité par un compilateur JIT et exécuté sur toute architecture prise en charge.
Lorsqu'un compilateur produit un code MSIL, il génère aussi des métadonnées. Les métadonnées décrivent les types contenus dans votre code, y compris la définition de chaque type, les signatures des membres de chaque type, les membres référencés par votre code, et d'autres données que le runtime utilise au moment de l'exécution. Le code MSIL et les métadonnées sont stockés dans un fichier exécutable portable (PE) qui est basé sur le fichier Microsoft PE publié qu'il prolonge et sur le format COFF (Common Object File Format) utilisé traditionnellement pour le contenu exécutable. Ce format de fichier, qui accepte le code MSIL ou le code natif ainsi que les métadonnées, permet au système d'exploitation de reconnaître les images du Common Language Runtime. La présence de métadonnées dans le fichier en même temps que le jeu d'instructions MSIL permet à votre code de se décrire lui-même, ce qui signifie que les bibliothèques de types et IDL (Interface Definition Language) ne sont pas nécessaires. Le runtime recherche les métadonnées dans le fichier et les extrait selon les besoins, au moment de l'exécution."
 
Source: http://msdn.microsoft.com/fr-fr/library/c5tkafs1(VS.80).aspx
 

Fort malheureusement, les resources fiable sur Internet sur le développement CLI (MSIL) sont très limités. En voici une qui m'aura été très utile: http://www.thefreakparade.com/2008/06/baby-stepping-into-msil-creating-an-event-recorder-using-a-dynamicmethod-and-reflectionemit

Posted: nov. 27 2008, 13:38 by lturmel | Commentaires (0) RSS comment feed |
  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5