Libérer la mémoire !

Par défaut

En informatique, il existe 2 types de mémoire :

  • la mémoire morte, ou mémoire de stockage (disque dur, disquette, CD, DVD…)
  • la mémoire vive, ou RAM, servant à l’exécution des programmes

Aujourd’hui, nous allons nous intéresser à la mémoire vive.

Son rôle

C’est une mémoire volatile, dans le sens où son contenu est totalement effacé lors de l’extinction de l’ordinateur. Elle est très rapide, et permet de charger les instructions nécessaires au bon fonctionnement des programmes.

Elle permet aussi de stocker les documents ouverts à l’édition (documents, classeurs, photos, vidéos, etc), avec une gestion plus ou moins bonne selon les cas…

Ses limites

Les programmes peuvent difficilement anticiper l’usage de mémoire vive dont ils devront disposer. A cette fin, les ingénieurs ont créé une mémoire virtuelle, ou swap, qui utilise une partie du disque dur comme mémoire auxiliaire. Le disque dur étant en moyenne 100x plus lent que la RAM, c’est pourquoi plus il y a de programmes lancés, plus ça rame !

Comment bien gérer ?

Quelques petites règles d’usage afin de limiter les ralentissements et les saturations :

  1. limitez les programmes qui se lancent au démarrage de l’ordinateur (appelez-moi pour vous expliquer comment faire, c’est assez spécifique)
  2. quittez les programmes que vous n’utilisez plus (ATTENTION : sur Mac, fermer une fenêtre ne quitte pas un programme, Cmd+Q ou Quitter dans le menu sont nécessaires)
  3. fermez les documents sur lesquels vous ne travaillez plus
  4. après de grosses manipulations de fichiers, faites une pause en redémarrant votre ordinateur
  5. dans tous les cas, pensez à éteindre votre PC au moins une fois par jour

Ces conseils sont également applicables à votre smartphone (Windows Phone, Android ou iPhone).

Impression impossible sous Windows : activer le spool

Par défaut

Windows, de par sa conception ancestrale et peu remise en question, utilise des services pour gérer des fonctions en tâche de fond (sans fenêtre apparente et limitant l’usage des ressources). Sauf que, sa réputation le précédant, la fiabilité de l’ensemble de l’architecture logicielle laisse sérieusement à désirer. Ainsi, se trouve-t-on parfois dans l’incapacité d’imprimer… parce que le service n’a pas démarré !

Mais bon, Bill Gates (ndlr : le fondateur de MicroSoft, et donc de Windows), dans son infinie sagesse, a prévu la possibilité de redonner un coup de démarreur. Pour se faire 3 solutions :

  1. brûler un cierge et chanter des incantations en langage binaire et en sautant sur un pied (la communauté scientifique ne préconise pas cette pratique, aucune étude n’appuyant l’efficacité de cette démarche)
  2. redémarrer le PC, en espérant qu’il n’y ait pas un composant qui empêche le démarrage du service
  3. Menu Démarrer, Exécuter, saisir services.msc, chercher Spouleur d’impression, cliquer dessus puis sur Démarrer

Et sur Mac ?

Le coeur de Mac OS X utilise un noyau Unix, dont la conception limite au maximum les interactions entre les services, en leur garantissant une totale autonomie d’exécution. De ce fait, la probabilité qu’un service en interrompe un autre est bien plus faible que sous Windows, et un simple redémarrage de la machine permet à 99% de remettre en route les services.

La fin de la loi de Moore ?

Par défaut

En 1965, Gordon Moore, alors ingénieur chez IBM, constata que la puissance des processeurs depuis 1959 doublait tous les 18 mois environ. Ce constat a dès lors été érigé comme Loi (totalement empirique) d’évolution des composants électronique.

Les conséquences de cette loi sont nombreuses :

  • les machines à concevoir les processeurs doivent être changées tous les 2 ans, à raison de plus d’1 milliards de dollars par chaîne de production, incitant un renouvellement rapide du marché des appareils électroniques, et laissant de côté les notions comme le recyclage, la multiplication des supports des données personnelles, etc.
  • les systèmes d’exploitation (Windows, Mac OS X) s’allourdissent plus vite que les machines ne deviennent rapides, donc le gain de performance pour des usages quotidiens n’est pas perceptible
  • les limites physiques du silicium le contraignent à une finesse de gravure de 32 nm (nanomètres), or cette limite a été franchie en 2011, notamment par les processeurs Intel Sandy Bridge, ce qui implique des incohérences quantiques, donc des calculs à faire 5 fois pour valider leurs résultats (d’où une usure prématurée des composants et une grande baisse de fiabilité des composants). Et il n’existe aucun concurrent capable de remplacer de manière aussi pronocée le silicium à très court terme.
  • la capacité à multiplier les coeurs au sein d’un processeur dispose aussi de ses limites (on arrive aujourd’hui à une moyenne de 4 coeurs, mais cela n’est pas suffisant pour compenser la Loi de Moore)

