Avant-première de la SwissMicros DM42

Remarque importante : ce billet porte sur un prototype en préproduction. Certains détails aussi bien d’ordre logiciel que matériel pourraient changer lorsque celui-ci sera commercialisé pour de vrai. La qualité de construction sera très probablement meilleure que sur l’exemplaire que j’ai testé. Le firmware est également amené à évoluer rapidement ; je la teste ici avec la version 2.10.17 du micrologiciel.

Dans mon premier billet portant sur les calculatrices vintage de Hewlett-Packard, certains d’entre vous déploraient la baisse de la qualité de construction des HP qui sont fabriquées après les années 1980 ou 1990.

Heureusement, une entreprise suisse nommée SwissMicros propose des clones de certaines des calculatrices HP des années 1980 qui ont marqué le plus les esprits ; nul besoin, donc, de trouver un modèle d’occasion pour s’essayer à la notation polonaise inverse.

SwissMicros est actuellement en train de mettre au point la DM42 qui, comme son nom l’indique, est une réinterprétation de la très fameuse et convoitée HP-42S. Moyennant la modique somme de 149 CHF (environ 140 €), j’ai pu mettre la main sur un des quatre-vingts modèles de préproduction. Je l’ai utilisé régulièrement depuis plus de deux mois. Le projet, très ambitieux et se voulant aller largement au-delà du simple clone, est déjà très abouti.

SwissMicros DM42
La SwissMicros DM42 et la sacoche fournie.

Je vous propose donc un petit tour d’horizon de la SwissMicros DM42. Je commencerai par un bref historique de la HP-42S, puis je passerai en revue les similitudes et les différences entre la DM42 et la HP-42S tout en mettant l’accent sur les nouveautés qu’apporte la DM42.

La HP-42S et ses origines : la HP-41C

La HP-42S est une machine assez particulière, en partie puisqu’elle devait reprendre le flambeau de son prédécesseur, la série des HP-41C (bien que HP l’ait seulement vendue comme un successeur de la HP-15C).

Cette ancienne série, introduite en 1979, se voulait être plus qu’une simple calculatrice scientifique programmable (ce qui était déjà pas mal pour l’époque) : le manuel parlait même d’un « système informatique personnel » plutôt que d’un « calculateur ».

HP-41CV
Une HP-41CV avec sa sacoche. La série HP-41C était la seule à être dotée d’un afficheur à 14 segments.

La HP-41C disposait de connecteurs à l’avant pour y relier moult modules et autres accessoires : extensions de mémoire, bibliothèques de fonctions supplémentaires, crayons optiques pour lire des code barres, imprimantes thermiques, voire même des instruments de mesure de laboratoire…

Son affichage alphanumérique était un autre aspect « révolutionnaire » parmi les calculatrices HP : la programmation était plus confortable, on pouvait nommer ses programmes et la calculatrice offrait en outre une série de fonctions de manipulation de chaînes de caractères.

Enfin, la HP-41C disposait de plus de fonctions qu’il n’était possible d’en mettre sur le clavier. Pour pallier à cela, on pouvait redéfinir les touches du clavier pour exécuter d’autres fonctions internes ou même des programmes utilisateur ; la touche USER permet de basculer entre le clavier « de base » et le clavier ainsi redéfini. On peut aussi utiliser la touche « XEQ » (pour execute, exécuter) pour taper en toutes lettres le nom de la fonction ou du programme qu’on souhaitait activer. Ainsi, pour jouer un bip, il fallait taper « XEQ ALPHA T O N E ALPHA » pour exécuter la fonction TONE.

La HP-41C a connu deux autres modèles apparentés : la HP-41CV (à lire comme « C cinq » et non pas « cévé »), intégrant l’équivalent de quatre extensions de mémoire, et la HP-41CX (« C dix »), intégrant en outre un module de temps avec une horloge temps réel et des fonctions de calcul sur les dates.

Onze ans plus tard, il était temps de remplacer ce modèle : le CPU commençait à faire pâle figure par rapport à ce qui se faisait et il en allait de même pour la capacité de sa mémoire.

HP a donc introduit la HP-42S en 1988 et l’a commercialisée jusqu’en 1995. La HP-42S est plus rapide, dispose de 8 kilooctets de mémoire (ce qui offrait nettement plus de place pour des programmes) et possède un afficheur LCD matriciel de 132 × 16 pixels (2 lignes de 22 caractères). Elle savait faire les mêmes choses que la HP-41C ; elle était même conçue pour être compatible avec les nombreux programmes écrits pour celle-ci (à l’exception des fonctions exclusives à la HP-41CX).

Les fonctions absentes du clavier de la HP-42S sont cette fois accessibles par des menus et les choix sont faits par les six touches de la rangée supérieure si un menu est ouvert. Le clavier n’est donc plus redéfinissable, mais la HP-42S propose à la place un menu redéfinissable. On gagne en confort, mais le gain en efficacité est discutable : parmi les plus de 600 fonctions, il faut s’y retrouver !

La HP-42S a abandonné le système de modules (à tort ou à raison, là aussi ça se discute) pour ne garder que la possibilité d’imprimer par infrarouge sur une imprimante thermique HP-82240A ou B. Mais en échange, on découvre une machine tout à fait polyvalente, dotée d’un solveur d’équations, d’une intégration numérique, de possibilités sommaires de dessin (évidemment exploitées par les jeux), de calcul matriciel et de calcul dans C. Le calcul formel est laissé à des machines plus sophistiquées comme la HP-28S, de la même époque.

Un hommage à la HP-42S

Jusqu’à maintenant, la seule manière d’avoir une HP-42S dans sa poche sans acheter un modèle d’occasion hors de prix était d’installer l’émulateur Free42 sur son appareil mobile préféré. Sa version Palm OS était d’ailleurs la raison pour laquelle j’ai fini par craquer pour une HP 50g pendant mes études.

Cet émulateur est le fruit d’un travail de rétroingénierie méticuleux et ne contient aucune propriété intellectuelle de HP. Néanmoins, c’est un logiciel libre (sous licence GPL) et est réputé pour être d’une fidélité très proche de la HP-42S d’origine. Il ne restait donc plus qu’à la mettre dans une vraie calculatrice ; c’est désormais chose faite avec la SwissMicros DM42.

Ma première impression est que la DM42 a tout d’un hommage à la HP-42S. Tout d’abord, elle reprend la même présentation sobre de la HP. Elle est fournie avec une housse de conception similaire à la HP, quoique très serrée (cela semble s’arranger un peu avec le temps).

Les touches du clavier reprennent la forme biseautée qu’on retrouvait sur les calculatrices HP plus anciennes, au lieu de la forme ronde des touches de la HP-42S ou d’autres de la série Pioneer. Le ressenti est donc plutôt agréable quoiqu’un peu inégal, puisque certaines touches nécessitent davantage de force que d’autres pour être enclenchées. Cela est dû au procédé de fabrication du clavier : l’arrière des touches en plastique est dotée d’un petit ergot qui s’enfonce dans un trou de la même taille dans le dôme correspondant du circuit imprimé. Cela nécessite un alignement très difficile qui n’admet presque aucune marge d’erreur. Le marquage sur les touches paraît un peu plus brouillon puisque les symboles mathé­matiques semblent mal s’intégrer avec la police de caractères utilisée pour les inscriptions.

En outre, la plaque de plastique sur laquelle sont imprimées les légendes a tendance à se décoller, mais il s’agit là d’un problème connu et commun à de nombreux autres exemplaires de préproduction et pour lequel SwissMicros a promis un correctif.

Le boîtier, de même longueur et largeur que la HP-42S mais plus fin que celui-ci, est en aluminium et donne l’impression d’être plus solide que la HP-42S.

SwissMicros DM42
La SwissMicros DM42 est plutôt fine par rapport à la HP-42S.

