About Sebastien Warin

Issue de l'école SUPINFO, vainqueur en 2008 et 2009 de la finale française de l'Imagine Cup, gagnant du « British Telecom Innovation Award » et du « Live Services Award » lors des finales mondiale de 2008 et 2009, Sébastien Warin est actuellement Creative Technologist chez Publicis ETO et enseignant à l'ISEN (école d'ingénieur).

Ses compétences couvrent aussi bien les domaines de l’électronique, du développement (technologies .NET) et de l'IT (Infrastructure et Cloud Computing) reconnues par différentes certifications (MCP, MCTS, MCPD, CCNA) et comme Microsoft MVP (Most Valuable Professionnal) en 2011 sur la technologie Windows Azure. Speaker pour Microsoft et auteur dans des magazines spécialisés, ses centres d'intérêts portent sur le Cloud, l'intelligence artificielle, la domotique, la cryptologie, la robotique et plus généralement les nouvelles technologies.

Depuis 2014, il travaille activement sur la plateforme Constellation, plateforme d'interconnexion des applications, services et objets connectés.

May.25

Newsletter au Laboratoire Microsoft

Mon cher ami Benuts et moi même sommes fier de vous annoncer en exclusivité la sortie prochaine (fin de semaine?) de la Newsletter au Laboratoire Microsoft (www.labo-microsoft.com) !!! 😀

Benuts se sera occupé de faire la « template », en gros le design et la forme de la Newsletter (le coté visible) et moi comme à mon habitude, la partie background, soit non visible, bref le systeme de génération et d’envoi de la newsletter…

La 1er newsletter sera envoyé à plus de 30.000 destinataires (inscrit sur le site) en fin de semaine théoriquement…

Coté technologique, j’ai utilisé l’ASP.NET 2 pour faire l’application de génération et d’envoi ! J’attire votre attention sur le fait que maintenant, en ASP.NET 2, les classes pour le Mail ne se trouvent plus dans le namespace System.Web.Mail (enfin si, mais le compilo nous informe que cela est obsolete) mais sur le namespace System.Net.Mail !

On y trouve notamment, la classe SmtpClient pour l’envoi et surtout la classe MailMessage pour la génération de l’email. Les propriétés To, CC et Bcc sont maintenant des collections de la classe MailAddress !
De plus, la fonction SendAsync() de la classe SmtpClient fait son apparition, nous permettant d’envoyer le mail de facon asynchrone, donc de facon détaché au thread qui l’appel, bref, comme dirait Redo : QUE DU BONHEUR 😀 !

Pour les curieux : la bible MSDN sur le System.Net.Mail
Et biensûr le labo ICI !!!!

Have a nice night 🙂

Dev,.NET

May.19

Les collections génériques sous .NET 2.0

Résumé:
Dans cet article, nous allons voir les collections génériques introduites avec le nouveau framework .NET 2.0. C’est l’espace de noms (namespace) System.Collections.Generic qui contient les interfaces et classes qui définissent des collections génériques permettant aux utilisateurs de créer des collections fortement typées. Nous verrons dans cet article les différentes collections génériques proposées par le framework 2.0 (dictionnaires, listes, piles, etc…) à travers des explications claires accompagné d’exemple.

Sommaire:

Pour ceux qui serait intéressé :

Perso,Dev

May.14

Linux LUNA :)

Comment décrire mon état apres cette course contre la montre pour finir ce LUNA!!! Je crois que plus d’un seront d’accord avec moi pour dire que linux ca rend completement dinge et geek ^_^

Mais voila c’est FINI (…les nuits a compiler jusque très tard dans la nuit) et c’est avec plaisir que je vous presente LINUX LUNA le systeme d’exploitation de demain 😀 Nan je plaisante, mais ca fait plaisir d’avoir fini un tel projet quand meme ^^

LUNA c’est un petit systeme basé sur le Kernel Linux 2.6.11.12 (entierement compilé à la main depuis rien/from strach ^^) avec cdrom/programme d’installation. L’iso prend moins de 300mo pour un linux en mode console avec une petite centaine de logiciels installés (compilateurs, editeurs, utilitaires système/multimedia, shells, outils reseau, programmes serveur, securité, etc..) 😀