En février 2016, l’organisme de définition des directives dans la conception des semoconducteurs (ITRS) a établi la fin de la Loi en 2021, stabilisant la gravure des composants à 10 nm.

Les conséquences de la fin de la Loi de Moore sont nombreuses aussi :

  • repenser la conception des composants électroniques, misant davantage sur des structures tri-dimensionnelles
  • repenser le marché de l’électronique (cycle de renouvellement et durée du SAV), et limiter l’obsolescence programmée
  • repenser la notion de performance, et j’adore ce test entre un Mac de 1984 et un PC de 2007, rien qu’au démarrage…
  • repenser la notion de généralisme, en orientant la recherche vers des composants spécifiques, donc optimisés (comme les processeurs graphiques), voire à travailler avec la multiplicité de processeurs spécifiques (comme ce fut le cas à une époque avec les coprocesseurs arithmétiques)

Personnellement, je pense que les vrais changements, surtout au niveau utilisateur, n’apparaîtront pas avant une dizaine d’années. D’ici là, on continuera à devoir changer matériels et logiciels pour cause de “fin de prise en charge” par les mises à jour ou les SAV.

Rôle des touches F1 à F12

Par défaut

Les touches F1 à F12 sur le clavier sont des touches de fonction. Elles ont été créées pour accéder à des commandes afin d’universaliser certaines actions.

A savoir : certains logiciels ont leurs propres actions associées à ces touches. Il n’est pas possible de tous les lister ici.

F1

Elle affiche l’aide du programme en cours (universel).

F2

Elle permet de renommer un fichier. dans une fenêtre de Windows.

F3

Elle permet de lancer la recherche d’un document dans Windows.

F4

Associée à la touche “Alt” sous Windows, elle quitte le programme actif, et avec “Ctrl”, ferme la fenêtre active (sans quitter le programme) (universel)

F5

Assure le rafraichisement des fenêtres et des pages Web.

F6

Permet le déplacement dans les menus d’un programme

F7

Permet la correction orthographique sous Word.

F8

Au lancement de Windows, lance le menu de démarrage pour le mode Sans Echec (dépannage).

F9

Actualise Word et relève le courrier dans Outlook.

F10

Active la barre de menus d’une application ouverte.

F11

Active le mode Plein Ecran d’une page Web

F12

Ouvre le débugage d’une page Web.

Et sur Mac ?

Les touches Fonctions sur Mac possèdent, pour la plupart, des petits cryptogrammes pour la gestion de la luminosité, du son et la gestion des fenêtres. Elles sont conservées pour les utilisateurs Windows qui travaillent avec BootCamp ou avec une virtualisation comme VirtualBox ou Parallels.

Pourquoi l'informatique n'est pas une science exacte

Par défaut

Voici un article qui va en surprendre plus d’un, et en rassurer autant : l’informatique n’est pas une science exacte, et non seulement elle ne l’a jamais été, mais la conception même des composants a rendu cette inexactitude encore plus concrète !

Fait n°1 : les nombres à virgules

Le problème

Tout le monde connait les nombres à virgules, que l’on utilise notamment dans les comptes bancaires (ex : 1,95). Sachez que les nombres a virgules sont, pour la majorité d’entre eux, des approximations mathématiques pour un ordinateur ? Explication.

Pour comprendre, il faut se mettre en tête que les nombres, pour un ordinateur, ne sont pas stockés sous forme décimale, mais binaire, soit une suite de 0 et de 1. Ensuite, il faut comprendre comment on passe d’une valeur en système 10 (celui qu’on utilise tous les jours) en système 2, ou binaire.

Si l’on souhaite convertir 81 en binaire, on doit le résoudre en la somme de puissances de 2 : 81 = 26+24+20. Soit 01010001 sur un octet de 8 bits.

