Vue normale

Guide complet de toutes les factions et contrats de Marathon

6 mars 2026 à 19:32

J’ai été paralysé lorsqu’un Runner m’a coupé la route au point d’extraction, souriant comme s’il possédait la carte. L’emblème de sa faction a clignoté – tout le combat a soudainement trouvé une explication. On apprend vite dans Marathon : les allégeances sont une monnaie d’échange, et les choix ont du poids. Toutes les factions et tous […]

Le post Guide complet de toutes les factions et contrats de Marathon est apparu en premier sur Moyens I/O.

Comment terminer Ordre/Chaos dans Marathon : Terminal du complexe sud

6 mars 2026 à 15:32

Les alarmes étaient une rivière rouge coupant la carte. Je me suis arrêté, le cœur serré, alors que l’icône d’objectif clignotait sous mon réticule. Je vais vous guider à travers chaque étape pour que vous arrêtiez de deviner et que vous commenciez à terminer le contrat. J’ai fait Ordre/Chaos suffisamment de fois pour savoir où […]

Le post Comment terminer Ordre/Chaos dans Marathon : Terminal du complexe sud est apparu en premier sur Moyens I/O.

Tous les emplacements DCON dans Marathon — Liste complète

6 mars 2026 à 11:56

J’ai entendu le craquement d’un fusil à silencieux et j’ai pensé que j’avais été repéré ; un coéquipier était déjà en train de grimper à une échelle de bunker. Je les ai regardés ouvrir une boîte métallique, puis déposer un objet de mission dans le DCON et s’enfuir en sprintant. On sent le jeu changer […]

Le post Tous les emplacements DCON dans Marathon — Liste complète est apparu en premier sur Moyens I/O.

pyinfra - Du Python au lieu du YAML pour gérer vos serveurs

Par : Korben
6 mars 2026 à 10:35

Ansible, c'est bien. Mais du YAML à perte de vue pour configurer trois serveurs c'est pas non plus l'idéal. Hé bien ça tombe bien car y'a maintenant pyinfra , qui fait tout pareil sauf qu'on écrit du Python. En gros, votre script de déploiement c'est juste du code Python normal avec des imports, des boucles, des conditions... tout ça, tout ça...

Ce projet existe depuis 2014, il est sous licence MIT et côté perfs, c'est de ce que j'ai lu, jusqu'à 10 fois plus rapide qu'Ansible sur des déploiements massifs (genre plusieurs milliers de machines). Bon, sur le papier c'est bien, mais en fait ça dépend surtout de votre infra SSH et de la latence réseau.

Alors ça marche comment ?

Hé bien vous installez le bazar avec uv tool install pyinfra et hop, vous pouvez déjà lancer des commandes sur vos serveurs comme ceci :

pyinfra mon-serveur.net exec -- echo "hello world"

Ça fonctionne en SSH sur le port 22, sur des conteneurs Docker, ou même en local. Le truc est complètement agentless, du coup pas besoin d'installer quoi que ce soit sur les machines cibles. Suffit d'un accès shell POSIX tout ce qu'il y a de plus classique et c'est réglé.

Bon, ça c'est pour l'ad-hoc mais en fait le vrai kiff, ce sont les opérations déclaratives. Je vous montre... Vous créez un fichier deploy.py et dedans, vous mettez ça :

from pyinfra.operations import apt, systemd

apt.packages(
 name="Install nginx",
 packages=["nginx"],
)

systemd.service(
 name="Ensure nginx is running",
 service="nginx.service",
 running=True,
 enabled=True,
)

C'est du bon vieux Python sans DSL bizarre (Domain-Specific Language), pas d'indentation YAML qui vous pète entre les doigts à 3h du mat parce qu'il manque un espace. Et si vous voulez une boucle ? bah for. Une condition ? bah if. Ou encore importer boto3 pour causer avec AWS depuis votre Debian 12 ? No problemo !