Heureusement, la DM42 est conçue pour être facile à démonter. Il suffit de déposer les quatre vis cruciformes à l’arrière pour avoir accès à ses entrailles (et à la pile). J’ai pu désassembler entièrement la calculatrice en seulement cinq à dix minutes, moyennant un peu de doigté.

Globalement, le prototype de DM42 que j’ai entre les mains est plutôt de bonne facture, malgré quelques défauts çà et là qui seront j’espère résolus une fois les premiers modèles de série commercialisés. SwissMicros a d’ailleurs fait de nombreuses révisions matérielles sur ses autres calculatrices, ce qui prouve à mes yeux qu’ils prennent la qualité matérielle au sérieux.

Une HP-42S du XXIe siècle

Qualifier la DM42 de « clone » ne saurait lui rendre justice, car l’objet se permet quelques ajouts par rapport à la HP-42S, et pas des moindres.

HP-42S et DM42 côte à côte
Vingt-sept ans d’écart : à gauche, une HP-42S de 1990 et à droite, une SwissMicros DM42 de préproduction.

L’affichage

On remarque d’abord que l’écran est beaucoup plus grand que celui de la HP-42S ; sa résolution est en effet portée à 400 × 240 pixels comparés aux 132 × 16 de sa consœur. L’affichage est réalisé par un module LCD de Sharp de 2,7 pouces. Cet afficheur LCD a un excellent contraste ; on dirait presque un module « e-ink ». Il est en outre capable de conserver un affichage constant moyennant seulement quelques microampères. D’où une possibilité d’afficher l’image de son choix en plein écran alors que la calculatrice est éteinte.

Lorsque la calculatrice est allumée, l’écran se divise en deux régions : en bas, on a le même affichage qu’une HP-42S, de deux lignes de 22 caractères. En haut, on voit les quatre registres formant la pile (X, Y, Z et T) et le registre L (pour « Last X ») changer en temps réel au gré des appuis sur les touches. Enfin, tout en haut, on a un affichage de la date, de l’heure et un indicateur de charge de la pile.

Capture d’écran
Affichage de la DM42.

Un clavier amélioré

Le clavier de la DM42 a quant à lui gagné une rangée de touches juste sous l’écran, ce qui est plus que bienvenu lorsqu’on sait comment les menus fonctionnent sur la HP-42S. Lorsqu’on active un menu (comme sur cette capture d’écran, le menu « BASE »), l’affichage change pour afficher seulement le registre X et le menu concerné.

Capture d’écran
Exemple de menu sur la HP-42S et la DM42.

Pour sélectionner un élément du menu, il faut appuyer sur la touche immédiatement en-dessous. Ainsi, pour sélectionner « OCTM » sur la HP-42S, il faut appuyer sur la touche « LOG », qui perd alors sa fonction de base pour devenir une touche de sélection. Sur la DM42, il faut appuyer sur la quatrième touche de la rangée supplémentaire, qui est de ce fait uniquement dédiée aux sélections dans le menu ; la touche « LOG » conserve sa fonction normale, qu’un menu soit ouvert ou non.

C’est là un changement d’ergonomie plutôt bienvenu, d’autant plus en mode programmation où on a souvent besoin des fonctions GTO (saut inconditionnel) ou XEQ (exécution d’un sous-programme) et où il est fort désagréable de devoir sortir du menu avant de retrouver l’accès à ces touches.

La deuxième différence entre les clavier de la DM42 et de la HP-42S est dans la fonction shiftée sur la touche 0. Sur la HP-42S, cela ouvrait le menu « TOP.FCN » reprenant les fonctions de la première rangée du clavier. En revanche, sur la DM42, c’est le menu « SETUP » qui est activé, donnant accès aux paramètres système propres à la machine de SwissMicros.

SwissMicros DM42
La fonction « shiftée » de la touche 0 est différente sur la DM42. La calculatrice de SwissMicros ajoute aussi une lettre à droite de chaque touche.

Un mode ALPHA amélioré

Une autre différence majeure entre les deux machines réside dans le fonctionnement du mode « ALPHA », utilisé pour la saisie de chaînes de caractères, de noms de programmes ou de noms de variables.

Sur la HP-42S, activer le mode « ALPHA » ouvre un menu à deux niveaux : le premier niveau est « ABCDE », « FGHI », « JKLM », « NOPQ », « RSTUV », « WXYZ ». Sélectionner un de ces éléments donne ensuite accès au sous-menu proposant chaque lettre. Les autres touches, comme les chiffres, insèrent le symbole en accès direct. Par conséquent, chaque caractère alphabétique demandait deux pressions de touches, ce qui devient vite frustrant et fastidieux.

La DM42, en revanche, améliore le mode ALPHA de la HP-42S en proposant des lettres en accès direct sur le clavier. Les firmwares plus anciens fonctionnent différemment, mais ce que j’explique ci-après semble être la mise en œuvre définitive de ce qu’on pourrait appeler le « nouveau mode ALPHA ».

Cela se matérialise par l’apparition d’un nouvel indicateur, ayant la forme de deux crochets [ ], lorsque le mode ALPHA est activé. Par défaut, la DM42 adopte le même comportement que la HP-42S : taper des chiffres ou des symboles les insèrent directement et les lettres sont saisies à l’aide des menus. Mais en tapant SHIFT puis la flèche vers le haut, l’indicateur devient « [A] » ; ainsi, frapper une lettre insère la lettre majuscule correspondante. Par exemple, un appui sur « COS » insère directement un K. Avec un autre appui sur SHIFT puis flèche haut, l’indicateur devient « [a] » ; on tape alors en minuscules. Les trois modes sont cycliques, et on peut aussi utiliser SHIFT puis flèche bas pour changer de mode de saisie dans l’ordre inverse.

Captures d’écran
Les trois états du mode « ALPHA » de la DM42 : mode HP-42S, direct majuscules et direct minuscules. Adieu les deux frappes de touches par lettre !

Je regrette juste qu’on ne puisse pas utiliser la touche SHIFT en mode « direct majuscules » pour taper la prochaine lettre en minuscule, ou vice-versa. Mais comme je le disais, au moment où j’écris ces lignes, ce mode de saisie est encore en train d’être développé et certains détails seront sûrement amenés à changer.

Une connectivité USB

Ensuite, sur la tranche supérieure, la DM42 est dotée du port infrarouge déjà présent sur la HP-42S pour imprimer (et qui fonctionne !) et y ajoute un connecteur micro-USB type B. Ce port USB sert à plusieurs choses :

  • tout d’abord, à alimenter la calculatrice (sans la recharger cependant, puisqu’elle est alimentée par une pile CR2032) ;
  • ensuite, l’horloge du CPU passe de 24 à 80 MHz lorsqu’elle est alimentée en USB, ce qui rend les programmes encore plus rapides qu’elles ne l’étaient déjà ;
  • ensuite, à transférer des fichiers entre un ordinateur et la calculatrice à l’aide d’un système de fichiers FAT32 monté en mode « stockage de masse USB », comme s’il s’agissait d’une clef USB ;
  • enfin, à installer des mises à jour du micrologiciel, régulièrement annoncées sur le forum et proposés au téléchargement sur le site de SwissMicros.

SwissMicros DM42
Tranche supérieure de la SwissMicros DM42.

La capacité de stockage de la calculatrice exposée à l’utilisateur est d’environ 6 Mo. Dit comme ça, ça semble peu, mais d’un autre côté, les programmes sont minuscules et il est improbable de saturer le stockage de cette calculatrice en usage normal. En tout cas, ce système a l’avantage d’être multiplateformes.

Lorsqu’on branche un câble USB, le mode transfert de fichiers n’est pas automatiquement activé : il faut aller dans le menu « SETUP », sélectionner « File » puis « Activate USB Disk ». C’est une bonne chose pour deux raisons : d’abord parce qu’il n’est pas possible d’utiliser la calculatrice tant que ce mode est actif, ensuite puisque cela permet d’éviter de transformer sa DM42 en vecteur de logiciels malveillants lorsqu’on la branche sur un poste vérolé juste pour l’alimenter par USB.

