Malek's Moorish Tales

Meanderings about life and technology

Suis je devenu un employé Microsoft sans le savoir ?

Suite à la création du User Group MugNet, il semble qu'un certain nombre de critiques se sont produites dans la le milieu informatique au Maroc. Si je ne suis pas, par nature, un polémiqueur, il y a cependant quelques réflexions qui me gènent. Par exemple, sur le group MarocIT, une remarque a été faite en ces termes :

Le .NET n'est pas reconnu actuellement comme un "standard
technologique international". Comme une initiative qui vise aux
développement des nouvelles technologies, c'est une bonne chose de
créer ce genre d'ONG. Cependant, si c'est sponsorisé par Microsoft
pour essayer d'imposer sa plateforme face à la concurrence farouche
des "open source", ca ca devient de la pub/sponsoring pur et simple
sans aucune valeur ajoutée pour notre pays !

Une autre remarque est carrément une attaque :

Je ne savais pas que .net était un "standard technologique international" ni que Microsoft avait le droit de faire de leur département marketing développeur une ONG!

Bien que le terme ONG me dérrange pour décrire un User Group, je ne comprend pas comment on a pu nous assimiler au département Marketing développeur de Microsoft. Comme je ne peux pas croire que quelqu'un va, par pure méchanceté nous attaquer avant même de savoir qui nous sommes, je suppose que quelque chose a dû être mal interprétée ...

Je peux penser à deux choses différérentes comme possible source de confusion :

1. Que l'on ait interprété .Net comme étant Visual Studio .Net

    Cela est le moins grave, car, effectivement, il est compréhensif que l'on puisse confondre la technologie .Net avec l'implémentation la plus utilisée sur cette technologie. Pour cela, je préfère, même si je pense que ceux qui lisent ces lignes le savent déja, préciser un peu ce qu'est la technologie .Net. Initiée par Microsoft, la technologie .Net, ou plus précisement la "Common Language Infrastructure", est une spécification proposée par Microsoft, HP,Intel, Fujitsu, ISE et Monash University, et standardisé par ECMA et ISO. Cette spécification est précise (Langage intermédiaire défini, spécification du Runtime, bibliothèques de classes, ...etc.). Les implémentations de cette technologie sont multiples, et les plus visibles sont la multitude de langages par différents éditeurs (Microsoft, Borland Delphi et C#, Sybase Python et PowerBuilder, ActiveState Perl, Fujitsu/Lahey Cobol et Fortran, les langages académiques tels que Mondrian, Haskell,  Component Pascal, Scheme, Mercury, ...etc) ainsi que le runtime Mono de Ximian (nouvellement filiale de Novell), les outils de développement (add-ins DB2 de IBM), et beaucoup d'autres.

2.Mon titre Microsoft Regional Director

   Si je n'ai pas souvent eu à m'expliquer sur mon titre, c'est que, en tant que consultant, je suis relativement connu dans le milieu, et même si je me sens proche de Microsoft, mes clients savent que je ne suis guère un fanatique des technologies de Microsoft. Ils savent que je suis totalement convaincu par .Net, mais que je suis là, avec eux pour d'abord aider au succès de leurs solutions, et que je ne recommanderais pas une technologie Microsoft si elle n'est pas un bon choix pour eux. Je comprend par contre que peut être, on puisse l'interpréter comme un titre donné à quelqu'un du département Marketing développeur de Microsoft (bien qu'un tel département n'existe pas en Afrique du Nord) ...

   Puisque je n'ai jamais expliqué, dans ce blog, ce qu'était un Regional Director, je le ferais en quelques lignes :

   - je suis un consultant indépendant (je gère mon propre business de consulting), je ne travaille pas chez Microsoft, ni pour le compte de Microsoft.

  •    je suis reconnu par Microsoft en tant que "expert" sur leur technologies
  •    j'ai des rapports d'échange d'information avec les équipes de développement de Microsoft (ceux qui développent les outils de développement plus précisément). Cela me donne accès à des informations confidentielles sur les technologies Microsoft, et me permet donc d'être très efficace sur leur technologies
  •    Je ne touche pas un centime de chez Microsoft (à part quand on me commande des interventions en tant que consultant ou speaker sur des évènnements)
  •    Je n'utilise pas que les technologies Microsoft (ne serais ce que pour des besoins d'intégration dans des milieux hétérogènes, ou pour des fonctionnalités où les technologies Microsoft ne sont pas bonnes ou n'ont pas les fonctionnalités voulues ...)