Et pour cibler vos machines, suffit de créer un fichier inventory.py comme ceci :

targets = ["@docker/ubuntu", "mon-serveur.net", "autre-serveur.net"]

Puis ensuite un petit : pyinfra inventory.py deploy.py et c'est parti mon kiki. L'outil gère le parallélisme sur 50 serveurs, les diffs (pour voir ce qui va changer AVANT d'appliquer), et le mode dry-run pour les plus prudents.

Côté intégrations, ça cause avec Terraform, Docker, Vagrant... et comme c'est du Python, vous avez accès à tout l'écosystème. Genre, vous voulez checker l'état d'une API avant de déployer ? Un import requests et c'est plié. La doc sur docs.pyinfra.com est plutôt complète, et y'a même la gestion des secrets intégrée avec variables d'environnement, fichiers chiffrés, HashiCorp Vault ou AWS Secrets Manager.

Ça tourne depuis Linux et macOS (et Windows via WSL), mais les cibles doivent être des systèmes POSIX donc pas de déploiement natif sur Windows. Et si votre inventaire contient 3 000 machines avec des configs SSH différentes... bon courage pour le debug en cas de souci (le mode -vvv aide, mais bon...).

Bref, si vous en avez marre du YAML et que Python c'est votre truc, allez jeter un oeil.

Merci à Letsar pour la découverte !

Comment réparer Marathon qui ne s’ouvre pas sur Steam

6 mars 2026 à 06:08

J’ai cliqué sur Jouer et Steam a mouliné un instant, puis le jeu a disparu. Ma manette est restée allumée alors que la barre des tâches mentait, et une petite panique s’est installée. Vous êtes prêt à atterrir sur Tau Ceti IV et rien ne répond. J’ai suivi les discussions de lancement et testé les […]

Le post Comment réparer Marathon qui ne s’ouvre pas sur Steam est apparu en premier sur Moyens I/O.

Comment Réclamer les Drops Twitch Marathon Quand les Récompenses Ne Sont Pas Dans la Boîte de Réception

6 mars 2026 à 04:56

J’ouvre Marathon en espérant trouver du nouvel équipement dans ma boîte de réception, mais rien. Vous avez regardé les streams du Server Slam pendant des heures ; vous avez compté le temps. Cette boîte de réception vide donne l’impression que quelqu’un vous claque la porte au nez en pleine conversation. Je vais vous expliquer le fonctionnement […]

Le post Comment Réclamer les Drops Twitch Marathon Quand les Récompenses Ne Sont Pas Dans la Boîte de Réception est apparu en premier sur Moyens I/O.

Meilleurs paramètres de Marathon pour FPS élevés et visée précise au stick

6 mars 2026 à 04:24

Mon écran 144Hz a des ratés pendant un échange de tirs et soudainement, toute mon équipe est de retour au lobby. Une seule image, un seul mauvais moment, et votre équipement soigneusement acquis disparaît. Je veux que vous arrêtiez de perdre des parties à cause des ratés du système. J’ai passé des heures à tester […]

Le post Meilleurs paramètres de Marathon pour FPS élevés et visée précise au stick est apparu en premier sur Moyens I/O.

Récupérer les objets du Passe de récompenses Marathon : Correction des récompenses de l’Édition Deluxe

6 mars 2026 à 03:48

Vous vous connectez au lancement, impatient de récupérer les skins de l’édition Deluxe. L’emplacement du Passe de Récompenses est vide et votre boîte de réception est une zone morte. J’ai suivi suffisamment de déploiements de jour de lancement pour vous dire ce qui s’est probablement passé et ce qu’il faut essayer ensuite. Ne paniquez pas […]

Le post Récupérer les objets du Passe de récompenses Marathon : Correction des récompenses de l’Édition Deluxe est apparu en premier sur Moyens I/O.

Compte à rebours de la sortie marathon : Heure et date de début exactes

5 mars 2026 à 03:08

J’étais assis avec ma manette sur les genoux pendant que l’horloge avançait vers le lancement — dix secondes semblaient être un petit braquage. Vous avez suivi les notes de version du Server Slam et les fils de discussion sur les correctifs ; j’ai analysé les horodatages. Au moment où les serveurs basculent, tout change. J’ai joué […]

Le post Compte à rebours de la sortie marathon : Heure et date de début exactes est apparu en premier sur Moyens I/O.

Marathon sur PS5 : pourquoi j’en ai eu rapidement ras les baskets !

4 mars 2026 à 19:03
Marathon sur PS5 : pourquoi j'en ai eu rapidement ras les baskets !

C'était le nouveau poids lourd de Bungie (Destiny, Halo) et une entrée triple A pour le studio dans l'extraction shooter. Pourtant, après quelques heures, je me suis rendu à l'évidence... je ne relancerai pas Marathon. Petit bilan de la course.

Précommande Marathon : les joueurs consoles vont payer le prix fort, mais pas les joueurs PC

1 mars 2026 à 16:13

[Précommande] Après un développement tumultueux, le prochain shooter de Bungie s'apprête à voir le jour. Alors que la phase de test bat son plein, on trouve déjà le jeu Marathon moins cher, seulement pour les joueurs PC.

Sony fait tester deux jeux-service le même week-end, et ça n’a donc aucun sens

26 février 2026 à 17:01

Ce week-end a lieu la bêta ouverte de Marathon. Au même moment, quelques élus pourront s'essayer à Horizon Hunters Gathering. Sony nous propose donc simultanément deux aperçus de deux de ses prochains jeux-services. Ce qui n'est pas très malin en termes d'exposition.

À quelle heure pourra-t-on jouer gratuitement à Marathon ?

26 février 2026 à 10:01

Trois ans d'attente et un développement chaotique plus tard, la franchise culte de Bungie (1994) fait son grand retour. Bonne nouvelle : avant sa sortie, une version d'essai gratuite ouvre ses portes ce 26 février. Voici à quelle heure vous pourrez y jouer.

Marathon : Bungie sort l’artillerie anti-triche avec du Permaban à vie !

24 février 2026 à 11:02

MarathonÀ l’approche du Server Slam de Marathon, Bungie détaille l’architecture réseau et les protections anti-triche de son shooter d’extraction.

Cet article Marathon : Bungie sort l’artillerie anti-triche avec du Permaban à vie ! a été publié en premier par GinjFo.

Raspberry-Pi 5: API MicroPython pour Python

 Bonjour à tous,

Tout récemment, je voulais utiliser un module RFM69 sur un Compute Module 5 (autrement dit l'équivalent d'un Raspberry-Pi 5) faisant fonctionner un logiciel écrit Python.

Une API MicroPython sous Python

Ecrivant de nombreux pilotes pour MicroPython (Python pour MicroContrôleur), je me suis dit qu'il devait être possible de réutiliser le code MicroPython du RFM69 sous Python sans devoir réécrire tout-ou-une-partie du code pour qu'il fonctionne sur Raspberry-Pi.
 
Le problème, c'est que Python n'a aucune idée de ce qu'est l'API MicroPython (celle utilisée par MicroPython pour accéder directement à la couche matérielle).
 
Il existe cependant des moyens d'accéder au matériel depuis Python mais c'est sans aucun rapport avec l'API exposée MicroPython.

L'idée c'est de recréer l'API MicroPython sous Python pour permettre l'utilisation du RFM69 depuis Python:
 

Le module RFM69

L'image ci-dessous se présente le module RFM69HCW 433MHz . Ce module permet de transmettre des données sur un réseau numérique utilisant le ondes-radios comme medium de transfert. C'est un peu le protocole internet appliqué à la radio.

RFM69HCW 433MHz

Comme le Pilote est développé sous le précepte "Plateform Agnostic Driver" de sorte à pouvoir fonctionner indépendamment de la plateforme MicroPython cible.

esp8266-upy - Plateform Agnostic Micrpython Driver

Ce module se branche sur un bus SPI, il est donc possible de le connecter sur GPIO d'un Raspberry-Pi 5 (ou du Compute Module 5).

Source: Raspberry-pi.ovh

Brancher RFM69 sur GPIO

Les connexions suivantes sont établies entre le module RFM69 et le GPIO Raspberry-Pi.

La broche CS (chip select) est branchée sur le GPIO 25 alors qu'il existe les broches CE0 (GPIO8) et CE1 (GPIO7). 

Le problème ici est que CE0 et CE1 sont automatiquement gérés par le système d'exploitation alors que sous MicroPython, c'est le code utilisateur qui gère l'état du signal CS.

Dans le cas présent, la gestion automatique de CE0 et CE1 empêche l'utilisation du burst_read sur le module RFM69 raison pour laquelle le GPIO25 est utilisé comme signal CS (ce signal étant contrôlé par le code utilisateur).

Prototype

Compatibilité avec Python

Commençons par récupérer la bibliothèque MicroPython du RFM69 depuis le dépôt esp8266-upy pour y ajouter l'encodage du fichier (important pour Python).

Ajout de l'encodage dans le bibliothèque RFM69

Récupérer l'exemple test_config.py utilisé pour tester la communication avec le module RFM69. Nous y ajoutons également l'information d'encodage dans le fichier.

Couche de compatibilité Python --> MicroPython

Création des fichiers machine.py et micropython.py pour accueillir les classes Pin & SPI ainsi que la déclaration de la fonction const()


Le script le plus intéressant est hack_time.py car celui-ci permet d'ajouter les fonctions MicroPython (ticks_ms, ticks_diff, sleep_ms, etc) manquantes dans Python.

#!/usr/bin/python
# -*- coding: utf-8 -*-
""" hack_time.py : mimic the MicroPython alike specific methods """
import time

def _sleep_us( us ):
	time.sleep( us*0.000001 )

def _sleep_ms( ms ):
	time.sleep( ms*0.001 )

def _ticks_ms():
	return int(time.time()*1000)

def _ticks_diff( v1, v2 ):
	return v1-v2

time.sleep_us = _sleep_us
time.sleep_ms = _sleep_ms
time.ticks_ms = _ticks_ms
time.ticks_diff = _ticks_diff

Il ne reste plus qu'a adapter le script d'exemple pour créer l'instance du bus SPI (sur le RPi) et passer le tout à la bibliothèque MicroPython originale.

#!/usr/bin/python
# -*- coding: utf-8 -*-

from machine import SPI, Pin
import hack_time
from rfm69 import RFM69

# Machine.py for Raspberry-Pi 5
spi = SPI( 0 )
nss = Pin( 25, Pin.OUT, value=True )  # Do not use the RPI CE0/CE1, it is not compatible with the Burst_Read of RFM69
rst = Pin( 18, Pin.OUT, value=False )

rfm = RFM69( spi=spi, nss=nss, reset=rst )
rfm.frequency_mhz = 433.1
....

Le bus SPI est rattaché au bus matériel SPI0 & CE0. 

Une broche Enabled (nss) alternative est utilisé avec le GPIO25 pour contrôler les transactions du bus SPI. La broche CE0 du GPIO est donc ignorée.

Enfin, le GPIO 10 est utilisé pour réinitialisé le module RFM69.

Au final, la création de l'instance RFM69 et le restant du code (y compris la bibliothèque RFM69) est identique entre MicroPython et Python (sur RPi5).

L'exécution de l'exemple sur le Raspberry-Pi 5 produit le résultat attendu (identique lorsqu'il est exécuté sur un Pico).

test_config.py : exécution de la bibliothèque
MicroPython RFM69 sur Raspberry-Pi 5

Ressources

  • MicroPython-API-for-Python experiment is published on GitHub.


❌