Hello!
I'm wondering if it's in the scope of Moose to get to the standard CK
metrics for a model? It seems it's been done experimentally (
https://pdfs.semanticscholar.org/0eb2/14ec7c6288dc13564580beafc2609b09118b.…)
and I also found the momfe paper from 2002 (
http://scg.unibe.ch/archive/projects/Bute02a.pdf) but appeared not to have
all the CK metrics.
I also found the right-click on a Moose Model -> Export -> Export model to
MSE, but there was nothing that looked like standard CK metrics in the
exported file.
We are particularly trying to generate CBO (for a research comparison) for
a few classes and would like to be able to do all our work in Moose if
possible (especially with the visualizations in a RTView).
Cheers,
C. Fuhrman
On Wed, Oct 5, 2016 at 11:58 AM, Hernán Morales Durand <
hernan.morales(a)gmail.com> wrote:
> Hi guys,
>
> Do you have good reference links to publications (yours or from other
> people) which uses Moose metrics for example in a "Material and Methods"
> section?
>
> I mean *not* Moose projects publications (projects derived from Moose),
> but those projects which uses Moose analysis to report Cyclomatic
> Complexity, Halstead Length, WMC, DIT, CBO, etc . I want to see what and
> how people reports metrics for a software project using Moose. If
> publication is in a Journal outside of the field of Software Engineering
> field that would be better.
>
> Cheers,
>
> Hernán
>
>
> _______________________________________________
> Moose-dev mailing list
> Moose-dev(a)list.inf.unibe.ch
> https://www.list.inf.unibe.ch/listinfo/moose-dev
>
>
Hello everyone,
I found something I find odd today. The method #numberOfLinesOfCodes is
defined on the Behavioral entities. I would have expected it on the
Sourced entities because if an entity has sources it should have a
number of lines of code.
What do you think?
--
Cyril Ferlicot
http://www.synectique.eu
2 rue Jacques Prévert 01,
59650 Villeneuve d'ascq France
Hi,
I wanted to ask about Bloc:
1) how stable is the API? e.g. if some overhaul changes to unify/whatever are planned
2) I saw in the techtalk that you can align elements (to center, bottom, ...), however is that possible with lines? Lines have to rotate, morph shape, etc.
3) Are non-straight lines possible? (e.g. bezier, arc)
The idea for me is to make a simple mindmap
- elements with some text, icons, math symbols inside
- connectors (non-straight lines) between elements
To me (apart from the lines) it seems like it should be already doable.
Also either my (Morphic) Pharo is really slow, or Bloc (in the video) is superfast (everything is happening instantly).
Thanks,
Peter
Hello,
I am currently working with Hashtable which is loaded by default in the Moose image.
With the latest image, I tried to do: (HashTable new at: #a put:1;yourself) inspect. And I got an inspector with the red square of death...
It seems that the visualization wants to get the item at the position 1 in the Hashtable but it cannot succeed because there is no item at 1 (obviously, it is an hashtable).
Can someone with GtTools knowledge take a look at that?
Thanks in advance,
Cheers,
Vincent
!!!*************************************************************************************
"Ce message et les pi?ces jointes sont confidentiels et r?serv?s ? l'usage exclusif de ses destinataires. Il peut ?galement ?tre prot?g? par le secret professionnel. Si vous recevez ce message par erreur, merci d'en avertir imm?diatement l'exp?diteur et de le d?truire. L'int?grit? du message ne pouvant ?tre assur?e sur Internet, la responsabilit? de Worldline ne pourra ?tre recherch?e quant au contenu de ce message. Bien que les meilleurs efforts soient faits pour maintenir cette transmission exempte de tout virus, l'exp?diteur ne donne aucune garantie ? cet ?gard et sa responsabilit? ne saurait ?tre recherch?e pour tout dommage r?sultant d'un virus transmis.
This e-mail and the documents attached are confidential and intended solely for the addressee; it may also be privileged. If you receive this e-mail in error, please notify the sender immediately and destroy it. As its integrity cannot be secured on the Internet, the Worldline liability cannot be triggered for the message content. Although the sender endeavours to maintain a computer virus-free network, the sender does not warrant that this transmission is virus-free and will not be liable for any damages resulting from any virus transmitted.!!!"
Hello,
Here's an example code using RTForceBasedLayout (from an example on this
list a while back):
------------
view := RTView new.
objects := RTObject withAllSubclasses.
elements := (RTBox new size: #numberOfMethods; color: (Color blue alpha:
0.5)) elementsOn: objects.
elements @ RTPopup new.
view addAll: elements.
RTForceBasedLayout on: elements.
view @ RTDraggableView .
view open
------------
It produces:
[image: Inline image 1]
Is it possible to have the RTForceBasedLayout such that the result has no
overlapping boxes (or rectangles)? I realize setting force: to some large
negative number will help, but it's not ideal because it creates a lot of
empty space.
In d3 (with SVG) there are a couple of examples of what I'd like to achieve
(although they don't show edges):
https://bl.ocks.org/mbostock/1062383 (arbitrary shapes)
https://bl.ocks.org/mbostock/3231298 (arbitrary circles that stick to each
other)
The animation isn't important in my case. I wasn't sure where/how to apply
the transform operation after a layout has been done in RTForceBasedLayout.
Any hints?
Here's what my graph looks like:
[image: Inline image 2]
The code I have to produce this is too much to post, so I used the example
at the top. My code also uses
RTForceBasedLayout new charge: -1000; on: b elements.
Cheers!
Hi everybody,
I have this complicated code to draw a line with separators at both ends, I
try to put the legend text with #below but nothing is changed :
| view e1 e2 l1 label |
view := RTView new.
label := RTLabeled new
color: Color black;
below;
text: 'Class IIa';
yourself.
e1 := RTBox new element
color: Color black;
height: 10;
width: 1;
yourself.
e2 := RTBox new element
color: Color black;
height: 10;
width: 1;
yourself.
l1 := RTStyledMultiLine new
color: Color black;
solidLine;
edgeFrom: e1 to: e2.
view addAll: (Array with: e1 with: e2 with: l1).
l1 @ label.
RTHorizontalLineLayout new on: view elements.
view elements pairsDo: [ :a :b | b translateBy: 100 @ 0 ].
^ view
Any suggestion?
Hernán
Hi,
Thank you Nicolas and Anne for the hints/links
@Alex
Yes, genetic algorithms are “abstract” algorithms. I am actually talking about analysing the code of the frameworks for developing different genetic algorithms to solve all kinds of optimisation problems (knapsack, Traveling Salesman Problem but also “real life" problems : image processing, and many artificial intelligence problems)
There are many GA frameworks. Some popular ones are : ECJ (https://cs.gmu.edu/~eclab/projects/ecj/), OpenBeagle (http://vision.gel.ulaval.ca/~parizeau/Publications/beagle-gecco.pdf), WatchMaker (http://watchmaker.uncommons.org/), HeuristicLab (http://dev.heuristiclab.com/)…
Abdelghani
Message: 4
Date: Thu, 16 Feb 2017 11:02:44 -0300
From: Alexandre Bergel <alexandre.bergel(a)me.com>
To: Moose-related development <moose-dev(a)list.inf.unibe.ch>
Subject: [Moose-dev] Re: software reingineering guidelines
Message-ID: <9D54173C-8CD7-4873-A5F9-AC0EF570EAB2(a)me.com>
Content-Type: text/plain; charset=utf-8
Ah ah! Sorry, I read too fast!
But it is not clear what are you referring to when you mention “generic algorithm”? Can you give an example?
Alexandre
Hi guys,
I downloaded Moose from
http://moosetechnology.org/res/download/moose_suite_6_0-linux.zip
My system info:
$ uname -a
Linux mvs-virtual-machine 3.19.0-69-generic #77~14.04.1-Ubuntu SMP Tue Aug
30 01:29:21 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
$ lsb_release -a
No LSB modules are available.
Distributor ID: elementary OS
Description: elementary OS Freya
Release: 0.3.2
Codename: freya
Tryng to run Moose 6.0 after unzipping:
$ ./pharo
unknown option: -plugins
Usage: /home/mvs/moose_suite_6_0/bin/pharo [<option>...] [<imageName>
[<argument>...]]
/home/mvs/moose_suite_6_0/bin/pharo [<option>...] -- [<argument>...]
.....
Available drivers:
vm-sound-null
vm-sound-ALSA
vm-display-null
vm-display-X11
How do you start Moose?
Cheers,
Hernán
The attached capture is the one implemented by the method
#exampledoubleCurves.
If you zoom the image you will notice the grey edge of each green and blue
line. The same happens in #exampleVerticalAndHorizontalLines
Is there a way to remove it the grey around each line?
Cheers,
Hernán
I am using stable branch of Roassal2 in Pharo 5 and Win 8.1 to draw a
figure for a paper (but the problem is the same loading the latest versions
SmalltalkHub).
When trying to open a grapher, I get a yellow-cross red morph window inside
#setPaint: . The transparent color passed as argument came from
AthensCairoSurface>>clear
The same figure used to open without problems some months ago.
All the Roassal examples open without problems. That's why here is the link
to the fuel out stack with the halt previous to the crash :
https://dl.dropboxusercontent.com/u/103833630/Debugger-Stack-AthensCairoCan…
Is this a well-known bug? Any suggestion?
Cheers,
Hernán
Hi Nicolas,
> On 15 Feb 2017, at 12:00, moose-dev-request(a)list.inf.unibe.ch wrote:
>
> Message: 1
> Date: Tue, 14 Feb 2017 12:10:54 +0100
> From: Nicolas Anquetil <nicolas.anquetil(a)inria.fr <mailto:nicolas.anquetil@inria.fr>>
> To: Moose-related development <moose-dev(a)list.inf.unibe.ch <mailto:moose-dev@list.inf.unibe.ch>>
> Subject: [Moose-dev] Re: software reingineering guidelines
> Message-ID: <f856fa35-917e-0a5a-a84c-41d89ebe83ac(a)inria.fr <mailto:f856fa35-917e-0a5a-a84c-41d89ebe83ac@inria.fr>>
> Content-Type: text/plain; charset=utf-8; format=flowed
>
> Hi Abdou,
>
> not that I know of.
> Moose provides the tools, the engineers must provide the "intelligence",
> the processus to extract needed informatino.
>
> We currently have a project with Master students along these lines, but
> they did not deliver it yet, so no experience result yet neither.
I was thinking that people from Synectic (for instance) could have some valuable experience in this field (where to start from, a list of what to look for, how to look for it, the different reports, …)
>
> We recommended using Roassal (and explained how to use it) to try to get
> an understanding of the “architecture”
Yes, and use the queries to gets different metrics about the projects. maybe detect some (anti) patterns...
>
> Actually, asking them to explain HOW they got their results (As well as
> WHAT results they got) could be interesting
Definitely, this is part of the objectives too :)
Maybe we could produce a sorte of practical guide to code analysis with Moose.
>
> nicolas
Hi Alex,
The idea is not to use genetic algorithms to improve software quality. Rather, to use Moose to enhance the design of existing frameworks for genetic algorithms.
I have attached a brief description of the project to this email. It is in french but this is not a problem for you I think :)
> On 15 Feb 2017, at 12:00, moose-dev-request(a)list.inf.unibe.ch wrote:
>
> Message: 2
> Date: Tue, 14 Feb 2017 08:13:22 -0300
> From: Alexandre Bergel <alexandre.bergel(a)me.com <mailto:alexandre.bergel@me.com>>
> To: Moose-related development <moose-dev(a)list.inf.unibe.ch <mailto:moose-dev@list.inf.unibe.ch>>
> Subject: [Moose-dev] Re: software reingineering guidelines
> Message-ID: <6DD0680F-39CB-4E2D-8E42-9ECFF1D77542(a)me.com <mailto:6DD0680F-39CB-4E2D-8E42-9ECFF1D77542@me.com>>
> Content-Type: text/plain; charset=utf-8
>
> hi Abdelghani,
>
> How do you plan to use genetic algorithms ? How may it be used to improve software quality?
>
> Cheers,
> Alexandre
>
Interesting to see this is the top mentioned book on stackoverflow.
I wonder if Moose can facilitate any of its contained topics
and maybe leverage its popularity.
</randomThoughForTheDay>
cheers -ben
Hi,
I am about to propose an end of studies’ project for professional Master students consisting in analysing some existing genetic algorithms frameworks with Moose. The idea is that the students 1) control the principals of code quality, architectural issues and refactoring 2) evaluate the ease of adaptation of the existing frameworks.
So my questions are :
1) has anybody experienced to work with Master students in using Moose for such purposes (analysis, reengineering, refactoring)?
2) is there a document that describes the guidelines for software code analysis, reengineering, refactoring (with Moose)?
Thank you in advance
Abdelghani
Hi all,
I am wondering how in CodeCity I can zoom using the mouse wheel instead of
the keys w and s in the keyboard.
I am using Moose 5.1 for Windows.
Best regards,
Leonel Merino
PhD student
University of Bern
+41 78 405 43 38
merino(a)inf.unibe.ch
I want to have all the presentations which would usually appear for an object
in the inspector, but embedded in a pane of a Glamour browser. I'm looking
for something like this (naive and non-working):
browser transmit
from: #one;
to: #two;
andShow: [ :a :b | b gtInspectorPresentationsIn: a inContext: nil ].
Thanks!
-----
Cheers,
Sean
--
View this message in context: http://forum.world.st/GT-Inspector-Presentations-in-Glamour-Browser-tp49337…
Sent from the Moose mailing list archive at Nabble.com.
Hi,
Andrei and Alex did a great job at improving the performance and scalability of the inspector.
There are a couple of main improvements:
- Added FastTable support for the Raw presentation for all objects. This implied completing the support for the tree presentation binding to fast table.
- Moved the Items presentation for collections to FastTable.
- Improved the rendering of Glamour to no longer rely on the default Morph>>#adoptPaneColor. It turns out that using adoptPaneColor triggers a relayout of the morph, even if it is not visible. We extended PanelMorph in the context of Glamour with a less needy logic.
I will not tell you how fast it is. I would rather want you to play with it :).
The change is already in the Moose image. It is not yet in Pharo, but it will be soon. In the meantime you can be load it in Pharo 6 like this:
Gofer new
smalltalkhubUser: 'Moose' project: 'GToolkit';
package: 'ConfigurationOfGToolkitCore';
load.
(#ConfigurationOfGToolkitCore asClass project version: #stable) load
To play with it, try this with both the current version and the new one and the Spec Inspector if you want (just make sure you save the image beforehand):
collection := (1 to: 100000000) asArray.
[collection inspect] timeToRun.
collection := (1 to: 100000000).
[collection inspect] timeToRun.
(for these two ones notice that Items do not appear at all in the old implementation)
[World inspect] timeToRun.
There are still a couple of issues open, such as the sorting of the columns. We would need your help with testing this, and report possible missing issues.
Cheers,
Doru
--
www.tudorgirba.comwww.feenk.com
"Obvious things are difficult to teach."
Dear all,
thanks to the efforts of Jigyasa Grover, Yuriy Tymchuk and Alexandre
Bergel, , we were able to have a GSOC 2017 application for the Pharo
Consortium. This is only the first phase. If we are selected by
Google, they will give some slots for students.
We have a list of projects for GSOC here : http://gsoc.pharo.org/
If you have more ideas, please send them to me or send a PR on :
https://github.com/pharo-project/pharo-project-proposals/blob/master/Topics…
Try to describe your project idea with 10-15 lines maximum.
The ideas is not too much projects proposals but to find important
projects for the Pharo community (i.e that will have some impact for
the community) with the support of the appropriate mentors.
I would like to have maximum 2-3 projects for each mentors.
Thank you.
Cheers,
--
Serge Stinckwich
UCBN & UMI UMMISCO 209 (IRD/UPMC)
Every DSL ends up being Smalltalk
http://www.doesnotunderstand.org/
Hi,
I've made a small addition to Roassal, so now we can drop morphs onto Roassal canvas and then do something with it.
For example open a view:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
v := RTView new.
v @ (RTMorphDropInteraction new
if: [ :morph :event | morph isTransferable and: [ morph passenger isNotEmpty ] ]
do: [ :morph :event | |el|
el := (RTLabel new elementOn: morph passenger first).
el @ RTDraggable.
v add: el.
v signalUpdate.
]).
v open.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
And then drag Class or Method from Nautilus window and it should appear in the canvas.
The interaction can be added to any shape (not just view), and the first (in terms of elements placed on top of each other) shape/view that passes the #if: block will process it (just like a click event).
Is this useful in Roassal itself? Should I keep it for myself? (The implementation is a bit... hacky).
Peter
Hello,
In our Fame meta meta model, some information about the source and target selector for the associations were missing. It was hard to extend the model with new associations.
With the help of Anne, I added the pragma <source> representing the incoming link of the association and <target> representing the outgoing link of the association (see FAMIXAssociation >> #from , #to for usage).
In Fame, it is represented in FM3PropertyDescription by isTarget and isSource (false by default).
All the tests related to this change are now green in Jenkins and some additional tests should be added to cover this new functionality.
MooseQuery is now based on these features.
Cheers,
Vincent
!!!*************************************************************************************
"Ce message et les pi?ces jointes sont confidentiels et r?serv?s ? l'usage exclusif de ses destinataires. Il peut ?galement ?tre prot?g? par le secret professionnel. Si vous recevez ce message par erreur, merci d'en avertir imm?diatement l'exp?diteur et de le d?truire. L'int?grit? du message ne pouvant ?tre assur?e sur Internet, la responsabilit? de Worldline ne pourra ?tre recherch?e quant au contenu de ce message. Bien que les meilleurs efforts soient faits pour maintenir cette transmission exempte de tout virus, l'exp?diteur ne donne aucune garantie ? cet ?gard et sa responsabilit? ne saurait ?tre recherch?e pour tout dommage r?sultant d'un virus transmis.
This e-mail and the documents attached are confidential and intended solely for the addressee; it may also be privileged. If you receive this e-mail in error, please notify the sender immediately and destroy it. As its integrity cannot be secured on the Internet, the Worldline liability cannot be triggered for the message content. Although the sender endeavours to maintain a computer virus-free network, the sender does not warrant that this transmission is virus-free and will not be liable for any damages resulting from any virus transmitted.!!!"
Hi,
Recently, a new code was introduced in which RTLine>>initialize called withSelfLoop.
However, the method does not exist yet. I guess you forgot to commit it. In the meantime, I commented that line out.
Cheers,
Doru
--
www.tudorgirba.comwww.feenk.com
"In a world where everything is moving ever faster,
one might have better chances to win by moving slower."
Hello, I'm Roman Acevedo a French student in the University of Lille 1 in
the class "Open dev" under Stéphane Ducasse. Glad to meet you.
We had a list of Pharo projects to choose from and I decided I wanted to
contribute for Moose.
So I'm asking you if I could contribute in anyway on the project.
Have a nice day and thank you for reading me.
As part of a larger project I'm trying to recreate some functionality
that can be seen here:
http://clics.lingpy.org/browse.php?gloss=carry+%28bear%29&view=community
At this point I can slurp the data out of a database and get a graph
with Mondrian. What I cannot figure out is how I might change the
styling on the edges to represent weights. All I have found so far
is RTEdgeBuilder>>#label:, which is better than nothing, but is sort
of a mess visually in complex graphs. Changing edge width would be
tidier.
I'm still working my brain around how Smalltalk does things, so my
apologies in advance if I'm missing something obvious.
--
wm
--
View this message in context: http://forum.world.st/Mondrian-edge-styling-tp4932317.html
Sent from the Moose mailing list archive at Nabble.com.
Hi!
It looks like that we are currently suffering memory leaks.
In march 2015 it was said in the mailing list:
-=-=-=-=-=-=-=-=
I also tried this:
1. Create a dummy class:
Object subclass: #AAA
instanceVariableNames: 'x'
classVariableNames: ''
category: 'AAA'.
2. Open a Playground and do it and go on this:
a := #AAA asClass new.
3. In the second pane go on "self"
4. Close the Playground
5. Execute:
3 timesRepeat: [ Smalltalk garbageCollect ].
6. Check:
#AAA asClass allInstances.
7. Repeat if necessary, and after a while, the result after step 6 is not empty.
-=-=-=-=-=-=-=-=
The problem is still present.
Looking at the pointers
There was an object reference crawler no? I remember someone worked on this? I tried sending #pointersTo but I without much success on identifying the cause of this leak.
Any idea?
Cheers,
Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Hi,
There are a few failing tests on Moose 6.0.
https://ci.inria.fr/moose/job/moose-6.0/2418/testReport/
I would like to know if these tests represent some important functionality
that might cause bugs in the image. Principally, the tests are related to
Spotter and GT-examples. I think we might be missing a #stable version to
load these packages correctly in Moose 6.0.
I am going to use Moose 6.0 for a training so I would like to avoid bugs
during my presentation.
regards.
Usman