Pour les décimales, la logique est du même ordre, avec des puissances négatives. Pour rappel, une puissance négative est  l’inverse d’une puissance positive : 2-2 = 1/22. Les valeurs sont donc 1/2, 1/4, 1/8, 1/16… avec lesquelles on doit trouver toutes les valeurs de notre quotidien… ce qui est mathématiquement impossible !

Ainsi 1.99 en binaire s’écrirait 00000001,11111111 mais son rendu en binaire ne donnerait pas précisément 1.99, mais quelque chose de très proche.

Prenez conscience maintenant que l’intégralité du monde financier est régi par l’informatique. Cela fait froid dans le dos !!!

Pour information, la norme régissant ce système numéraire à virgule flottante date de 1985 !

La solution

Il existe une solution simple : changer radicalement de système de gestion des nombres à virgules. A l’heure actuelle, les nombres sont stockés sous forme d’écriture scientifique (exemple  en décimal : 129.85 = 1.2985e2 ou 1.2985×102).

Je propose de les stocker de manière différente : 129.85 = 12985×10-2.

Ainsi, les opérations ne se feraient que sur des entiers, et la conversion en décimale n’est plus un système d’écriture mais un système d’affichage.

Fait n°2 : les lois de la physique

Le problème

En 1960, Gordon Moore, alors ingénieur chez IBM, établit un constat : entre 1951 et 1960, la densité des transistors, et donc la puissance des processeurs, double en moyenne tous les 18 mois. Il n’en fallait pas plus pour que ce constat devienne la règle primordiale du développement de l’informatique en général.

Ainsi, pour graver nos amis les transistors, on utilise un matériau, le silicium, dans lequel on creuse des circuits et des portes. Nos amis les électrons, qui parcourent ces circuits, doivent être suffisamment canalisés pour aller là où on le désire. Ainsi, et selon les propriétés du silicium, l’épaisseur des murs contenant les électrons ne doit pas être inférieure à 600 atomes, soit 32 nm d’épaisseur (on mesure la finesse de gravure en nanomètres).

Or, et c’est le hic, depuis 2005, les constructeurs sont passés sous cette barrière, ma moyenne des composants actuels étant autour des 22 nm.

De ce fait, les électrons ont un peu tendance à passer d’un circuit à un autre, et peuvent fausser les calculs. On estime le taux d’erreur autour de 8%. Mais nos amis ingénieurs ont eu une idée de génie : au lieu de revenir à quelque chose de fiable, on exécute 5 fois les calculs, et si 4 sur les 5 donnent le même résultat, on admet que le calcul est juste !

Aberrant ? Totalement ! D’autant que, dans des usages domestiques, la différence de puissance de traitement entre un processeur de 2005 et un d’aujourd’hui ne se sent pas.

Qui plus est, cette finesse de gravure rend les composants particulièrement sensibles :

  • au stress, et à l’électricité statique en général (à noter : les ordinateurs portables n’ont pas de prise de terre)
  • aux particules cosmiques, qui ont tendance à inverser la valeur des transistors (imaginez dans un avion…)
  • aux interférences électromagnétiques (GSM, wifi, BlueTooth, et même au champ électromagnétique généré par les cables électriques dans vos murs dû à une mauvaise circulation des électrons)

La solution

AMD, le grand concurrent d’Intel dans le marché des processeurs, sort des modèles à 32 nm de gravure pour ses processeurs de jeu, et certains sont encore en 45 nm.

De plus, depuis février 2016, la loi de Moore est officiellement abolie dans le processus de développement des composants. Mais il se peut que les prochains processeurs soient également autour de 22 nm… Wait & see !

Télécharger le replay

Par défaut

Regarder ses émissions en replay tient parfois du parcours du combattant, et il n’existe que peu d’offres centralisées. Heureusement, un mec bien a eu l’idée de créer CapTVty (prononcez captivity), un logiciel permettant de voir et télécharger le replay de plus de 30 chaines !

Fonctionnant uniquement sur Windows, il affiche les flux des chaines, par date d’émission et regroupées par thématiques. Vous pourrez ainsi voir, télécharger, et revoir vos émissions et séries favories à l’infini !

Troubles du comportement ? Congelez !

Par défaut

Nos appareils électroniques souffrent de plus en plus du syndrôme de Moore : la finesse de gravude de leurs composants fait que, pour respecter la loi de Moore, consistant à doubler la puissance des processeurs tous les 18 mois, certains troubles apparaissent :

  • incohérences sur le tactile
  • plantages
  • batterie qui se vide trop vite
  • etc.

