this seems like an interesting theoretical programming environment. would it be useful, for, say, writing a report? or a poem? or drawing a map?
On 3/12/07, Simon Forman <[EMAIL PROTECTED]> wrote:
On 3/12/07, John Manoogian III (jm3) <[EMAIL PROTECTED]> wrote: > very interesting! you mention visual interactive components like a > "non-text-based GUI" and "3D environment" - are there screenshots or demos > of these? > > thanks, > > john > www.jm3.net > > > On 3/12/07, Antoine van Gelder <[EMAIL PROTECTED]> wrote: > > > > Bert Freudenberg wrote: > > > On Mar 12, 2007, at 10:27 , Simon Forman wrote: > > > > > >> I've got something I think may be useful and relevant to this > discussion. > > >> > > >> I have been toying for several years with a system that I eventually > > >> named "xerblin" that provides a metaphor for computation that can span > > >> high level "Desktop" activities down to assembly language. By that I > > >> mean that it puts grep and MOV into the same seamless framework. > > > > > > It's gorgeous. > > > > - antoine Thanks guys, the warm reception for my little hobby project is very gratifying. I'm a bit blown away. You can see a screen capture of the 2D direct-manipulation GUI at one of the older sites I made: http://www.geocities.com/rogue_pedro/xerblin/screenshot0.jpg This was the version I presented at CodeCon. The green circles are ExecutableWords, the ovals are SequentialWords (at that time, they were not subclassed from list but rather implemented as binary trees both in themselves and in the GUI) while the pale yellow, light blue, and dark blue circles represent strings, ints, and floats respectively. These icon-ish "objects" could be moved around with the mouse, and they responded to mouse clicks in the same way as text in the TextViewers. You could cut and paste them to and from the stack and build new commands out of existing ones by "pasting" words into SequentialWords. You could also edit existing commands just with the mouse by pasting them into the GUI window and breaking them up and reassembling them. The code for this is still around somewhere, and it implements a port of Oberon's message passing system, but it's not terrific and it's out of sync with the current architecture so I've left it out for awhile. As for the 3D GUI, I transliterated the quaternion-based C++ math library from the back of "Physics for Game Developers" into python and used it to provide a simple coordinate transformation "pipeline" for a Tkinter Canvas subclass. I got as far as having eight oval canvas items whirling around at the corners of a virtual cube but I never plugged those pseudo-3D items into the GUI objects I created for the 2D widget. You can probably see that this is just a quick and dirty way to get a kind of 3D environment. I would have still had to make some decisions: open space or virtual ground, method of navigation in 3D space, method of manipulating objects in 3D space, would objects be anchored to things and if so what things, etc... One neat idea would be to have each GUI element that modeled a compound object control the coordinate transformation of it's kids' GUI elements. That would allow for simple graceful representations of large and intricate trees just by applying a small rotation-and-scale recursively at each level, and it fits nicely with the Oberon component system. At the conference, I took a piece of C code like this: void g(int h) { for (k=0; k <= 10; k++) { h = 10; } } and converted it into a functionally equivelent xerblin command, then I pasted it into the GUI frame and expanded it to show its full structure. The resulting tree from even so small a fragment of C is a bit unweildy, as you might imagine, so the 3D environment could be a great improvement over the 2D canvas. It will obviously require some fancy visualization to make this a viable way to introspect, say, grep down to the metal. Peace, ~Simon -- "The history of mankind for the last four centuries is rather like that of an imprisoned sleeper, stirring clumsily and uneasily while the prison that restrains and shelters him catches fire, not waking but incorporating the crackling and warmth of the fire with ancient and incongruous dreams, than like that of a man consciously awake to danger and opportunity." --H. P. Wells, "A Short History of the World"
-- the blog is back: http://blog.jm3.net
_______________________________________________ Sugar mailing list [email protected] http://mailman.laptop.org/mailman/listinfo/sugar
