Table of Contents

Macbook M1

Celui-ci, c'est le petit dernier. Un choix un peu curieux pour le libriste qui se cache en moi et qui s'est planté un crucifix droit dans le coeur. Il s'agit du modèle de 2020, dans sa configuration de base (8GB / 256GB). Pour le prix, il s'agit (pour moi) de la meilleure configuration portable disponible sur le marché.

Ce choix vient avec ses points négatifs : la durée de vie du produit dépendra d'Apple et de sa bonne volonté de support; la quantité de mémoire ou d'espace disque ne pourra à aucun moment être étendue si le besoin s'en fait sentir (et en fonction de vos besoins et de vos habitudes, le besoin peut rapidement se faire sentir); les ports d'extension se comptent sur les doigts de la main d'un pingouin. Mais on a quand même un port Jack 3,5“. Et c'est con, mais j'aime bien.

A côté de cela, j'ai une machine dont l'écran est lumineux et bien calibré, accompagnée d'un clavier à tomber, d'un trackpad qui déchire, d'un système audio qui n'a rien à envier à ma petite enceinte de bureau (un peu pourrie, je le reconnais), d'un clavier rétro-éclairé, d'un lecteur d'empreinte et d'une autonomie dont il ne faut pratiquement jamais se soucier. Matériellement, c'est une machine au top.

Le truc marrant, c'est qu'une fois le portable acquis, j'ai reçu un abonnement d'un an à Norton antivirus. Genre, le truc dont je débarrasse le maximum d'installation de Windows dès que j'en ai l'occasion.

FileVault

FileVault sert à protéger les données. Il s'agit d'un Bitlocker/VeraCrypt-like qui demande par défaut le mot de passe administrateur pour déchiffrer les données.

La restauration de la clé de chiffrement peut être associée à son compte iCloud (un peu déconseillé, quand même, puisque tout se trouve alors dans les mains d'Apple) ou récupérée dans un fichier qu'il vous sera nécessaire de sauver à un endroit approprié.

HomeBrew

HomeBrew est un gestionnaire de paquets / dépendances. A l'époque, on avait Fink, mais ça ne marchait pas aussi bien qu'apt ;-)

brew install --cask drawio
brew install vscodium
brew install borgbackup borgmatic firefox git pandoc poetry signal tree vlc

J'ai dû installer Nextcloud en passant par le site officiel, car la formule Brew ne semblait pas déposer le binaire au bon endroit. Je n'ai pas cherché plus loin.

Configuration de l'environnement

git config --global init.defaultBranch main

Développement et programmation

Containeurs

Une petite déception (mais globale par rapport à Docker) : la seule manière officielle de démarrer un container est en fait de disposer d'un noyau Linux. La manière officielle de disposer d'un tel noyau sur macOS consiste à installer Docker Desktop (ce que je me refuse à faire, même sur Windows qui dégueule de container au travers de WSL crapuleux).

Bref, autant passer par Podman, dont l'installation semble un peu mieux finie (https://podman.io/docs/installation). On reste cependant à installation une solution de virtualisation, qui démarrera elle-même une Fedora CoreOS, pour y démarrer nos containers.

Un peu l'impression de me trouver dans Inception 😔

brew install podman
podman machine init
podman machine start
podman info

Fonctionnellement, c'est une forme de WSL version Apple. En pratique, c'est quand même vachement mieux intégré (même si on reste très loin de ce qu'on trouve sur une installation GNU/Linux native) et sans nécessité de passer par un Store dégueulasse.

Là où c'est (aussi) assez dégueulasse, c'est au niveau de la consommation mémoire : avec QEMU et une VM sous Fedora CoreOS démarrée, on tape dans les 4GB de RAM consommés, ce qui fait beaucoup sur une machine relativement limitée de ce côté-là. Du coup, j'aime bien Docker pour les avantages qu'il propose, mais c'est la deuxième fois en très peu de temps que je me casse les dents sur la consommation et la puissance nécessaire à faire tourner ce type d'environnements.

XCode

Là, c'est un peu la deuxième déconvenue : XCode fonctionne, mais :

  1. Pour télécharger certaines plateformes, il a réussi à planter 3x (avant même d'afficher la moindre ligne de code, donc), et le problème semble relativement fréquent,
  2. La consommation en RAM explose dès qu'on démarre un simulateur (type iOS). Ici aussi, le SWAP prend 10GB (oui, dix). Même en faisant attention, 16GB ne seraient donc même suffisant.

J'essayerai de pondre une appli ou deux en Swift, mais j'ai peur de tomber à nouveau sur un modèle typé “grosse Microsoft” (PowerApps, etc.) : “en théorie, ça marche comme ça”, puis tu galères à réellement le faire fonctionner.

Conclusions

Pour du développement “moderne”, les 8GB sont atteints immédiatements : Docker a besoin d'un noyau Linux et passe donc par une couche de virtualisation au travers de QEMU (donc, comptez 4GB de RAM de pris rien que pour démarrer un sous-système), tandis qu'XCode explose le SWAP dès que l'on démarre l'outil de prévisualisation.

Donc, pour du dev : partez obligatoirement sur 16GB, voire plus.

Terminal

Pour visualiser l'historique des commandes appelées :

history 0

Applications

Finder