Hi!
Maybe some of you are not are not aware of the RTBlink class. RTBlink is an interaction to make element blink. You simply need to invoke "RTBlink on: aRoassalElement”
Here are two examples:
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
v := RTView new.
v @ RTDraggableView.
shape := RTBox new width: [ :cls | cls numberOfVariables * 5 max: 5 ]; height: [ :cls | cls numberOfMethods sqrt * 2 ].
es := shape elementsOn: Collection withAllSubclasses.
v addAll: es.
RTFlowLayout on: es.
RTMetricNormalizer new
elements: es;
normalizeColor: #numberOfLinesOfCode.
es when: TRMouseClick do: [ :event | RTBlink new color: Color blue; on: event element ].
v
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Simply click on an element to make it blink.
A slightly more elaborated example:
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
"Set here the classes you wish to visualize"
classes := Collection withAllSubclasses.
v := RTView new.
v @ RTDraggableView.
shape := RTBox new width: [ :cls | cls numberOfVariables * 5 max: 5 ]; height: [ :cls | cls numberOfMethods sqrt * 2 ].
es := shape elementsOn: classes.
v addAll: es.
RTFlowLayout on: es.
RTMetricNormalizer new
elements: es;
normalizeColor: #numberOfLinesOfCode.
"Set here the classes you wish to visualize"
labels := (RTLabel new height: 8) elementsOn: classes.
RTFlowLayout new gapSize: 0; on: labels.
v addAll: labels.
TRConstraint move: labels onTheRightOf: es.
labels translateBy: 20 @ 0.
labels @ RTHighlightable.
labels when: TRMouseClick do: [ :event | RTBlink new color: Color blue; on: (es elementFromModel: event element model) ].
es @ RTHighlightable.
es when: TRMouseClick do: [ :event | RTBlink new color: Color blue; on: (labels elementFromModel: event element model) ].
v
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Cheers,
Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Hi,
Is there a new bug tracker for Moose?
As google code will close in 2016, but in read only mode from August, 24th 2015 I wanted to know if the migration is already done, forecasted?
Christophe.
Hi Julien,
You should have a look at the Moose platform: http://moosetechnology.org <http://moosetechnology.org/>
Moose is made exactly to analyze software, and has more then 15 years of engineering. Roassal is a component of Moose.
To analyze some Java, you need a tool to translate your .java files into a big .mse file. MSE is a meta-model that is accepted by Moose. As far as I know, two tools are available for this: VerveineJ and inFamoos(? I cannot remember the exact name).
VerveineJ is unfortunately not free. Ask directly in the Moose mailing list for this.
However, I have a copy of it. I can generate the .MSE file if you give me access to the Java code.
Cheers,
Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
> On Mar 26, 2015, at 9:39 AM, Julien Delplanque <julien(a)tamere.eu> wrote:
>
> Hi,
>
> I saw this repository on smalltalkhub:
> http://smalltalkhub.com/#!/~blabux/JavaLoader/ and I wonder if someone
> could give me some examples of use.
>
> For example, is it possible to use JavaLoader with Roassal to display
> class hierarchy of a java project or something like that?
>
> I browsed google and the mailing list's archives but didn't found any
> doc/examples... Maybe I'm not searching in the right place? :)
>
> Thanks in advance,
>
> Julien
>
Hi!
Seeing your other (Grapher charting engine) post I wanted to look at it and
it looks interesting. :)
However I've encountered weird behavior - maybe because I'm not using in
correctly.
When you look at the bar chars they do not line up with the tick numbers at
bottom.
I have explicitly specified number of ticks (20). Interestingly if I change
it (to 30) then it lines up but is moved to left by one (starts at zero
instead of one - just by changing numberOfTicks).
Here is the script I used to create it (the data is generated from another
script)
================================
data := {1->0.3024011554432208. 2->24.359090088463624.
3->17.660001805380034. 4->12.111843293013179. 5->7.624345549738219.
6->5.985963170247337. 7->4.740250947824517. 8->3.837560931576097.
9->3.0691460552446292. 10->2.819777938256003. 11->2.3334536920021667.
12->1.9915598483480772. 13->1.6970572305470302. 14->1.3089005235602094.
15->1.1847806463260515. 16->1.0640458566528253. 17->0.8891496660046939.
18->0.7244087380393573. 19->0.670247337064452. 20->0.5878768730817837}.
y := [ :pair | (data select: [ :each | each key <= pair key ]) inject: 0
into: [:sum :item | sum + item value ]].
b := RTGrapher new.
b extent: 500 @ 400.
ds := RTStackedDataSet new.
ds points: data.
ds x: #key.
ds y: y.
ds barShape.
b add: ds.
ds2 := RTStackedDataSet new.
ds2 points: data.
ds2 x: #key.
ds2 y: y.
ds2 connectColor: Color green.
ds2 highlightIf: [ :pair | true ] using: [ :pair | (y value: pair) roundTo:
1 ].
b add: ds2.
b axisX
noDecimal;
numberOfTicks: 20; "<- change to 30 to break it"
title: 'method size (LOC)'.
b axisY
noDecimal;
title: '% share'.
b build.
lb := RTLegendBuilder new.
lb view: b view.
lb addColor: Color green text: 'Method size distribution'.
lb build.
b view open.
================================
It's also amazing that 1/4 of all Pharo code is in two-line methods; that's
including the method name. :)
Peter
Hi!
The GT crew recently introduces in Pharo a way to keep track of what people are searching in the system.
This is a highly valuable piece of information that could benefit everybody.
For example, I would love to know which Roassal classes are looking the most often. Or which Roassal examples people are repeatedly searching.
However, this is hard to know currently. The reason is because of anonymity. No strings are stored in what is being sent over. To me, this is _highly counter-productive_: if you are working with sensitive information (I don’t personally), then do not send things over. But enforcing anonymity generate frustration.
So, here is my call:
If you care about letting us improving the tools everybody use, feel free to reveal your identity. Simply send the result of the following expression:
GTSpotterEventRecorderSettings uniqueInstance secretUUID hash
For me
=> 195966943
Cheers,
Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Hi,
Is there any documentation about algorithms available in Moose-Algos-Graph?
It looks interesting but there is no class comment ...
Thanks,
Christophe.
Hi everyone,
I’m playing with glamour, and I’m trying to construct a list that can be edited e.g. you can add items, edit them and remove and for adding and editing you have a custom popup written again in glamour. So first question is how can I dead with basic actions? Is the GLMActionListPresentation way to go, or I should look on the other things. Another question is how do you open a modal window with glamour and how do you get the result from it.
I’ll be very thankful for any reply.
Cheers.
Uko
The inspector is so cool because one can get feedback for each step. I was
working with a text list, and going in very small steps because I wasn't
quite sure what I wanted to do, so I:
1. Pasted into playground:
'lineOne
...
lastLine'
cmd-g
2. self lines sort
cmd-g
3. self asSet asOrderedCollection sort
Then I thought (although the above is a bad example for this), since GT
encourages to take these small steps, it would be cool to have a command to
assemble the code from all the workspaces into one statement, so 1, 2, and 3
above would become: "aString lines sort asSet asOrderedCollection sort".
Again, not a great example, but I know this would've been useful other
times...
-----
Cheers,
Sean
--
View this message in context: http://forum.world.st/GT-Inspector-Assemble-Statement-tp4814849.html
Sent from the Moose mailing list archive at Nabble.com.
Hi,
On March 31, we will have a one day of Pharo in Bern:
10:15 - 11:00 Talk by Alain Plantec on Bloc: Reinventing Morphic
Registration:
https://www.eventbrite.com/e/bloc-reinventing-morphic-choose-talk-tickets-5…
11:00 - 17:00 Working session on the Pharo IDE
Registration:
https://www.eventbrite.com/e/pharo-ide-choose-working-session-tickets-16283…
The event will be held at the Software Composition Group:
Schützenmattstrasse 14, Room 107, Bern
The event is sponsored by CHOOSE a subgroup of the Swiss Informatics
Society and hosted by the Software Composition Group at the University of
Bern. They are primarily organized for CHOOSE and SI members, but the
events are open for other students and professionals as well.
Cheers,
Doru
--
www.tudorgirba.com
"Every thing has its own flow"
Hi!
> If you're heading to make "Roassal the best visualizing engine of the Universe" then what are your intentions with connecting it to the outer world ?
This is a rather broad question :-)
While our visualizations are meant to run in a standard Smalltalk environment, they are exportable to HTML. Interaction are also preserved. Here are two simple examples:
https://dl.dropboxusercontent.com/u/31543901/TMP/memoryBlueprintExample.html <https://dl.dropboxusercontent.com/u/31543901/TMP/memoryBlueprintExample.html>
https://dl.dropboxusercontent.com/u/31543901/online/WebReport/seisms.html <https://dl.dropboxusercontent.com/u/31543901/online/WebReport/seisms.html>
And a larger and more complex example is in the file
https://dl.dropboxusercontent.com/u/31543901/TMP/ExampleReport.zip <https://dl.dropboxusercontent.com/u/31543901/TMP/ExampleReport.zip>
check the file Example.pillar.html
> Will it remain a multiplatform toolbox ? Or are you heading towards a BI desktop or Web app ?
Roassal will remain closely linked to Smalltalk (VisualWorks & Pharo).
Cheers,
Alexandre
>
> Regards,
>
> Maarten MOSTERT
>
>
>
> 28 Av Alphonse Denis
> 83400 Hyères, France
> +33 676411296
> http://stakepoint.com/ <http://stakepoint.com/>
>
>
>
> > "Alexandre Bergel" <alexandre.bergel(a)me.com> |
>
> Dear all,
>
> As many of you know, Grapher is a über-cool charting engine, part of Roassal.
> For people who do not know what Grapher is, here is a (compelling we hope) example:
> <855A292C-DE42-4FF5-83ED-49477CDAA250.png>
> Which is obtained by the following script:
> -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
> | b colors points ds pts dec lb |
> b := RTGrapher new.
> colors := Array with: Color red with: Color blue.
> points := OrderedCollection new.
>
> colors do: [ :c |
> ds := RTStackedDataSet new.
> pts := ((1 to: 100) collect: [ :i | 50 atRandom - 25 ]) cumsum.
> points add: pts.
> ds points: pts.
> dec := RTDevVarDecorator new.
> dec moveBehind;
> desviation: 0.5;
> color: (c alpha: 0.3);
> points: pts.
> ds connectUsing: (RTLine new color: (c alpha: 0.5); width: 1 ).
> b add: ds.
> b addDecorator: dec.
> ].
>
> b axisX; axisY.
> b build.
>
> lb := RTLegendBuilder new.
> lb view: b view.
> colors doWithIndex: [ :c :i |
> lb addColor: c text: 'Series ', i printString ].
> lb build.
> b view @ RTZoomableView.
> b view
> -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
>
>
> In our grand vision of making Roassal the best visualizing engine of the Universe (we also know to be modest time to time, but not today :-), Grapher will play a very important role. We would like to stabilize Grapher and make it sure it happily fits everybody needs. You can help on it:
>
> - When you are tempted to look at the dark side of the planet (this is where R, JFreeChart, gnuplot, D3 and all their friends live), let us know. We will make sure to make you are happy again.
>
> - Share your wishlist with us. We already have a long todo list, but your opinion does matter and will take it seriously
>
> - we are open to contributions, which could be financial, bug fixe, enhancement, or simply encouragement.
>
> I am very happy to be surrounded by very smart engineers. Your encouragement are making them happy :-)
>
> Cheers,
> Alexandre, in the name of the Object Profile Team
> NB: sorry for the cross-list posting, but this email is very important for us, and for you we hope.
>
> --
> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> Alexandre Bergel http://www.bergel.eu <http://www.bergel.eu/>
> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>
>
> <855A292C-DE42-4FF5-83ED-49477CDAA250.png>
Hi all,
I had not updated to the last version of PetitParser for some weeks, now I did and the following rule breaks because PPInputEnds disappeared. Can anybody tell me how to update my rule? If I replace it by PPEndOfInputParser I get a DNU, so I guess I need to do something else.
endOfComment
^ PPInputEnds new / lineTerminator
---> Save our in-boxes! http://emailcharter.org <---
Johan Fabry - http://pleiad.cl/~jfabry
PLEIAD lab - Computer Science Department (DCC) - University of Chile
Status: New
Owner: ----
Labels: Type-Enhancement Priority-Medium
New issue 1114 by sean.p.d...(a)gmail.com: RTStackedDataSet should have a
class comment
https://code.google.com/p/moose-technology/issues/detail?id=1114
... differentiating from RTDataSet
--
You received this message because this project is configured to send all
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings
Hi,
Here, it's my hive plot package. This is not finish at all. But this is a
first version and that give to you one way to create hive plot.
I will continue to work on and improve it. What will I add soon :
- Add generic constructor and lot of possibilities (out-going and in-going
dependencies)
- Add several examples.
- Create curve (directed) edges for mondrian.
- Add automatic colors.
One question, it's possible to curve edges with "directed" in
RTGraphBuilder but this doesn't exists with RTMondrian.
How can I get directed edges with RTMondrian ?
Can you check it and give me some feedback ?
My smalltalkhub project :
http://smalltalkhub.com/#!/~JonathanWadin/HivePlot
Cheers,
Jonathan.
I've updated the configuration to use #development of PetitParser.
Then I run into the problem that PetitSmalltalk is broken.
Can the same version of PetitSmalltalk work on both Pharo3 & 4?
It looks like the compiler API changed.
Stephan
I'm using RTLegendBuilder to compare some insurance options. Cool! I was
quickly able to cobble together a reasonable legend and align it to any side
of my graph :)
<http://forum.world.st/file/n4813331/Screenshot_2015-03-19_15.png>
As I tweaked, though, I noticed a few things:
- Luckily, my domain object's printString is what I want for the label of
the legend item. Thus I am able to pass it to #addColor:text: (which I took
a while to figure out can take any object for "text:"). I want to pass this
object, and not just the label text I want, because that would break the GT
Inspector flow. I think there is a missing dimension here for when we want
the item and the label to be different. In fact, drop lists in Pharo used to
work like this. I think the pattern is carried over from less dynamic or OO
languages. In Magritte3, I added #display: to field descriptions of the form
[ :domainObject | stringFormToUse ]
- #addColoredText:color: and #addColor:text: - do we really need both?
I know it's considered best practice to implement:
simple:
simple:intermediate:
simple:intermediate:complicated:
style APIs, but I strongly prefer one method that takes a domain object
which already has all this info, even at the expensive of a pair of
parentheses.
OT: Text builders seem inherently restrictive because they always seem to
insert a layer between the full power of the underlying objects and the part
that's been translated to the builders. I sense that it would be a game
changer (and not too hard) to hook the underlying objects together visually
a la Lively Kernel instead of implementing a visual or text builder. In
fact, I think that's what e.g. Morphic almost-already-is. It was even
alluded to in a few papers as right on the horizon. But it's on the Dreams
list for now.
Anyway, thanks for Roassal. This is fun!
-----
Cheers,
Sean
--
View this message in context: http://forum.world.st/RTLegendBuilder-Questions-tp4813331.html
Sent from the Moose mailing list archive at Nabble.com.
Alex
Roassal is really cool now I have one question
why we cannot say
serie1pointsAndVariations :- given
series2pointsAndVariations := given
RGrapher new
axisX; axisY;
seriesWithDeviation: {serie1pointsAndVariations .
serie2pointsAndVariations};
maxXAxis: 100;
My point is why the line connection is not hidden from the user.
I think that roassal is a cool scripting engine but it got ***trapped***
there.
A primary user wants to have abstractions
Then in a second time he wants to open the trunk and script its own.
also why don't you have nice default
dec := RTDevVarDecorator new.
dec moveBehind;
desviation: 0.5;
color: (c alpha: 0.3);
points: pts.
=>
dec := RTDevVarDecorator new.
desviation: 0.5;
color: c;
points: pts.
why the decorator should be added to the builder?
So see what I mean why do you expose to the user all the design challenges?
I strongly suggest that during 1 month you stop to think in term of script.
Imagine that you do not have a workspace anymore.
Stef
On 20 Mar 2015, at 22:18, Alexandre Bergel <alexandre.bergel(a)me.com> wrote:
Dear all,
As many of you know, Grapher is a über-cool charting engine, part of
Roassal.
For people who do not know what Grapher is, here is a (compelling we
hope) example:
<Screen Shot 2015-03-20 at 6.12.22 PM.png>
Which is obtained by the following script:
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
| b colors points ds pts dec lb |
b := RTGrapher new.
colors := Array with: Color red with: Color blue.
points := OrderedCollection new.
colors do: [ :c |
ds := RTStackedDataSet new.
pts := ((1 to: 100) collect: [ :i | 50 atRandom - 25 ]) cumsum.
points add: pts.
ds points: pts.
dec := RTDevVarDecorator new.
dec moveBehind;
desviation: 0.5;
color: (c alpha: 0.3);
points: pts.
ds connectUsing: (RTLine new color: (c alpha: 0.5); width: 1 ).
b add: ds.
b addDecorator: dec.
].
b axisX; axisY.
b build.
lb := RTLegendBuilder new.
lb view: b view.
colors doWithIndex: [ :c :i |
lb addColor: c text: 'Series ', i printString ].
lb build.
b view @ RTZoomableView.
b view
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
In our grand vision of making Roassal the best visualizing engine of the
Universe (we also know to be modest time to time, but not today :-),
Grapher will play a very important role. We would like to stabilize
Grapher and make it sure it happily fits everybody needs. You can help
on it:
- When you are tempted to look at the dark side of the planet (this
is where R, JFreeChart, gnuplot, D3 and all their friends live), let us
know. We will make sure to make you are happy again.
- Share your wishlist with us. We already have a long todo list,
but your opinion does matter and will take it seriously
- we are open to contributions, which could be financial, bug fixe,
enhancement, or simply encouragement.
I am very happy to be surrounded by very smart engineers. Your
encouragement are making them happy :-)
Cheers,
Alexandre, in the name of the Object Profile Team
NB: sorry for the cross-list posting, but this email is very important
for us, and for you we hope.
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
_______________________________________________
vwnc mailing list
vwnc(a)cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
Hi all,
new version of smooth scrollbars and pads is available, it allows you to
navigate with scalability in the view, check this out:
https://vimeo.com/122758568
try out:
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
| b |
b := RTMondrian new.
b shape rectangle
withBorder;
width: [ :cls | cls numberOfVariables * 5];
height: #numberOfMethods;
linearFillColor: #numberOfLinesOfCode within: RTObject
withAllSubclasses.
b nodes: RTObject withAllSubclasses.
b edges connectFrom: #superclass.
b layout tree.
b build.
b view @ RTDoubleScrollBar
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
More examples in RTScrollBarBuilderExamples
cheers,
Pierre
Hi!
Milton did a wonderful improvement of Grapher.
Consider the following expression:
((1 to: 20) collect: [ :v | 50 atRandom - 5.1 ]) plot
It produces:
As you can see, the horizontal bar is not in the 0 on the Y axis. And this is quite a problem actually.
Excel does it much better. This is now fixed, in the last version of Roassal we have
Milton has implemented an optimization algorithm that identify the optimal minimum & maximum value on the axis, and the optimal number of ticks, to have a pleasant reading.
Enjoy!
Cheers,
Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Status: New
Owner: ----
Labels: Type-Defect Priority-Medium
New issue 1115 by sean.p.d...(a)gmail.com: SVG and PNG Export Broken
https://code.google.com/p/moose-technology/issues/detail?id=1115
In Moose 5.0:
1. In the Roassal Example Browser, select "Animated Scatter Plot"
2. Via the "…" menu
a. export as PNG - the image will be clipped to tightly
b. export as SVG - error
--
You received this message because this project is configured to send all
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings
Hi!
I am doing my first steps in learning Moose and also Roassal.
Is it possible to start Roassal Easel and Moose Panel from the world
menu and add a model afterwards?
How would one visualize data with the help of Roassal which underlying
data is too big for the Pharo image?
Is there an example available how one could stream information on a
Roassal view?
Did somebody already visualize a LAN network? What would be a good
framework/project to do such analysis?
Thank you for any advice!
Sebastian
Hi,
Stéph and I are trying to revive Coral. There is a unit test that
fails:
self assert: (CLIParameterParser boolean) fail: #('falsely').
CLIParameterParser class>>boolean
| trueToken falseToken | trueToken := (self
caseInsensitiveKeywords: #('true' 'yes')) end ==> [:token
| true]. falseToken := (self caseInsensitiveKeywords:
#('false' 'no')) end ==> [:token | false]. ^ self new
setParser: (PPElementParser on: trueToken / falseToken
message: 'boolean expected'); name: 'bool'
CLIParameterParser class>>caseInsensitiveKeywords: aCollection
^ (PPChoiceParser withAll: (aCollection collect: [ :each |
each asParser caseInsensitive ])) token
I don't know if this test used to pass but I guess it did. I think
the problem is in the new work around "contexts".
Can somebody please help?
--
Damien Cassou http://damiencassou.seasidehosting.st
"Success is the ability to go from one failure to another without
losing enthusiasm." --Winston Churchill