Aller au contenu principal

Syncrétisme ludique

Des éléments de six jeux différents ont été associés. Saurez-vous les retrouver ?

Réponses lisible une fois convertie en rot13 :

Nhthfghf (yrf zrrcyrf ebhtrf), Obhgnobh (yrf ghvyrf ahzéebgérf), Qbshf (yn svthevar), Xrygvf – yr wrh qr qé (yrf ghvyrf nirp har cvreer), Beovf (yrf urkntbarf), Jvaftfcna (yrf qéf)

Rot13 est simplement un décalage de 13 lettres, ce qui permet de coder et décoder le message de la même manière.

Python2, toujours sur les routes

Ne faites pas comme ce cycliste, passez à Python3 !

pneu python2

Si Hutchinson fournit des pneus Python2, la maintenance de sécurité de cPython s’arrête à la fin de cette année. Aucune fonctionnalité n’est plus ajoutée depuis plusieurs années.

Processeur Intel -> Architecture AMD64 pour Debian

TL;DR

Nom courant Dénomination Debian Disponibilité
x86 i386 rarement en vente après 2010
x86_64 amd64 à moins d’acheter des ordinateurs spécifiques, il n’y a plus que ça pour le grand public

Si vous venez d’acheter un ordinateur, choisissez amd64.

L’histoire, avec un grand L

Intel avait conçu une architecture 8086, améliorée successivement jusqu’au 286 (un processeur 16 bits).
Au milieu des années 80, Intel améliore cette architecture qui devient 32 bits (avec les dénominations commerciales 386 puis 486, Pentium, Pentium II, etc.), nommée i386 par Debian, communément appelée x86. Cette architecture est aussi parfois nommée ia32 pour « Intel Architecture 32 bits ». D’autres constructeurs de processeurs comme AMD ou Cyrix concevaient des processeurs compatibles. C’est donc cette même architecture (i386) qui devait être utilisée pour ces processeurs.

Autocollant Intel Pentium 4 (32 bits) comme on en trouvait collé sur des ordinateurs portables au début des années 2000

Puis Intel décida de faire un nouveau processeur, 64 bits, incompatible avec les x86. Associé à HP, une nouvelle gamme de processeur, Itanium, voit le jour en 2001. La dénomination Debian est donc ia64 (« Intel Architecture 64 bits »). C’est un échec commercial, dû à des performances décevantes et l’absence de compatibilité ascendante. Cette gamme sera arrêtée dans l’indifférence générale en 2013.

Parallèlement à Intel, AMD décide d’étendre le processeur x86 pour qu’il fonctionne en 64 bits tout en ayant une compatibilité 32 bits. Cette architecture est souvent appelée x86_64, parfois x64. En 2003, AMD vend l’Athlon 64, premier processeur disponible au public de cette nouvelle architecture. Debian la désigne par le terme amd64. Des accords entre AMD et Intel permettant aussi à Intel de produire cette architecture, Intel a emboîté le pas à AMD et produit aussi des processeurs compatibles amd64. C’est pourquoi les processeurs modernes Intel nécessitent cette architecture lors de l’installation d’un système Debian.

Bien plus récent que le Pentium4, c’est un processeur 64 bits. Les autocollants, c’est bien joli mais pas très informatif.

D’autres architectures moins connues voire complètement oubliées existent

Debian est installable sur de nombreuses autres architectures, mais qui ne sont pas orientées grand public. La seule exception étant peut-être ARM avec les cartes RaspberryPi (cf. wiki).

Des exemples d’autres architectures et processeurs associés : https://lists.debian.org/debian-www/2017/10/msg00125.html (à la toute fin du message)

Accéder à une console lorsque gdm plante

S’il est impossible d’avoir un terminal en appuyant simultanément sur ctrl+alt+F6 , il est possible de paramétrer Grub pour démarrer Linux avec un environnement multi-utilisateur mais sans interface graphique (runlevel 3) :

Lorsque le menu de Grub s’affiche, appuyer sur e pour modifier temporairement la configuration.
Puis ajouter 3 à la fin de la ligne :
linux /boot/vmlinuz-… root=UUID=12345678-… ro quiet 3
Puis appuyer sur la/les touches indiquées par Grub pour exécuter cette entrée.

J’ai trouvé plusieurs explications indiquant d’utiliser text à la place de 3 mais ça ne fonctionne pas avec la version avec laquelle j’ai subi ce problème (2.02+dfsg1-6).

La solution vient de https://superuser.com/a/974809, possibilité 5.

…Et Grub était innocent : c’était un problème de paquets mis-à-jour mais non configurés.

Visualiser la répartition des cartes à Celestia avec Matplotlib (scatter)

Celestia est un jeu de société dans lequel les joueurs vont avancer ensemble de planète en planète. Chacun doit décider individuellement :

  • soit descendre du vaisseau, et ainsi s’assurer la prise d’une carte
  • soit prendre le risque de continuer, et avoir la chance d’avoir une carte de plus forte valeur.

Chaque paquet de cartes a une plage de valeurs différentes. Voici une représentation de ces répartitions :

La taille des points varie en fonction de la quantité d’occurences de la même valeur. Matplotlib dispose pour cela d’une fonction spécifique nommée scatter.

matplotlib.pyplot.scatter(
    [x0, x1, ..., xn],
    [y0, y1, ..., yn],
    s=[taille_de_x0y0, taille_de_x1y1, ..., taille_de_xn_yn ])

Une démo de « scatter » est aussi visible sur le site de matplolib.

Le code source complet

import collections
import matplotlib.pyplot as plt

# répartition des cartes
stats = {1: [1, 2, 4, 1, 2, 4, 2, 1, 1, 1, 2],
        2: [4, 2, 6, 4, 2, 4, 2, 6, 2, 2, 2],
        4: [2, 4, 9, 4, 6, 4, 4, 4, 6, 6],
        6: [2, 9, 9, 6, 6, 6, 9, 12, 6, 6],
        9: [9, 9, 9, 12, 9, 9, 9, 12, 12],
        12: [12, 12, 12, 12, 15, 15, 12, 12, 15],
#        15: [15 for i in range(6)],
#        20: [20 for i in range(6)],
#        25: [25 for i in range(6)]
}

x = [clef for clef, valeurs in stats.items() for i in range(len(valeurs))]
y = [valeur for valeurs in stats.values() for valeur in valeurs]


# compte les occurences de chaque valeur par planète
compteur = collections.Counter(zip(x, y))
# liste des tailles des points en fonction des occurences
tailles = [50 * compteur[(xx, yy)] for xx, yy in zip(x, y)]

# matplotlib en action !
plt.scatter(x, y, s=tailles)
plt.grid(color='grey', linestyle='dashed')
plt.title("Répartition des valeurs des cartes")
plt.xlabel("Niveaux")
plt.ylabel("Valeurs")


axes = plt.gca()
axes.set_ylim([0, 16])

plt.savefig('repartition_cartes_celestia.png')
plt.show()