Pascal Chapuis Développement & Services Logiciel

Consultant Delphi et Microsoft Visual Studio (C#)


Consultant indépendant depuis 2005, je propose mes services pour la conception, la réalisation et la maintenance d'un système d'information. En tant qu'architecte technique, chef de projet et/ou développeur, j'ai collaboré à différents projets pour les acteurs majeurs dans les secteurs suivants :

  • la distribution (Alinéa Groupe Auchan, FNAC...)
  • l'industrie (DataCard Group)
  • la finance / Asset Management (Lyxor AM Société Générale)
  • le transport (Canal TP, SCAT)
  • la santé (EFS, BIO-RAD)
  • ...

Les quelques pages de cette petite "vitrine" web présentent briévement mes principales réalisations, mes compétences détaillées, mon CV et aussi quelques projets "perso". Je reste disponible pour répondre à vos questions, remarques ou suggestions. Je vous remercie pour l'interêt que vous portez à mon activité.


Je ne réalise ni la vente ou ni la réparation du matériel informatique; désolé, merci.

En régie ou au forfait, je vous propose mon expertise pour vos développements logiciels spécifiques
ainsi que des services de conseils et de formation.


Vous avez un projet informatique
n'hésitez pas à me contacter.




Entreprendre dans un cadre de qualité pour offrir des services de qualité.

La dernière mise à jour (Oct. 2014) propose quelques corrections (essentiellement "cross-browser"), une nouvelle structure allégée pour le menu principal et une mise à jour conséquente des pages, projets et des liens/documents associés. Certains projets présentés avec cette maj sont en cours de développement pour certains depuis plusieurs années et cette mise à jour/publication est donc l'aboutissement d'importants travaux personnels sur ces quelques sujets... Les futures maj "gommeront" autant que possible les erreurs d'orthographes ou les autres erreurs présentes actuellement. Je vous remercie donc pour votre indulgence pour le premier jet de cette importante publication... Enjoy !


2014-2015


Consultant Delphi-Staff
Développeur / BIO-RAD
(Roanne)

BIO-RAD est une société spécialisée en biotechnologies. Bio-Rad développe et commercialise des tests et des systèmes de diagnostics destinés aux laboratoires d’analyses médicales, aux centres de transfusion sanguine et aux laboratoires de contrôle industriel.
Le site de Roanne (42) est un site de production d'instruments d'immunohématologie. Les instruments sont conçus et assemblés sur le site. Les applications logicielles dédiées à l'exploitation de l'instrument (robotique, gestion test et analyse, gestion des données) sont développées également à Roanne et donc l'ensemble des phases étude/conception/fabrication jusqu'à l'expédition sont effectuées sur le site.

  • TMA des applications (IHM-1000, ControlerSwing+, ...) associés à l'automate IH-1000.
  • Etude de la migration de l'EDI Delphi 2006/2009 vers Delphi XE5.
  • Enrichissement de la procédure qualité de développement logiciel.
  • Packaging des logiciels (système et application) associés à l'instrument IH-1000.

2013


Consultant ADHES Group / CAP-Fi
Développeur / LYXOR Asset Management
(Paris La Défense)

  • TMA de l'application "LNS" (client et serveur de calculs) dédiée à la gestion back-office.
  • TMA du workflow de réplication (bus Tibco) des hedges-fund entre l'application "Merlin" (New York) et LNS (Paris).

2011-2012


Consultant OnePoint Group
Développeur / Canal TP
(Paris Bercy)

Canal TP est le leader en France dans la mise en place et l'exploitation de Systèmes d'Information Multimodale (SIM) permettant la recherche d'itinéraires, d'adresse à adresse, combinant tous les modes de transports disponibles : bus, car, train, tramway, métro, train (régional ou national), Transport à la demande (TAD), vélo, Vélo Libre Service (VLS), covoiturage, ... Canal TP édite les logiciels qui simplifient la préparation, l'exécution et le suivi d'un déplacement ou d'un voyage...

  • référentiel tranches/dessertes et informations incidents (SNCF).
  • Refonte moteur de recherche : intégration des informations temps réel (Info Ligne).

2008-2010


Consultant OnePoint Group
Développeur / LYXOR Asset Management
(Paris La Défense)

Lyxor AM est une Société de gestion de droit français, agréée par l'AMF en 1998. Elle est détenue à 100% par le groupe Société Générale. Sa vocation est de fournir, le meilleur de l'innovation financière à ses clients, français et étrangers : investisseurs particuliers, investisseurs institutionnels, professionnels de la gestion et et réseaux de distribution de produits financiers. .

  • Développement de nouveaux tickets : paiement par fax, IPO, opération réalisée par des tiers...
  • Sécurisation et TMA de l'application back-office et des services associés.
  • TMA du système de sécurité des paiements (SDP).
  • TMA du workflow de réplication (bus Tibco) des hedges-fund entre l'application "Merlin" (New York) et LNS (Paris).

2007


Consultant SSII ARMONY
Développeur / DataCard Group
(Orléans)

DataCard Group : SECURE ID AND CARD PERZONNALISATION SOLUTIONS

  • Prototypage de la borne dédiée aux passeports électroniques "ePassChecker".
  • Développement bibliothèques de traitement de données dédiées à la production et/ou au contrôle qualité de carte.
  • Participation au développement et à la personnalisation de :
    • la carte Vitale 2 : biométrie, contrôles qualité et acquitement production.
    • d'une carte sans-contact (Mifare) multi-contrats (14) pour les Pays-Bas : contrôles qualité.
  • Portage d'un SDK XML de l'API DOM vers l'API SAX.

2006

le framework ASP.NET DotNetNuke...

ASP.NET : Modules DotNetNuke Spécifiques

Dans la logique de Portal Starter Kit, le framework DotNetNuke permet d'incruster dans votre portail Internet un module métier simplement administrable.

Module applicatif spécifique, module orienté commerce électronique, module intégré avec votre E.R.P... Imaginez votre web avec comme briques des modules !


Nov. 2006 SAGE Partener / ETB (43) Module DotNetNuke "Assistant de Choix de Solution".
Oct. 2006 S.C.A.T SSII CAPINFO (69) Module DotNetNuke de publication de statistiques.

Juillet 2006

"www.e-capinfo.com"...

    

Portail Internet "www.e-capinfo.com"

Ce portail Internet utilise ASP.NET et le framework DotNetNuke. Les skins et containers sont personnalisés dans l'harmonie de la charte graphique. L'insertion dans ce portail d'un module DNN spécifique développé avec Delphi.NET, Visual Studio Professionnel (C#, VB.NET) est aisée.

Cette solution est entièrement extensible en terme de contenu et de fonctionnalités.


2005

SSII CAPINFO Limonest (69)

    

Consultant SSII CAPINFO (Lyon)
Application "Commande Spéciale" pour Alinéa (Groupe Auchan).


Extension couplée à l'E.R.P "G.O.L.D" (ALDATA) dédiée à la gestion spécifique des opérations commerciales de type promotionnelle.



Pour plus d'audience mais aussi de rigueur, les principaux articles sont publiés sur www.developpez.com.

Mai 2005

les interfaces COM...

Delphi TypeLibReader

Cet article présente le projet Delphi "TypeLibReader". Ce projet est un lecteur de bibliothèque de type. Quelques fonctionnalités supplémentaires sont inclues avec un mini débuger permettant de scrupter et scripter les objets Automation.


Exemple de projet : publication de la météo sur un téléphone mobile...

Une introduction à ASP.NET Mobile

Cet article est une introduction à ASP.NET Mobile. La mise en oeuvre de cette nouvelle technologie est présentée. Le projet d'exemple "Météo" réalisé avec Delphi .NET accompagne cette présentation.



Ce tutoriel est référencé sur le site :
Apprenez : Le site Microsoft ASP.NET 2.0 officiel.


Avril 2005

Delphi Portal Starter Kit...

ASP.NET : Delphi Portal Starter Kit

Le développement de ce projet n'est plus maintenu.

La version de démonstration de Delphi Portal Starter Kit
est en téléchargement sur "CodeGear from Borland" .

  Présentation de la version 1.0
  Installation et FAQ 

Une adaptation de ce projet est disponible sur le site trés intéressant :
Delphi ASP.NET Portal Programming - Felix John COLIBRI.



Ci-dessous sont présentés une série de sujets techniques sur lesquels des recherches (généralement personnelles mais aussi parfois en rapport avec un projet implémenté dans le cadre d'une prestation) m'ont intéressées à "temps libre". Ces projets ou exemples d'utilisation sont implémentés avec Delphi ou Lazarus (FPC), .NET (C#) ou Java.

Ces projets sont composés d'une présentation avec un exemple de mise en oeuvre pour chaque projet; ils peuvent aussi servir de base pour d'autres utilisations.

Le choix de ne pas démarrer un "hub" dédié avec par exemple un portail de partage de code source pour chaque projet est volontaire en raison du nombre important de projets et du travail glouton qu'ils génèrent. L'ensemble du code source est libre d'utilisation.

J'essaie de clôturer ces différents sujets (sur lesquels je travaille déjà depuis quelques temps) et qui ne m'ont jamais conduit à publier un article essentiellement par manque de temps. A terme pour chaque sujet, un article synthètisant ce sujet et un projet d'exemple devraient (idéalement) être publiés... Je vous remercie pour votre indulgence en ce qui concerne les erreurs d'orthographes et les bugs éventuels; vos remarques et suggestions sont les bienvenues !


Delphi Application Package ANT Builder : construction de package Delphi avec ANT Ce projet a pour objectif la construction automatique d'une ou plusieurs applications avec le framework Java "ANT". Le processus de construction automatique d'un (ou plusieurs) projet(s) doit optionnellement implémenter en supplément des fonctions spécifiques comme :

   - la substitution d'une expression dans le code source d'une classe/unité du projet
   - la mise à jour des informations de version et des autres informations embarquées
   - la génération/maj d'un référentiel de traduction (avec un outils comme "Mutilizer")
   - l'intégration des différents automatismes de mise à jour des codes sources (SC API)
   - la push des fichiers générés par la construction vers une ressource partagée
   - la notification email (ou autre) du résultat de la construction du package.

Ce projet offre une solution pour résoudre l'ensemble de ces exigences de construction, packaging et intégration continue et ceci à l'aide des données formalisées en XML dans un schéma pivot. Ces données XML sont mises à disposition de ANT via l'utilisation des classes (COM et scriptables) du SDK.

Le SDK "XmlAntHelpers" expose le mapping de toutes les entités présentes dans le schéma pivot. Il permet donc d'éditer les données XML et réalise le lien (via un script) entre une application comme Excel, les données et leur format XML pivot et le script ANT. Ces données XML sont ensuite initialement exportées par le script ANT (dans la target "prepare") vers un fichier XML temporaire ou "snapshot" qui sera à son tour interprété par le script afin de traiter l'ensemble des projets indexés par la version du package l'unique et principale entrée du build.

Afin de fournir des tests unitaires et d'intégration, ce projet est accompagné d'une application et du code équivalent écrit avec VBScript et/ou JavaScript. Ce code réalise les tests unitaires de chaques classe et collection. En supplément trois projets Delphi "samples" permettent de mettre en oeuvre toutes les fonctionnalités du framework en étant utilisés comme composants dans la construction du package cible.

Les projets de type "Delphi" sont validés avec les principales combinaisons d'options de construction offertes par le framework. Les projets ".NET" sont encore en cours d'étude pour certaines phases du build mais devraient également être (idéalement) validés à terme.

Ce projet permet par exemple de construire automatiquement un package avec un référentiel applicatif stocké dans une feuille Excel asservissant le SDK COM par l'intermédiaire d'un script qui fabrique et exporte les données en XML et ensuite prend en charge le lancement du processus de construction automatique (avec en entrée la version de package cible).

Ce projet de part son périmètre mais aussi en raison du volume de code pour offrir un SDK complet accompagné de tests unitaires et d'un mini-référentiel de trois projets est volumineux et a demandé une charge de travail importante. Les bases étant maintenant écrites, il est assez simple, rapide et peu risqué de modifier ou d'étendre ce "petit framework".

Mots clés : ANT (JAVA), XML / XSL, Automation COM, Script, IEnumVariant

XML Resume : Curriculum Vitae et XML Lors d'une récente mise à jour de mon CV, je me suis interrogé sur le format idéal pour le document source des données présentées dans un CV. Cet article présente mes recherches dans l'objectif de trouver une solution aussi pratique et élégante que possible pour résoudre la problématique suivante :

  • une source de données contenant les informations du CV
  • et une solution technique permettant de formater, présenter et publier ces données
    dans les trois formats standards suivants : HTML, PDF et DOC
    .

    En supplément cette solution assurerait également une importation optimale (sans perte de données) sur les différents sites Internet qui proposent une option d'importation de CV.

Cet article présente la solution technique standard "XML+XSL" rapidement résumée par : un moteur de transformation avec des données XML et la présentation dans une feuille de style (XSL) soit une décomposition "physique" entre les données et leur présentation.

Les différents schémas standards disponibles sont présentés briévement. Le projet d'exemple n'est pas une application "classique" mais une présentation de l'ensemble des documents utilisés lors de la réalisation d'une transformation XML + XSL (ou XLS/T) vers un format cible. Dans ce cadre la modification du framework "XML Résumé (Version 1.5.1 de Sean Kelly)" pour créer mon CV 2014 est détaillée (avec quelques simplifications personnelles à ne pas reproduire).

Mots clés : XML, XSL (XLS/T), doc : PDF, HTML, DOC
Date : 2014 - Présentation détaillée du sujet XML Résumé


TLB Depends : bibliothèque de type & dépendances Ce projet permet de visualiser tous les types ou entités stockés dans une bibliothèques de type (TLB) dans l'esprit du célèbre outils "DLL Dependency Viewer" (Microsoft) un inspecteur des fonctions et dépendances d'une bibliothèque Windows (DLL). Ces types/entités sont présentés sur un onglet associé à la bibliothèque de type qui les définit. Les bibliothèques de type dépendantes sont également présentées de manière récurrente et exhaustive sur les onglets suivants.

Pour aider la consultation d'une bibliothèque de type complexe (en terme d'entités et/ou de dépendances), des fonctions de navigation sont intégrées et permettent de parcourir simplement les arbres des dépendances. Des liens "hyper-texte" sont disponibles directement sur chaque élément TLB dans la liste des dépendances de l'onglet/TLB sélectionné et (comme avec Delphi) également disponibles avec la séquence "Shift+Click" sur le code source de définition d'une interface ou de toute autre entité (enum, alias, ...) reposant sur une définition déclarée dans une autre TLB.

"TLBDepends" permet de visualiser dans un onglet dédié sous la forme d'un graphisme de type "TreeMap" les dépendances trouvées dans la TLB sélectionnée. Cette vue est pratique pour produire une documentation "synoptique". Elle est parfaitement adaptée aux dépendances des bibliothèques de type. Pour ré-utiliser "TreeMap" (et pour l'exercice de style), cette vue "imbriquée" des dépendances de TLB utilise les composants Microsoft .NET "TreeMapControl" (et "TreeMapGenerator") malgré l'implémentation Delphi 7 (et donc "Win32") de l'outils et la version .NET 2.0 des composants Microsoft.

