Emotive Neuroheadset

28. January 2011 20:01 by Renaud in   //  Tags:   //   Comments (0)
L'un des nombreux avantages d'être stagiaire au MIC, c'est qu'on a accès à des technologies assez énorme :) On vient juste de faire l'acquisition d'un neuroheadset d'Emotive qui enregistre l'activité du cerveau et permet globalement de faire de vos émotions et de vos pensées des triggers que l'on peut associer à des actions. Y'a quelques années on rigolait des gens qui ne pouvaient plus se passer d'une télécommande pour changer de chaîne... bientôt vous ne pourrez même plus imaginer devoir en toucher une! Vous n'aurez qu'à penser à passer à la chaîne suivante :)

Semaine tranquillou!

26. January 2011 20:01 by Renaud in   //  Tags:   //   Comments (0)

Non je déconne. Veuillez m'excuser du peu d'activité sur ce blog mes chers lecteurs assidus que vous êtes (et je sais que vous êtes rares, c'est vous dire si vous m'êtes chers!), je dois vous avouer qu'en ce moment je manque un peu de temps pour écrire de beaux articles. Faut dire qu'en deux semaines on a pas arrêté au MIC:

  • boulot du stage proprement dit
  • bricolage de quelques applications WP7 (parce que c'est cool d'avoir une appli sur le market)
  • penser à étudier un peu pour passer une certif!
  • plus un dernier truc qui va encore me prendre du temps et qui arrive très très bientôt :)

On ajoute à ça pour le compte de l'école:

  • boulot pour le projet de C++
  • rédaction des synthèses hebdomadaires
  • rédaction d'un premier descriptif de stage pour vendredi
  • et pour ce même vendredi, rédaction d'une première partie du TFE.

Bref, je suis absolument overbooké! Mais malgré ça, j'vais vous trouver le temps de vous rédiger un petit article sur MEF avec un exemple de projet judicieux qui sera du plus bel effet, croyez-moi! Ca arrivera certainement ce weekend ;) A part ça, j'ai posté ma première application sur l'App Hub. Cette application affiche votre biorythme du jour et s'intitule sobrement... Biorythme! Votre biorythme c'est votre horoscope mais en mieux. Réfléchissez-y, ça ne coûte que 0,99€ :) Demain je clôturerai ma vérification d'identité et mon application pourra rentrer en phase de test! Verdict très bientôt! On sent que le stage est bien lancé! Le premier semestre de cette année scolaire a été cool, mais maintenant c'est du sérieux!

L'instruction using en C#

17. January 2011 16:01 by Renaud in   //  Tags:   //   Comments (0)

Lors d'un gros projet, il est important pour garder de bonnes performances de bien manager les ressources. Une astuce pour éviter bien des problèmes avec l'utilisation des classes implémentant l'interface IDisposable, est d'utiliser l'instruction using. Prenons deux cas problèmatiques: Votre application ouvre des fichiers en lectures avec un StreamReader. Ces fichiers sont dès lors locké et ne peuvent plus être accédé en écriture. Si pour une raison le code  n’atteint pas l'appel à Dispose(), les ressources ne seront pas libérées. Cela signifie que votre fichier restera locké jusqu'à la fin d'exécution de votre code. Un deuxième exemple, avec des SqlConnection cette-fois. Si votre code n'atteint jamais Dispose() ou Close(), vos connections resteront actives même si une exception a eu lieu pendant une requête. Le problème est que le risque d'atteindre la limite du pool de connexion existe, et à ce moment votre base de données n'acceptera plus aucune connexion. Pour illustrer la bonne pratique à suivre, nous allons utiliser un StreamReader:

StreamReader streamReader = new StreamReader("monFichier");
String line;
while((line = streamReader.ReadLine()) != null)
{
       Console.WriteLine(line);
}
streamReader.Dispose();