Les programmes sont transférés sous forme de fichiers .raw. Une fois placés sur la calculatrice, il faut les charger en mémoire à l’aide du menu File > Load Program. Et après, il ne reste plus qu’à le lancer avec la touche « XEQ ». La DM42 est d’ailleurs préchargée avec un ensemble de programmes tirés du site de Thomas Okken, dont des jeux et de quoi transformer la DM42 en calculatrice financière. Il est aussi possible de sauvegarder ses programmes avec File > Save Program.

C’est un système qui permet d’adjoindre assez simplement un mécanisme de stockage en mémoire non volatile à une calculatrice qui en était dépourvue à la base, puisque la HP-42S stockait tout en RAM. Le processus de chargement et de sauvegarde se contente donc de manipuler la RAM de la HP-42S émulée au sein de la DM42. Par conséquent, une réinitialisation totale de la calculatrice (l’équivalent d’un « Memory Clear » sur une HP-42S) n’affecte pas les .raw stockés sur la Flash ; il suffit alors juste de recharger ses programmes via le menu « SETUP ». Il y a donc beaucoup moins de risques de perdre un programme qu’on a passé des heures à mettre au point.

On peut d’ailleurs aussi sauvegarder l’état de la calculatrice en utilisant l’option Save Calculator State du menu File, ce que SwissMicros préconise de faire avant toute mise à jour de micrologiciel pour éviter toute perte de données.

La DM42 propose ainsi une connectivité avec un ordinateur qui manquait cruellement sur la HP-42S, puisque sur cette calculatrice-là, le seul moyen d’y rentrer un programme était de le taper sur la calculatrice…

Une calculatrice personnalisable et « hackable » (dans un futur proche)

Étant donné que le micrologiciel de la DM42 embarque une version modifiée de Free42, et comme Free42 est sous licence GPL, SwissMicros est normalement tenu de distribuer le code source du Free42 ainsi adapté. Ce n’est pas encore le cas au moment où j’écris ce billet, mais SwissMicros compte bien publier le code source de Free42. À terme, on devrait pouvoir générer ses propres micrologiciels pour la DM42 l’aide de la chaîne de compilation adéquate, du code source de Free42 et en « linkant » avec une bibliothèque statique binaire contenant du code propriétaire de SwissMicros (pour les fonctionnalités hors Free42). Cela permettra au moins de modifier Free42, ce qui est déjà très intéressant.

Autre petit détail amusant : si on place des images au format BMP 1 bit (Windows NT) dans le répertoire OFFIMG, la calculatrice en choisit une au hasard pour l’afficher lorsqu’elle est éteinte.

SwissMicros DM42
De gauche à droite : l’image par défaut lorsque la DM42 est éteinte, et deux autres « OFFIMG » téléchargées depuis le forum SwissMicros.

Pour ces raisons, qualifier la DM42 de « clone » ne lui rend pas du tout justice, puisque la dernière-née de SwissMicros parvient à combler les quelques lacunes de la HP-42S.

Conclusion

Nous avons vu que la future DM42 de SwissMicros est au stade de préproduction et que l’exemplaire dont je dispose s’en sort très bien.

Il lui manque seulement une chose, et non des moindres : un mode d’emploi. Une documentation existe déjà, mais elle est très sommaire et ne couvre en détail que le procédé de mise à jour du micrologiciel. Pour vraiment apprendre à s’en servir, il faut impérativement suivre le mode d’emploi de la HP-42S. Sans cela, on passe à côté de tout ce qui rend la HP-42S (et donc la DM42) aussi puissante.

Cela dit, la DM42 vise les fans inconditionnels de la HP-42S et des calculatrices HP de manière générale, donc certains ne verraient pas d’inconvénient particulier à l’absence de mode d’emploi. Malgré tout, et bien qu’il s’agirait d’un travail colossal, j’estime qu’un bon mode d’emploi exhaustif mériterait d’être écrit pour la DM42.

Le public visé est aussi un public qui a déjà passé ses examens (du moins en France), puisqu’une calculatrice comme celle-ci a besoin d’un « mode examen » pour pouvoir être autorisé aux examens en France à partir de la prochaine session de 2018. Elle n’est donc (hélas) pas à mettre entre toutes les mains.

En somme, j’en suis très content et à mes yeux, la DM42 pourrait être un excellent compagnon de bureau.

Liens divers

Posté par x0r à 2 commentaires • Tags : rpn swissmicros dm42 hp-42s calculatrice

Réparation d'une micro-chaîne Hi-Fi Sony

J’ai pu récupérer récemment l’ancienne micro-chaîne Hi-Fi de mes parents ; il s’agit d’une Sony CMT-CP500MD datant de 2001 avec les fonctions radio, CD, MiniDisc et cassette audio.

Vue de face de la chaîne Sony CMT-CP500MD
La Sony CMT-CP500MD vue de face.

J’ai pu emporter cette micro-chaîne avec moi puisque les platines CD et MD étaient inutilisables : le mécanisme d’éjection avait en effet rendu l’âme sur ces deux mécaniques.

Du coup, il s’agissait pour moi d’une aubaine, puisque je cherchais justement à m’équiper en matériel Hi-Fi pour égayer un peu le salon, écouter des CD et profiter de la sortie audio optique de ma TV pour profiter d’un meilleur son sur celle-ci (et donc profiter d’un bon son sur les films, les séries TV et les jeux vidéo). Quant au MiniDisc, c’est un joli bonus.

La réparation en elle-même d’un mécanisme d’éjection est généralement assez simple (cela consiste souvent en un remplacement d’une courroie), mais le plus difficile, surtout sur des mini-chaînes, c’est de s’y retrouver une fois le capot retiré. Dans ce type de chaînes, on cherche en effet à tout miniaturiser le plus possible. Heureusement le guide de service pour cette chaîne se trouve facilement, l’excellente FAQ MiniDisc et de manière générale le site « La taverne de John-John » (ainsi que ses vidéos de réparation de platines MiniDisc sur sa chaîne YouTube) m’ont été d’une grande aide et enfin, j’ai pu trouver facilement aussi les courroies de remplacement pour les mécaniques CD et MD sur eBay.

Je vous propose donc en images cette petite réparation, dont la partie la plus compliquée reste de suivre le manuel de service pour le démontage et qui m’a permis de faire un acte éco-responsable en sauvant cette chaîne de la benne.

Désosser la bête

Cette chaîne se démonte d’abord en déposant les faces gauche et droite puis en retirant le dessus. Ce faisant, on dépose en même temps la mécanique cassette, qu’on déconnecte de la carte mère.

Ensuite, les platines MD et CD étant superposées, il faut retirer les vis retenant la mécanique MD au châssis puis déconnecter quelques nappes avant de pouvoir retirer la face avant, sur laquelle est vissée la mécanique MD. La mécanique CD et le reste des cartes (carte mère, alimentation, etc.) restent dans le châssis.

Chaîne ouverte,
séparée en deux
La chaîne Hi-Fi démontée et montrant ses deux moitiés. La première moitié nécessite de quoi caler la mécanique MD pour travailler correctement.

Après avoir retiré les vis retenant la mécanique MD à la face avant, on récupère le bloc MD dans son intégralité.

Bloc MD
intégral de la chaîne Hi-Fi
Sur la mécanique MD (dont on ne voit pas grand-chose à part la fente par laquelle on insère les MiniDisc) se trouve la carte dite « BD Board » gérant le traitement du signal et implémentant le codec ATRAC utilisé sur ces disques. Il s’agit ici d’une mécanique MDM-7A (donc de 7e génération), apparemment réputée globalement fiable et bien conçue.

Remplacement de la courroie d’éjection MiniDisc

On dépose ensuite la « BD Board » et les éléments de châssis ; on se retrouve ensuite avec la mécanique MDM-7A toute seule.