En tant que projet pr l’ecole c’est bien mais en tant que distribution c’est clair que c’est grave baclé, y a quelques bugs, les configs sont un peu a l’arrache, pas de gestionnaire de package acceptable, pas de serveur X par defaut !! Aussi, qui aurait dû être present, mais qui ne le sera pas par manque de temps : Mono 🙁 Bref l’OS qu’on aimerai pas trop avoir au quotidien ^^

Il y avait de bonnes bases, un bon debut mais il aurait fallut déjà un plus de temps (moins 3 semaines de travail c’est « just » pour une sensé « distribution » surtout quand on est seul), la perle de la LFS de MrSnack : un APT opérationnel et le « lunadmin » (outils d’admin) de kevin (enfin de ce que tu avais commencé ^^) !! Les trois reunis et motivés on aurait fait tombé Redhat ^_^

En tout cas ce fut une bonne experience de fabriquer sa petit distrib brique à brique, maintenant on archive ca, prepare les soutenances linux/oracle, commence le projet peren, et la course continu ^^ vive supinfo 🙂

Plus de screenshots, les documentations et ISO de LUNA en cliquant ici 😉

Perso

May.12

Petit coucou furtif de GTK+

Ah !! On ne peut pas dire en ce moment que les posts coulent à flot 🙂 Mais bon, étant en pleine periode de rendu de projets, chaque minute est compté et je pense que mes camarades de supinfo me comprendrons (enfin certain… ^^).

Ceci dit, attaquons-nous au vif du sujet : Gtk+ ! Le nom vous dit s’en doute quelque chose, pour les ignorants c’est une librairie permettant la conception d’interface graphique depuis son programme C, c++, perl, python, …(même c#, enfin la c’est Gtk# ^^) et ce sur plusieurs plateformes (windows, linux, bsd, etc…).

Bon jusque la je ne vous apprends rien et vous vous demandez surtout pourquoi je parle de ca ?? Bah, tout simplement parce que, bien que je ne connaissais pas tout cette librairie, j’ai dû passer mon dimanche avec elle pour lui ecrire de jolis mots 😀

Plus serieusement, Gtk+ est une excellente librairie et surtout super simple a prendre en main ! La logique est super bien pensé et bien que le C soit un langage procédural, on a rééllement l’impréssion de developper dans un langage orienté objet/evenementielle !

Mais bon, je ne suis pas trop fan du C/C++ (productivité oblige ^^) et donc ne risque de developper réélement en Gtk, mais une histoire d’un jour sa ne s’oublie pas ^_^

Pour les intéressés: Ma petite introduction à GTK+

Perso,Dev

Apr.26

My Sudoku Day n° 2

Allez 2ème et dernier jour de Sudoku pour moi ^^ J’ai en effet un peu ameiloré mon programme de Sudoku, et je vous presente la version final 1.1 ^^

Les nouveautés sont simples :

  • Possibilité de charger une grille depuis un fichier
  • Possibilité d’enregistrer la solution
  • Changement d’unité de mesure du temps ^^

Ce qui m’a permis de tester mon programme sur d’autre grille parce que jusque la je n’ai fait que resoudre une seule grille et en plus comme me dit Kevin : c’est du niveau Facile !!

Donc j’ai directement attaqué par une grille non pas du niveau facile, ni moyen, ni difficile (ca serai trop facile ^^) mais en niveau diabolique carrement ! Mon fichier TXT ressemble à ca :

J’execute mon petit programme « sudokusolver.exe diabolique.txt« , qui me ressout la grille (marre des screenshots, donc on fera sans), me demande de l’enregistrer où je dis « oui », et me créé le fichier :

C’est pas beau ca ?? 😀

Tu remarquera une fois de plus mon ti kevin qu’il me l’a resolu en 0 seconde, c’est pourquoi j’ai du changer d’unité de temps et donc pour etre exate il l’a résolu en 50ms (et 10ms pour la grille facile du 20minutes d’hier) !! Amuse toi a me preparer autant de grille que tu veux, je t’attends demain 🙂

Le code de la nouvelle version du programme console ICI (ps: le moteur n’a pas été modifié, seulement le programme console pour gérer le chargement et l’enregistrement des grilles)

Pour finir, vive le sudoku ^^

Perso,Dev

Apr.25

My Sudoku Day

Le sudoku n’est plus à presenter… Dire que certain ont fait des millions en créant des programmes capables de générer des grilles.. (ca aurait dû Netastate sur ce marché ^^).

Bref toujours est-il que bon nombre de personne s’eclatent ou plutôt se prennent la tête (hein chérie :-)) sur ce genre de casse tête !

