Blog<Sam>

copy(MyLife.begin(), MyLife.end(), ostream_iterator<string>(www, “\n”));

Archive pour avril, 2008

Comment réparer un disque dur mort

Publié par Sam sur 11 avril, 2008

Une nuit, 3h du matin, je m’amuse à saturer la RAM de mon PC (et oui c’était une nuit palpitante), quand soudain, freeze matériel. Bon, ok, le PC veut sans doute que j’aille dormir… Je l’éteins et je vais me coucher. Le lendemain, surprise : Mon disque dur de stockage de 500 Go fait “bip grrrr grumble couic bip bip grrrrrr bip…” (et oui un disque dur, ça peut bipper, et ça ne présage rien de bon) et le PC plante lors de la phase de reconnaissance des périphériques Serial ATA (la seule chose logique de l’histoire). Vite, j’éteins tout, et je branche le disque dur récalcitrant sur mon ancien PC, avec un câble différent : mêmes symptômes, donc confirmation de disque mort… Ô rage ! ô désespoir ! ô vieillesse ennemie ! N’ai-je donc tant vécu que pour cette infamie ?

Et bien non ! Je refuse de perdre toutes mes données !!! J’arpente alors le net à la recherche de solutions miracles, mais en réalité pour un problème physique, il y en a bien sûr très peu. En fait, les deux seules pour lesquelles de nombreux témoignages prouvent qu’elles fonctionnent sont de frapper violemment le disque dur, ou de le mettre au congélateur et le rebrancher gelé. Ça m’a plutôt l’air folklorique, mais après tout, je n’ai plus rien à perdre car je ne vais tout de même pas payer une récupération de données chez un professionnel, c’est largement hors de prix.

Alors j’ai essayé… Et le moins qu’on puisse dire, c’est que mon disque dur a souffert… Sur hardware.fr plusieurs personnes parlent de coups “violents”… Je pense que mettre le disque dur sur la tranche et frapper dessus avec un marteau, c’est assez violent. Le problème c’est que ça n’a rien changé. Alors j’ai essayé le congélateur, mais là encore, en vain. J’ai alors décidé d’essayer de le démarrer, chaque jour, après l’avoir à chaque fois littéralement balancé à travers la pièce, durant un certain temps… “on ne sait jamais”.

Et bien j’ai eu raison ! Ce matin, je le branche sans conviction, et… oh my god, ça boot, le disque est reconnu et je peux parcourir les fichiers !! En revanche, le débit est lamentable (500 Ko/s maxi), et il fait un bruit de grincement horrible lors de la lecture, mais c’est largement suffisant pour récupérer mes données importantes. Grand soulagement.

Moralité : Lire les précautions d’utilisation, faire exactement l’inverse, et PERSÉVÉRER ! Pour moi, ça a payé, il a fini par comprendre qui est le maître… Bon, ça l’a rendu handicapé, mais les données, elles, étaient intactes.

Et si jamais ça ne fonctionne pas, un disque dur peut toujours être transformé en miroir.

Publié dans Hardware | Taggé: , , | Aucun commentaire »

Sortie du Features pack pour Visual C++ 2008

Publié par Sam sur 8 avril, 2008