DERP
On voit ici la tête d’enregistrement sur son bras et on peut apercevoir la lentille du bloc optique. L’élément en plastique noir au-dessus et la partie métallique servent à guider le MiniDisc lors de l’insertion et de l’éjection.

Il ne reste plus qu’à déposer le haut du chariot (la partie en métal et en plastique noir) pour arriver à la mécanique en elle-même.

Bloc MD après
avoir déposé le chariot
Le moteur d’éjection (petite poulie blanche à l’avant) est censée entraîner la mécanique d’éjection par la grande poulie blanche à l’aide d’une courroie. J’avais déjà retiré l’ancienne courroie au moment où j’ai pris la photo.

La courroie d’éjection se place entre les deux poulies blanches qu’on peut voir à l’avant de la mécanique et sur le côté gauche de la photo. Lorsque j’ai retiré l’ancienne, le verdict était sans appel : elle était devenue beaucoup trop détendue pour transmettre une quelconque force. On pouvait en effet entendre le moteur d’éjection tourner dans le vide. Après installation de la nouvelle courroie, voici ce que ça donne.

Bloc MD après
installation de la nouvelle courroie d’éjection
Comme neuve !

J’en profite aussi pour nettoyer la lentille du bloc optique et la tête d’enregistrement à l’aide d’un coton-tige légèrement imbibé d’alcool isopropylique à 99 %. Après cela, il ne reste plus qu’à suivre la procédure de démontage en sens inverse. Mais passons ensuite en revue la platine CD…

Remplacement de la courroie d’éjection CD

La platine CD est un peu plus difficile d’accès car elle se situe tout en bas du châssis de la micro-chaîne. En suivant le manuel de service, on finit par en venir à bout, mais la partie la plus désagréable reste toujours la dépose du tiroir, toujours très gênant quand on démonte ce genre d’appareils.

Mécanique CD
démontée
La mécanique CD une fois retirée de son châssis. Le manuel de service dit que c’est une CDM55. Le bloc optique est une KSS-213D si je me souviens bien.

Là aussi la courroie présentait le même symptôme : elle était devenue trop élastique et le moteur d’éjection (poulie noire à gauche qu’on peut entrevoir à travers du trou dans le tiroir) tournait dans le vide.

Ici la courroie est un peu plus délicate à remplacer, puisqu’elle va du moteur d’éjection à la poulie noire à droite (qu’on peut aussi entrevoir à travers le même trou du tiroir). Mais une fois que c’est fait, c’est bon pour une dizaine d’années.

Conclusion

Ce n’est peut-être pas la plus impressionnante des réparations, mais il s’agit d’une panne récurrente et généralement facile à résoudre sur ce genre d’appareils. C’était surtout très intéressant pour moi de tenter ma chance sur une chaîne Hi-Fi dont je savais que je pouvais encore la sauver.

Je me surprends à utiliser la platine MiniDisc régulièrement, en enregistrant des émissions radio de temps en temps ou en préparant des compilations de musique que j’ai sur CD ou en format dématérialisée. Je dois dire aussi que le MiniDisc m’a toujours beaucoup fasciné et que les supports ont encore un certain air futuriste (ou « rétro-futuriste »), même en 2017.

Cela dit, on verra bien combien de temps cette chaîne me servira avant que j’aie besoin de la remplacer à nouveau, mais pendant ce temps, elle fonctionne sans souci majeur.

Posté par x0r à 4 commentaires • Tags : hifi stereo reparation minidisc cd courroie

Virtualiser des machines sous FreeBSD avec bhyve

Depuis sa version 10.0, FreeBSD inclut un hyperviseur nommé bhyve (prononcer « bee-hive »). C’est une plate-forme de virtualisation conçue exclusivement pour FreeBSD et qui permet, à l’instar de QEMU sous Linux, d’héberger des machines virtuelles.

J’ai moi-même été amené ces temps-ci à faire mumuse avec bhyve dans le cadre d’expérimentations à titre personnel : je voulais mettre en place une machine virtuelle sur mon serveur qui, à terme, devrait héberger mon installation d’Asterisk afin de mieux l’isoler du système hôte. Bhyve étant encore relativement jeune, je vous propose donc un petit compte-rendu des étapes nécessaires afin de faire fonctionner une VM sous FreeBSD avec bhyve.

Prérequis

Pour commencer, comme le précise le manuel de FreeBSD, votre machine doit disposer d’un processeur Intel® (resp. AMD®) récent et prenant en charge les fonctions « Extended Page Tables » (EPT) et « VMX unrestricted mode » (UG) (resp. « Rapid Virtualization Indexing » (RVI) ou « Nested Page Tables » (NPT) sur AMD®). Chez Intel, la majorité des Core i3/i5/i7 ou Xeon E3/E5/E7 récents feront l’affaire. Le manuel de FreeBSD décrit une procédure pour tester la compatibilité de votre matériel.

En outre, la plupart du temps, vous voudrez probablement démarrer des machines virtuelles à l’aide d’un gestionnaire de VM comme libvirt sous Linux. Bien qu’il soit possible d’utiliser libvirt sous FreeBSD avec bhyve, j’ai préféré opter pour une solution moins lourde et s’intégrant mieux avec les fonctions de ZFS en installant vm-bhyve.

Enfin, pour la mise en réseau, j’ai choisi de mettre les machines virtuelles « à plat » dans le même réseau que l’hôte, de sorte à ne pas être embêté par une quelconque forme de NAT. Pour cela, il faut reprendre une bonne partie de la configuration réseau et prendre garde aux interactions entre le trafic réseau destiné à la VM et le pare-feu pf de l’hôte.

Nous supposerons également que vous disposiez déjà d’un serveur DNS et d’un serveur DHCP sur votre réseau : la plupart du temps, il s’agit de votre routeur ou de votre box chez vous.

Le schéma ci-dessous reprend la configuration réseau que nous mettrons en place pour l’accès au réseau des machines virtuelles.

Illustration du pont réseau pour les machines virtuelles

Installation et configuration de vm-bhyve

Pour installer vm-bhyve, il suffit de l’installer avec pkg(8) :

# pkg install vm-bhyve

Choisissez ensuite un emplacement dans lequel seront stockés tous les fichiers de configuration et tous les espaces de stockage de vos VM. Pour ma part, j’ai choisi d’utiliser /usr/home/vm. Créez donc le dataset ZFS adéquat :

# zfs create -p zroot/usr/home/vm

Ajoutez ensuite les lignes ci-dessous dans /etc/rc.conf pour activer vm-bhyve au démarrage, de sorte à lancer automatiquement les machines virtuelles souhaitées :

vm_enable="YES"
vm_dir="zfs:zroot/usr/home/vm"

Initialisez ensuite le répertoire utilisé par vm-bhyve et copiez les templates de VM par défaut (j’en parlerai plus tard) :

# vm init
# cp /usr/local/share/examples/vm-bhyve/* /usr/home//vm/.templates/

(Une petite précaution s’impose : vérifiez avec la commande which vm qu’il s’agisse bien de /usr/local/sbin/vm ; en particulier, si vous avez installé le paquet mgetty sur la même machine, il se pourrait que vous ayiez un conflit avec l’outil vm installé par ce dernier. Si c’est le cas, tapez le chemin complet ou créez un alias dans votre shell.)

Configuration réseau

Cette partie est absolument nécessaire également. Sans cela, le réseau ne fonctionnera pas sur les VM, ou pire, cela ne fonctionnera que dans un sens. L’outil « vm » fournit des commandes de création de switches virtuels, mais cela fonctionne mal lorsque les VM doivent communiquer avec l’hôte. Heureusement, il y a une méthode plus fiable.

Supposons que vous ayiez dans votre /etc/rc.conf la configuration réseau suivante :

ifconfig_igb0="inet 192.168.10.21/24"
defaultrouter="192.168.10.254"