De plus, ces composants deviennent sensibles aux interférences extérieures, comme la chaleur, les ondes électromagnétiques, le stress…

Une des solutions consiste à rééquilibrer les électrons… en congelant l’appareil et la batterie au moins 3 heures (voire une nuit) ! Idéalement, il vaut mieux les dissocier. Pour se faire, mettez l’appareil éteint et sa batterie dans un sac congélation hermétiquement fermé, pour éviter tout risque d’oxydation par l’humidité.

Une fois sorti, attendez qu’il reprenne la température ambiante. Remontez le tout et allumez.

Sauvegarder ses données

Par défaut

Notre vie se numérise à vue d’oeil : les supports physiques ont laissé la place aux téléchargements, les disques durs aux clouds… Mais beaucoup de questions sont à se poser.

Pourquoi sauvegarder ?

La question mérite d’être posée, étant donnée que l’informatique est un concept jeune, parfois abstrait, aux valeurs juridiques floues et à l’avenir discutable… A quoi cela sert de mettre une clé USB dans un coffre-fort si d’ici 50 ans, on n’est plus en mesure de la lire ? Ou de payer un service qui, d’ici quelques années, vous demandera de tout retélécharger car il va fermer ses portes ?

Il y a peut-être une grande question existentielle sur l’importance de la vie numérique face à la vie non-numérique, avant de multiplier les sauvegardes, de se disperser, pour au final d’avoir aucune garantie de transmission ou de récupération de l’information.

Quoi sauvegarder ?

Ceci est la première question entre toutes. Beaucoup mettront en top priorité numéro 1 les photos persos. Mais soyons honnêtes : qui regarde ses photos numériques ? Les services d’impression de livres vont bon train, car ils ont parfaitement compris qu’une photo numérique n’était quasiment jamais consultée. Et celles que l’on partage sur les réseaux sociaux tombent aux oubliettes, jusqu’à ce que Facebook nous rappelle à nos bons souvenirs…

D’un point de vue légal, les documents électroniques n’ont aucune valeur, comparé au papier. Certains doivent être conservés à vie, un gravage sur DVD en alliage de pierre semblerait donc approprié pour ceux-ci.

Ainsi, je mettrai, dans l’ordre des priorités :

  1. les documents officiels (administratifs, juridiques, médicaux)
  2. les créations numériques (si vous êtes artiste digital)
  3. les photos et vidéos personnelles
  4. les autres documents Word, Excel…
  5. Les médias (musiques, films)

Où sauvegarder ?

Deux des grandes lois de l’informatique énoncent ceci :

  1. Auucne sauvegarde n’est viable à 100%
  2. Aucune entreprise ne peut garantir un service à vie

De ces deux lois, il faut retenir ceci :

  1. doublez vos sauvegardes, et contrôlez au moins une fois l’an leur intégrité (un accès viable aux données)
  2. gérez vous-mêmes vos sauvegardes

Exit le cloud, malgré ses avantages d’accessibilité inter-appareils ! Un disque dur en réseau local (ou NAS) est bien plus sûr sur la maîtrise de vos données personnelles, bien qu’il puisse être sujet, comme tout le reste, au vol et aux détériorations diverses (incendie, inondation, etc.). De plus, un système à double disque montés en miroir assurera la sauvegarde double, et peut évoluer selon la quantité de données croissante à sauvegarder.

Quand sauvegarder ?

“Après la première perte de données”, vous diront les personnes qui l’ont vécu… Un système de synchronisation en quasi temps réel semble le mieux adapté, surtout si vous avez besoin de gérer plusieurs versions d’un même document (ça arrive, notamment en tant que développeur). dans l’absolu, on ne peut pas prévoir quand le disque dur de notre PC va nous lâcher, la prudence est donc de mise.

Sauvegarder de manière non numérique

Il existe des manières de sauvegarder nos données précieuses en se passant du numérique (avec les risques aussi de vol, perte ou détérioration connus) :

  • les musiques : vinyl, partitions papier
  • les documents : papier
  • les photos : livre photos
  • les films : pas d’alternative commerciale connue…

Connaissez-vous les logiciels de rançon ?

Par défaut

Parmi les maux que compte la planète informatique, nous avons les virus, les logiciels espion, les vers, les chevaux de Troie, et… les logiciels de rançon, ou ransomwares.

Explication

