2 points par GN⁺ 2023-07-16 | 1 commentaires | Partager sur WhatsApp
  • Uxn/Varvara est une petite machine virtuelle au cœur d’une pile de calcul personnel permettant d’exécuter la même application sur plusieurs systèmes
  • Le projet est né d’un besoin concret d’hébergement d’applications graphiques, mais il est publié de façon à pouvoir être adopté par tous comme cible de publication
  • Les programmes sont écrits dans son propre langage, Uxntal, et leur distribution ressemble au partage de ROM de jeux pour émulateurs de consoles classiques
  • L’exécution nécessite un émulateur adapté à chaque système d’exploitation, et il est aussi possible d’implémenter soi-même un émulateur à partir des spécifications de la VM et des E/S
  • Comme la même ROM peut tourner sur un desktop, de petits appareils électroniques, des consoles portables et dans le navigateur, il est plus facile de maintenir longtemps de petits logiciels et de les porter vers divers environnements

La pile de calcul visée par Uxn/Varvara

  • L’écosystème Uxn/Varvara est une pile de calcul personnel centrée sur une petite machine virtuelle
  • Son objectif principal est de permettre à la même application de s’exécuter sur plusieurs systèmes
  • Sa conception repose sur une approche implementation-first et est adaptée à un besoin concret d’hébergement d’applications graphiques
  • Uxn se programme dans son propre langage, Uxntal
  • La distribution des programmes Uxn est comparable au partage de ROM de jeu pour émulateurs de consoles classiques
  • Pour plus de détails sur les choix de conception, voir la note uxn design

Émulateurs et exécution des ROM

  • Pour exécuter un programme Uxn, il faut un émulateur adapté au système
  • Il est aussi possible d’implémenter soi-même un émulateur à partir des spécifications de la VM et des E/S
  • L’émulateur desktop cross-platform nécessite SDL2
    • Arch: sudo pacman -S sdl2
    • Ubuntu: sudo apt install libsdl2-dev
    • Void Linux: sudo xbps-install SDL2-devel
    • OSX: brew install sdl2
    • openBSD: doas pkg_add sdl2
  • Il existe plusieurs façons de lancer une ROM
    • utiliser un programme lanceur
    • glisser un fichier .rom dans la fenêtre de l’émulateur
    • exécuter bin/uxnemu path/to/example.rom dans le terminal
  • Les commandes de base de l’émulateur reposent sur des touches de fonction et un mapping de boutons
    • F1: activer/désactiver le zoom
    • F2: activer/désactiver le débogueur
    • F3: capture d’écran
    • F4: charger launcher.rom
    • L-Ctrl: A, L-Alt: B, L-Shift: Select, Home: Start

Environnements d’exécution et programmes d’exemple

  • La même ROM Uxn peut être utilisée sur des ordinateurs desktop, de petits appareils électroniques, des consoles portables modernes et dans le navigateur
  • Il existe aussi des ports pour GBA, Nintendo DS, Playdate, DOS, PlayStation Vita, Raspberry Pi Pico, Teletype, ESP32, Amiga, iOS, STM32, IBM PC, même si certains ne sont pas finalisés
  • Les programmes Uxn fournis en exemple incluent des jouets, des jeux et des outils
    • Oquonie: monde étrange
    • Donsol: dungeon crawler de cartes
    • Left: éditeur de texte
    • Noodle: programme de dessin
    • Orca: environnement de live coding
    • Nasu: éditeur de sprites
    • Turye: éditeur de polices
    • Catclock: horloge de bureau
    • Dexe: éditeur hexadécimal
    • Bicycle: REPL interactif

Ressources d’apprentissage et communauté