Il faudra donc modifier cela pour, à la place, créer un pont ayant comme unique membre l’interface physique connectée au réseau. L’outil vm-bhyve ajoute ensuite sur le même pont les interfaces virtuelles nécessaires pour les VM au fur et à mesure qu’elles démarrent (nommées tap0, tap1, tap2…). En outre, l’adresse IP de l’hôte doit être affectée au pont et non à l’interface membre.

On en profite également pour nommer le pont br-net plutôt que d’utiliser le nom par défaut bridge0, ce qui a l’avantage de rendre plus intelligible la sortie d’ifconfig.

Ainsi, vous devriez avoir la configuration suivante :

# interfaces
ifconfig_igb0="up"
cloned_interfaces="bridge0"

# réseau
ifconfig_bridge0_name="br-net"
ifconfig_br_net="addm igb0"
ifconfig_br_net_alias0="inet 192.168.10.21/24"

# routage
defaultrouter="192.168.10.254"

Si vous avez une machine avec plusieurs VLAN, je préconise de créer autant de ponts qu’il y a de VLAN. Cela vous permet d’isoler les machines virtuelles des VLAN dont elles n’ont pas besoin.

Une fois cette opération terminée, redémarrer le réseau avec les deux commandes :

# service netif restart
# service routing restart

N’oubliez pas ensuite de mettre à jour les fichiers de configuration faisant référence aux noms de vos interfaces réseau, comme /etc/pf.conf ou la configuration de isc-dhcpd si vous avez un serveur DHCP sur l’hôte. Redémarrez ensuite les services concernés.

Enfin, pour chaque pont que vous avez créé, utilisez l’outil vm pour créer les switchs virtuels :

# vm switch import public br-net

Cette commande crée un switch virtuel nommé « public » à partir du pont « br-net » créé précédemment à la main.

Nous avons ainsi terminé les paramétrages nécessaires avant la création de la première machine virtuelle sur l’hôte.

Adapter le pare-feu de l’hôte

Les paquets réseau destinés à l’invité demeurent filtrés par le pare-feu pf de l’hôte avant d’être acheminés vers l’invité. Comme je préfère configurer un pare-feu sommaire par machine, il faut modifier le /etc/pf.conf pour autoriser tout le trafic réseau entre la machine virtuelle et l’extérieur. Adaptez les noms des interfaces et les adresses IP et ajoutez cela vers le début de vos règles pf :

pass in quick on igb0 from 192.168.10.22 no state
pass in quick on igb0 to 192.168.10.22 no state

Créer une première machine virtuelle

Afin de permettre de créer de nombreuses machines virtuelles avec des configurations matérielles semblables, vm-bhyve propose l’utilisation de templates. Un template décrit simplement la configuration matérielle par défaut d’une machine virtuelle créée à partir de celle-ci. Dans notre cas, si on souhaite faire tourner une VM sous FreeBSD, le template « default » conviendra, mais il est préférable d’utiliser « freebsd-zvol » si votre hôte utilise ZFS.

Pensez à modifier le template qui vous intéresse dans /usr/home/vm/.templates si jamais vous avez créé un switch dont le nom est différent de « public » dans l’étape précédente. Vous pouvez aussi ajouter une deuxième interface branchée sur un VLAN d’administration ou effectuer toute autre modification que vous estimez nécessaire (il vaut mieux garder le nombre de VCPU et la RAM à leurs valeurs d’origine ; au pire, ça peut se régler par VM).

Une fois cela fait, il ne reste plus qu’à créer la VM (on crée au passage un disque dur virtuel de 20 Go) :

# vm create -s 20G -t freebsd-zvol ma_vm

On récupère ensuite une image d’installation de FreeBSD (nécessaire seulement la première fois) :

# vm iso \
    ftp://ftp.freebsd.org/pub/FreeBSD/releases/ISO-IMAGES/11.0/FreeBSD-11.0-RELEASE-amd64-bootonly.iso

Enfin, on démarre la VM sur le média d’installation qu’on vient de récupérer (l’option -f permet la connexion automatique à la console de l’invité) :

# vm install -f ma_vm FreeBSD-11.0-RELEASE-amd64-bootonly.iso

Il ne reste plus qu’à procéder à l’installation comme n’importe quelle autre machine physique.

Conclusion

La mise en œuvre de bhyve est comparable à celui d’une solution à base de QEMU/KVM sous Linux. Je n’ai pas encore testé la redirection de périphériques PCI, mais je sais que bhyve le permet, moyennant le paramétrage à la fois de l’hôte et de l’invité.

Je dirais donc que bhyve fait tout ce qu’on attend d’une plate-forme de virtualisation. Le seul inconvénient que j’ai relevé est que bhyve exige impérativement du matériel récent. En revanche, on obtient une solution élégante, rapide et qui s’intègre très bien avec ZFS : on peut alors faire des instantanés et des copies de sauvegardes comme avec n’importe quel autre zvol.

En somme, c’est une solution très intéressante lorsqu’on veut isoler des services les uns des autres et qu’une « jail » ne suffit pas.

Posté par x0r à 0 commentaire • Tags : freebsd unix bhyve vm virtualization

Utiliser des calculatrices vintage en l'an 2017

(Note : j’ai déménagé récemment dans un appartement plus spacieux avec ma chère et tendre, ce qui a pu influencer négativement le rythme de publication de billets sur mon blog. Je prépare de plus un autre billet un peu plus technique mais qui me prendra pas mal de temps. Je vous propose donc cette fois un billet un peu moins orienté technique pure et dure en attendant.)

Quoi qu’il arrive, il n’y a jamais rien de tel qu’avoir une bonne calculatrice sous la main.

Ces derniers temps, il se trouvait que j’avais besoin d’une calculatrice financière pour de multiples raisons. D’aucuns me diraient que j’aurais pu me contenter d’outils en ligne ou d’une application sur mon ordiphone. Mais je préfère de loin une vraie calculatrice à n’importe quel autre objet qui s’y substitue. Cela a donc été l’occasion (ou un prétexte, au choix) de commencer une petite et modeste collection de calculatrices HP, aussi bien récentes que « vintage ».

Photo de calculatrices HP
Petit aperçu de ma collection pour le moment, que nous passerons en revue plus loin dans ce billet.

Pourquoi je préfère une vraie calculatrice

Entre l’apparition des premières calculatrices scientifiques de poche dans les années 1970 et maintenant, beaucoup de choses ont changé : notamment le fait que les ordinateurs et les smartphones soient accessibles à tout un chacun, ce qui n’était pas nécessairement le cas à l’époque des premières calculatrices.

Le PC et le smartphone sont des appareils très polyvalents et à quelques exceptions près, il n’y a rien que ces appareils ne sachent pas faire et qu’une calculatrice saurait faire. Ces deux types d’appareils ne sont néanmoins pas exempts de défauts, surtout lorsqu’on compte s’en servir comme calculatrice.

Tout d’abord, la calculatrice gagne sur la disponibilité : sur un PC, il faut attendre qu’il démarre, puis lancer l’application calculatrice pour avoir une calculatrice. Sur smartphone, il faut déverrouiller l’écran puis trouver l’application calculatrice parmi le capharnaüm d’« applis » déjà installés (de gré ou de force) sur le téléphone. Sur une calculatrice, il suffit juste d’appuyer sur le bouton « ON » ; elle est alors immédiatement disponible.

En termes d’alimentation électrique, une calculatrice requiert généralement entre une et quatre piles ; des piles bouton pour les plus petites ou des LR03 ou LR6 pour de puissantes scientifiques ou graphiques (bien que certaines graphiques actuelles comme la TI n-spire CX CAS ou la HP Prime ont des batteries rechargeables). Sauf exceptions, l’autonomie des piles se compte en général en mois (voire en années) avec une utilisation occasionnelle. On ne peut pas vraiment en dire autant pour un smartphone, bien que ce soit un appareil qui reste généralement allumé en permanence.

