Dégage, sale programmeur !
Et ouais, être développeur lorsqu’on a plus de 30 ans en France, c’est pire que d’être caissier à 40 ans. La plupart des gens qui passent 90% de leur temps à programmer vont donc s’arranger pour qu’on les voit comme des ingénieurs d’études, des experts techniques, des chefs de projets, des architectes solution, des consultants, etc. Le top, quand on est un pauvre prestataire d’une SSII en mission pour une banque, et que l’on passe ses journées à coder, c’est de raconter à tout le monde qu’on est INGENIEUR DANS LA FINANCE. Oui oui.
C’est assez terrible, mais il semblerait qu’on n’y puisse pas grand chose.
Cecil.Decompiler : Un décompilateur .NET OpenSource
Jean-Baptiste Evain vient de l’annoncer sur son blog : il travaille actuellement sur un nouveau projet particulièrement ambitieux appelé Cecil.Decompiler. Comme son nom l’indique, il s’agit d’un décompilateur .NET basé sur Mono.Cecil (du même auteur) qui permettait déjà de manipuler le langage intermédiaire du CLR.
Quelques jours avant l’annonce officielle, Jb a organisé un Code Camp en Ardèche (près de Lyon) en invitant quelques personnes à travailler avec lui sur ce decompiler. L’idée était avant tout de passer un bon moment, de faire avancer découvrir le projet, mais aussi d’intéresser et d’encourager d’éventuels futurs contributeurs à rejoindre l’initiative.
Comme j’ai eu la chance de faire partie des petits privilégiés, je vais essayer de vous livrer mes impressions à chaud.
(more…)
Le futur de C# ?
Le problème de la PDC, quand on y est pas et qu’on est curieux, c’est qu’il faut attendre les vidéos des sessions pour savoir ce qui s’est vraiment passé. Symptôme de naïveté : croire qu’on pourra s’en sortir grâce à la blogosphère. Sérieusement, et je reste sur l’exemple spécifique de C# 4.0, 80% des billets qui sont sortis jusqu’à présent à ce sujet ont simplement contribué à rendre l’écho plus pénible. Un peu partout on peut tomber sur des réactions constructives du genre :
The dynamic keyword is going be abused so much… C# is on its way to becoming PHP.
Introduction à Mono.Cecil : Implémenter INotifyPropertyChanged
Vous allez probablement m’en vouloir à force, mais j’ai décidé de continuer mes expériences autour d’INotifyPropertyChanged
. Cette fois-ci, en utilisant Mono.Cecil pour faire un peu d’IL rewriting. Où comment tisser un aspect sans utiliser de framework AOP. Comparée à celle basée sur PostSharp.Laos, cette solution a un inconvénient majeur : elle est plus roots.
En revanche, aucune autre méthode à ma connaissance ne permet d’obtenir un tissage aussi fin. Par fin, j’entends spécifique, propre, non pollué par le code que génèrent les outils d’AOP classiques pour supporter les mécanismes d’interception. Donc les performances seront à la clé puisqu’une fois l’assembly retravaillé avec Cecil, il ne sera plus possible de faire la différence entre son code IL et celui qui aurait été généré si nous avions implémenté INotifyPropertyChanged
à la main. Le développement aura juste été un peu plus cher…
ALT.NET en France : Mono à Paris pour la 7ème rencontre
Mardi dernier a eu lieu la réunion ALT.NET parisienne du mois de novembre. Généralement, on s’arrange pour que cela tombe le premier mercredi de chaque mois mais cette fois ci nous avons préféré supporter une exception pour bénéficier de la présence de Jean-Baptiste Evain, de passage à Paris. Ce dernier travaille à plein temps pour Novell, en tant que contributeur sur le projet Mono. Oui, vous avez le droit d’être jaloux, en comptant le QA ils doivent être une trentaine. Dans le monde.
(more…)
Utiliser l’AOP avec PostSharp pour implémenter INotifyPropertyChanged
J’ai ce billet dans mes drafts depuis un moment, et il serait peut-être bon de l’en sortir avant qu’il ne soit trop tard… Dans un post récent, je parlais de l’interface INotifyPropertyChanged
, en donnant un exemple d’implémentation basée sur les lambda expressions et les expression trees qui permettait d’obtenir une solution fortement typée.
L’AOP peut également être une solution, et peut-être même le meilleur compromis pour peu que l’on en tire partie correctement. Suite à un commentaire de Jb, j’ai essayé de voir ce que pouvait donner l’utilisation d’un tisseur statique comme PostSharp dans ce cas précis.
(more…)
INotifyPropertyChanged sans les strings, ça vous dit ?
INotifyPropertyChanged
est une interface mal nommée, mais utile. Elle est principalement utilisée lorsqu’on veut mettre en place un databinding bi-directionnel entre un objet et un contrôle Winforms. Le contrôle graphique est par défaut capable de mettre à jour la ou les propriétés de l’objet auquel il est bindé. Par contre, pour qu’il puisse lui-même se mettre à jour lorsque l’objet sous-jacent est modifié, il faut que ce dernier lance l’évènement PropertyChanged
défini par l’interface INotifyPropertyChanged
. Et pour que… OK, j’arrête, vous savez déjà tout ça.
(more…)
ALT.NET en France : Encore et toujours des rencontres à Paris
Nous avons dépassé la mi-septembre, mais j’aimerais dire deux mots à propos de la rencontre ALT.NET Parisienne qui a eu lieu au début du mois, comme tous les mois. Il y avait Robert Pickering, Julien Lavigne du Cadet, Mathias Kluba, Gauthier Segay, Maxence Dislaire, Romain (dont j’ai oublié le nom), et moi-même. J’ai trouvé la réunion particulièrement intéressante, même si nous étions un peu moins nombreux que la dernière fois.
(more…)
Mais tu fais quoi, en fait ?
Je pense avoir une idée très précise de ce qu’est mon métier. En fait, pour savoir comment travailler, ça me parait essentiel. Il ne s’agit pas de constater ce que l’on fait, mais plutôt de comprendre son rôle, d’en connaitre les contraintes et les objectifs ; d’en percevoir l’utilité. Ca peut aider lorsqu’on intègre une équipe où le VCS est un dossier partagé sur \\srv-sources
, ou bien lorsqu’on découvre une boite dans laquelle les stagiaires écrivent des compilateurs pour s’amuser. En brainfuck.
Si je sais ce qu’est mon métier, je devrais être capable de l’expliquer, n’est-ce pas ?
Ca dépend. Il y a quelques semaines j’ai dîné avec mes parents.
(InvokeRequired + Invoke) < SynchronizationContext
Tous les développeurs savent qu’il faut être prudent lorsqu’on est en Corée du Nord ou lorsqu’on s’amuse avec les Winforms dans un contexte multi-threads. On ne doit pas, plus précisément, accéder à un contrôle graphique à partir d’un thread différent de celui dans lequel il a été créé. Ceux qui ont essayé (tous, je crois) ont découvert qu’une InvalidOperationException
était levée :
(more…)
271 comments