Les deux composants "TreeMapControl" et "TreeMapGenerator" offre un type de graph spécifique "TreeMap" parmis les différents types de représentation graphiques disponibles avec le package des composants Microsoft .NET "Data Visualization Components "(Version 1.4) (.msi ou .zip).

Dans l'objectif de fournir un outils le plus pratique et complet possible, la sauvegarde de l'ensemble des paramètres de l'application, différentes options avancées et une interface de recherche "full-text" sont disponibles. Le code source de l'ensemble de l'application est téléchargeable. Les corrections des éventuelles anomalies ou/et l'implémentation d'une extension sont donc simples à intégrer.

Mots clés : COM, TLB (Type Library), Interop Delphi Win32 / .NET, dépendances entre composants COM
Date : 2014 - Présentation détaillée du projet TLBDepends


Dependancies Structure Matrix (DSM) : Delphi Structure Dependancies Matrix Analyser Ce projet permet d'importer un fichier généré à partir des outils "Lattix" / "Model Maker" ou au moyen d'une feuille de style XML (XSLT). Il est possible d'adapter l'outils à un autre formalisme des dépendances extraites via un autre outils. Les données importées sont présentées dans une matrice de dépendances. Ces dépendances peuvent être groupées/associées à un noeud de l'arbre des catégories/modules de dépendances. Ce type de représentation matricielle via des "méta-données" permet de mettre en avant l'architecture de l'application et les points de couplage fondamentaux. Un mini langage de script permet d'effectuer des contrôles sur les couplages du type : le groupe "interfaces métier" ne peut utiliser le groupe "DataBase Access" directement mais ce groupe doit utiliser le groupe "Database Abstract Layer (DAL)" pour accéder à cette couche. Ces types de contrôles sont codés directement en JavaScript avec des objets de type "expando" directement mis à disposition par le modèle sur lequel le script s'applique.

