Hi,
As I said in the more hopeful side of this thread, playing along can be
a valuable learning experience.
Today I hunted a long standing bug regarding the behaviour of
Grafoscopio which I described as:
El 06/02/15 a las 10:09, Offray Vladimir Luna Cárdenas escribió:
[...]
Today I'm still wondering why or how I can't tell a tree to show the
contents only if the node is selected, but I get error traces and lost
of information by selecting an empty part of the tree to which my custom
browser doesn't know how to respond to.
[...]
The key thing was to read this apart from [1] and [2] and connect it
with the diagram on [3] (which I had seen before):
=[a]===================
The fundamental idea behind Glamour starts from the observation that the
navigation flow should be orthogonal to the way of presentation. In
Glamour, this navigation flow is captured through Panes, Ports and
Transmissions: the Panes represent the building blocks, the Ports
provide the hooks, and the **Transmissions form the fiber of the browser
by connecting the ports**.
[...]
Because now we have two origins, there will be two objects in the
#entity port corresponding to the selected class and to the selected
method. Thus, the display: block of the presentations accepts two
parameters.
========================
[1]
http://www.themoosebook.org/book/internals/glamour/transmissions
[2]
http://www.themoosebook.org/book/internals/glamour/presentations
[3]
http://www.themoosebook.org/book/internals/glamour/sketching
This analogy of transmissions as (optic) "fiber", the diagram on [3] and
the text on [a] made finally click on my mind. As a newbie I was going
by the concrete examples without proper conceptual understanding and
even when I asked for it and was properly pointed to [3] I went without
taking the proper time to understand the connections and details. Being
by myself helped my on that.
Now I have code like this:
=[b]===================
(browser transmit )
from: #tree port: #selection;
from: #nodeHeader port: #text;
to: #nodeHeader port: #neverland1;
when: [:node :text | text notNil & node notNil];
transformed: [:node :text | node header: text asString]
========================
and my browser knows when to show something properly.
Still I have to deal with the questions about executable code in nodes
and embeddable playgrounds in pane views, but after accumulated
frustration, playing along is being fruitful :-).
Thanks,
Offray