Hello.
I notice that the method #addExclusiveInteraction: was removed in the latest commit of Roassal. This method is still called by other methods such as #popupText: . Now my interactions aren’t working. Should I use some other API or this was a mistake?
Best regards,
Natalia
Hi,
I'm just testing/porting some of my stuff on pharo 4 (congrats again for
the release!) and I see something strange. When I run the examples of
agile visualization on a playground I don't get all the tabs that I get
on Pharo 3.0 and Moose 5.0 and 5.1, only the "Raw" and "Meta". Tabs like
"View" and "Elements" are lost, which are particulary needed when you
explore a visualization.
To repeat this behaviour, just run any example of agile visualization
book on a fresh image of Pharo 4.
I'm running Pharo4.0 Latest update: #40611 on an Arch Linux system.
Hope it helps,
Offray
Hi!
I am not quite sure how name cloud works. In particular the method #symbolsUsedInName. For example:
m := MooseGroup new.
m add: (FAMIXClass new name: 'Hello').
m add: (FAMIXClass new name: 'World').
self assert: m symbolsUsedInName size equals: 1.
I would expect to have #(#Hello #World) as the result of #symbolsUsedInName.
Cheers,
Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Hi everyone !
I'm currently working on Pillar !
It's been a little while now so I wanted to share what's new.
--> First of all, with Stephane we created a new project, Cocoon,
based on the configuration system of Pillar. And now Pillar uses
Cocoon for his configurations.
http://smalltalkhub.com/#!/~PharoExtras/Cocoon
--> Pillar unit tests weren't working on Windows before
--> With Damien we also added two new abstractions:
--> The transformers: They take the Pillar tree and modify it. For
exemple we have a transformer which evaluates the scripts with a
"eval=true" parameter.
--> The annotations: They let the writer specify many different
things in their document using just 1 syntax (see below for an
example)
--> We now have our first annotation tag: the inclusion tag !
If you add this:
${inputFile:test.pillar}$ or ${inputFile:folder/test.pillar}$
into your Pillar file, that will include the content of test.pillar.
I recommend for now to use it at the root of the pillar file and not
inside a paragraph. That still needs some improvement.
--> We now have a transformer which adds an anchor after each title.
The anchor will have the text of the title.
This still needs some improvement, it's really simple for now. For
exemple we need to consider the case where we have 2 titles with the
same text (like 'introduction').
--> Now you can add 'lineNumber=true' as parameter for a Script. This
will add a numerotation at your script, usefull if we want to explain
a long code.
--> I did some refactorisation on the parameters used by pillar to
clean the code.
--> I did some refactorisation of the template system, the old one was
really ugly and changed the baseDirectory. Now template are managed by
a stream and not a file.
--> I improved a little the configuration
--> Now if you want to change the baseDirectory you can pass a
FileReference, a relative path or an absolute path.
--> Now we look for the inputFiles from the baseDirectory and not
the working directory like before. You can also pass a FileReference,
a relative path or an absolute path.
--> I added some tests to Pillar.
--> I added some doc to EnterprisePharo
https://ci.inria.fr/pharo-contribution/job/EnterprisePharoBook/lastSuccessf…
--> To help the users I improved the error reports. Before we had
really few errors specific to Pillar.
For this one you can help me ! If you found a weird error or something
really not easy to deal with, send me your problem !
--
Cheers
Cyril Ferlicot
Hi!
Just to share a bit our progresses about Grapher.
***** Box plots *****
A box and whisker plot is a diagram showing statistical distribution of a data set. This is highly important as soon as you need to understand the distribution of some data.
Here is an example:
b := RTGrapher new.
b extent: 50 @ 300.
ds := RTBoxPlotDataSet new.
ds points: #(4.3 5.1 3.9 4.5 4.4 4.9 5.0 4.7 4.1 4.6 4.4 4.3 4.8 4.4 4.2 4.5 4.4).
b add: ds.
b axisX noLabel; noTick.
b
Another example with outliers:
b := RTGrapher new.
b extent: 50 @ 300.
ds := RTBoxPlotDataSet new.
ds points: #(14 15 16 16 17 17 17 17 17 18 18 18 18 18 18 19 19 19 20 20 20 20 20 20 21 21 22 23 24 24 29).
b add: ds.
b axisX noLabel; noTick.
b
Slightly more elaborated example:
b := RTGrapher new.
b extent: 400 @ 200.
RTShape withAllSubclasses do: [ :cls |
ds := RTBoxPlotDataSet new.
ds points: (cls methods collect: #numberOfLinesOfCode).
b add: ds.
].
b
***** Tick Improvement *****
Ticks are now much nicer. Consider the following script:
b := RTGrapher new.
ds := RTDataSet new.
ds dotShape color: Color red.
ds points: #(5 1 20 8).
b add: ds.
b addDecorator: (RTAverageDecorator new withLabel; labelConvertion: [ :value | ' average = ', (value round: 2) asString ]).
b build.
b
Before:
Now:
Not a big deal, but this is much nicer.
Cheers,
Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Hi!
Some of you may be interesting into this.
We are currently working on a memory profiler. Our profiler snapshots a graph of objects. Visualizing them is then pretty easy. These pictures represent the graph of objects obtained by doing a system complexity (do it "RTGeneralExample new systemComplexity"). After the execution, 9070 objects are present in memory. These objects are naturally interconnected.
The visualization clearly show the interaction between different components. A is the Trachel component, a low layer graphic library. B is Roassal, a high level graphic framework. Roassal highly depends on Trachel. Statically Trachel does not depends on Roassal, however, they are during the execution. C are instances of RTGroup, which is a dedicated collection used in Roassal. The system complexity has been open in Glamour, so D are the Glamour components. E are event related objects, mainly instance of the Announcer class (each RTElement and TRShape share a unique Announcer). F are classes (i.e., instances of the Color class). G are 2d coordinates (i.e., instances of the Point class).
Thanks Alejandro Infante for this!
Likes are always appreciated: https://www.facebook.com/ObjectProfile/posts/832387470181185 <https://www.facebook.com/ObjectProfile/posts/832387470181185>
:-)
Cheers,
Alejandro & Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Hello,
using #buildEdgesFromObjects:, I want to get red edges
http://ws.stfx.eu/DVAZQNX7QQOK <http://ws.stfx.eu/DVAZQNX7QQOK>
but, I'm getting the edges with grey color.
If it’s bug, can someone fix it please; if not - what am I doing wrong?
Kind regards,
Natalia
Hi everyone!
Probably most of you know, that I am developing a tool called QualityAssistant, which displays current critics about your code in SystemBrowser, Inspector and Spotter.
I’m happy to tell you that there is a new release v0.4 which does not require you to do any previous setup! Just load it from configuration browser (pharo 4 & 5) and it will start giving you feedback. More details can be found here: https://github.com/Uko/QualityAssistant#quality-assistant-beta- <https://github.com/Uko/QualityAssistant#quality-assistant-beta->. If you are upgrading from older version, it is recommended to load QualityAssistant into a fresh image, because multiple announcement and process changes may cause exceptions in old objects.
Even if you are an experienced programmer you can find QualityAssistant useful for instantly spotting typos or making sure that you didn’t forget some details about your code.
Please give me a feedback about your experience, as I want to make it even more useful. Either write me an email, or open an entry at: https://github.com/Uko/QualityAssistant/issues
Have a nice week!
Uko
Hi!
I would like to develop a small deployment process and I have trouble to
create a fully working runtime image.
I have implemented a simple Glamour browser and took the
PharolauncherDeplymentScript and adapted it to my needs.
But some how I can't tell my browser window to remove the window
decorations (become embedded) and also not to use the full world screen.
Is there an existing documentation on this?
Thank you!
Sebastian
Hi,
I can't find the InFAMIX C-to-mse tool anymore
(http://www.intooitus.com/products/infamix is answering an access denied
error). I would like to see what is generated for code with pointers to
functions such as:
int
f(int a) {
return a+1;
}
int
g(int a) {
return a+2;
}
int
main() {
int a = 5;
int (*func)(int) = g;
a = (*func)(a);
printf("%d\n", a);
return EXIT_SUCCESS;
}
Best
--
Damien Cassou
http://damiencassou.seasidehosting.st
"Success is the ability to go from one failure to another without
losing enthusiasm." --Winston Churchill
Hello
Sice I am still playing with composite shapes, I found another problem, in
addition to incorrect behavior of calling update onto it.
This time I found that composite shapes do not send callbacks in lots of
cases. Example:
| compo ellipse |
compo := ((RTBox new size: 50; color: Color red; yourself) + RTBox new)
element.
compo @ RTDraggable.
ellipse := RTEllipse new size: 20; color: Color blue; element.
TRConstraint stick: ellipse below: compo.
(RTView new) add: compo; add: ellipse; open.
When I drag the composite shape, ellipse does not move, although it should.
Jan
--
View this message in context: http://forum.world.st/Roassal-TRCompositeShape-not-sending-callbacks-tp4814…
Sent from the Moose mailing list archive at Nabble.com.
Hello
We use Roassal on Pharo 4, but we ran across another compatibility issue.
On Pharo 4, MouseWheelEvent class got a little rework. It does not use
symbols #up and #down as direction anymore, not even via accessors.
TRMouseWheelEvent copies this direction, so because RTZoomableView looks for
these symbols, it is no longer working on Pharo 4 (mouse wheel now just
moves camera, but does not change scale).
More info about this Pharo 4 change you might find here:
http://forum.world.st/MouseWheelEvent-direction-in-Pharo-4-tp4806863p480686…
I tried to make few changes to make it compatible in both Pharo 3 and 4.
One option is just adding two methods into TRMouseWheelEvent which convert
Pharo 4 direction to Pharo 3 direction, so only interface change is when
creating TRMouseWheelEvent, usage of this event is absolutely same.
http://www.mediafire.com/download/es70j9dko45da2b/mouseWheel_pharo3like.zip
Second option is to rework TRMouseWheelEvent in the same way MouseWheelEvent
got changed, so they will have same usage on Pharo 4, but it means even
interface of TRMouseWheelEvent changes and everything that asks for its
direction has to be changed, too.
http://www.mediafire.com/download/38lwuwr1eauuur0/mouseWheel_pharo4like.zip
Third option is to use your own solution instead of mine.
And last solution might be just ignoring it and not trying to be compatible
with both Pharo versions.
Jan Blizničenko
--
View this message in context: http://forum.world.st/Roassal2-Pharo-4-MouseWheelEvent-compatibility-tp4806…
Sent from the Moose mailing list archive at Nabble.com.
Hello.
I want to load mse file (238 MB) into Moose image and I want to download even bigger files in the future. But the image crashed during the loading.
I tried to increase the size of image by adding the memory from command line ( --memory 4092; and even --memory 4190208), however the amount of “Space left” didn’t change.
Is there any way to solve this?
Best regards,
Natalia
Hello,
I am currently trying to use Infamix to parse Java, and don't understand
how exactly I'm supposed to include external JARs in the parsing process.
In the moose book page dedicated to the tool it's written to simply place
them in a subfolder (/xxx/project/src/lib) of the target directory
(/xxx/project/src/). This didn't work for me.
Is there an extra command line flag (other than lang/path/mse) that I can
use to fix the problem?
Thanks in advance.
Cheers,
Andrea Caracciolo
_____________________________
Software Composition Group
University of Bern
Hi,
Consider a piece of code:
Class MyClass
{
public String method A()
{
String a;
}
}
In the code above, there is a relationship between the method A and the
return type String. As per my understanding, this relationship is
represented with declaredType in FAMIXBehaviouralEntity.
Currently, this relationship is represented as a simple link (see
FAMIXType>>declaredType) between the two entities but not as a
FAMIXAssociation. Hence, when iterating over all the links/associations
between two entities, we have to specifically take into account this
special case. Currently, MooseChef helps in computing this information but
one should know that there are other links on top of associations:
TDependencyQueries>>queryIncomingDependencies
"Associations + typeDeclaractions"
^ self queryAllIncomingAssociations
addAll: self queryIncomingTypeDeclarations;
yourself
Another and more uniform solution would be to modify declaredType by
creating an additional reference. For example, a trivial solution can be:
declaredType: aType
declaredType := FMMultivalueLink on: self
update: #behavioursWithDeclaredType
from: self declaredType
to: aType.
self mooseModel ifNotNil: [self mooseModel add: (FAMIXReference new source:
self; target: self declaredType) ]
This change will be transparent for the current tools.
Please provide your feedback.
Usman
Hi,
apparently RTLabelled (or rather TRConstraint) doesn't respect bezier line
(not unexpected), and thus probably also all non-straight-line elements
(RTMultiLine, RTSomethingGradientLine, maybe others). I am now working on a
solution for our heavily modified dynamic multiline, so maybe the solution
would be applicable also for the lines in roassal.
Example:
~~~~~~~~~~~~~~~
| v shape edge els |
v := RTView new.
shape := RTEllipse new size: 10; color: (Color purple alpha: 0.3).
els := (shape elementsOn: (1 to: 3)) @ RTDraggable.
v addAll: els .
RTHorizontalLineLayout on: v elements.
v elements first translateBy: -50 @ 50.
v elements last translateBy: 150 @ 100.
edge := (RTBezierLine new controllingElements: v elements) edgeFrom: els
first to: els last.
v add: edge.
edge @ (RTLabelled new text: 'a text').
^ v
~~~~~~~~~~~~~~~~
Peter
Hi!
What is the meaning of a pink box?
Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Hi,
this is probably a bit tall order, so consider it more like a food for
thought, however how hard do you think it would be to add layers to roassal?
Examples of layers could be
1 - background (grid),
2 - the visualized figures,
3 - selection highlights
4 - handles (moving handles, resize handles)
There are certain benefits like clearing all handles by simply replacing a
layer with clear one, potential performance improvements and more. It would
definitely require more thought but it might be interesting to consider in
the coming years.
Cheers,
Peter
Hi,
to ease search in the FAMIX meta-model for a non Pharo developer, I
would like to export it to a text file. Is that already possible?
Thanks
--
Damien Cassou
http://damiencassou.seasidehosting.st
"Success is the ability to go from one failure to another without
losing enthusiasm." --Winston Churchill