1 commentaires

 
GN⁺ 2023-07-16
Avis Hacker News
  • Tous les aspects de ce groupe sont fascinants. Ce sont des nomades numériques sur un bateau, et chaque texte donne un aperçu d’une vie que je n’aurais même jamais imaginée possible
    À chaque fois que j’entre sur leur site, je tombe dans un terrier de lapin. Dans une autre vie, j’aurais peut-être voulu essayer ça
    https://100r.co/site/dry_toilet_installation.html

    • Il y a vraiment beaucoup de choses fascinantes. Personnellement, j’ai surtout adoré le collecteur solaire à tubes, avec de la cuisine au soleil et même de la cuisson de pain
      https://100r.co/site/solar_evacuated_tube_cooking.html
    • Ils utilisent aussi activement 9front, lassés des dépendances et des systèmes d’exploitation devenus énormes. 9front est très petit, tout y est compilé statiquement, et l’API est elle aussi réduite
      La compilation croisée est facile, et en lisant l’introduction à Plan 9 de Ballesteros, on développe presque naturellement une intuition pour l’informatique
    • Si ça vous intéresse, il y a aussi le wiki personnel de Devine : https://wiki.xxiivv.com/site/home.html
      Il y a énormément de contenu génial
    • Je trouve vraiment impressionnant qu’ils aient encore l’énergie, la motivation et le temps de créer une machine virtuelle tout en gérant tous ces problèmes du « monde réel »
      Le fait que ça tourne sur plein de matériels réels différents est également remarquable. J’ai vu beaucoup de projets de machines virtuelles, mais ils donnent en général l’impression d’être isolés dans un autre ordinateur. Des contraintes extrêmes semblent pousser la conception dans une direction complètement différente
    • Il existe sur YouTube toute une grande sous-culture de navigateurs, et personnellement j’en consomme comme contenu d’évasion
      Bien sûr, l’algorithme de YouTube reste l’algorithme de YouTube, et le capitalisme reste le capitalisme, donc une bonne partie des vidéos de navigation sont aussi du contenu en bikini. Mais il y a aussi tout un pan de vie consacré à réparer, modifier et améliorer de petits voiliers. De la fibre de verre au solaire en passant par le dessalement, ça donne un aperçu vraiment fascinant d’une autre façon de vivre
  • J’ai énormément de respect pour cette équipe. Il vaut aussi la peine de lire leur excellent texte sur la recherche d’un modèle informatique plus simple : https://100r.co/site/weathering_software_winter.html

  • 100r me rappelle ce qui nous manque peut-être le plus aujourd’hui : le courage
    Nous avons peur de saisir des occasions, d’explorer des idées, de choisir une voie un peu plus difficile et de nous lancer dans des défis exigeants. Nous sommes réfractaires au risque et peu enclins à essayer des choses nouvelles
    Quand je lis leur voyage, tout le travail qu’ils font sur leur bateau, leur attitude envers le code, et surtout l’idée de créer des logiciels pour une seule personne, je me sens presque lâche. Ça me donne envie d’être plus courageux dans ma façon d’aborder le code, la vie et mon environnement
    Merci à Rek et Devine pour tout leur travail. Ça fait plaisir de les voir ne rien faire avec tant d’activité

  • Le compte de l’auteur sur Mastodon (https://merveilles.town/@neauoire) est un trésor de petits projets et de captures d’écran venus de l’univers parallèle du computing qu’est l’ordinateur de Devine
    Je recommande aussi vivement l’épisode de podcast réalisé avec Future of Coding : https://futureofcoding.org/episodes/044.html ainsi que sa suite consacrée à Orca, ce remarquable environnement de musique live : https://futureofcoding.org/episodes/045.html
    Cette personne, ainsi que les anciens utilisateurs de Lisp de ce forum, m’ont longtemps fait réfléchir à l’informatique alternative et aux langages de programmation de niche. Uxn est sur ma liste, mais en ce moment je suis occupé avec la famille Smalltalk avant de me plonger dans Forth et Uxn :)

    • Il a été fait mention d’un calendrier qui divise l’année en 26 périodes de deux semaines de A à Z, mais 26 périodes de deux semaines, cela ne fait que 364 jours. Je me demande si ce calendrier cherche à faire une année de 364 jours, s’il ajoute des jours en dehors de ces 26 périodes, ou s’il fonctionne autrement
    • Le profil Mastodon affiche directement they/them
  • Je suis toujours content quand ils arrivent en première page. Leur logiciel est intéressant, mais tout le travail qu’ils font pour rendre leur bateau aussi autonome que possible est vraiment impressionnant

  • Des fans de Blame! ici ? https://wiki.xxiivv.com/site/devine_lu_linvega.html https://blame.fandom.com/wiki/Davine_Lu_Linvega

  • Parmi leurs sites, celui que je consulte réellement le plus souvent est leur site de recettes : https://grimgrains.com/site/home.html
    Il y a pas mal de choses intéressantes pour les gens qui aiment cuisiner

  • Maxine Chevalier-Boisvert, connue pour son travail sur le JIT de Basic Block Versioning et plus récemment sur yjit, explore aussi des idées similaires en ce moment
    https://pointersgonewild.com/2023/02/24/building-a-minimalistic-virtual-machine/

  • C’est une conception de machine virtuelle petite et élégante, qui devrait intéresser beaucoup de monde ici

    • Ce qui est étonnant, c’est à quel point c’est pratique. Ils l’ont porté sur toutes sortes de vieux matériels qui traînaient, et ils ont aussi créé une grande quantité de logiciels avec
      Ce n’est pas juste un design posé sur la page web de quelqu’un : ils en font des outils, des jeux et de l’art
    • Si vous voulez voir ce concept dans une version plus mainstream, RISC-V vaut aussi le détour. Implémenter une machine virtuelle interpréteur RISC-V de base, sans extensions, prend environ une journée
      Je l’ai fait moi-même, et c’est un peu plus complexe que leur jeu d’instructions, mais pas de beaucoup. Comme de vrais compilateurs peuvent le cibler, on peut en pratique exécuter à peu près n’importe quel logiciel. Il faut néanmoins toujours fournir le reste de l’environnement de la machine virtuelle, notamment pour les entrées/sorties
  • Avec ses jeux rétro basés sur Forth, ses faibles exigences matérielles et sa machine virtuelle portée presque partout, cela ressemble au Z-Machine, mais davantage pour le pixel art
    Ça a l’air parfait pour des jeux dans l’esprit Game Boy, sans avoir à se battre avec un jeu d’instructions type Z80 ni à craindre de griller un vrai écran LCD à cause d’un bug bizarre de timing de cycles pendant l’affichage des sprites