Ensuite, la calculatrice gagne sur l’aspect ergonomie également. Tout d’abord parce que je préfère largement un vrai clavier avec de vrais boutons et un vrai retour tactile lorsqu’on appuie dessus (d’où ma préférence pour un TypeMatrix en bépo ou un clavier mécanique).

De plus, une calculatrice n’a pas de distractions : il n’y a pas d’autres applications dessus qui seraient susceptibles d’afficher des notifications et on n’est pas tenté d’aller ouvrir une autre application juste après. Enfin, je peux être sûr qu’une calculatrice n’affichera jamais de publicités, ce qu’on ne peut pas vraiment dire de la majorité des applications gratuites calculatrice pour smartphone (du moins sur le Play Store de Google).

Privilégier une (bonne) calculatrice à un smartphone est parfois aussi une preuve de sérieux. Lors d’une réunion un tant soit peu formelle (par exemple un entretien avec un conseiller bancaire, un rendez-vous pour obtenir un prêt immobilier ou n’importe quelle autre situation de négociation), il faut pouvoir se battre à armes égales avec son interlocuteur. Dans ces situations, je me suis toujours surpris à utiliser une calculatrice à un moment donné de la conversation. Or j’ai horreur de sortir mon smart­phone dans ce genre de situations et j’ai le sentiment que j’aurais été plus crédible si, à la place, je sortais une vraie calculatrice (sans exagérer tout de même : je doute que mon conseiller bancaire m’accor­derait des faveurs particulières s’il me voit poser une HP 12c vintage sur le bureau, mais je me trompe peut-être !).

De même, j’ai vu nombre de conseillers bancaires ou d’autres personnes avec des métiers similaires avoir sur leur bureau, à côté de leur PC, une calculatrice « quatre opérations » comme on en trouve partout dans le commerce et s’en servir pour des opérations simples.

La calculatrice est un objet qui ne fait qu’une seule chose mais qui la fait bien. Ce n’est peut-être plus une machine aussi indispensable qu’avant, mais elle reste un compagnon de bureau utile.

Pourquoi je préfère une calculatrice en notation polonaise inversée

Mais je n’ai pas encore parlé de la raison principale qui m’a amenée à privilégier les calculatrices Hewlett-Packard.

Il faut savoir que sur la plupart de ces machines passés ou actuelles fabriquées par HP, on saisit les calculs en notation dite « polonaise inverse » ou « postfixe ».

Imaginons qu’on souhaite calculer 7 × 191. En notation classique (dite « infixe »), on saisit la première opérande, 7, puis l’opération, « × », puis la seconde opérande, 191, et on appuie sur « = » pour le résultat. En notation polonaise inverse, on saisit la première opérande, puis on frappe ENTER (ou INPUT sur certaines machines), puis on saisit la seconde opérande avant d’appuyer sur « × » et obtenir immé­diatement le résultat. En effet, dans cette notation, notre calcul s’écrit « 7 191 × ».

À première vue, l’intérêt de cette notation ne saute pas immédiatement aux yeux. Mais c’est en faisant des calculs plus compliqués que cette notation se révèle être intéressante : il n’y a en effet pas besoin de parenthèses.

Il n’y a pas besoin non plus de la notion de priorité entre opérateurs : l’ordre dans laquelle on écrit les opérateurs en notation postfixe correspond en effet à l’ordre dans lequel on évaluerait l’expression : par exemple, d’une part, l’expression (7 × 191) + 42 donne, en notation polonaise inverse, 7 191 × 42 + ; d’autre part, l’expression 7 × (191 + 42) se note 7 191 42 + ×. Comme la multiplication est commutative (i.e. a × b = b × a), cette expression se note aussi 191 42 + 7 ×.

Ainsi, avec un peu d’entraînement, les calculs sont plus rapides à saisir (et pour ceux que ça intéresse, vous pourrez trouver de nombreux autres exemples de notation polonaise inverse pour vous faire une idée). Ce type de calculatrices exige en effet de l’utilisateur un peu de gymnastique mentale, découlant de la nécessaire conversion entre notations infixe et postfixe. Une calculatrice en notation polonaise inverse n’est donc pas un substitut pour un cerveau, mais simplement une extension de celui-ci.

L’état actuel de ma collection de calculatrices HP

Je vous propose maintenant un petit tour d’horizon de mes quelques machines Hewlett-Packard actuellement en ma possession, dans l’ordre d’acquisition.

HP 50g

Lorsque j’étais en prépa, j’avais un jour surpris ma professeure de chimie utiliser une HP 28S pendant un TP. Comme elle avait remarqué que j’avais l’air intrigué par sa calculatrice, elle m’a expliqué que sa machine, qui datait de l’époque où elle était elle-même étudiante, fonctionne en notation polonaise inverse.

Ma curiosité ainsi titillée, j’ai utilisé pendant un court moment l’application Free42 sur Palm OS (et que je garde toujours sur mon propre ordiphone pour épater la charmante compagnie juste au cas où). Mais après un peu de réflexion, j’avais pris la décision de passer définitivement à une vraie machine en notation polonaise inverse pour mes concours et l’école d’ingénieurs. Ma machine de choix d’alors était donc une HP 50g.

HP 50g
Ma HP 50g.

Cette machine était donc ma première (et pendant longtemps, ma seule) calculatrice HP. Il s’agit d’une calculatrice scientifique graphique avec calcul formel. À l’intérieur, on y trouve un cœur ARMv4T qui émule un processeur Saturn, processeur qui équipait de nombreuses calculatrices de la fin des années 1980 et du début des années 1990 (séries Pioneer, Clamshell et Charlemagne). Par conséquent, cela la rend compatible avec des programmes de son aînée la HP 48g.

Le clavier a un petit retour tactile satisfaisant par rapport à une Casio ou une TI, mais celui-ci n’est pas aussi jouissif à l’usage comparé à des modèles plus anciens. L’autonomie des piles laisse également un peu à désirer par moments : cette calculatrice bouffe quatre piles LR03 en quelques mois d’usage intensif. L’avertissement « piles faibles » arrive assez vite, si bien qu’un jeu de piles neuves dans mon sac n’était pas un luxe ; ceci afin de se prémunir d’une « panne sèche » pendant un devoir surveillé ou une colle.

HP a cessé la production de ce modèle en 2015. Il n’y a à vrai dire pas de vrai remplaçant. La HP Prime s’y rapproche, mais malgré plusieurs mises à jour de firmware, elle a encore du chemin à faire pour reprendre le flambeau de la 50g du fait de fonctionnalités manquantes par rapport à celle-ci.

HP 17B II

Ma première machine purement financière achetée d’occasion, ce qu’on peut constater par quelques petites subtilités à l’usage (du moins, en mode polonaise inverse) par rapport à des modèles scientifiques.

Ce modèle a été introduit en 1990 par HP ; mon exemplaire a été fabriqué en Indonésie en 1996 d’après le numéro de série.

Je trouve le clavier absolument fabuleux et très agréable à l’usage. Il ne m’est encore jamais arrivé d’appuyer sur une touche sans que le logiciel n’enregistre la frappe. Je ne possède pas (encore) d’autres machines de la même série (Pioneer), mais je suis prêt à parier que le ressenti est à peu près identique sur les autres Pioneer. Le clavier est la seule raison pour laquelle je préfère ce modèle à la HP 17bII+, qui est sa version réactualisée.

Elle n’est pas programmable mais comporte un solveur d’équations qui peut être utilisé comme langage de programmation, lequel devient Turing-complet avec un peu d’habileté et en utilisant des fonctions non documentées.

HP 17B II et 17bII+
Vingt ans d’écart : de gauche à droite, une HP 17B II (ancien modèle) et une HP 17bII+ (nouveau modèle).

HP 17bII+

J’ai acheté cette machine d’occasion également à peu près au même moment que la HP 17B II parce que j’étais curieux de voir comment HP avait actualisé cette calculatrice financière. Et ils ne s’en sont pas trop mal sortis.