Au fait, c'est un titre qui m'honore, et qui est plus une reconnaissance de compétances de la part de Microsoft qu'autre chose...

La mode des sites Web au Maroc ...

La mode des sites Web battait son plein, partout, il y a quelques années. Au fait, peu importe quelle actions, petite ou grande, doit avoir son propre site Web. Ce qui n'était peut être pas une si bonne chose : il suffit d'aller sur le moteur de recherche de votre choix, et de taper n'importe quel mot, pour se retrouver avec des milliers de résultats. Même dans une même entreprise, on peut facilement ne plus s'y retrouver quand il y a un nombre de sites très élevé (j'en connais qui en ont des centaines).

Au Maroc, que dieu nou preserve d'une telle situation, il y a encore un manque d'information bien concret. Il m'est beaucoup plus facile d'avoir toute l'info que je veux sur Sydney ou Tokya, mais pas grand chose sur nos propres villes, sur nos administrations et entreprises ... Et il se trouve que beaucoup d'administrations (beaucoup moins d'entreprises) se sont mise à créer des sites Web il y a quelques années. Le problème est la quantité d'information et leur nature. Mais, on ne peux qu'être satisfait de cette orientation, même si nous autres accroc du online, on dira toujours, pas assez, pas assez vite, pas assez bien.

Le problème, au fait n'est pas dans la création des sites Web, mais dans la logique qui préside à leur création (le plus souvent). Par example, le projet E-Gov (si je peux me permettre de parler de projet), semble être compris comme une question de sites Web, et les administrations en créent pour mieux être dans l'ère du e-gov ... Une remarque très simple cependant peut montrer la betise d'une telle approche :

  • Ce qui fait que l'administration n'est pas très performante, peut-il être réglé par des sites Web ? Si on diagnostique la lenteur de l'administration même au niveau le plus superficiel, on se rendra compte que si les formulaires et autre paperasse remplie par le citoyen peut prendre un peu de temps et de dérrangement (par exemple un déplacement de laayone à Rabat) ce qui prendra disons jusqu'à 2 jours, le traitement des dossiers lui, et dans beaucoup de cas peut prendre des temps autrement plus longs (plusieurs mois, voire des années). Donc, si on veut augmenter la performance, et ce que la solution est de réduire les 2 jours ou les mois de traitement ... Pour ma part, je trouve que ce qu'il faut à l'administration, c'est automatiser les processus (gain de temps, de papier, de productivité et d'efficacité).
  • Une fois que nos systèmes sont capable de traiter les processus, l'information enligne deviendra une affaire simple (les données existent, il suffit de choisir l'analyse à en faire et d'exposer les résultats voulus)

Alors, attention à une mode qui peut s'avérer onéreuse, et finalement sans grand résultat notable ...

Le pinguin qui disparait dans le chapeau rouge!

Un courrier reçu par 2 de mes amis stipule que Red Hat arrête de produire, supporter ou produire des correctifs sur sa gamme Red Hat Linux. Mieux encore, ils encouragent tous les clients Rad Hat Linux de passer sur la gamme Red Hat Enterprise Linux (deux années pour le prix d’une seule) … voir liste des prix sur http://www.redhat.com/software/rhel/purchase/index.html qui montrent immédiatement des produits beaucoup plus cher que ceux de « l’empire du mal ».

Linux gratuit, enfin, à Licence gratuite (car le coût total de propriété concerne beaucoup plus l’exploitation que la licence), il en reste encore quelques distributions … probablement pour pas très longtemps, et juste pour mieux vous appâter avant de vous faire avaler l’hameçon … et là, comment leur échapperez-vous ?

Hosting the CLR Panel

These are my notes on the Hosting the CLR Panel. I will try to arrange them and make them more readable later on.

   On the panel, Mahesh Prakriya, Chris Brumme, Sean Trowbridge, Chris Brown, Dimitry Robsman(ASPNet), Jose Blakeley(SQL), Mark Alcazar (Longhorn), and Thomas Quinn from Microsoft, and Andrew Murchinson from IBM (DB2).

  
Q : Chris brown, What is the hosting API ?
A : First, the original hosting environment had 11 pages to describe the APIs, the whidbey one is 106 pages long. It is made of  COM interfaces to change the threading model, memory allocation, synchronization primitives, and other extensions to the regular interoperability methods ...

Q : Is IBM thinking of using an alternative implementation of CLR on its alternative plateform ?
IBM : The initial implementation is only for NT and thus will use the Microsoft Runtime. On next versions, We are thinking about Mono ...

Q : overhead on memory ?
A : overhead of several megs, ASPNET first app domain about 10 Mb on empty, subsequent around 1Mb ... Loader optimization to balance perf and overhead (single domain/multi app domains)

Q: Rule of thumb ?
A: single domain is faster for static, initialization ... multi domain, costs related to sharing and preventing side effects. Trying to make that better in whidbey.

Q: hosting 1.0 CLR. some client tried to use 1.1, and had problems. How to prepare for compatibility
A: office way, not have the config file (Clr version) makes the latest version load
   in SQL, ASPNet, DB2 biding to the specific version for stability and dynamically choosing the version to load

Q: SP calling an object defined on the host (ex: reporting services, write a formula in .Net, calling a ref to an object exposed by the host) ?
A: SQL, is value based.
   Fragments of the user code :
 - state

Q: programming model for SQL is limited. programming models in the particular hosting scenarios will be different ?
A: hoping others will behave

Q: something like CLS ? or informal guidelines ?
A: not aware of any attempts to standardization.

Q: unamaged code hosting the CLR
A: if it is just to deal with memory pressure, GC ... large amounts of unmanged, relating to some managed objects, inside whidbey it is possible to link those to GC
Q: How about synchronization ?
A: depends on the level at which the sync is needed

Q: Rule engine
A: reflexion emit, use compiler and load the class from file. what level ? a compiler, higher level language, persistant store (laughs) ... like Store procedure or user defined functions. light weight code generation APIs if no meta Data.

Q: legacy Win32 app. Host CLR and start using managed ?
A: COM Interop ... or IJW - if multi-app domains, then maybe to think about it.

Q: Licensing issue for hosting the CLR
A: none.
Q: ISV doing it ?
A: will not speculate.

Q: created a managed COM object, and make it not appear in the default app domain (VS calling the add in)
A: Threading models issues... launch app domain, and call from it ... obviously no good answer (just inventive ideas). in the longhorn timeframe might be solved
Q: in office, is it one runtime per process ?
A: one runtime per process
Q: hosting API is not part of CLI
A: should it be ?

Q: hosting vs MCpp
A: com interop vs MCpp, MCpp is less cosly
   hosting ? don't know exactely, but MCpp would look the way to go for less costs

Q: 120 pages can be scary
A: that stuff is used by SQL, not necessary to use all the interfaces

the v1 is what most apps will need.

hosting is really about extensibility and tuning how the runtime is used ...

DB2 created own class loader.

Q: ASPNet in addition to hosting CLR, has its hosting APIs.
A: app domains conveniently ...

Q: upgrading from 1.0 to 1.1 cused problems (regiis to get it back to old version)
A: taking it seriously, do not upgrade ...

Q: loading an assembly, what SQL does, what steps at creation, what steps at loading -is there NGEN
A: store user asemblies in the database. prefer to load from DB except those in GAC. intercept reference resolving and go get the assemblies (detach from database, attach somexhere else ...), CAS, well behaved and no conflicting parallel executions. At runtime, rely on runtime checks.NGEN not used (restriction to file system assemblies, ...

   DB2 looks up asemblies in the file system.

Q: Porting to managed or hosting
A: SQL millions of lignes of unmanaged, impossible to upgrade in short or midterm. hosting gives the exetensibility needed.

Q: different localization processes ?
A: match locale of the DB

Q: CLR GC control. objects that are machine wide shared.
A: CLR self tunning. hosting can control GC. machine wide shared not feasible.

Q: serevr vs workstation CLR
A: workload.if MT, server can add perf. Workstation useful in uniproc.

Hosting the CLR Panel

These are my notes on the Hosting the CLR Panel. I will try to arrange them and make them more readable later on.

   On the panel, Mahesh Prakriya, Chris Brumme, Sean Trowbridge, Chris Brown, Dimitry Robsman(ASPNet), Jose Blakeley(SQL), Mark Alcazar (Longhorn), and Thomas Quinn from Microsoft, and Andrew Murchinson from IBM (DB2).

  
Q : Chris brown, What is the hosting API ?
A : First, the original hosting environment had 11 pages to describe the APIs, the whidbey one is 106 pages long. It is made of  COM interfaces to change the threading model, memory allocation, synchronization primitives, and other extensions to the regular interoperability methods ...

Q : Is IBM thinking of using an alternative implementation of CLR on its alternative plateform ?
IBM : The initial implementation is only for NT and thus will use the Microsoft Runtime. On next versions, We are thinking about Mono ...

Q : overhead on memory ?
A : overhead of several megs, ASPNET first app domain about 10 Mb on empty, subsequent around 1Mb ... Loader optimization to balance perf and overhead (single domain/multi app domains)

Q: Rule of thumb ?
A: single domain is faster for static, initialization ... multi domain, costs related to sharing and preventing side effects. Trying to make that better in whidbey.

Q: hosting 1.0 CLR. some client tried to use 1.1, and had problems. How to prepare for compatibility
A: office way, not have the config file (Clr version) makes the latest version load
   in SQL, ASPNet, DB2 biding to the specific version for stability and dynamically choosing the version to load

Q: SP calling an object defined on the host (ex: reporting services, write a formula in .Net, calling a ref to an object exposed by the host) ?
A: SQL, is value based.
   Fragments of the user code :
 - state

Q: programming model for SQL is limited. programming models in the particular hosting scenarios will be different ?
A: hoping others will behave

Q: something like CLS ? or informal guidelines ?
A: not aware of any attempts to standardization.

Q: unamaged code hosting the CLR
A: if it is just to deal with memory pressure, GC ... large amounts of unmanged, relating to some managed objects, inside whidbey it is possible to link those to GC
Q: How about synchronization ?
A: depends on the level at which the sync is needed

Q: Rule engine
A: reflexion emit, use compiler and load the class from file. what level ? a compiler, higher level language, persistant store (laughs) ... like Store procedure or user defined functions. light weight code generation APIs if no meta Data.

Q: legacy Win32 app. Host CLR and start using managed ?
A: COM Interop ... or IJW - if multi-app domains, then maybe to think about it.

Q: Licensing issue for hosting the CLR
A: none.
Q: ISV doing it ?
A: will not speculate.

Q: created a managed COM object, and make it not appear in the default app domain (VS calling the add in)
A: Threading models issues... launch app domain, and call from it ... obviously no good answer (just inventive ideas). in the longhorn timeframe might be solved
Q: in office, is it one runtime per process ?
A: one runtime per process
Q: hosting API is not part of CLI
A: should it be ?

Q: hosting vs MCpp
A: com interop vs MCpp, MCpp is less cosly
   hosting ? don't know exactely, but MCpp would look the way to go for less costs

Q: 120 pages can be scary
A: that stuff is used by SQL, not necessary to use all the interfaces

the v1 is what most apps will need.

hosting is really about extensibility and tuning how the runtime is used ...

DB2 created own class loader.

Q: ASPNet in addition to hosting CLR, has its hosting APIs.
A: app domains conveniently ...

Q: upgrading from 1.0 to 1.1 cused problems (regiis to get it back to old version)
A: taking it seriously, do not upgrade ...

Q: loading an assembly, what SQL does, what steps at creation, what steps at loading -is there NGEN
A: store user asemblies in the database. prefer to load from DB except those in GAC. intercept reference resolving and go get the assemblies (detach from database, attach somexhere else ...), CAS, well behaved and no conflicting parallel executions. At runtime, rely on runtime checks.NGEN not used (restriction to file system assemblies, ...

   DB2 looks up asemblies in the file system.

Q: Porting to managed or hosting
A: SQL millions of lignes of unmanaged, impossible to upgrade in short or midterm. hosting gives the exetensibility needed.

Q: different localization processes ?
A: match locale of the DB

Q: CLR GC control. objects that are machine wide shared.
A: CLR self tunning. hosting can control GC. machine wide shared not feasible.

Q: serevr vs workstation CLR
A: workload.if MT, server can add perf. Workstation useful in uniproc.