Dans cet exemple, même si les risques sont faibles, la dernière instruction pour ne jamais être atteinte. Dans ce cas on se retrouvera avec un fichier locké. Une solution plus acceptable est d'utiliser les try-catch:

StreamReader streamReader = null;
try
{
    streamReader = new StreamReader("monFichier");
    String line;
    while((line = streamReader.ReadLine()) != null)
    {
        Console.WriteLine(line);
    }
}catch(Exception e){
    // Gestion des exceptions
}finally{
     streamReader.Dispose();
}

Dans ce cas-ci, quoi qu'il arrive on libèrera toujours la mémoire. Cette solution est équivalente à la dernière que je vais vous présenter, mais vous allez voir qu'il y a moyen de faire un code beaucoup plus joli! :)

using(StreamReader streamReader = new StreamReader("monFichier")){
    String line;
    while((line = streamReader.ReadLine()) != null)
    {
        Console.WriteLine(line);
    }
}

Et voilà, ça suffit. L'instruction using s'occupe d'appeler Dispose() sur les objets dont elle s'occupe dès qu'on sort du bloc d'instruction. Cette pratique est recommandée pour toutes les classes implémentant l'interface IDisposable! A savoir: cette instruction peut aussi s'utiliser pour des cas plus complexes et augmentera fortement la lisibilité du code. Vous pouvez par exemple sans problème gérer plusieurs objets comme ceci:

using ( StreamReader r1 = new StreamReader("monFichier1"),
                     r2 = new StreamReader("monFichier2"))
{
    Console.WriteLine( r1.ReadLine());
    Console.WriteLine( r2.ReadLine());
}

Premier contact avec l'échantillon

15. January 2011 21:01 by Renaud in   //  Tags:   //   Comments (0)

Un stage en entreprise c'est bon quand tu participes vraiment à la vie de l'entreprise et qu'au final tu ne te sens pas comme un simple stagiaire. C'est d'ailleurs là tout l'intérêt. Je pense être assez bien tombé de ce point de vue. Ce vendredi avec Suzanne, on est allé voir les résidents du Sacré-Coeur à Ciney. Finalement je ne les ai pas vu pratiquer, c'était pas le bon jour, mais on a discuté avec Alexandra, leur coach informatique, et Anne Jadin, directrice de l'établissement. J'ai pu leur présenter vite fait l'idée de l'éditeur. Apparemment les aînés sont très demandeurs, ça pourrait vraiment les motiver à s'intéresser aux nouvelles technologies. J'ai assisté aussi aux discutions plus business, c'était sympa même si j'ai pas tout entravé niveau acronyme. A la base, la santé, c'est pas trop mon domaine! Bref, la journée s'est terminée assez vite autour d'un verre :)

Pas seulement coder!

11. January 2011 21:01 by Renaud in   //  Tags:   //   Comments (1)

Mardi 11, j'me rends compte que je ne vais pas seulement coder durant mon stage. Pour commencer, il a fallu installer le serveur (HP ProLiant G6) tout neuf dédié au projet. Il a été baptisé Juventix, en référence à la jeunesse, et aux TICs (devenues tiX).

HP ProLiant G6

J'irai refaire une photo plus nette de la bête, avec le flash cette fois-ci :) Là-dedans y'a 5 x 500Go de dd + 8Go de RAM. On a mis 2 dd en RAID-1 pour l'OS (Windows server 2008 Standard) et les 3 autres disques en RAID-5 pour la bdd. L'après-midi, rendez-vous avec Suzanne pour discuter de mon rôle dans le projet. Deux choses:

  1. Une partie du projet a été sous-traitée par une société extérieure. Cette société a fourni un template pour aider à la création du projet, et ce template utilise des librairies dont ils sont propriétaires. A ce jour, on ne souhaite plus collaborer avec ces gens. Il faut donc coder un workaround à ces librairies pour ne plus être dépendants de leurs mises à jour.
  2. Nos amis utilisateurs et béta-testeurs du Sacré-Coeur de Ciney publient un journal trimestriel et aimeraient avoir un outil pour participer à la rédaction de ce journal. On va donc mettre en place un éditeur de texte simplifié avec quelques styles, juste ce qu'il faut pour faire un bel article!

