Dot.Blog

C#, XAML, Xamarin, UWP/Android/iOS

Une bande de hackers chez Microsoft !

Nous ne sommes plus le 1er avril donc il s'agit d'info et non d'intox...

En effet, Microsoft a engagé, depuis un moment déjà, des hackers parmi les meilleurs.

Pourquoi ? De la même façon que Fichet-Bauche emploie d'anciens taulards spécialisés dans l'ouverture des coffres et autres portes sécurisés : pour valider en interne la solidité des solutions de sécurité retenues et apporter des conseils sur les améliorations possibles.

Cette équipe possède un blog, qui commence à s'activer un peu. Il est donc bon d'y aller faire des petits tours pour se ternir informer. Dans le dernier billet publié on y apprend par exemple la création du site www.HelloSecureWorld.com, un site Microsoft dédié à la sensibilisation sur les problèmes de sécurité. Ludique et très animé, cela vaut une visite pour vous détendre. 

Bon Surf !

Office Open XML enfin standardisé

Après un an et demi de bataille, Microsoft vient d'annoncer la standardisation par ISO/IEC de son format Office Open XML. (l'annonce MS ici).

Connu aussi sous le nom de OOXML ou OpenXML, il s'agit d'un format de stockage composite utilisable par de nombreuses applications utilisant la notion de "document". Les traitements de texte, tableurs, les présentations de type PowerPoint sont bien entendu les condidats tout trouvé pour exploiter cette norme basée sur XML et permettant l'échange autant que la manipulation des documents sans passer par des formats propriétaires.

C'est en soi un grand progrès, même si techniquement c'est encore un moyen de mettre XML à toutes les sauces. Mais ce format, pour être verbeux n'en est pas point une évolution majeure du point de vue conceptuel. Les utilisateurs de GED et même les développeurs désirant mieux intégrer les documents externes dans leurs applications pour les cataloguer, les archiver, les manipuler, y trouveront leur compte.

Les différents "bouts de XML" constituant un document OpenXML sont regroupés dans un conteneur, un package "Open Packaging Convention" qui n'est autre qu'un (pas tout jeune) fichier Zip. Le conteneur regroupe aussi les différents fichiers annexes formant le document telles les images par exemple.

Saluons ainsi la naissance d'une norme ouverte et facilement exploitable annonçant l'ère d'une vraie interopérabilité entre les différents logiciels et OS pour une partie essentielle des informations produites par les utilisateurs : les documents (textes, présentations, feuilles de calcul majoritairement).

D'un autre côté il est intéressant de noter comment notre profession qui est l'illustration même du terme "high tech" est capable de faire de l'innovant avec des formats aussi vieux et simples que le sont XML (issu de SGML, descendant de GML créé en...1960!) et Zip (années 80). Cela démontre peut-être que nous atteignons un palier de maturité : celui où on commence à plus se concentrer sur les concepts que sur le dernier zinzin à la mode qui oblige à tout reconcevoir. Plutôt une bonne chose donc.

Une révolution technique annonce la mort des interfaces graphiques

En effet, de nombreuses études menées tant par IBM que par SUN montrent que, le chiffre est déroutant de précision, 98,54 % de la puissance d'un ordinateur moderne est consacrée à des tâches qui lui sont propres au lieu de faire ce pour quoi on le paye : le travail de l'utilisateur.

Sans entrer dans les détails de ces études, résumons l'essentiel en indiquant que cette puissance "envolée", voire "volée" par les éditeurs de logiciels du monde entier aux possesseurs de PC, est consacrée en majorité à la gestion de l'interface graphique, tant par l'OS que par les applications dont 82,12% du code est consacré à la gestion des fenêtres et autres artifices graphiques.

Ne parlons pas des dernières modes comme Flash de Adobe ni même de Silverlight de Microsoft et encore moins des interfaces graphiques de Ubuntu ou de Vista, ces "goinfres de Ghz" sont hélas aussi des monstres affamés de Ram !

C'est là que la récente publication d'une équipe de chercheurs du MIT vient troubler la fête de tous ces "gigavores". Le sujet : "A simple and efficient user interface for the future". Ni plus ni moins, ils veulent nous montrer la voie à suivre pour les années à venir afin de concevoir des interfaces utilisateurs efficaces, économes en Ram et en puissance machine. Quel est le secret ?

Difficile de tout expliquer, les concepts sont très novateurs et par force réclament un peu de recul que nous n'avons pas encore pour tout comprendre. On se rappelle du temps qu'il aura fallut aux interfaces à fenêtre pour s'imposer alors que leur création par le PARC de Xerox datait déjà de plusieurs décennies ! Il est bien entendu évident que déjà les débats fusent sur le Web "faut-il réécrire toutes les applications ?", "Cette nouvelle norme sera-t-elle une mode?", etc. Nous en avons l'habitude, toutes les idées nouvelles sont ainsi contestées par l'arrière garde de ceux que nous appelons les "dinosaures"...

