El ecosistema Uxn
(100r.co)- Uxn/Varvara es una stack de computación personal centrada en una máquina virtual pequeña que permite ejecutar la misma aplicación en múltiples sistemas
- Aunque surgió de una necesidad concreta de alojar aplicaciones gráficas, está publicado para que cualquiera pueda adoptarlo como objetivo de lanzamiento
- Los programas se escriben en su propio lenguaje, Uxntal, y su distribución se parece a compartir ROMs de juegos de emuladores de consolas clásicas
- Para ejecutarlos se necesita un emulador específico para cada sistema operativo, aunque también es posible implementar uno propio a partir de las especificaciones de la VM y de I/O
- Como la misma ROM puede correr en escritorio, dispositivos electrónicos pequeños, consolas portátiles y navegador, resulta más fácil mantener software pequeño durante mucho tiempo y llevarlo a distintos entornos
La stack de computación que busca Uxn/Varvara
- El ecosistema Uxn/Varvara es una stack de computación personal centrada en una máquina virtual pequeña
- Su objetivo principal es permitir que la misma aplicación se ejecute en varios sistemas
- Su diseño se basa en una forma de pensar de implementación primero y está ajustado a la necesidad concreta de alojar aplicaciones gráficas
- Uxn se programa en su propio lenguaje, Uxntal
- La distribución de programas Uxn se parece a compartir ROMs de juegos para emuladores de consolas clásicas
- Se puede consultar más contexto de diseño en las notas de uxn design
Emuladores y ejecución de ROMs
- Para ejecutar un programa Uxn se necesita un emulador adecuado para el sistema
- Linux/BSD
- Mac/Plan9
- Windows
- Hay más entornos recopilados en la lista de emuladores de awesome-uxn
- También se puede implementar un emulador propio a partir de las especificaciones de la VM y de I/O
- El emulador multiplataforma para escritorio requiere 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
- Arch:
- Hay varias formas de ejecutar una ROM
- Usar un programa lanzador
- Arrastrar un archivo
.roma la ventana del emulador - Ejecutar
bin/uxnemu path/to/example.romdesde la terminal
- Los controles básicos del emulador se manejan con teclas de función y mapeo de botones
F1: alternar zoomF2: alternar depuradorF3: captura de pantallaF4: cargarlauncher.romL-Ctrl: A,L-Alt: B,L-Shift: Select,Home: Start
Entornos de ejecución y programas de ejemplo
- La misma ROM de Uxn puede usarse en computadoras de escritorio, dispositivos electrónicos pequeños, consolas portátiles modernas y navegador
- También hay ports para GBA, Nintendo DS, Playdate, DOS, PlayStation Vita, Raspberry Pi Pico, Teletype, ESP32, Amiga, iOS, STM32, IBM PC y otros, aunque algunos no están terminados
- Los programas Uxn ofrecidos como ejemplo incluyen juguetes, juegos y herramientas
Materiales de aprendizaje y comunidad
- Hay materiales iniciales disponibles en los siguientes enlaces
- Si necesitas ayuda, puedes preguntar en #uxn de
irc.libera.chato en el Discord de Catlang
1 comentarios
Opiniones de Hacker News
Todo sobre este grupo me parece fascinante. Son nómadas digitales en un barco, y cada texto te deja asomarte a una vida que nunca habría pensado posible.
Cada vez que entro a su sitio termino cayendo por una madriguera de conejo. En otra vida quizá me habría gustado intentarlo
https://100r.co/site/dry_toilet_installation.html
https://100r.co/site/solar_evacuated_tube_cooking.html
Compilar de forma cruzada es fácil, y leer la introducción a Plan 9 de Ballesteros también te va dando de forma natural una intuición de ciencias de la computación
Tiene muchísimo contenido increíble
También sorprende que funcione en tanto hardware real. He visto muchos proyectos de máquinas virtuales, pero casi siempre se sienten aislados dentro de otra computadora. Parece que las restricciones extremas empujan el diseño en una dirección totalmente distinta
Claro, el algoritmo de YouTube es el algoritmo de YouTube y el capitalismo es el capitalismo, así que buena parte de los videos de navegación también son contenido en bikini. Al mismo tiempo, una gran parte de esa vida consiste en reparar, adaptar y mejorar veleros pequeños. Va desde trabajar con fibra de vidrio hasta energía solar y desalinización, y de verdad te deja ver una vida muy interesante
De verdad admiro a este equipo. También vale mucho la pena leer este gran texto sobre la búsqueda de un modelo de cómputo más simple: https://100r.co/site/weathering_software_winter.html
100r me hace pensar en lo que más hemos perdido últimamente: el coraje
Tenemos miedo de aprovechar oportunidades, explorar ideas, tomar el camino un poco más difícil y lanzarnos a desafíos complicados. Evitamos el riesgo y no queremos probar cosas nuevas
Leer sobre sus viajes, todo el trabajo que hacen en el barco, su actitud hacia el código, y en especial la idea de crear software para una sola persona, me hace sentir cobarde. Me dan ganas de ser más valiente en la forma en que trato el código, la vida y mi entorno
Gracias por todo el trabajo de Rek y Devine. Me da gusto verlos ocupados sin hacer nada
La cuenta del autor en Mastodon (https://merveilles.town/@neauoire) es un tesoro de pequeños proyectos y capturas de pantalla salidos del universo paralelo de cómputo que es la computadora de Devine
También recomiendo muchísimo el episodio de podcast que hicieron con Future of Coding: https://futureofcoding.org/episodes/044.html y hay una continuación sobre Orca, un increíble entorno de música en vivo: https://futureofcoding.org/episodes/045.html
Gracias a esta persona y a los viejos usuarios de Lisp de este foro, llevo mucho tiempo pensando en cómputo alternativo y lenguajes de programación de nicho. Uxn está en mi lista de pendientes, aunque por ahora ando ocupado con Smalltalk y compañía antes de entrarle a Forth y Uxn :)
Siempre me da gusto cuando aparecen en la portada. El software que hacen es interesante, pero lo que hacen para volver su barco lo más autosuficiente posible es realmente impresionante
¿Hay fans de Blame! por aquí? https://wiki.xxiivv.com/site/devine_lu_linvega.html https://blame.fandom.com/wiki/Davine_Lu_Linvega
https://100r.co/site/pino.html
De sus sitios, el que sí reviso con frecuencia es el de recetas: https://grimgrains.com/site/home.html
Tiene bastantes cosas divertidas para la gente a la que le gusta cocinar
Maxine Chevalier-Boisvert, conocida por su trabajo en Basic Block Versioning JIT y más recientemente yjit, también ha estado tratando ideas parecidas últimamente
https://pointersgonewild.com/2023/02/24/building-a-minimalistic-virtual-machine/
Es un diseño de máquina virtual pequeño y elegante, así que a mucha gente aquí probablemente le parezca interesante
No se queda como un diseño en la página web de alguien; están haciendo herramientas, juegos y arte
Yo lo hice, y aunque es un poco más complejo que su conjunto de instrucciones, la diferencia tampoco es tanta. Como compiladores reales pueden apuntarle, en la práctica puedes ejecutar casi cualquier software. Aun así, todavía necesitas proporcionar el resto del entorno de la máquina virtual para entrada/salida y demás
Un juego de estilo retro basado en Forth, con bajos requisitos y una máquina virtual porteada a casi cualquier cosa; se parece a la Z-Machine, pero más orientada a píxeles
Suena ideal para juegos estilo GB sin tener que pelear con un conjunto de instrucciones tipo Z80 ni preocuparte por quemar una LCD real por bugs raros de temporización de ciclos mientras dibujas sprites