• Conseils pour une présentation/formation réussie

    Il y a déjà pas mal de temps (ah oui, 5 ans, tout de même...), Scott Hansleman donnait un certain nombre de conseils pour la réalisation du présentation/formation technique. Heureusement, il ne s'est pas arrêté là, et les a remis à jour il n'y a pas bien longtemps. Pour résumer (et hormis l'inévitable "essayez au moins de connaître un minimum votre sujet"), voici les remarques que je trouve les plus pertinentes - un peu remis à ma sauce - :

    • Utilisez des machines virtuelles pour vos présentations. Cela a deux gros intérêts : le premier, comme scott le suggère c'est d'avoir une solution de remise à zéro simple et rapide. Le second, encore plus intéressant, c'est de pouvoir laisser aux techniciens venus assister à la démo un environnement complet qu'ils pourront utiliser pour reproduire votre démonstration et/ou approfondir, sans avoir à se soucier de trouver un serveur, de prendre le temps d'installer etc. De quoi Passer pour un dieu(TM) . J'ai pour habitude de mettre ces machines virtuelles sur un disque USB (et depuis peu e-sata) mais rien ne vous empêche de graver un ou deux DVDs (et de pleurer sur le peu de données que l'on peut mettre sur 4.7go...)
    • Ne courrez pas au travers de la pièce pour faire avancer vos slides. J'ai utilisé aussi bien le Cordless Presenter de Logitech que la Presenter Mouse 8000 de Microsoft, et franchement, c'est vraiment indispensable. Nous ne pouvons pas tous être Steve Jobs et avoir quelqu'un juste là pour faire avancer la présentation, donc optez pour une solution vous permettant de ne pas avoir à vous pencher sur votre notebook. (Pour info, j'aime beaucoup l'horloge du Cordless, cela permet de ne pas trop dépasser le temps prévu)
    • Réduisez au maximum le "bruit" de vos interfaces. Vous avez 17 toolbars personnalisées dans l'application ? Oubliez les pour vos présentations : elles ne feront que surcharger l'écran pour pas grand chose. Rappelez vous que votre contenu devra être visible de loin donc que la quantité d'informations présentées doit être réduite. Tant que vous y êtes, en plus de supprimer les toolbars inutiles, regardez si vous pouvez changer la taille de police et ou le paramêtre dpi de Windows pour rendre le texte plus lisible à distance. (Si vous essayez de changer les dpi pour mettre en "grande police" selon la terminologie XP, soyez sûr de refaire un tour complet de votre présentation, peu d'applications supportent ce genre de plaisanterie sans faire n'importe quoi)

  • Un script powershell pour créer une base de dev à partir de la prod

    Il y maintenant quelques années, alors que je travaillais pour mon premier client : Promod, l'équipe de développement était dotée d'une chose merveilleuse : chaque lundi, notre base de développement était mise à jour à partir des données de la production. Depuis ce jour, j'ai essayé de mettre en place cette astuce sur chacun des projets sur lesquels j'ai eu l'occasion de travailler.

    Je ne vais pas vous dire que c'était fait de façon élégante, ce n'était pas le cas ! Tous les lundi, une restauration de la base de production avait lieu dans l'environnement de dev. Toutes les modifications que nous faisions sur la base étant sauvegardées sous forme de script sql, il était assez facile de rejouer (automatiquement) ces scripts pour obtenir une base de données de developpement opérationnelle.

    Cette semaine, en voulant instaurer ce principe sur un nouveau projet, la procédure vbscript que j'avais déjà utilisé à maintes reprises n'as pas voulu fonctionner pour une raison indeterminée. J'en ai donc profité pour la ré-écrire en Powershell...

    Le script se découpe en plusieurs phases :

    • Dans un premier temps, il faut s'assurer que personne ne bloque la base. La je dois avouer que, comme j'ai plusieurs bases sur lesquelles appliquer ce même principe, j'ai utilisé une méthode un peu bourrin : je redemarre le service Sql Server, en n'oubliant pas de démarrer aussi les services dépedants :
     $depserv = (get-service mssqlserver).DependentServices 
                  | ?{$_.Status -eq 'Started'}
     restart-service mssqlserver -force
     $depserv | start-service
    • un script sql, lancé par osql, s'occupe de la restauration proprement dite
    copy \\backupsrv\live\newproject.bak d:\dev\newproject.bak
    osql -E -Q "RESTORE DATABASE NewProject from disk=
          'd:\dev\newproject.bak' with replace"
    del d:\dev\newproject.bak
    • il suffit ensuite de récupérer tous les scripts de mise à jour depuis Team Foundation Server
    &($env:tfpath) get newproject\datascripts /r
    
    • et de les appliquer un par un sur la base
     dir ($env:scriptdir)+"\*.sql" 
         |% {osql -E -d NewProject -i $_.FullName}

    En (grosso-modo) 10 lignes - en prenant en compte la définition des variables d'environnement pointant vers les dossiers importants et un peu de gestion d'erreur-, le script powershell remplace sa version vbscript de pas loin de 150 lignes. Impressionnant non ?