En bref, le principe exposé par J. Peter et ses collègues repose sur des principes simples (mais odacieux), notamment en utilisant un affichage constitué d'une matrice de 80 caractères sur 25 lignes contrôlé par un pilote matériel contenant en mémoire morte le dessin des lettres de l'alphabet. Les fondeurs tels qu'Intel et AMD se disent près à fabriquer les nouvelles puces, mais les difficultés techniques sont telles que personne n'osent encore avancer de prix pour ces merveilles.
Du côté de la programmation il semble que les langages les plus modernes prennent un sacré coup de vieux ! En effet, pour contrôler l'interface visuelle, il sera nécessaire de supporter un jeu d'instructions particulier. Des exemples de code illustrent l'article du MIT, on peut y voir des combinaisons de type "GotoLine 25" ou "GotoCol 45" le tout imbriqué dans des appels à une mystérieuse classe appelée "Console".

Des prototypes de PC supportant cette technologie innovante devraient bientôt voir le jour, c'est en tout cas ce que laisse supposer l'air entendu et satisfait qu'affichait le patron d'Apple présent lors de la conférence donnée par J.Peter et ses collègues du MIT.

La mort des interfaces graphiques gourmandes en Ram et en puissance semble bien être pour bientôt... Le progrès ne s'arrête pas, ainsi va le monde.

 

Joyeux 1er avril à tous !

TDD utopie ou géniale avancée ?

Perdu dans mes pensées lors d'une pause amplement méritée je pensais à la méthode TDD et j'ai eu envie de vous livrer le fruit de mes réflexions. Après tout, bloguer c'est ça aussi.
...C'est sûr je vais passer pour un ET, aucun être humain normalement constitué n'irait penser à de telles choses pendant une pause. Mais j'assume !

Le Test-Driven Development ou développement piloté par les tests, n'est pas réellement un sujet récent, cette méthodologie est dérivée du concept "tester en premier" de l'Extreme programming, lui même une forme dérivée de l'Agile Software Development datant de 1996, dans la même veine que Scrum ou RAD en 1991, ce qui ne nous rajeunit pas.
Tout cela pouvant remonter certainement au néolithique de proche en proche. Par exemple taper sur la tête de son voisin avec la massue toute neuve qu'on vient de fabriquer histoire de tester si elle sera assez solide pour aller à la chasse était certainement le grand début de l'Agile ou piquer un silex tout taillé à un copain est finalement le début de la réutilisation voire du RAD. Dieu lui-même en reprenant les plans de fabrication et une côte d'Adam pour faire Eve faisait de la réutilisation et du design pattern. Confondre grand ordonnateur et grand ordinateur est un exercice de style osé, j'en conviens.

Bref le TDD, comme toute méthodologie, n'est que le fruit d'une lente maturation au fil des ans. Et parmi toutes celles proposées ces 20 dernières années c'est celle qui apparaît la plus sage, la mieux adaptée. Elle recentre le développement sur l'essentiel : le besoin réel et donc l'utilisateur. Techniquement elle prône une économie de mouvement évitant les errances : on ne code que ce qui est nécessaire pour que ça marche et surtout pas plus. On s'éloigne ainsi des grandes généralisation, fantasme d'informaticien, donnant lieu à des développements complexes et coûteux qui, une fois terminés, sont déjà obsolètes.

Mais est-ce une nouvelle utopie et subira-t-elle le même sort que toutes les autres méthodes de développement (à savoir se limiter à quelques termes pompeux sur les propositions commerciales et à quelques discussions autour des machines à café) ?