Les fonctions sont quasiment identiques (si bien que les modes d’emploi sont quasiment interchangeables entre les deux modèles, à quelques petites choses près). Le firmware de la 17bII+ semble toutefois avoir été réécrit ex nihilo (au lieu de faire tourner celui du 17B II dans un émulateur Saturn). Il y a donc quelques petites différences au niveau logiciel entre les deux machines.

Je ferai une comparaison plus en détail entre les deux modèles dans un autre billet. Quoi qu’il en soit, je résumerai en disant que les différences les plus notables sont :

  • le clavier, bien meilleur sur l’ancien modèle ;
  • l’afficheur LCD, bien meilleur sur le nouveau modèle (celui de l’ancien reste néanmoins très correct dans la plupart des situations et des éclairages) ;
  • le nouveau modèle ajoute une conversion de devises inspirée de la 19B ;
  • enfin, le nouveau modèle embarque 32 ko de mémoire contre 8 ko sur l’ancien.

Il y a en fait deux versions du HP 17bII+ : un premier qui avait été introduit en 2003 et un autre qui a été lancé en 2011. C’est le modèle le plus récent que je vous montre ici.

Force est de constater que HP a maintenu toutes les fonctionnalités de la HP 17B II : en particulier, il est toujours possible d’imprimer par infrarouge sur une imprimante thermique compatible (modèle HP 82240A ou 82240B) bien que Hewlett-Packard ne semble plus commercialiser lesdites imprimantes.

HP 35s

Cadeau d’anniversaire de ma chère et tendre et donc quasiment neuve, il s’agit d’un des deux modèles scientifiques encore commercialisés par HP qui prennent en charge la notation polonaise inverse (l’autre étant la HP Prime). Elle trône en ce moment surtout sur mon bureau au boulot, où elle m’a déjà beaucoup rendue service.

HP 50g
Ma HP 35s.

HP aurait introduit ce modèle à l’occasion du 35e anniversaire de sa toute première calculatrice scientifique, la HP 35. L’esthétique « old school » de ce modèle a en effet tout d’un hommage à cette dernière.

Il s’agit d’une calculatrice scientifique programmable avec un afficheur alphanumérique matriciel sur deux lignes. En mode polonaise inverse, celui-ci affiche les registres Y et X, ce qui est très agréable lors de calculs un peu complexes.

J’aime beaucoup le clavier sur celui-ci, même si parfois il arrive que j’aie le « clic » et le retour tactile de la touche mais que l’électronique n’enregistre pas la frappe. Il convient donc de regarder l’afficheur de la calculatrice pendant qu’on l’utilise. J’ai constaté ce problème de temps à autres sur d’autres machines récentes de HP comme la 17bII+ (cf. supra). Le ressenti de chaque touche est un peu inégal (certaines demandent un peu plus de force avant leur activation que d’autres), mais c’est peut-être une question de rodage.

La fonction que j’utilise le plus est la conversion de nombres entre bases 10 et 16. La façon dont cette fonction a été mise en œuvre sur cette HP demande un petit peu d’adaptation : peu importe la base d’affichage, sélectionnable avec les commandes DEC, HEX, BIN ou OCT, tous les nombres saisis sont réputés être en base 10. Pour saisir un nombre dans une base différente, il faut suivre le nombre en question du suffixe adéquat parmi « b », « h » ou « o » avant de le pousser sur la pile.

HP 19B

HP 19B ouverte
Ma HP 19B, ouverte.

La HP 19B a été introduite en 1987, en même temps que la HP 17B (qui précède de quelques années la HP 17B II).

C’est un peu le vilain petit canard de ma collection, parce que c’est la seule machine « vintage » qui ne prenne pas en charge la notation polonaise inverse ! Ce « défaut » a heureusement été corrigé dans le modèle 19B II ; de même, la 17B II est une 17B avec la possibilité de passer en notation postfixe.

C’est une calculatrice financière de la série « Clamshell ». Cette série semble être une série un peu « maudite » pour plusieurs raisons. Premièrement, le compartiment à piles est fermé à l’aide d’un élément en plastique qui fait également office de contacts pour les piles. Cette porte est le point faible de la machine, si bien qu’on trouve de nombreux Clamshells avec une porte cassée. Les palliatifs existent et prennent généralement la forme d’un bout de ruban adhésif, ce qui n’est guère esthétique.

Deuxièmement, à l’instar des Pioneer, ces machines sont fermées non pas à l’aide de vis, mais à l’aide de plots de plastique chauffés pour former des sortes de rivets. Ces rivets ont souvent tendance à casser, ce qui entraîne un mauvais maintien des deux parties de la coque, entraînant lui-même des dysfonctionnements allant du non-fonctionnement d’une ou plusieurs touches à une panne totale de la calculatrice. Du fait de cette méthode d’assemblage, ouvrir une Clamshell est nécessairement une opération destructrice

Cela dit, même si elle est plutôt encombrante aussi bien sur un bureau que dans une main (elle aurait été parfaite si elle faisait cinq à dix millimètres de largeur en moins), le clavier alphabétique de la partie gauche est très pratique pour saisir ses formules dans le solveur. L’écran LCD affiche trois lignes et une ligne de menu en permanence, ce qui représente un confort indéniable là aussi. En outre, nul besoin d’étui protecteur, et une fois fermée, cette calculatrice sait se faire classe et discrète.

HP 19B fermée
Ma HP 19B, fermée. À première vue, on croirait un organiseur…

La course des touches des deux claviers est très réduite et j’aurais préféré un toucher plus dur et un retour tactile et audible prononcé, comme sur la 17B II ou sur la 35s. Mais on s’y habitue…

Imprimante HP 82240A

Imprimante HP 82240A
Imprimante HP 82240A, avec du papier thermique du même âge que l’imprimante elle-même…

L’idée d’acheter d’occasion une imprimante thermique « vintage » pour accompagner une HP 17B II peut paraître saugrenue, mais ce n’est pas plus absurde que les myriades de calculatrices-imprimantes en notation infixe qui s’écoulent encore de nos jours. Surtout que dans le cas de calculs qu’on serait amenés à faire avec une calculatrice financière, il est bien pratique de pouvoir comparer différents scénarios (et notamment différents tableaux d’amortissements de prêts) sans avoir à refaire les calculs à chaque fois. Cette imprimante n’a donc rien d’un gadget.

Cette imprimante thermique date de 1989, et le rouleau de papier thermique qui est chargé dedans est toute aussi « vintage ». Heureusement, le format de papier thermique utilisé est relativement standard (il s’agit de rouleaux de largeur 57 mm) et se trouve facilement dans des magasins de fournitures de bureau orientés entreprise.

Elle est compatible avec toutes mes calculatrices à l’exception de la 35s. Je n’ai pas testé avec ma 50g, mais il semblerait que les options d’impression sont un peu cachés.

Conclusion

Mon objectif initial n’était donc pas réellement de me constituer une collection pour la simple collectionite. Il s’agissait simplement d’un concours de circonstances, de curiosité puis d’une prédilection pour les calculatrices HP qui ont fait que j’ai amassé quelques calculatrices Hewlett-Packard en quelques semaines.

Cela dit, si je me lance dans une collection un peu plus poussée (ce que je ne serai pas le premier à faire), il convient de me fixer un objectif raisonnable. Par exemple, l’objectif de posséder une machine représentative de chaque série est un compromis raisonnable.

Pendant ce temps, je suis tout particulièrement satisfait de ma HP 17B II (et ma HP 35s est devenue ma seconde machine de prédilection). Je ferai sûrement encore un billet ou deux à ce sujet.

Posté par x0r à 5 commentaires • Tags : calculatrices hp rpn

Asterisk et la Livebox bavarde

La Livebox d'Orange comporte, outre les connexions réseau et Wi-Fi habituelles, une prise FXS à l'arrière conçue pour y brancher un téléphone analogique. Comme je le disais auparavant, il s'agit là d'une des manières les plus simples d'exploiter la ligne fixe fournie avec toute connexion Internet Orange.