Mots clés : DSM (Dependancy Structure Matrix), architecture logiciel et couplage, intégration continue
Date : 2012-2013 - Présentation du projet DSM


ISAPI Delphi 32 bits vers 64 bits LAZARUS / Free Pascal Compiler (via les composants Real ThinClient) Complément de l'article initial réalisé pour CANAL TP dans le cadre de la migration (Delphi) des applications 32 bits vers Lazarus en 64 bits.
Les applications demandent de plus en plus mémoire, le 64 bits permet de repousser les limites de mémoire disponible pour une application. De nombreux filtres ISAPI nécessitant des performances pointues utilisent beaucoup de mémoire car les données ne sont pas prisent en charge par un back-end de type base de données mais directement en mémoire par l'application. Par exemple les moteurs de recherche d'itinéraires de transport utilisent trés souvent de données dites "binarisées" et donc directement chargées en mémoire.

Mots clés : 32/64bits, Lazarus, WebBroker, RTC, Optimisation
Date : 2011-2012


SDK et classe de type "expando" Ce sujet aborde les objets de type "expando". "SOAP Client SDK" de Microsoft est un exemple d'expando largement utilisé, il démontre la puissance de ce type d'objet. Avec ce composant COM, l'accés à l'interface SOAP est donc directement publié par l'interface du serveur COM le client SOAP SDK qui publie les méthodes et propriétés dynamiquement. L'interface "IDispatch" du client publie dynamiquement les méthodes correspondants aux méthodes publiées par l'interface SOAP du web-service couplé. Avec ce composant trés intéressant en terme de pattern/design, il est également possible de publier une interface COM directement dans le standard SOAP en utilisant la propriété "Proxy" du composant SOAP Client SDK. Dans ce cas l'interface COM (par défaut) du "Proxy" est automatiquement publiée comme une interface SOAP.