UML est un bon exemple du triste sort réservé aux meilleures idées de nos têtes pensantes. Même si cette mode tend à passer (remplacer par d'autres) il fut un moment ou toute "propal" se devait de faire apparaître ce terme comme toute lessive se doit au minimum d'avoir la mention "deux en un" (voire plus) sur son emballage pour se vendre.

Avant que d'excellentes méthodes comme TDD puissent s'imposer, il sera donc nécessaire de changer les mentalités, celles des dirigeants de SSII et de leurs commerciaux qui se retranchent souvent derrière la loi du marché et de la concurrence pour offrir au client ce qu'il demande au lieu de lui conseiller ce dont il a besoin, et celle des clients qui ne peuvent continuer à se dédouaner de leur ignorance s'ils désirent obtenir des logiciels fiables, maintenables et adaptés à leurs besoins et ce au meilleur prix (mais pas en dessous, la qualité se paye). 

Un long voyage nous attend donc avant qu'un tel bouleversement se produise, et TDD, comme l'XP ou l'Agile development et bien d'autres dont nous avons tous oublié les noms, finira peut-être aussi dans les nymbes brumeuses où s'évanouïssent les idées trop en avance sur les mentalités...

En attendant, essayez de développer selon TDD :  vous y gagnerez en efficace et en qualité.
Visual Studio se plie fort bien au Unit Testing, mais beaucoup moins bien au TDD. Il est fort simple de créer un test pour une méthode existante mais pas l'inverse, base du TDD. Néanmois, avec un peu d'imagination, il est tout à fait possible de créer un squelette de classe, d'y ajouter une méthode ne faisant rien puis de générer le test unitaire pour enfin revenir sur l'implémentation de la méthode. Il n'y a pas de temps perdu, il n'y a qu'à changer un peu l'ordre dans lequel les choses sont faites.

Essayez, vous verrez, c'est étonnant comme le code final d'une classe est assez différent de celui qu'il aurait été créé par la méthode "classique".

Happy coding !

Echange standard de moteur...

Il ne s'agit pas du moteur de ma voiture, elle va bien, merci, mais du moteur de blog du présent site.

Je viens de passer à BlogEngine 1.3 après quelques hésitations. Mais après quelques sueurs froides tout refonctionne normalement ! La compatibilité ascendante est donc bonne. Si vous utiliser une version antérieure n'hésitez donc pas à changer...

Toute la soirée le blog a été hors-ligne pour maintenance, je m'en excuse auprès de mes amies les chauve-souris Smile

ADO.Net Entity Framework - une série d'articles en US

Stefan Cruysberghs a publié (en anglais) une série de trois articles (récents) sur l'Entity Framework qui proposent un tour d'horizon assez intéressant de cette technologie.
En voici le sommaire (avec accès direct aux articles): 

Part 2 :

Part 3 :

Si vous préférez accéder aux trois articles séparément :

Bonne lecture !

C# fait la pluie et le beau temps !

La pluie et le beau temps, je parle de la météo et de ma station Lacrosse, vous l'aurez compris.
Et quand un geek possède un tel engin, par force il sort son compilateur pour bricoler. Inévitable.

Il tripote, il essaye et par force il y a des ratés, donc besoin de réparer les fichiers historiques issus de la machine.

Comme je sais n'être pas le seul à posséder une Lacrosse série 2300-2350 et que réparer le fichier "history.dat" est certainement un besoin courant et non comblé par les logiciels fournis avec la station, voici deux utilitaires :

  • History Inspector
    pour inspecter, modifier les données, consolider les données du pluiviomètre, ...
  • DatMerger
    pour fusionner deux historiques avec consolidation des données.

Il s'agit de logiciels fournis à titre expérimental, sans aucune garantie ni aucun support même si je reste à l'écoute de vos retours.

Le code source est fourni, deux projets VS 2005 (tout le monde n'a peut-être pas encore VS 2008) en C#.
Les séquences de lecture/écriture ont été reprises du logiciel eWs2300 d'Antoine Guilmard avec quelques modifications (donc ne mélanger les sources!) que je tiens à remercier pour la publication de son code.

C'est gratuit, avec le source. Les exécutables sont fournis aussi pour ceux qui n'ont pas VS2005/2008 sous la main. Mais il faudra alors installer le runtime de .NET 2.0 au minimum (téléchargeable gratuitement sur les sites de Microsoft).

Le tout est à télécharger à cette adresse : [consultez la page "Ressources" du site e-naxos en cliquant sur le logo "e-naxos" en haut à droite !]

La météo de monsieur Plus

Pour les fans de méteo et de connectique de zinzins électroniques, j'ai mis à jour ma page "La météo de Royan-Pontaillac en direct". Un nouveau diagramme mensuel automatique est ajouté avec moultes indications dont la rose des vents dominants.

Au passage j'ai conçu un programme C# qui permet de recoller des fichiers history.dat de HeavyWheather pour les fusionner le tout en remettant d'équerre certaines infos (l'enregistrement de fin qui parfois est désynchro et internent à heavy weather d'ajouter de nouvelles lignes à l'historique. Les intéressés n'ont qu'à me laisser un commenaire sur ce billet..).

ADO.Net Entity Framework pour VS 2008, comment en profiter ?

La question m'a été posée plusieurs fois alors un petit billet s'impose : Comment installer l'Entity Framework pour Visual Studio 2008 ?

L'Entity Framework je vous en ai déjà beaucoup parlé ici, j'ai même puplié il y a quelques temps un long article sur la question (voir sur le blog dans le menu "pages" à droite, les articles à télécharger). C'est une fantastique révolution, une façon réellement nouvelle de marier le monde des données SQL et celui des objets. Mais encore faut-il avoir les outils pour "jouer" avec !

Et quand on n'est pas un spécialiste de la recherche sur le Web ou que l'on n'est pas anglophone (ce qui est hélas le cas en france, pays lanterne rouge en langues étrangères...) c'est un peu difficile de se dépatouiller, c'est vrai. Mais je suis là :-) Alors voici ce que vous devez installer et où aller le chercher :

  1. Le Framework .NET 3.5 (installé avec VS 2008 normalement)
  2. L'ADO.NET Entity Framework beta 3 (à ce jour la plus récente)

 Ca, c'est le minimum vital (pour VS 2008).

Ensuite vous pouvez compléter par les téléchargements suivants :

Complétez le tout par mon article sur Linq et l'Entity Framework en le faisant précéder par celui que j'ai écrit sur les nouveautés syntaxiques de C# 3.0 (indispensable pour comprendre certaines tournures de Linq). Vous pouvez aussi consulter les billets de ce blog consacré à cette question :

Avec tout ça je pense que serez parés pour cette nouvelle aventure !

Merci qui ? .. Allez pas la peine, je le fais de bon coeur, alors Stay Tuned !