fun with diff
by Tudor Girba
Hi,
I added a new DiffPresentation in Glamour based on the DiffMorph. You
can see an example of a Glamorous Diff Browser, by executing the
following in the latest Glamour:
GLMSmalltalkExamples new diffBrowser openOn: (
Collection withAllSubclasses asOrderedCollection sortBy: [:a :b | a
name < b name])
Cheers,
Doru
--
www.tudorgirba.com
"We cannot reach the flow of things unless we let go."
14 years, 1 month
CodeCity method level disharmonies issue
by vartika chandra
hi,
i am writing an mse file and i am finding problems in viewing the method
level disharmonies through CodeCity.
here is the code:
<code>
(FAMIX.Package (id: 101)
(name 'Package Root')
(DIH 1)
(stub false)
)
(FAMIX.Package (id: 102)
(name 'Package 2')
(DIH 2)
(packagedIn (idref: 101))
(extendedClass (idref: 103))
(stub
false)
)
(FAMIX.Package (id: 104)
(name 'Package 3')
(DIH 2)
(packagedIn (idref: 101))
(extendedClass (idref: 105) (idref: 106) (idref: 118) )
(stub
false)
)
(FAMIX.Package (id: 107)
(name 'Package 4')
(DIH 3)
(packagedIn (idref: 101))
(extendedClass (idref: 108) (idref: 109)(idref: 113) (idref:
114) (idref: 115) (idref: 116) (idref: 117) )
(stub
false)
)
(FAMIX.Package (id: 110)
(name 'Package 5')
(DIH 3)
(packagedIn (idref: 101))
(extendedClass (idref: 111) (idref: 112))
(stub
false)
)
(FAMIX.Class (id: 103)
(name 'Class 1')
(isAbstract false)
(isInterface false)
(NOA 1000)
(NOM 10)
(packagedIn (idref: 102))
(stub false)
(WLOC 2000)
)
(FAMIX.Class (id: 105)
(name 'Class 2')
(isAbstract false)
(isInterface false)
(NOA 12)
(NOM 20)
(packagedIn (idref: 104))
(stub false)
(WLOC 200)
)
(FAMIX.Class (id: 106)
(name 'Class 3')
(isAbstract false)
(isInterface false)
(NOA 5)
(NOM 500)
(packagedIn (idref: 104))
(stub false)
(WLOC 3000)
)
(FAMIX.InheritanceDefinition
(id: 11)
(subclass (idref: 106))
(superclass (idref: 105))
)
(FAMIX.Class (id: 108)
(name 'Class 4')
(isAbstract false)
(isInterface false)
(NOA 7)
(NOM 10)
(packagedIn (idref: 107))
(stub false)
(WLOC 500)
)
(FAMIX.Class (id: 109)
(name 'Class 5')
(isAbstract false)
(isInterface false)
(NOA 50)
(NOM 50)
(packagedIn (idref: 107))
(stub false)
(WLOC 1000)
)
(FAMIX.Class (id: 111)
(name 'Class 6')
(isAbstract false)
(isInterface false)
(NOA 15)
(NOM 20)
(packagedIn (idref: 110))
(stub false)
(WLOC 500)
)
(FAMIX.Class (id: 112)
(name 'Class 7')
(isAbstract false)
(isInterface false)
(NOA 5)
(NOM 5)
(packagedIn (idref: 110))
(stub false)
(WLOC 50)
)
(FAMIX.Class (id: 113)
(name 'Class 8')
(isAbstract false)
(isInterface false)
(NOA 115)
(NOM 25)
(packagedIn (idref: 107))
(stub false)
(WLOC 250)
)
(FAMIX.Class (id: 114)
(name 'Class 9')
(GodClass false)
(DataClass false)
(BrainClass false)
(RefusedParentBequest false)
(TraditionBreaker false)
(WLOC 350.0)
(WNOS 206.0)
(WNOCond 36.0)
(WNOCmts 61.0)
(WOC 0.90)
(ATFD 8.00)
(WMC 56.00)
(TCC 0.43)
(NOPA 0.00)
(NOAM 0.00)
(BUR 1.00)
(BOvR 0.00)
(AMW 3.29)
(NOM 17.00)
(NAS 0.00)
(PNAS -1.00)
(LOC 557.00)
(NProtM 0.00)
(isAbstract false)
(isInterface false)
(NOA 20)
(NOM 35)
(packagedIn (idref: 107))
(stub false)
(WLOC 300)
)
(FAMIX.Class (id: 115)
(name 'Class 10')
(GodClass false)
(DataClass false)
(BrainClass false)
(RefusedParentBequest false)
(TraditionBreaker false)
(WLOC 350.0)
(WNOS 206.0)
(WNOCond 36.0)
(WNOCmts 61.0)
(WOC 0.90)
(ATFD 8.00)
(WMC 56.00)
(TCC 0.43)
(NOPA 0.00)
(NOAM 0.00)
(BUR 1.00)
(BOvR 0.00)
(AMW 3.29)
(NOM 17.00)
(NAS 0.00)
(PNAS -1.00)
(LOC 557.00)
(NProtM 0.00)
(isAbstract false)
(isInterface false)
(NOA 80)
(NOM 18)
(packagedIn (idref: 107))
(stub false)
(WLOC 350)
)
(FAMIX.Class (id: 116)
(name 'Class 11')
(isAbstract false)
(isInterface false)
(NOA 6)
(NOM 5)
(packagedIn (idref: 107))
(stub false)
(WLOC 50)
)
(FAMIX.Class (id: 117)
(name 'Class 12')
(isAbstract false)
(isInterface false)
(GodClass true)
(ATFD 7.00)
(WMC 55.00)
(TCC 0.23)
(NOA 40)
(NOM 40)
(packagedIn (idref: 107))
(stub false)
(WLOC 200)
)
(FAMIX.Class
(id: 118)
(name 'ZCLSAL_ORDER_BE_DATA')
(belongsTo (idref: 13823))
(isAbstract false)
(isInterface false)
(fileName
'FILE:H:\DevProjects\ProjectsData\Input\Simian\ABAP\CLAS_ZCLSAL_ORDER_BE_DATA.txt')
(startLine 39 )
(endLine 475 )
(GodClass true)
(DataClass false)
(BrainClass false)
(RefusedParentBequest false)
(TraditionBreaker false)
(WLOC 306.0)
(WNOS 207.0)
(WNOCond 0.0)
(WNOCmts 0.0)
(WOC 0.60)
(ATFD 4.00)
(WMC 55.00)
(TCC 0.23)
(NOPA 0.00)
(NOAM 5.00)
(BUR 1.00)
(BOvR 0.00)
(AMW 2.29)
(NOM 24.00)
(NAS 0.00)
(PNAS -1.00)
(LOC 250.00)
(NProtM 13.00)
(NOA 40)
(packagedIn (idref: 104))
)
(FAMIX.Method
(id: 119)
(name 'Method1')
(stub false)
(accessControlQualifier public)
(belongsTo (idref: 114))
(hasClassScope true)
(isAbstract false)
(isConstructor false)
(isPureAccessor false)
(FeatureEnvy false)
(IntensiveCoupling true)
(DispersedCoupling false)
(ShotgunSurgery false)
(NOS 61.0)
(NOCond 13.0)
(NMAA 65.0)
(NI 47.0)
(NOCmts 17.0)
(CYCLO 14.0)
(CINT 17.00)
(CDISP 0.29)
(CM 2.00)
(CC 2.00)
(ATFD 9.00)
(LAA 0.31)
(FDP 5.00)
(LOC 100.00)
(MAXNESTING 3.00)
(NOAV 20.00)
)
(FAMIX.Method
(id: 120)
(name 'Method1')
(accessControlQualifier public)
(belongsTo (idref: 115))
(hasClassScope true)
(stub false)
(IntensiveCoupling true)
(CINT 17.00)
(CDISP 0.29)
(CM 2.00)
(CC 2.00)
(ATFD 9.00)
(LAA 0.31)
(FDP 5.00)
(LOC 116.00)
(MAXNESTING 3.00)
(NOAV 100.00)
)
(FAMIX.Method
(id: 121)
(name 'Method 3')
(accessControlQualifier public)
(belongsTo (idref: 117))
(hasClassScope true)
(isAbstract false)
(isConstructor false)
(isPureAccessor false)
(FeatureEnvy false)
(BrainMethod true)
(IntensiveCoupling true)
(DispersedCoupling false)
(ShotgunSurgery false)
(NOS 61.0)
(NOCond 13.0)
(NMAA 65.0)
(NI 47.0)
(NOCmts 17.0)
(CYCLO 14.0)
(CINT 17.00)
(CDISP 0.29)
(CM 2.00)
(CC 2.00)
(ATFD 9.00)
(LAA 0.31)
(FDP 5.00)
(LOC 116.00)
(MAXNESTING 3.00)
(NOAV 20.00)
)
))
</code>
i know that i need to change the configuation to fine grained and
progressive bricks but there is no method level disharmony found.
Please lemme know where i am goin wrong..
Thanks
14 years, 1 month
metacello configurations
by Tudor Girba
Hi,
I created new Metacello Configurations for Moose, Mondrian, Glamour
and DSM. They are in packages named by the scheme: ConfigurationOfXXX
To load it in the latest Pharo dev image, you should run:
Gofer new
squeaksource: 'Moose';
addPackage: 'ConfigurationOfMoose';
load.
(Smalltalk at: #ConfigurationOfMoose) perform: #loadDefault
Cheers,
Doru
--
www.tudorgirba.com
"Be rather willing to give than demanding to get."
14 years, 1 month
Mondrian Health report
by Alexandre Bergel
Hi!
I have been working on a "health report" of Mondrian. For now, it
essentially do some benchmarks for nodes, edges and provides an
estimation of the test coverage.
This is very early work for now. I am still experimenting. The
measurements below clearly show a problem: adding edges is definitely
too costly. I am currently working on this.
In the future, I would like identify speed bottleneck.
For now, it is only for Mondrian. Will people be interested in getting
similar data for Moose?
Cheers,
Alexandre
Report produced on 2009-10-20T16:00:26+00:00
Version 'Mondrian-Alexandre_Bergel.277'
Benchmark ManyNode (simple rendering of nodes) :
100 nodes => 14 ms
200 nodes => 50 ms
300 nodes => 108 ms
400 nodes => 198 ms
500 nodes => 335 ms
600 nodes => 442 ms
700 nodes => 627 ms
800 nodes => 768 ms
900 nodes => 969 ms
1000 nodes => 1223 ms
1600 nodes => 2907 ms
Benchmark ManyEdges (simple rendering of edges) :
10 edges => 1 ms
20 edges => 6 ms
30 edges => 14 ms
40 edges => 27 ms
50 edges => 52 ms
60 edges => 82 ms
70 edges => 126 ms
80 edges => 178 ms
90 edges => 364 ms
100 edges => 355 ms
200 edges => 4719 ms
300 edges => 36495 ms
Test coverage: 60.03 % of methods are covered
Progress from last time: 0.0 %
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
14 years, 1 month
New user interface to import packages and specifying context
by Cyrille Delaunay
Hi,
I'm Cyrille Delaunay, working in Stephane Ducasses team in Lille, France and
I will do a lot of things for moose during the next two years :)
The first thing I've made is an interface that enable the user to open a
moose finder by specifying:
- image packages that he want to import
- the importing context
- merging or not class and metaclass
I just save that in the moose squeaksource repository.
Two packages are concerned :
- Moose-Finder with three new classes
- MooseImportInterface : the main class (just evaluate
'MooseImportInterface new open')
- PackageSelector
- ContextFrame
- Moose-GenericImporter :
- Some missing methods added in the class ImportingContext
14 years, 1 month
Re: [Moose] Use of Moose in a PhD Thesis
by Tudor Girba
Hi Eduardo,
Great to hear that you are using Moose. I would suggest to send
technical questions to the moose-dev mailing list. You can subscribe
here:
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Which version of Moose are you using?
If you are using the VisualWorks version, then:
- to zoom, you have to click on the + button
- to export, you right click on the canvas and choose export to PNG
Also, I would be curious to learn more about the context in which you
use Moose. Could you tell us more details?
Cheers,
Doru
On 15 Oct 2009, at 16:07, Eduardo Guerra wrote:
> Hi!
>
> My name is Eduardo Guerra and in my PhD Thesis I'm using polimetric
> views to evaluate the design of applications that uses different kinds
> of framework.
>
> I read the book Object-oriented Metrics in Practice and I want to use
> Moose for the generation of the views.
>
> I had two questions:
>
> - I'm using small case studies and the generated views are too small.
> Can I zoom them?
> - I need to export the view to include in my papers and in my thesis.
> How can I export a generated view?
>
> Thanks a lot!
>
> Eduardo Guerra
> _______________________________________________
> Moose mailing list
> Moose(a)iam.unibe.ch
> https://www.iam.unibe.ch/mailman/listinfo/moose
--
www.tudorgirba.com
"Obvious things are difficult to teach."
14 years, 1 month
Glamour auto-update a display pane
by Laval Jannik
Hi Doru,
In Glamour,
I would like to update a pane when I add new items in the entry
collection.
For example:
===
"self new test openOn: myCollection"
|browser |
browser := GLMTableLayoutBrowser new.
browser column: #one.
browser showOn: #one; using: [
browser list
display: [:x | x];
act: [:each | myCollection add: each] entitled: 'duplicate';
].
===
In the browser, I need an action which update display when I change
the input.
Here, I have an action which add an entity in "myCollection".
How can I update display ?
I tried to use update:on:entitled:with: but it does not work.
Have you a solution ?
Cheers
---
Jannik Laval
PhD Student - Rmod Team - INRIA
Certified Project Management Associate (IPMA)
http://www.jannik-laval.eu
http://rmod.lille.inria.fr
---
14 years, 2 months
MooseLoader and Gofer
by Alexandre Bergel
Hi!
Apparently, Moose cannot be loaded with the last version of Gofer.
Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
14 years, 2 months