"SOAP Client SDK" est donc un expando générique des protocoles COM et SOAP, un "passthrough" scriptable. Dans d'autres contextes où par exemple la modélisation est utilisée, les expando sont également utilisés par exemple en adaptant les classes dynamiquement sur un schéma.

Mots clés : expando, interface, SOAP, COM
Date : 2012-2013

GPU Dans le cadre de mon métier de développeur l'utilisation du GPU pour répondre à certaines tâches gourmandes en CPU semble pernitente. Cette réflexion sur l'utilisation du calculs GPU sous Windows tente de recencer les récents nouveaux langages de type "Harlan". Le masquage et l'encapsulation des instructions GPU dans un langage dédié permet de faciliter la tâche des développeurs. Ce type de langage semble donc appelé à se multiplier et il est trés probable que des langages classiques comme le C# ou Delphi intègre le GPU dans les classes et bibliothèques livrées directement avec l'EDI. IMHO comme la gestion de l'utilisation de la mémoire autrefois largement à la charge du développeur et maintenant de plus en plus "manager", le développement d'application utilisant le GPU en simplifiant le "jeu de commandes" est une nouveauté qu'intégreront bientôt trés probablement les principaux EDI classiques.

Mots clés : GPU, langage de développement, Harlan & Cie...
Date : 2012-2013


