infinite trees in GTInspector sometimes loop on pathIn
by Peter Uhnak
Hi,
I have a small GTInspector extension that shows me a tree-like structure of a graph. As the data underneath are graphs, the tree itself is infinite (because there are loops).
That by itself works fine (because only roots are expanded), however when I am filtering the elements (in raw pane), GTInspector gets stuck in infinite GLMTreeMorphNodeModel>>pathIn: loop.
I've made couple of classes to reproduce the behavior - see attached file.
There are two types of nodes: one contains children (items), and the other can contain references to other elements.
The extension is written in LLCompositeElement>>gtInspectorTreeIn:
To reproduce:
1. import attached package
2. execute the following
```
'<a>
<b ref c />
<c ref b />
</a>'.
a := LLCompositeElement named: 'a'.
b := LLReferenceElement named: 'b'.
c := LLReferenceElement named: 'c'.
a items: { b . c }.
b references: { c }.
c references: { b }.
a inspect.
```
3. the Tree view works fine (I see some visual glitching of arrows, but that doesn't matter)
4. switch to Raw view
5. (any of these will trigger the behaivor)
5.a. click on "items" instance variable, or
5.b. "do it and go" any expression (e.g. 1+1)
6. now you are in infinite pathIn: loop
Sometimes I've experienced that breaking the loop (meta+.), closing the debugger and redoing the expression worked... but I don't have any details about that.
Thanks!
Peter
5 years, 11 months
XMLParser GT update
by monty
Andrei asked me to post about XMLParser's GT enhancements.
Syntax highlighting has been extended to element, attribute, and declaration names. The colors are customizable and initially come from your Shout theme.
When inspecting a DOM node, the "Source" tab now supports dynamic editing of the DOM node's XML source code. The edited source can be accepted to change the node and optionally saved to a file. Not every node can be edited (for example, internal subset declarations).
The "Remove" action deletes a node from its DOM tree. Not every node can be removed (for example, root nodes).
If the XPath library is installed, the "XPath" tab can be used to evaluate XPath expressions with the inspected DOM node as the context node. The XPath syntax highlighting colors are also customizable and initially come from your shout theme.
5 years, 11 months
[ann] steering agile architecture video published by o'reilly
by Tudor Girba
Hi,
I am happy to announce that O’Reilly has published my Steering Agile Architecture video training:
http://www.humane-assessment.com/blog/steering-agile-architecture-video-t...
This video is based on my work on humane assessment, and it features Moose prominently. It also shows Pharo, GT and Roassal (in the last part).
The video is indeed paid and it is mainly targeted to people that have a Safari Books Online subscription. But, the interesting thing about it is that it opens Pharo and Moose to a new kind of an audience, O’Reilly being the most prominent publishing company in the software area.
Agile architecture is considered a prominent topic but the literature (until now) was rather loose at how to make it really work in practice. This course offers both a concrete approach based on humane assessment. As you might know, humane assessment centers around the idea of building tools cheaply as a way to figure the system out, and this is right now pretty much only practicable in Moose and Pharo.
One thing that I ask people when I go to conferences, the last one being the Software Architecture Conference organized by O’Reilly, is if they like working with legacy systems. They actively dislike it. Then I show them demos of how it can be like and then I ask them if they think these demos are cool. And I never encountered one that did not find it cool. So, in a way, we can now be quite confident in saying that we work on the single platform that makes working with an existing system cool. Not a small feat.
So, if you do get the chance to look at these things, you might also get a concrete inspiration of how to leverage Pharo skills within companies that do not yet work with Pharo.
Cheers,
Doru
--
www.tudorgirba.com
www.feenk.com
"Presenting is storytelling."
5 years, 11 months
Issue with GTExample and RTExampleSelection
by Alexandre Bergel
Hi!
There is a tab called ‘Problems’ when inspecting an example. Any idea why?
Inspecting this GTExampleError says something like: MessageNotUnderstood: RTExampleSelection>>methodResolver
Cheers,
Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
5 years, 11 months
RTCalendarBuilder example
by Markus Böhm
May I ask: I’m trying to understand how to use RTCalendarBuilder in own,
adapted calendar visualization, I read the chapter about builders in the
book and started to look at:
exampleMonth
| b |
b := RTCalendarBuilder new.
b dates: (Month current to: Month current next).
b build.
^ b view
Is the month layout finally implemented in RTSVGPath in monthShapePath?
How could one change month visualization and:
- start weeks on Monday instead of Sunday
- change color of day figure or background color based on criteria (e.g.
weekend …)
Only meant as example. Would I need to change SVGPaths or are there higher
level methods?
BR Mike
5 years, 11 months
Fame - More flexible opposite definitions
by Cyrille Delaunay
Hello Moosers,
At synectique, we subclassed some FAMIX classes in order to provide our own
specific behavior and to modelize some language specifities.
In this context, we are facing cases where several properties in the FAMIX
hierarchy point to the same opposite.
Fame complains about that, and raises an error when exporting the mse.
Sometimes, this kind of error helps us to highlight inconsistencies in the
implementation of our meta model,
but some other times, we would like to be more tolerant, and allow a
property to define several "type" classes,
which has for consequence that each of these "type" classes will define the
same opposite.
This cases mainly occur when working around famix single inheritance limits.
A workaround I have thought about is that when defining such a duplicate
opposite,
we could inform fame that we don't want this definition to raise a
validation error.
For example, adding a pragma such as <alternateOpposite>, that would be
considered by the fame pragma processor when validating the model.
Does this behavior has any interest for moose in general ?
Would you have other suggestions ?
Should we keep this new behavior in our own Pragma processor class ?
If yes, may I factorize the references to MoosePragmaProcessor in the code
of moose ?
--
Cyrille Delaunay
5 years, 11 months
Issue with Roassal examples
by Leonel Merino
Hi all,
Moose crashes when selecting an example from the Roassal examples browser
(I tried several examples and it always crashes). This happens in the
latest Moose 6.1 development image (dump file here
<https://dl.dropboxusercontent.com/u/80292510/crash.dmp>).
Then, when installing Moose in a clean Pharo5 image the following warning
pops up:
[image: Inline images 1]
I selected "Proceed" to continue the installation, but a second warning
appears after some seconds:
[image: Inline images 2]
Finally, Moose is installed and Roassal examples seem to work fine.
Best regards,
Leonel Merino
PhD student
University of Bern
+41 78 405 43 38
merino(a)inf.unibe.ch
5 years, 11 months
Old moose book / Moose Chef / Moose Query
by Cyril Ferlicot D.
Hi,
I need to move an application build in Pharo 4 using Moose Chef to Pharo
5 and Moose Query.
I would like to know if there is documentation about Moose Chef and
Moose Query somewhere?
I wanted to check the moose book but I can only find the new one with an
empty query section.
Is the old moose book still somewhere?
Thank you in advance.
--
Cyril Ferlicot
https://ferlicot.fr
http://www.synectique.eu
2 rue Jacques Prévert 01,
59650 Villeneuve d'ascq France
5 years, 11 months