Et mon PC crasha (où comment transformer 800€ en 1800€)

Cet article (et tous ceux qui vont suivre) explique la progression du projet « Constellations ».

  • Le résultat peut être trouvé ici.
  • Le user manuel ici.

Il y a des jours comme cela : tout va bien, il fait beau, il fait chaud, les oiseaux chantent… et le PC plante avec un beau message style BlueScreenOfDeath.

Un petit retour en arrière. Dans ma courte vie, j’ai eu trois PC :

  • Un Dell Inspiron 6400 avec qui j’ai fait toutes mes études, voire même un peu plus. Il a tenu six ans sans broncher, jusqu’à ce que j’achète une table à dessin et qu’il tombe au sol car il n’avait plus les caoutchoucs antidérapants. Écran fissuré (pour info, la table va bien).
  • Un autre Dell, d’un ancien job où la sécurité n’était pas leur truc. J’étais administrateur de la bécane et je m’en servais alors personnellement. Il a tenu 3 ans sans broncher (voire même plus. Il fonctionne même peut-être encore ?)
  • Mais une fois que j’ai quitté la STIB (mon ancien job – faudra que je vous reparle de la STIB, un jour), il me fallait un nouveau portable. Après recherche, j’ai penché pour un Lenovo Yoga 2 (ici)… Quelle merde ce truc, 800 euros de perdus. Dès le début, il avait des bugs dont celui-ci (voir ici). Je croyais malheureusement que c’était Windows (préinstallé), mais non, c’était juste un défaut de conception comme la médiocrité industrielle sait en faire (je me suis rendu compte en installant Linux, 8 mois plus tard, que ce n’était malheureusement pas Windows).

Avec le temps, cela ne faisait que s’aggraver. Si au début, un simple redémarrage remettait tout en ordre, la panne la plus grave arriva de l’autre côté du monde (Sri-Lanka) au moment où j’en avais le plus besoin, c’est-à-dire au moment où je cherchais le numéro de mon ambassade parce que j’avais raté mon avion de 24 heures le jour de la fin de mon visa (véridique ; je sais, j’avais fait fort :-D).  De retour en Belgique,  après un IFixIt, il refonctionna, de nouveau plus ou moins.

Mais là, depuis dimanche, sans raison apparente, plus rien. Horriblement plus rien. À une semaine des examens, cela tombait mal, il m’en fallait un, et vite. Alors, errant sur la toile, je cherchais son remplaçant, mais la peur m’envahissait. Allais-je de nouveau payer 800 euros pour 24 mois de fonctionnement bancal ? J’étais prêt à mettre 1000€ si vraiment j’avais un coup de coeur.

Dell en faisait un qui me plaisait (le xps), mais impossible de le trouver dans un magasin près de chez moi pour le tester. Puis, en discutant au bureau avec plusieurs collègues, leur disant que je ne demandais pas la lune, seulement un PC solide et robuste qui puisse tenir cinq ans, ils m’ont tous répondu : « Mac ».

N’ayant plus le choix, je décidai de m’aventurer dans le seul Apple Store de Bruxelles. Je passais souvent devant mais sans jamais y être entré. De deux choses l’une :

  • Qu’est-ce que c’était bon de pouvoir utiliser le produit pendant une demi-heure en toute tranquillité !
  • C’est la première fois que je voyais des vendeurs qui connaissent leurs produits. Cela change du Brico ou de Media Markt…

Bref, décidé, je ne repartais pas les mains vides, mais avec une jolie boite et un nouveau PC. Et si, dans un premier temps, je voulais directement réinstaller Ubuntu, j’ai quand même laissé sa chance à Sierra (et je dois avouer, qu’est-ce que cela fait du bien un truc qui marche parfaitement. Oh merde, je ne veux plus jamais autre chose. Sierra, c’est un Linux abouti).

Pourquoi je vous raconte tout cela (alors que probablement vous vous en foutez), c’est parce qu’avec Mac vient Bracket, un environnement de développement pour Javascript, ainsi que JSLINT qui est un vérificateur de bonne pratique Javascript. Choses que je n’avais pas sous Ubuntu (je connaissais Lint pour C, pas pour Javascript) et en le lançant, outre les milliers d’erreurs de commas, de lignes et d’espaces, je suis tombé sur cette erreur :

Expected ‘===‘ and instead saw ‘==‘

Je connaissais ===, je l’avais déjà vu. Pour moi, cela servait surtout dans la comparaison de string, == vérifiait les pointeurs entre eux (ce qui ne fallait jamais faire) alors que === vérifiait les chaînes de caractères (le comportement voulu). Mais il semblerait qu’en Javascript, cela fait un peu plus.

Et cela avait surtout à voir avec la différence entre null et undefined ; l’exemple suivant était plus parlant :

 var a = this.nameClass[spect[0]];

        if (a == null)

            return undefined;

        return a;

Ce code était exactement le même que

 return  this.nameClass[spect[0]]; // we take the first letter for the color.

Pourquoi ?

  • Parce que null était considéré comme quelque chose qui existait mais de valeur null alors que undefined n’était considéré comme rien ;
  • == ne comparait pas les types mais les valeurs (“1” == 1 est vrai) alors que === comparait aussi les types, et undefined et null n’étaient pas du même type.

Enfin, sous Mac, j’avais pu, un peu par hasard, tester GitHub Desktop (qui était cool et plus simple que la ligne de commande ; par contre, les pull-request, toujours pas compris).

Tout cela pour dire que passer au Mac m’a fait trouver des bugs :-D.  Ça et le fait que Lenovo m’avait tellement énervé…

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s