IPP (Intel Pre Processing Instruction) & LAZARUS Ce projet propose un portage des API Intel "IPP" (Integrated Performance Primitive) pour l'EDI "LAZARUS" (Free Pascal Compiler). Ces interfaces IPP embarquées dans les packages de l'EDI LAZARUS sont accompagnées d'un projet d'utilisation simple (exemple de tri) mettant en oeuvre ces API. Les API Intel "IPP" sont une alternative intermédiaire à l'utilisation du GPU (abordé ci-dessus). IPP exploite des "macros" dédiées et directement embarquées dans le CPU pour offrir des traitements au nombre de cycles minimum et donc extrêmement optimisés.

Mots clés : Intel, Pre-processing, Lazarus/FPC
Date : 2012-2013


Statistiques

Avec bientôt 10 ans d'activité comme indépendant, le volume de données est suffisant pour produire quelques graphismes qui résument assez précisément mon activité.

Les applications batties autour d'une base de données sont classées dans la catégorie 'informatique de gestion'. L'informatique de gestion est de loin le domaine d'intervention le plus demandé. Sont classés dans "informatique de gestion" les applications dont le coeur névralgique est une base de données. Il est ambigue de distinguer ces applications des applications web qui utilisent elles aussi une base de données. Sont classées dans "web", les applications accessibles via un navigateur mais aussi les applications accessibles aux clients lourds comme les web-services.
L'Ile de France a rapidement rattrapé le Rhones-Alpes. L'activité locale (l'Auvergne) ne décolle pas !  Le CA réalisé en Ile de France est proche de celui réalisé en Rhones-Alpes principalement pendant les premières années d'activité et en 2014. L'Auvergne région dans laquelle je réside et suis immatriculé génère peu d'activité...

© Pascal CHAPUIS - ChapsAndChips - Dernière maj. Octobre 2014 - informations légales