Personnellement, j’ai fait mon 1er sudoku ce matin dans le train 🙂 (c’est bien Seb ^^) ! Et j’en suis venu à une conclusion : quitte a se prendre la tête autant se prendre la tête une bonne fois pour toute !!! C’est alors que je me suis mis en tête, a mon arrivée a Supinfo ce matin, de faire un résolveur de Sudoku : c’est ma journée Sudoku 😀

Plusieurs méthodes existent pour resoudre ce genre de problème ! Personnellement j’ai utilisé la méthode du BackTracking (kesako ici) qui consiste a placer les chiffres dès qu’ils sont possibles et de revenir en arrière quand ca ne l’est plus !

Avant :

Après :

Mon petit Kévin remarquera la vitesse de résolution pour cette grille : 0secondes ^^ Tu sais bien que je suis trop rapide pour toi 😀 (j’entends encore « ouai il pu ton algo, c’est de la m**** » ^^)

Bon biensur, dans l’état actuel, c’est assez galère pour entrer la grille dans le programme car elle est directement inscrite en dur dans le code mais vous remarquerez que mon application se compose de 2 fichiers :

  • Moteur.cs : contenant tout le moteur de résolution du sudoku et donc exploitable depuis n’importe qu’elle application (faudait refaire une belle interface graphique, XAML kevin ?? ^^ ou appli web !)
  • Program.cs : programme console qui exploite le moteur avec un exemple d’une grille trouvé dans le 20 minutes de ce matin.

Sur ceux je vous souhaite a tous une bonne soirée, et a bientôt 🙂

Sans oublier les sources :

Perso,Dev

Apr.21

Les Complexes, pas complexe !!!

Très souvent en Informatique, on a besoin des maths. Les Complexes en font partie, on les utilisent beaucoup quand on travaille sur des applications graphique 2d/3d ! Personnellement, je les utilisent nottament dans mon simulateur d’immunologie (SimImmuno). Malheuresement, ma plateforme adorée .NET ne comporte pas de classe lié a l’utilisation des Complexes d’où mon idée de faire une structure pouvant manipuler les bases des complexes (operations de base, module, argument, etc..) pour pouvoir jouer avec les complexes dans n’importe quelle application !
La structure que j’ai ecrite nommé Complexe comporte :

  • 1 constructeur pour créer de nouveau complexe :

  • 2 accesseurs en get/set pour pouvoir recuperer ou modifier les parties Reelles et Imaginaires du complexe

  • 4 accesseurs en lecture seule (get seulement) pour récupérer le Conjugué, le module, l’argument et le carré d’un complexe :

  • 1 méthode : Rotation qui retourne un nouveau complexe de la rotation du complexe par un angle (en double) et d’un centre (Complexe)

  • 4 surcharges d’operateurs pour les operations +, -, *, / respectivement addition, soustration, multiplication, division :

  • Et pour finir 1 surcharge de la methode ToString() afin de pouvoir recuperer le complexe en string sous la forme a+ib :

Bref il y a toutes les fonctions de bases sur les complexes pour pouvoir les utiliser très facilement dans vos développements 🙂

Screenshot du programme de Demo en mode Console :

Code source du programme console de Demo
Code source de ma structure complexe (v1.0)
UPDATE :
Code source de ma classe complexe (v1.1 du 22/02/07)

Pas si complexe les complexes maintenant 😀

Perso,Dev,.NET