La nouvelle vient d’être annoncée sur le blog de la team Visual C++ : Le fameux Features Pack destiné à Visual Studio 2008, qui était en version Beta depuis plusieurs mois, vient de sortir en version finale. Destiné uniquement aux développeurs C++ (une fois n’est pas coutume, les nouveautés ayant été plutôt concentrées sur le C# ces dernières années), il consiste en une mise à jour majeure des MFC et une implémentation partielle du TR1 (premier Technical Report , sorte de brouillon datant de 2005 de la future norme du C++).

Le Features Pack est gratuit mais ne s’installera pas sur les versions Express. Il peut être téléchargé à partir du site de Microsoft.

Les MFC permettent maintenant, entre autres fonctionnalités, de créer des applications ayant le “look&feel” de Visual Studio, Internet Explorer, et Office. La mise à jour contient en particulier les composants suivants (liste loin d’être exhaustive) :

  • Interfaces ayant l’apparence de Office 2007 (rubans)
  • Interfaces ayant l’apparence de Office XP/2003 (barre d’outils, menus, …)
  • Look Visual Studio avec son système d’ancrage de fenêtres très sophistiqué
  • Support des thèmes Vista
  • Customisation “à la volée” des menus, comme dans Visual Studio
  • Amélioration de la manipulation du système de fichiers via de nouvelles classes

Une description illustrée mais également non-exhaustive des nouveautés des MFC, réalisée il y a plusieurs semaines, est disponible ici sur le blog de la team Visual C++.

En ce qui concerne le TR1, Visual C++ est à mon avis un peu en retard, car GCC propose depuis longtemps sa propre implémentation du TR1, Boost.TR1 existe depuis belle lurette (ce qui est logique puisque la majorité des extensions introduites par le TR1 proviennent de bibliothèques Boost, en premier lieu les pointeurs intelligents), et Dinkumware (fournisseur de Visual C++ justement) l’a implémenté en intégralité depuis fort longtemps. De plus, leur implémentation n’est pas complète, puisqu’il manque la compatibilité avec la dernière norme du C (comme stdint.h, très utile, qui permet d’avoir des types de taille fixe), ainsi que les nouvelles fonctions mathématiques (section 5.2 du TR1, cependant il a finalement été décidé qu’elles ne feraient pas partie du prochain standard, donc ce n’est pas grave).

Pour une liste de questions/réponses à propos de l’implémentation du TR1 dans ce Features Pack, c’est par là que ça passe. Le TR1 lui-même est disponible en intégralité ici (format PDF, 1.42 Mo).

Publié dans Programmation | Taggé: , , , | Aucun commentaire »

C++ : Sortie de Boost 1.35

Publié par Sam sur 6 avril, 2008

boostBoost, la bibliothèque C++ incontournable, n’avait pas été mise à jour depuis juillet 2007. C’est désormais chose faite, et cette nouvelle version majeure apporte de nombreuses nouveautés (listées ici) toutes plus intéressantes les unes que les autres, un vrai bonheur pour tout programmeur C++.

Je l’utilise intensivement, en particulier pour les pointeurs intelligents, tout bonnement indispensables, mais aussi pour les threads, la génération de nombres aléatoires, et bien plus encore. Désormais, nous utilisons cette version dans Exo².

Voici la ligne de commande que j’ai utilisée pour construire Boost 1.35 avec/pour Visual C++ 2008 :

bjam --stagedir=output threading=single,multi link=static,shared runtime-link=static,shared debug release stage --without-wave --without-python

De nombreux avertissements, mais aucune erreur, et aucun problème lors de la compilation et l’édition des liens dans nos projets, ce qui est très appréciable, car Visual C++ 2008 n’est pourtant pas encore officiellement supporté. A propos des fichiers générés, ceux commençant par le préfixe “libboost” sont les bibliothèques statiques, et ceux commençant uniquement par “boost” sont leur équivalent dynamique.

Boost çaybon mangez-en !!!

Publié dans Programmation | Taggé: , , | Aucun commentaire »

IRC dans Visual Studio

Publié par Sam sur 5 avril, 2008

Avec son système d’add-ins, Visual Studio est virtuellement extensible à l’infini, et permet d’avoir un evironnement encore plus intégré qu’à l’origine. Aujourd’hui j’ai découvert un add-in permettant l’intégration d’un channel IRC dans une fenêtre ancrable : Jedi Visual Studio IRC Add-in

Cet outil est limité à un seul channel, à paramêtrer dans les options (qui sont intégrées dans la page d’options générale de Visual Studio), et a beaucoup de limitations, mais c’est suffisant pour surveiller un channel tout en programmant, ce qui évite d’avoir à switcher sans arrêt. On peut tout de même envoyer des messages, envoyer/recevoir des MP, et changer de nom. Personnellement je me connecte deux fois au même channel : une fois dans Visual Studio, et une fois dans mon client IRC habituel (X-Chat 2).

Pour l’adapater à Visual Studio 2008 il suffit d’éditer le fichier .AddIn et de remplacer 8.0 par 9.0.

A quand MSN dans Visual Studio ? Et bien en fait c’est déjà possible, il suffit d’utiliser MSN Web Messenger direcement dans l’explorateur intégré à Visual Studio (qui utilise Internet Explorer), mais l’intérêt est tout de même assez limité :)

Publié dans Programmation | Taggé: , , | Aucun commentaire »