Hi,
The GTInspector just became a performance analysis tool, too. You can
simply inspect a MessageTally and you get several useful views that help
you identify performance problems.
You can read a more detailed description here:
http://www.humane-assessment.com/blog/assessing-pharo-performance-with-gtin…
As an appetizer, I attached a screenshot with a Graph-ET chart (thank you
Daniel Aviv for developing this engine).
[image: Inline image 1]
To play with the code, you can just work in the latest Moose 5.0 image:
https://ci.inria.fr/moose/job/moose-5.0/lastSuccessfulBuild/artifact/moose-…
Please let me know what you think.
Cheers,
Doru
--
www.tudorgirba.com
"Every thing has its own flow"
Status: New
Owner: ----
Labels: Type-Defect Priority-Medium
New issue 1042 by kurs....(a)gmail.com: Debug it does not work
http://code.google.com/p/moose-technology/issues/detail?id=1042
Describe the problem:
Debug it in WS does not work.
How to reproduce the problem: step by step if necessary
1) Start moose
2) Evaluate this in WS: PPJavaParser parse: 'a'
3) You get PPFailure
4) Debug it
5) You get 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
Hello,
In the browser code below, I would like to trigger the transmission to the
#one pane when the user selects update list. According to my understanding,
Glamour does not transmit when a pane port is populated with the same
object as the port got before. One way would be to give the outer port a
dummy value before reseting the value to the same object but that will be a
bit hackish.
Is there a way to trigger transmission when the old value and the new
values on the port are the same?
|browser |
browser := GLMTabulator new.
browser row: #one size: 30; row: #two.
browser transmit to: #one; transformation:[:x | x * 10 ];
andShow: [:a |
a dropDownList
display: [:x | (1 to: x) ];
selectedIndex: 2 ].
browser transmit from: #one; to: #two; andShow: [:a |
a list
display: [:x | 1 to: x ];
act: [browser entity: 5] entitled: 'Update List' ].
browser openOn:5
tx,
Usman
Hi everybody!
I'm a Pharo newcomer and I'm currently working on a view builder for
Roassal (http://www.smalltalkhub.com/#!/~ObjectProfile/Roassal). The idea
of the builder is to allow the user to explore any data structure
interactively, via a tiny DSL.
A simple example: you can start by placing a class as your first node, and
then you can browse the class hierarchy via mouse clicks, with the right
click revealing the superclass, and the left click revealing the
subclasses, all in an animated fashion, forming the class hierarchy tree as
you expand your nodes and coloring them accordingly.
The project is available at
http://www.smalltalkhub.com/#!/~smaass/RoassalExploraBuilder. It features
some examples (file system, class hierarchy, circular linked list), but is
still in an early stage so any feedback will be greatly appreciated!
Cheers!
Hi everybody,
I have implemented a Famix-Generator which analyses .NET assemblies and produces mse files for CodeCity as well as the MOOSE platform.
If you want to give it a try, you can download it from my site (german, I am sorry - I will change that in near future):
http://www.sharpmetrics.net/index.php/famix-generator
The generator creates famix artifacts for namespaces, types (classes, interfaces, enums und structs), methods, methods calls and local variables. the tool is not complete (missing features, bugs?), I will enhance it during the next weeks or months.. ;-)
(BTW you need a .NET 4.0 installed on your machine. It does not run on the Mono plattform, right now.)
Cheers
Thomas
I've hacked Glamour in two places recently to great effect, and I wonder
what the community thinks about these new features.
Both involve allowing arbitrary morphs in place of assumed images or text.
1) I found myself wanting to have act: icons that changed state, acting
like a toggle. In my case I wanted to use a
PluggableThreePhaseButtonMorph.
A one line mode to GLMMorphicRender>>renderAction: did the trick
renderAction: anAction
^(UITheme current
newButtonIn: nil
for: anAction
getState: nil
action: #morphicActOn:
arguments: {}
getEnabled: nil
>>>>> label: (anAction icon isMorph ifFalse:[AlphaImageMorph new image:
anAction icon]ifTrue:[anAction icon]) <<<<<<<<
help: (anAction title, Character tab asString, anAction
shortcutAsString) trimBoth)
valueOfProperty: #noBorder ifAbsentPut: [true]; "this is a hack
to tell the GLMUITheme to not draw the border and the fill"
valueOfProperty: #noFill ifAbsentPut: [true];
setProperty: #wantsKeyboardFocusNavigation toValue: false; "to
disable the focus"
yourself
2) I also needed to embed morphs in table presentations to allow editing of
the cell text.
Again, a single change to GLMTreeMorphNodeModel>>rowMorphForColumn:
rowMorphForColumn: aGlamourColumn
| content |
content := self containerTree glamourPresentation column:
aGlamourColumn valueFor: self item.
>>>>> ^content isString ifTrue:[StringMorph contents: content]
ifFalse:[content] <<<<<<<<
This lead me to customize a subclass of PluggableTextMorph to use blocks
instead of the model>>selector approach for pluggable behavior, especially
so it would work nicely in a Glamour script and all the context to be
referenced on the getText/setText etc operations.
These are obviously hacks but since both cases are wanting a morph and
seemingly don't really need a morph of the original type (Image or String)
they should be generalized to allow arbitrary morphs.
This also led me to imagine embedding full presentations or visualizations
into table cells, but that's beyond my understanding of the framework at
this point.
Reminds me of the old XEROX Analyst spreadsheet.
Regards,
Sam
Sam S. Adams, CTO - Contextual Computing
IBM Distinguished Engineer, IBM Research
Mobile: 919-696-6064, email: ssadams(a)us.ibm.com
Assistant: Linda R. Morrison. (720) 395-0460 Fax: (845) 491-4318, Tie:
676-0460, linda.r.morrison(a)us.ibm.com
<<Hebrews 11:6, Proverbs 3:5-6, Romans 1:16-17, 1 Corinthians 1:10>>
It would be great to have this :-)
For example, we have just produced a dependency analyzer and I would like to use it in an inspector. Here an example:
| b |
b := RTDependencyAnalyzerBuilder new.
b shape circle
size: 10;
fillColor: (Color red alpha: 0.3);
if: [ :cls | ('TR*' match: cls name) ] fillColor: (Color purple alpha: 0.3).
b addClasses: RTObject withAllSubclasses. “Roassal2 classes"
b addClasses: TRObject withAllSubclasses. “Trachel classes"
b
dependencyFromAllClassesMatching: [ :cls | ('RT*' match: cls name) ]
toAllClassesMatching: [ :cls | ('TR*' match: cls name) ].
b open
Here a screenshot:
Blue lines are dependencies between Roassal classes to Trachel classes.
Purple = trachel
Red = Roassal
If some want to try this, I will be more than happy to share (actually it is available on Roassal2 @ Smalltalkhub).
Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
fails quite spectacular on Moose 5.
It starts with some error in the FFI stuff.
To reproduce just find ConfigurationOfFFI and then run
ConfigurationOfFFI load you get thrown into the emergency evaluator.
Regards
Friedrich
Hello
I'm using some graphs on a web page, but after each one, there is a big blank.
I've been looking at the ROHTMLExporter >> addSVGInitialization: method, but I don't know how I can change the size of the SVG section.
Is it possible to do so that the svg section takes the minimum of size needed to print the graph in ?
Here is a screenshot , maybe it can help to understand the problem.
Hi,
Mircea posted this the other day a link to:
https://www.websequencediagrams.com
Interesting application area. Anyone interested in something like this?
Cheers,
Doru
--
www.tudorgirba.com
"Every thing has its own flow"
Reposting here, just in case you missed it :)
Doru
---------- Forwarded message ----------
From: Tudor Girba <tudor(a)tudorgirba.com>
Date: Sat, Jan 4, 2014 at 10:39 PM
Subject: Re: [Pharo-dev] Feature for request for GraphET?
To: Pharo Development List <pharo-dev(a)lists.pharo.org>
Here is one thing I would want: a correspondent Graph-ET functionality to
make something like this EyeSee script work as in the first attached
picture.
renderer := ESDiagramRenderer new.
grouped := { #item1->{10 . 12 . 11 . 14 } . #item2-> { 1 . 1 . 20 } .
#item3->{ 1 . 1 . 1 . 1 . 1} }.
diag := (ESVerticalBarDiagram new)
identifier: [:each | each key ];
y: [:each | each value size];
yAxisLabel: 'Count';
valueAxis;
rightYAxis;
defaultColor: Color veryVeryLightGray;
axisColor: Color veryVeryLightGray;
models: grouped;
rotatedLabels: true;
yourself.
diag2 := (ESVerticalBarDiagram new)
y: [:each | each value sum];
regularAxis;
yAxisLabel: 'Sum';
gapFraction: 2 / 3;
defaultColor: (Color red);
axisColor: (Color red);
models: grouped;
yourself.
(renderer compositeDiagram)
add: diag;
add: diag2.
renderer open
[image: Inline image 2]
The best I could produce with Graph-ET is this (I commented out the message
to which I did not find a correspondent):
builder := GETDiagramBuilder new.
grouped := { #item1->{10 . 12 . 11 . 14 } . #item2-> { 1 . 1 . 20 } .
#item3->{ 1 . 1 . 1 . 1 . 1} }.
diag := (GETVerticalBarDiagram new)
"identifier: [:each | each key ];"
y: [:each | each value size];
yAxisLabel: 'Count';
valueAxisLine;
"rightYAxis;"
color: Color veryLightGray;
"axisColor: Color veryLightGray;"
models: grouped;
"rotatedLabels: true;"
yourself.
diag2 := (GETVerticalBarDiagram new)
y: [:each | each value sum];
regularAxis;
yAxisLabel: 'Sum';
"gapFraction: 2 / 3;"
color: (Color red);
"axisColor: (Color red);"
models: grouped;
yourself.
(builder compositeDiagram)
add: diag;
add: diag2.
builder open
[image: Inline image 4]
Cheers,
Doru
On Thu, Jan 2, 2014 at 7:24 PM, Alexandre Bergel <alexandre.bergel(a)me.com>wrote:
> Hi!
>
> Daniel is looking for usage scenarios with GraphET. It would be great to
> hear about your need.
> Currently, we will work on:
> - PDF Export using Artefact
> - support for legend
> - smarter way to put labels on axis
>
> Anything else?
>
> Cheers,
> Alexandre
> --
> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> Alexandre Bergel http://www.bergel.eu
> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>
>
>
>
>
--
www.tudorgirba.com
"Every thing has its own flow"
--
www.tudorgirba.com
"Every thing has its own flow"
Thanks to the GTInspector, I am in a very good mood today.
The Cmd-o command is so powerful.
Maybe, one day, we will not have code browser anymore, but simply powerful inspector.
Some small requests:
- If nothing is selected, and I press Cmd-o, can the line be used as a selection instead?
- can the list of superclasses be reversed when I browse a method?
Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Hi,
I remember I made same question a couple of years ago… and I didn’t have an answer at the moment, and now I have the same problem.
I have a simple browser like this
“ColumnA" -> “ColumnB"
My problem is: ColumnA renders a custom Morph. The morph is complicated (is a solar system simulation), I can select a planet to show some properties.
This properties should be displayed in ColumnB
I tried something like this:
browser transmit from: #levels; to: #map; andShow: [ :a |
| presentation |
presentation := a morph.
presentation
title: 'Area Schematics';
display: [ :baseLevel |
self
createMorphFor: baseLevel
onSelect: [ :node| presentation selection: node ] ] ].
browser transmit from: #map; to: #properties; andShow: [ :a |
a text
title: 'Properties' ].
But that does not works :(
I want a way to trigger a port and update my properties pane.
How I do that?
I do not want to create a presenter for that simple and basic behaviour… it has to be an easy way that I’m not saying.
But even if I have to do a presenter/renderer and all the bureaucracy… I still don’t know how to do it.
Any help will be welcomed.
thanks,
Esteban
Hi!
Just to share a small use I had of Moose.
I am working on Roassal2. Roassal2 will be largely compatible with Roassal1. I am trying to make GraphET use Roassal2, and I need to know where Roassal is actually used by GraphET. Moose is ideal for this.
I opened the moose panel, imported GraphET and type the following script in a Roassal easel opened on a class group:
-=-=-=-=-=-=-=-=-=-=-=-=
view shape rectangle
if: #isStub fillColor: Color veryVeryLightGray;
if: #isSUnitTestCase borderColor: Color green.
view nodes: classGroup forEach: [ :cls |
view shape rectangle
if: [ :m | (m queryAllOutgoingAssociations atTypeScope select: [:c | c name beginsWith: 'RO' ] ) notEmpty ] fillColor: Color red;
if: [ :m | (m queryAllOutgoingAssociations atTypeScope select: [:c | c name beginsWith: 'RT' ] ) notEmpty ] fillColor: Color blue.
view interaction
popupText: [ :m | ((m queryAllOutgoingAssociations atTypeScope select: [:c | c name beginsWith: 'RO' ]) inject: '' into: [ :s :e | s, ' ', e name ]), String cr, '-----', String cr, m sourceText ];
action: #inspect;
on: ROMouseClick do: [:event | event model browseSource ].
view nodes: cls methods.
view gridLayout.
].
view edgesFrom: #superclass.
view treeLayout
-=-=-=-=-=-=-=-=-=-=-=-=
It gives a pictures as the following one:
large squares are classes
link are inheritance: superclass is above its subclasses
Inner squares are methods
red square are methods of GraphET that reference to Roassal1 classes
blue square are methods that have been migrated to Roassal2.
Gray classes are stub classes
A popup window details what is the reference. E.g.,
This is a popup I get by having the mouse above a method initialize. The reference to Roassal is because of the use of “ROElement”. I can click on the class to open a code browser on it. I can then modify the reference of ROElement to RTElement...
Happy new year!
Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Hi!
Daniel is looking for usage scenarios with GraphET. It would be great to hear about your need.
Currently, we will work on:
- PDF Export using Artefact
- support for legend
- smarter way to put labels on axis
Anything else?
Cheers,
Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Status: New
Owner: ----
Labels: Type-Defect Priority-High Component-Glamour
New issue 1041 by alexandr...(a)gmail.com: GTInpsector
http://code.google.com/p/moose-technology/issues/detail?id=1041
If nothing is selected, and I press Cmd-o, can the line be used as a
selection instead?
--
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
Status: New
Owner: ----
Labels: Type-Defect Priority-Medium
New issue 1040 by v.blonde...(a)gmail.com: No autocompletion under Moose
Environment
http://code.google.com/p/moose-technology/issues/detail?id=1040
Describe the problem: what do you get? what do you expect?
Under any Moose Image, the shortcut MAJ + SPACE doesn't show the possible
completions in the source editors (Workspace, Nautilus, Debugger...). In
Pharo's latest version, it's working.
I don't know, if it's a issue or if I have to use another shortcut.
By the way, in some images depending of Moose (FAST-Pharo and FAST-Java),
when I write some lines in the source editors the auto-completion isn't
automatically offer (but it's works fine in Moose 5.0)
Additional information: platform, context which may impact the problem
Linux Ubuntu x64
Please fill in the labels with the following information:
* Type-Defect
* Milestone-5.0
--
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