User Story

10. January 2011 21:01 by Renaud in   //  Tags:   //   Comments (0)
Lundi 10, arrivée au MIC juste à temps, à 8h30; pour un premier speech de Ben Piquard. Je suis installé dans la salle de meeting avec 2 autres stagiaires. C'est le moment de nous expliquer les bases:
  • ambiance décontractée
  • autonomie => responsabilités
  • tout un tas de ressources à notre disposition
On attend beaucoup de nous, ça met la pression, mais on nous donne ce qu'il faut pour qu'on s'en tire bien. Après l'intro de Ben, on a eu droit à un petit mot de David Hernie (qui m'a vivement conseillé de tenir ce blog à jour quotidiennement [mea culpa, j'ai déjà 2 jours de retard comme vous pouvez le voir], parce que ce sera un putain d'aide-mémoire le jour venu où il faudra commencer la rédaction de mon TFE), et pour finir de notre coach: Pierre Mengal. Pierre, c'est celui qui va tout faire pour nous aider à mener notre stage au mieux, nous guider et nous soutenir en cas de conflit. Bon évidemment faut pas jouer au con non plus :) C'est bon de sentir qu'on a un soutient derrière, et il joue parfaitement son rôle. Même s'il doit clairement être overbooké, jusqu'à présent j'ai toujours reçu des réponses très rapide aux mails que je lui ai envoyé! Bref, on a discuté avec Pierre jusqu'à midi en terminant par une brève intro sur le multi-threading. Ca n'a pas l'air bien compliqué :) Après midi, rencontre avec la maître de stage. Elle m'a présenté vite fait le projet Keep-In-Touch que je connaissais déjà pour l'avoir déjà vu à la Journée Découverte Entreprise.

Un début

9. January 2011 21:01 by Renaud in   //  Tags:   //   Comments (1)

Microsoft Innovation Center

Pour débuter ce blog, il aura fallu attendre le début d'une nouvelle année (2011 en l'occurrence), et le début de mon stage. Nous sommes le 9 janvier, et c'est demain, lundi, que je ferai mon premier jour au Microsoft Innovation Center de Mons en tant que stagiaire pour le projet Keep-In-Touch de Suzanne Kieffer.

C'est drôle parce que c'est à la fois excitant et stressant. Les gens sont assez relax, même si il savent comment te mettre la pression. Quand tu les as en face tu sens qu'ils ont plein de trucs à t'apprendre, c'est assez intimidant. J'suis du genre timide, et eux veulent des gens avec des personnalités originales. C'est doublement angoissant de le savoir.

Enfin, je ferai de mon mieux! Je ne m'inquiète pas pour le niveau technique, je pense que je serai à la hauteur. Si ça marche pour moi, ce sera une bonne opportunité pour m'ouvrir des portes! Et puis y'a de fortes chances qu'on puisse se faire quelques parties de Xbox 360 pendant les pauses. J'crache pas desssus: j'ai toujours voulu jouer à Guitar Hero sur console!

TextBox

About the author

I'm a developer, blog writer, and author, mainly focused on Microsoft technologies (but not only Smile). I'm Microsoft MVP Client Development since July 2013.

Microsoft Certified Professional

I'm currently working as an IT Evangelist with an awesome team at the Microsoft Innovation Center Belgique, where I spend time and energy helping people to develop their projects. I also give training to enthusiastic developers and organize afterworks with the help of the Belgian community.

MIC Belgique

Take a look at my first book (french only): Développez en HTML 5 pour Windows 8

Développez en HTML5 pour Windows 8

Membre de l'association Fier d'être développeur

TextBox

Month List