Sur la prise FXS et lorsque la Livebox détecte un problème sur la ligne téléphonique, elle substitue à la tonalité un message en boucle comme : « Un problème a été détecté sur votre ligne téléphonique. Veuillez redémarrer la Livebox. Si le problème persiste, veuillez contacter le service client Orange ». Puis la tonalité classique revient lorsque la ligne est à nouveau opérationnelle.

Seulement, dans certaines circonstances, cela allait de pair avec des sonneries intem­pestives  : la première lorsque la ligne était en dérangement et la seconde lorsque le pro­blème disparaissait. De plus, il s’agissait souvent de problèmes transitoires pendant que la Livebox se resynchronisait en PPPoE. Par conséquent, j’ai régulièrement été réveillé à 3 h du matin par cette box.

Étant donné, de plus, que j'avais déjà mis en œuvre Asterisk chez moi et que je supervisais déjà moi-même l'état des services Orange avec Icinga, je considérais donc que je disposais des outils pour filtrer ces sonneries intempestives. Ce billet propose donc de vous montrer comment j'ai fait.

L’idée

Ces sonneries intempestives prennent la forme d’appels anonymes et surviennent seulement lorsque la box considère que la ligne téléphonique est en dérangement. L’idée est donc de programmer Asterisk pour reconnaître ces deux caractéristiques.

Reconnaître un appel masqué dans Asterisk est facile. Déterminer la disponibilité du téléphone du point de vue de la Livebox est en revanche une autre histoire. Heureusement, mes scripts Nagios pour la Livebox remplissent exactement cette fonction ; il est donc possible de l’utiliser dans mon test. Nous allons également nous aider de l’interface AGI pour réaliser ce test.

Le script AGI

AGI, ou Asterisk Gateway Interface, est en effet une interface pour faire exécuter des scripts par Asterisk. Ces scripts accomplissent des tâches impossibles ou trop fastidieuses à mettre en œuvre via extensions.conf ou extensions.ael. Le principe est le même que celui de l’interface CGI dans le monde du Web : on peut utiliser n’importe quel langage de program­mation (C, Perl, Python…) du moment qu’on puisse écrire sur stdout, lire sur stdin, accepter des arguments de ligne de commande et que le fichier soit exécutable.

Les scripts AGI doivent être placés dans un répertoire spécifique qui dépend de votre installation Asterisk. Sous FreeBSD, il faut les placer dans /usr/local/share/asterisk/agi-bin et les rendre exécutables avec la commande chmod +x. J’ai appelé ce script stfu-livebox.agi. Voici son code source :

#!/usr/bin/env perl

use strict;
use warnings;

$| = 1;

use Asterisk::AGI;
use LWP::UserAgent;

my $AGI = new Asterisk::AGI;
my %input = $AGI->ReadParse();

my $replacement_name = $ARGV[0];
my $replacement_number = $ARGV[1];

$replacement_name ||= 'Livebox';
$replacement_number ||= 'Livebox';

$AGI->verbose("Run stfu-livebox.agi", 1);

sub is_trunk_alive {
    my $ret = system('/usr/local/libexec/nagios/check_livebox_phone', '-H', '192.168.1.1');
    $ret >>= 8;

    return ($ret == 0);
}

sub is_anon {
    return ($input{'callerid'} eq 'unknown');
}

sub main {
    if (is_anon() && !is_trunk_alive()) {
        $AGI->set_variable('CALLERID(name)', $replacement_name);
        $AGI->set_variable('CALLERID(name-pres)', 'allowed_not_screened');
        $AGI->set_variable('CALLERID(number)', $replacement_number);
        $AGI->set_variable('CALLERID(num-pres)', 'allowed_not_screened');
    }
}


main();

Le principe du script est le suivant : à chaque appel anonyme, il exécute le plugin Nagios check_livebox_phone, qui détermine l’état de la ligne téléphonique vue par la Livebox. Si la ligne est hors service, il positionne un numéro et un nom spécifiques.

Le nom et le numéro présentés sont « Livebox » par défaut, mais il est possible d’utiliser autre chose. Par exemple, sur mon installation, je lui fais présenter un numéro qui a peu de chances de m’appeler depuis l’extérieur : mon propre numéro.

Intégration dans le dialplan d’Asterisk

Maintenant que nous avons le script AGI, il ne reste plus qu’à l’appeler depuis le dialplan d’Asterisk au moyen de l’application AGI :

AGI(stfu-livebox.agi,Livebox,0199998765);

Il suffit ensuite de préparer le reste du dialplan, et notamment les instructions qui bloquent ces sonneries la nuit. Dans mon installation, j’en ai profité pour renvoyer les appels masqués immédiatement vers la messagerie vocale entre 23 h et 6 h et de complètement bloquer ces sonneries si elles proviennent de la Livebox durant cette même plage horaire. En AEL, cela donne :

Set(ALLOW_RINGING=1);
Set(ALLOW_VOICEMAIL=1);

// Traitement spécifique pour les appels anonymes
if ("${LEN(${CALLERID(number)})}" = "0") {
        Set(CALLERID(name-pres)=unavailable);
        Set(CALLERID(num-pres)=unavailable);

        AGI(stfu-livebox.agi,Livebox,0199998765);

        // Autoriser les appels anonymes de 6 h à 23 h seulement
        ifTime(06:00-22:59|*|*|*) {
                Verbose(1,Appel masqué autorisé le jour);
        } else {
                Set(ALLOW_RINGING=0);
                if ("${CALLERID(name)}" = "Livebox") {
                        Verbose(1,Sonnerie de la Livebox refusée la nuit);
                        Set(ALLOW_VOICEMAIL=0);
                } else {
                        Verbose(1,Appel masqué la nuit, renvoi vers répondeur);
                }
        }

} else {
        // Continuer normalement
}

// Faire sonner tous les téléphones
if ("${ALLOW_RINGING}" = "1") {
        Dial(${ALL_PHONES},25,xt);
}

// Si non-réponse ou rejeté, rediriger vers le répondeur
if ("${ALLOW_VOICEMAIL}" = "1") {
        Answer();
        VoiceMail(BoiteCommune);
} else {
        Hangup(21);
}

Hangup();

Vous remarquerez que j’utilise deux variables, ALLOW_RINGING pour déterminer si l’appel entrant peut accéder aux téléphones chez moi (c’est-à-dire les faire sonner) et ALLOW_VOICEMAIL pour déterminer si l’appelant peut enregistrer un message vocal. Ceci permet de gérer facilement les trois cas qui se présentent à nous dans ce dialplan.

Conclusion

Ces modifications à Asterisk font exactement ce que je voulais, c’est-à-dire ne plus être réveillé la nuit lorsque la Livebox se resynchronise. En pratique, seule la première des deux sonneries intempestives est effectivement filtrée : au moment où survient la seconde sonnerie, le script check_livebox_phone indique que la ligne téléphonique est à nouveau opérationnelle.

J’aurais pu résoudre ce problème en apportant une petite modification : lorsqu’Asterisk bloque la première de ces deux sonneries, qui est facile à reconnaître, on pourrait positionner une valeur dans la base de données AstDB pour bloquer l’appel anonyme qui suit immédiatement cette première sonnerie.

Mais en pratique, depuis qu’Orange a cessé d’utiliser PPPoE, ces resynchronisations hebdomadaires n’arrivent quasiment plus jamais, donc c’est plus difficile à tester.

Enfin, en cherchant un peu, ma solution était peut-être complètement excessive : d’après une poignée de forums, ces sonneries intempestives seraient dues à la notification visuelle de messages ; une fonction qui est seulement prise en charge par certains téléphones (mais pas Asterisk) et que je suis sûr de ne pas utiliser, parce que mon répondeur est déjà géré par Asterisk. Cela reste néanmoins un bon exercice de programmation AGI que je souhaitais partager.

Posté par x0r à 2 commentaires • Tags : orange livebox voip asterisk