53 comments
@arbe well right now it's using an int, but I might make it loop around an unsigned short for good measure :) Built the stack-machine operating system(or, a kind of livecoding playground) of my dreams this afternoon. Where's that factor raptor with sunglasses emoji @ritualdust Once it's a bit more fleshed out, I'll make you a launcher that does exactly that ^^ @neauoire @ritualdust OMG please! I cannot seem to get it running on MacOS, but I also get lost at the terminal quite easily. @helveticablanc @ritualdust it's really not in a state that can be used easily, gimme a bit of time and it'll be usable. The advantage of this is that it's easier to use than uxnemu which expects that you give it a rom path, this, you open it, and start playing. @neauoire @ritualdust Oh yeah, I'm in no rush! Its so cool to watch you develop it tho! @neauoire Oh wait, the wm is uxn? how? Btw, have you seen sowm? Tiny X11 window manager written by the Neofetch guy. https://github.com/dylanaraps/sowm @unlkfp yeah I came across it a little while back :) What I'm going for is rio meets puredata The window manager's dropdown menu is its own little Uxn program connected to the main OS node, that will spawn new program nodes. I don't know why I didn't do all this sooner, I wasted so much time trying to contend with i3 and unix's bullshirt. @creitve having only stdin/stdout/stderr for program communication, and the pain of forking routing, and in this case, one thing I really like, is allowing one program to poke() at another program's running memory as a form of pipe. As well, as all this is stored as an image, recovering state is going to be really easy, it's not tangled into any parts of the subsystem. @pikuseru @creitve yup, I'm going for something similar, although, programs don't expose any symbols table. So I can't say, write to a specific value stored in an object, the "objects" have a singular API which is the varvara specs. It's kind of simplistic, but it should get me where I need to go :) Routing the menu directly into Left makes Left work as a sort of debugger for message passing. @neauoire this really reminds me of some of the things @prahou was scripting in ratpoison, but ohmygod your ui looks elegant! crazy what you can come up with if you leave the constraints of existing software :) (side note: i've been thinking about a low-power portable computer system for ages now and this looks like the dream wm/os for it! do you know what the current state of running uxn close to metal is?)
[DATA EXPUNGED]
@jameschip yup, so you can connect one output to various programs to fork the stream.
[DATA EXPUNGED]
@jameschip yeah that was the idea. Data can go both ways, but it uses uxn's event flow, so there's 256 bi-directional named ports to communicate data with. Each can trigger various events in the next program, like a refresh, a resize, a note, etc..
[DATA EXPUNGED]
@jameschip not really, it just has to be a valid varvara rom(standard uxn program), they always have the same base API to draw pictures, and write files and so on. I can move the cursor of another application by writing to that application's Mouse/x port, and that, in turn, triggers a Mouse/vector, which the application will respond to because that's what roms do.
[DATA EXPUNGED]
@jameschip yup! That's how files, stdio, etc are passed around in Varvara. I should have to need the file's symbols to communicate with it. @neauoire You're doing something amazing now. I don't understand what it is but I like it and please don't stop. It's starting to be usable enough that I can build the OS from within itself. I no longer need to rely on unix pipes to route data between programs, I can just paint little lines between them. :mac: The linter rom is the little black dot, I currently don't have anything to draw roms that don't use the screen device. @neauoire i'm so excited watching you work on this :D @flbr yes! I'm hoping to grab the rom's metadata next and display it :) you're one step ahead of me! Finally figured out a robust way to fork all communication, so I can send the data to different programs, so say I want to print an image alongside its hexadecimal value, I don't have to pass it into the image viewer and then to the hex viewer. Those are all uxn programs, the dropdown is its own rom, so is the log viewer, it keeps the emulator really simple, giving it the only task of managing Uxns: @neauoire does the sender wait for all of the receivers to indicate that they're ready to receive? Do they have input buffers that are always writeable? I'm wondering what happens if multiple programs try to write send to a receiver at once, or if one receiver becomes 'unready to receive' during its execution @voxel yeah it will wait, and events will be queued until it's ready to go through. I might have fun with more non-deterministic stuff in the future, but I haven't found a use for it yet, so it's all sequential atm. @neauoire so excited to see this evolve. you got me here wondering about the implications of connecting ports other than console in and console out, this aspect could be really fun to explore! @bellinitte yeah, there's plenty to try with this! I feel like I haven't even scratched the surface @neauoire @bellinitte I always wondered what it would be like to have an OS where I could explicitly and visually patch sound, data, events, hardware etc like a modular system. @neauoire Awesome. I am blown away by the fact how capable UXN is. 🤩🎉 @neauoire this is incredible, i can imagine routing audio through a bunch of little programs for doing music, mixing, etc. @neauoire yay Display Postscript! I'm not sure if it worked anything like this but it's what this reminds me of. |
@neauoire Infinite, or #ffff x #ffff pixels?