Ecossistema Uxn
(100r.co)- Uxn/Varvara é uma pilha de computação pessoal centrada em uma pequena máquina virtual, permitindo executar a mesma aplicação em vários sistemas
- Embora tenha surgido de uma necessidade específica de hospedar aplicações gráficas, está disponível publicamente para adoção por qualquer pessoa como alvo de release
- Os programas são escritos em sua própria linguagem, Uxntal, e a forma de distribuição se parece com o compartilhamento de ROMs de jogos de emuladores de consoles clássicos
- Para executar, é necessário um emulador específico para cada sistema operacional, e também é possível implementar seu próprio emulador com base nas especificações da VM e de I/O
- Como a mesma ROM roda em desktops, pequenos dispositivos eletrônicos, handhelds e navegadores, fica mais fácil manter softwares pequenos por muito tempo e portá-los entre diferentes ambientes
A pilha de computação proposta por Uxn/Varvara
- O ecossistema Uxn/Varvara é uma pilha de computação pessoal centrada em uma pequena máquina virtual
- O objetivo principal é permitir que a mesma aplicação rode em vários sistemas
- O design se baseia em uma mentalidade de implementação primeiro e é voltado para a necessidade concreta de hospedar aplicações gráficas
- Uxn é programado em sua própria linguagem, Uxntal
- A distribuição de programas Uxn é semelhante ao compartilhamento de ROMs de jogos para emuladores de consoles clássicos
- Mais detalhes sobre o contexto do design podem ser vistos nas notas de uxn design
Emuladores e execução de ROMs
- Para executar um programa Uxn, é necessário um emulador compatível com o sistema
- Linux/BSD
- Mac/Plan9
- Windows
- Mais ambientes estão listados em awesome-uxn emulators
- Também é possível implementar seu próprio emulador consultando as especificações da VM e de I/O
- O emulador desktop multiplataforma requer 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:
- Há várias formas de executar uma ROM
- Usar um programa lançador
- Arrastar um arquivo
.rompara a janela do emulador - Executar
bin/uxnemu path/to/example.romno terminal
- Os controles básicos do emulador usam teclas de função e mapeamento de botões
F1: alternar zoomF2: alternar depuradorF3: captura de telaF4: carregarlauncher.romL-Ctrl: A,L-Alt: B,L-Shift: Select,Home: Start
Ambientes de execução e programas de exemplo
- A mesma ROM Uxn pode ser usada em desktops, pequenos dispositivos eletrônicos, handhelds modernos e navegadores
- Há ports para GBA, Nintendo DS, Playdate, DOS, PlayStation Vita, Raspberry Pi Pico, Teletype, ESP32, Amiga, iOS, STM32, IBM PC e outros, embora alguns ainda não estejam concluídos
- Os programas Uxn oferecidos como exemplo incluem brinquedos, jogos e ferramentas
Materiais de estudo e comunidade
- Os materiais para começar estão disponíveis nos links abaixo
- Se precisar de ajuda, você pode perguntar no #uxn do
irc.libera.chatou no Catlang Discord
1 comentários
Opiniões no Hacker News
Tudo sobre esse grupo é fascinante. Eles são nômades digitais em um barco, e cada texto dá um vislumbre de uma vida que eu nunca tinha sequer pensado ser possível
Toda vez que entro no site, acabo caindo numa toca de coelho. Talvez eu quisesse ter tentado isso em outra vida
https://100r.co/site/dry_toilet_installation.html
https://100r.co/site/solar_evacuated_tube_cooking.html
A compilação cruzada é fácil, e, lendo a introdução ao Plan 9 de Ballesteros, você naturalmente desenvolve uma noção de ciência da computação
Tem muito conteúdo incrível
Também é surpreendente que ela rode em vários hardwares reais. Já vi muitos projetos de máquinas virtuais, mas em geral eles pareciam isolados dentro de outro computador. Restrições extremas parecem empurrar o design para uma direção completamente diferente
Claro, o algoritmo do YouTube é o algoritmo do YouTube, e capitalismo é capitalismo, então uma boa parte dos vídeos de navegação também é conteúdo de biquíni. Ao mesmo tempo, a vida de consertar, modificar e atualizar pequenos veleiros também ocupa um grande espaço. Vai de trabalho com fibra de vidro a energia solar e dessalinização, dando um vislumbre de uma vida realmente fascinante
Tenho muito respeito por essa equipe. Também vale ler este excelente texto sobre a busca por um modelo de computação mais simples: https://100r.co/site/weathering_software_winter.html
A 100r me faz lembrar do que mais perdemos hoje em dia: coragem
Temos medo de agarrar oportunidades, explorar ideias, escolher um caminho um pouco mais difícil e encarar desafios exigentes. Somos avessos a riscos e não queremos tentar coisas novas
Ao ler sobre as viagens deles, todo o trabalho que fazem no barco, a postura em relação ao código e, especialmente, o conceito de criar software para uma pessoa só, eu me sinto um covarde. Dá vontade de ser mais corajoso na forma como lido com código, com a vida e com o ambiente ao meu redor
Agradeço por todo o trabalho de Rek e Devine. Fico feliz em vê-los ocupados sem fazer nada
A conta do autor no Mastodon (https://merveilles.town/@neauoire) é um tesouro de pequenos projetos e capturas de tela vindos do universo computacional paralelo que é o computador de Devine
Recomendo muito também o episódio de podcast em que ele participou no Future of Coding: https://futureofcoding.org/episodes/044.html e há ainda uma continuação sobre o Orca, um ambiente incrível para música ao vivo: https://futureofcoding.org/episodes/045.html
Essa pessoa e os antigos usuários de Lisp deste fórum me fizeram pensar por muito tempo em computação alternativa e linguagens de programação de nicho. Uxn está na minha lista de afazeres, e atualmente estou ocupado com a família Smalltalk antes de entrar em Forth e Uxn :)
Sempre fico feliz quando eles aparecem na primeira página. O software que escrevem é interessante, mas o trabalho que fazem para tornar o barco o mais autossuficiente possível é realmente impressionante
Algum fã de Blame!? https://wiki.xxiivv.com/site/devine_lu_linvega.html https://blame.fandom.com/wiki/Davine_Lu_Linvega
https://100r.co/site/pino.html
O site deles que eu realmente consulto com frequência é o de receitas: https://grimgrains.com/site/home.html
Há bastante coisa divertida ali para quem gosta de cozinhar
Maxine Chevalier-Boisvert, conhecida pelo trabalho em Basic Block Versioning JIT e, mais recentemente, pelo yjit, também tem tratado de ideias parecidas ultimamente
https://pointersgonewild.com/2023/02/24/building-a-minimalistic-virtual-machine/
É um design de máquina virtual pequeno e elegante, então muita gente aqui deve achar interessante
Não é só um design numa página pessoal de alguém; estão criando ferramentas, jogos e arte
Eu mesmo fiz isso, e, embora seja um pouco mais complexo que o conjunto de instruções deles, a diferença não é grande. Como compiladores reais podem tê-lo como alvo, ele consegue rodar praticamente qualquer software. Ainda assim, é preciso fornecer o restante do ambiente da máquina virtual, para entrada/saída etc.
Por ser um jogo em estilo retrô baseado em Forth, de baixa especificação e com uma máquina virtual portada para quase qualquer lugar, lembra a Z-Machine, mas mais voltada a pixels
Parece ótimo para jogos no estilo GB, sem precisar brigar com instruções parecidas com Z80 nem se preocupar em queimar um LCD real por causa de algum bug estranho de temporização de ciclos durante a exibição de sprites