Un ransomware est un petit bout de programme qui va crypter vos documents, de manière à les rendre totalement illisibles, et à joindre un fichier d’instructions pour payer une rançon afin d’avoir la clé de décryptage, d’où le nom.

Il faut savoir que le fait de payer cette rançon ne certifie aucunement que l’auteur du logiciel vous passera la clé, voire qu’il vous transmettra une clé 100% fonctionelle (erronée ou partielle). Les recours sont limités.

Cryptage et décryptage

Pour info, nous parlons ici de cryptages réversibles, qui permettent de retrouver le contenu original. D’autres cryptages, non réversibles, servent notamment pour le stockage des mots de passe, le plus courant étant le MD5.

Le cryptage existe depuis l’antiquité pour faire passer des messages à l’insu des messagers ou des intercepteurs. Le principe est d’utiliser une clé pour modifier un message, et une autre clé pour le déchiffrer. L’un des plus anciens algorithmes de cryptage est le Rot3, consistant à décaler les lettre de l’alphabet de 3 crans : le message SALUT devient VDOXW. Il suffit de décaler les lettres dans l’autre sens pour retrouver le message original.

Les technologies ont évolué, et les décalages ont laissé place à des multiplications avec nombres premiers, entre autres. Plus ces nombres sont grands, plus la sécurité est importante. Certains cryptages nécessitent des clés, comme les connexions sécurisées sur Internet via des certificats, d’autres disposent de leur propre algorithme, universel.

Les cryptages réversibles les plus courants sont :

  • le Base64 (sans clé)
  • le SHA1
  • le RSA
  • les compressions Zip et RAR (sans clé)
  • le ROT13 (sans clé)

Pour s’en prémunir

  1. les ransomwares se propagent beaucoup par mail. N’ouvrez jamais de pièces jointes dont vous doutez de la provenance.
  2. prévoyez toujours une sauvegarde de votre disque dur. Windows et MacOS X disposent de systèmes de restauration, pensez à les activer (la taille des disques durs actuels le permet allègrement) et à effectuer des points de restauration en incorporant vos dossiers de documents.
  3. certaines compagnes d’antivirus proposent des petits programmes pour casser les cryptages. Sachez que, si le ransomware est récent (ce qui fut le cas pour un de mes clients), il n’y aura pas de solution avant des semaines, voire des mois… Car, ne l’oublions pas, la puissance des machines permet certes de décrypter plus vite, mais aussi de crypter plus sûrement !

Qu'est-ce que la programmation ?

Par défaut

La programmation est une passerelle entre le langage humain verbal, et le langage de la machine, binaire. On peut citer 4 niveaux de langage :

  • le binaire, uniquement avec des 0 et des 1
  • l’assembleur, le plus proche du binaire, qui travaille avec les registres du processeur
  • les langages compilés, convertis en binaire
  • les langages interprétés, utilisant un logiciel de conversion en direct

Les bases du langage

Le nombre d’actions que l’on fait en programmation est relativement limité, on peut les résumer à ces quelques termes :

  • lire une donnée
  • afficher une donnée
  • écrire une donnée
  • effectuer un test sur une donnée
  • faire une boucle sur une collection de données

La structuration du langage informatique a permis de nombreuses optimisations, des raccourcis, des adaptations aux progrès techniques et technologiques, mais aussi un plus haut niveau d’abstraction dans la manipulation des données.

On remarquera que les langages utilisent généralement une syntaxe anglaise, cela permet une internationalisation du code.

L’algorithme

L’algorithme est la pensée humaine structurée, qui sera retranscrite dans le langage informatique de son choix. Prenons un exemple tout simple :

Si le fichier de paramétrage est présent

	Alors on lit la valeur enregistrée dedans

	Sinon on le crée et on y écrit la valeur par défaut

On va écrire cette petite commande en différents langages.

PHP (serveur Internet)

if (file_exists('parametre.txt') {

	$handle=fopen('parametre.txt', 'r');

	$value=fread($handle, 4096);

	fclose($handle);

} else {

	$handle=fopen('parametre.txt', 'w');

	$value=fwrite($handle, 'Valeur par défaut');

	fclose($handle);

}

Visual Basic

Dim value As String

If Dir("parametre.txt") Then

	Open "parametre.txt" For Input As #1

	value = StrConv(InputB(LOF(iFile), iFile), vbUnicode)

	Close #1

Else

	Open "parametre.txt" For Output As  #1

	Write #1, "Valeur par défaut"

	Close #1

End If