Hi,
Should VerveineJ mark getters and setters? I saw that the property "kind"
is used for constructors but not for accessors. Is it a bug or should I
compute these values after loading the MSE file? Thanks
Cheers,
Santiago
--
Santiago Vidal
In Moose 4.6... the very first time I go...
World > System > Settings > OCompletion > Smart Characters
click on checkbox
I get ==> MNU receiver of "highlight: is nil
Subsequently clicking on the checkbox is okay.
The same occurs for some other settings.
Closing and reopening Settings reinstates the faulty behaviour for some
of the settings.
regards, Ben
Hi,
In Moose 4.6 I load a simple MSE for my tests in the following way:
loadIntoMoose: methodName
> | model |
> model := (MooseModel root entityNamed: methodName).
> (model) notNil ifTrue: [^ model].
> model := MooseModel new.
> model name: methodName.
> model importFromMSEStream: (ReadStream on: (self perform: methodName)).
> model install.
> ^ model
Where *self perfom: methodName* returns the MSE as String.
This fails in Moose 4.7 in cacheMooseGroups here:
allPrimitiveTypes
>
> <navigation: 'All primitive types'>
> ^(self allWithType: FAMIXPrimitiveType) sorted: [:a :b | a name < b name];
> yourself
There are three primitive types, but their names are nil.
The peculiar thing is, if I load the MSE file in the Moose Panel manually
it works (same content in the file and in the string!) and I can explore
the three primitive types. They are (in the MSE):
(FAMIX.PrimitiveType (id: 38)
> (name "_unknown_file.void")
> )
> (FAMIX.PrimitiveType (id: 101)
> (name "_unknown_file.int")
> )
> (FAMIX.PrimitiveType (id: 121)
> (name "_unknown_file.boolean")
> )
The only difference between the MSE file and the String I return is that in
the File ' are used and in the String " are used.
So in the MSE file:
(FAMIX.PrimitiveType (id: 38)
> (name '_unknown_file.void')
> )
The String that I return in the method:
^
> '
> ...
> (FAMIX.PrimitiveType (id: 38)
> (name "_unknown_file.void")
> )
> ...
> '
Is this a problem? Does anyone have an explanation for this behavior? Is
there maybe a better way to load moose models for tests?
If anyone wants to look at the code, it is available here:
MCHttpRepository
> location: 'http://www.squeaksource.com/Softwarenaut'
> user: ''
> password: ''
Cheers,
Dennis
I am just starting to learn Glamour and thought it would be instructive
to see what had changed in the example between 4.5 & 4.6. I thought
someone else might be mildly interested in the results I compiled.
(notation... 4.5-code ==> 4.6 code)
I'll begin by thanking those that took the time to provide these
examples. They are a great way to learn the system. The addition in
4.6 of GLMExamplesBrowser is nice, and the menu item [View browser tree]
provides an interesting rendition of each example.
_EXAMPLES NOW WORKING IN 4.6, WAS NOT IN 4.5_
Double click #doubleClick
Simple table #simpleTable
Text ports #textPortsExamples
Icons #tableWithIcons - 4.5 did not transmit to next pane, but same
code to 4.6 does work.
Also 4.6 refactors.... selectionAct: [:tree | tree inspect ]
==> selectionAct: [:tree | tree selection inspect ]
Also 4.6 adds alternating icons.
_EXAMPLES THAT OPERATE THE SAME IN 4.6 AS 4.5 - CODE IDENTICAL _
* Tree with menu #treeWithMenu - but might need the same change to
selectionAct: as for "Icons #tableWithIcons"
* Dashboard #dashboard
* Dashboard specifying extents #dashboardWithSpecificExtents
* Dashboards in dashboard #dashboardsInDashboard
* Composite arrangements #differentComposites
* Complex morphs (StarBrowser simulation) #starBrowser
* EyeSee interactive bar chart #eyeseeBarDiagram
* Mondrian painting #mondrianPainting
* Multiple actions #multipleActions
* Simple Expander #simpleExpander
* Smart lists #treeWithAmountFiltering
* Stacker #stacker
* Tabs with different actions #tabsWithDifferentActions
* Three inter-dependent panes #threeInterdependentPanes
* Tree with children by level #treeWithChildrenByLevel
* Tree with expansion #treeWithExpansion
* Tree with tags #treeWithTags
* (no glmBrowser pragma) #taggedTree
* Tree withTags more levels #treeWithTagsMoreLevels [*1] -
enhancement... it would be good if after deselecting the tags, it
remembered which node had previously been expanded. When when I click a
tag twice, I expect to get back the same view I had before.
* Magritte presentation #magritte - This was one a was I was REALLY
interested to see regarding the update to Magritte 3. However 4.6 code
is identical to 4.5 and produce the same error....
[Save] ==> error MAWriteError: Not supposed to write to something.
[Cancel] ==> no change. Now without knowing anything about Magritte, I
would expect the text box to revert to the original text.
What would be a REALLY great would be a Magritte 3 example here of
something like a tiny address book of a few entries that in one pane
browsed the list and in another pane showed the detail via Magritte
_EXAMPLE THAT OPERATE THE SAME AS 4.5 - CODE REFACTORED AS NOTED
?? Perhaps someone could comment on the general nature of these
refactorings...
1. #using seems to be being purged from Glamour. Perhaps(?) to remove a
lot of methods from GLMBrowser & GLMTPresentationBuilder, leaving these
only in GLMCompositePresentation. Examples...
showOn: ... using: [ browser mondrian ==> transmit to: ....
andShow: [ :a | a mondrian
showOn: ... using: [ browser list ==> transmit to: ...
andShow: [ :a | a list
showOn: ... using: [ browser morph ==> transmit to: ... andShow:
[ :a | a morph
* Action list #simpleActionList
* Allowing all nil #allowAllNil
* Allowing nil #allowNil
* Drop-down #dropDownList [
* Drop-down with initial value #dropDownListWithInitialValue
* Dynamic validator #validatorDynamic
* Fix size pane #fixSizePanes
* Morph icons #morphIcons
* Tags #compoundTaggedTree
* Updated selection #listsWithUpdatedSelection
* Validator #validator - but I don't actually see any difference to
operation of "Dynamic Validator #dynamicValidator" method - what am I
missing ?
* (no glmBrowser pragma) #singleInitialSelection
2. Clean up similar to [1.]
finder list ==> finder show: [ :a | a list
browser text ==> browser show: [ :a | a text
finder table ==> finder show: [ :a | a table
* Browser menu #simpleFinderWithMenu
* Filter #multipleFinderWithFilter
* Finder #simpleFinder
* Populate port action #populatePortAction
* Search #multipleFinderWithFilterAndSearch
* Toolbar #browserWithToolbar
* Tabs with different labels #tabsWithDifferentLabels
* (no glmBrowser pragma) #treeWithInitialSelection - however this
gets a MNU GLMTabulator>>text in 4.6 - requires one more browser text
===> a text
3. #sendTo: from: with: ==> #transmit: port: ; #from: ;
#transformed
* Updated selection #listsWithUpdatedSelection
4. Transcript ==> Inspector (not really a significant change?)
* Action list #simpleActionList
* Menus #staticAndDynamicMenu
_EXAMPLE CODE AND OPERATION CHANGED SIGNIFICANTLY FROM 4.5 TO 4.6 _
* Accumulator #accumulator
* Updateable browser #updateableBrowser - Completely different
code and operation. What is the difference in operation between the
'Upadted automatically' tab and 'Updated via menu' -
_NEW EXAMPLES IN 4.6_
?? Do the following demonstrate new functionality in 4.6 or just a new
example of existing 4.5 functionality ?
* Format #formatAsWords - what does this have to do with composites
protocol it is located in?
* Smalltalk code #smalltalkCode
* Spawn browser actions #spawnBrowserActions - it would be useful
to also see how a single selected item could be opened in a new window -
not just the whole list)
* Spawn browser selection actions #spawnBrowserSelectionActions
(note, the method of in-comment example is incorrect)
*(no glmBrowser pragma) #listDragAndDrop - very nice :) However
dropping onto a number in [Source] causes an error. Also a useful
additional example would dropping on to the [Target] background (which
might use item + 0)
_ISSUES WITH 4.6 EXAMPLES_
* Two inter-dependent panes #interdependentPanes - code is flagged
as not working. does not work in 4.5 either.
* (no glmBrowser pragma) #treeWithInitialSelection - 4.6 has a
nice additional functionality of auto-expand when moving from [first
tree] to [second tree]. However in both 4.5 & 4.6, upon initial opening
and also when switching from [first tree] to [second tree] an erroneous
additional line spacing occurs as shown in _
treeWithInitialSelection-extra-line-spacing.jpg _ (attached)
* Text selection #textSelection - execute from method comment works
in 4.5 but fails in 4.6 with unknown selector #textSelectionInterval.
However it works from Example Browser
* (no glmBrowser pragma) #wizard - It is not clear how to get hold
of the selected items
* (no glmBrowser pragma) #multiInitialSelection - I am only able to
multi-select contiguous items with the SHIFT key. I am unable to
multi-select non-contiguous items as I would expect using the CTRL key.
Instead a context menu for MorphTreeMorph appears. Is this unfortunate
behaviour just me?
cheers, -ben
Hi,
A project lives through the activity around it. There is a significant potential around Moose, both for research and for industry, but, to make it reality, we need to work together.
One challenge around Moose is to communicate what it does and who is it for. I want to reorganize and position Moose clearly. There is much confusion in the space of analysis tools, but Moose is different:
- First, Moose is a platform for software and data analysis with a distinct goal: to make crafting of analyses practical and affordable. This sets it apart from other tools that aim to provide one-click-analyses.
- Second, Moose has a philosophy behind: humane assessment. This approach provides an economical meaning to the goal of crafting custom analyses. We are first in this area, and I believe this part of software engineering will become important in the future.
- Third, Moose has a research philosophy, too: collaborative & tool-centric research:
http://www.themoosebook.org/book/philosophy/research
The first step is to align the internal structure with the main message. I need help here. My intent is reflected in the abstract architecture described here:
http://www.humane-assessment.com/minibook/moosehttp://www.themoosebook.org/book/introduction/nutshell
The second step is to rebuild the web presence. I need help here, too.
The third step is to rebuild collaborations. The analysis space is large, and to make a meaningful impact we need to work (more) closely. This is a call for collaboration:
1. Be a client and use Moose to build your tools. And let us know how it goes.
2. Be a developer and develop the engines of Moose. We have some, but we need more :).
3. Be a documenter and help us document the usage of Moose. There is a ton of things to describe: from technical details, to how to use it in practical settings.
4. Be an evangelist and spread the word about Moose.
5. Surprise us :)
Cheers,
Doru
--
www.tudorgirba.com
"Yesterday is a fact.
Tomorrow is a possibility.
Today is a challenge."
Hi,
The Glamorous Toolkit, including the Glamorous Inspector, is now in the Moose image. There was a tiny problem of loading due the fact that SystemAnnouncements are already in the base image.
Cheers,
Doru
--
www.tudorgirba.com
"Be rather willing to give than demanding to get."
I've just downloaded moose-dev-4.7 and the first change i noticed was the
absence of a very useful feature in System browser: search bar. The change
comes from the move from pharo 1.3 to pharo 1.4. Sure, the same thing can
be done with ctrl + F but the search bar was much more easily accessible
and fewer windows in the system.
May be there is some custom browser that I can load to avoid changing my
habits.
regards,
usman
Status: New
Owner: ----
Labels: Type-Defect Priority-Medium
New issue 780 by fabrizio...(a)gmail.com: pairsDistanceFrom: should be
renamed since it is not a distance metric
http://code.google.com/p/moose-technology/issues/detail?id=780
The method SequenceableCollection>>pairsDistanceFrom: should be renamed
since it is not a distance metric.
What do you think of this PetitParser example? Is there a better way to do
this?
Parse a string like '{"login", "bash"}' (an Applescript list) into a
collection of items (i.e. #("login" "bash))...
| delimiter item contents listParser result listClose |
delimiter := ', ' asParser.
listClose := $} asParser.
item := (delimiter / listClose) negate plus flatten.
contents := (item separatedBy: delimiter) ==> [ :nodes | nodes reject: [ :n
| n = ', ' ] ].
listParser := ${ asParser, contents optional, listClose ==> #second.
result := listParser parse: returnString.
^ result isNil
ifTrue: [ OrderedCollection new ]
ifFalse: [ result collect: [ :e | self processAtom: e ] ].
Thanks.
Sean
--
View this message in context: http://forum.world.st/PetitParser-Example-tp4420008p4420008.html
Sent from the Moose mailing list archive at Nabble.com.
Hi,
Recently, I received all sorts of questions related to how to use Moose in practical settings. Many of the answers are provided on the humane assessment website. In particular, I am trying to update the blog continuously both with demos and with stories from the engineering trenches.
If you want to stay up to date register to the RSS feed:
http://www.humane-assessment.com/blog/?view=PBEntriesRssView
or follow the @humaneA on Twitter:
http://twitter.com/humaneA
And of course, I would be happy to answer more questions, and to hear more of your stories, too.
Cheers,
Doru
--
www.tudorgirba.com
"In a world where everything is moving ever faster,
one might have better chances to win by moving slower."
Hi,
I just wanted to let you know that the Glamour and Metanool (transformation engine between Fame and Magritte) are now using Magritte 3.
Consequently, in the latest Moose image you will find Magritte 3.
Cheers,
Doru
--
www.tudorgirba.com
Things happen when they happen,
not when you talk about them happening.
Hi all,
I have a meta-model implemented as a UML profile and i would like to
use this meta-model in MOOSE/Pharo.
Is there anyway to convert this meta-model in FM3 or i have to do it by hand ?
Regards,
--
Serge Stinckwich
UMI UMMISCO 209 (IRD/UPMC), Hanoi, Vietnam
Matsuno Laboratory, Kyoto University, Japan (until 12/2011)
http://www.mechatronics.me.kyoto-u.ac.jp/
Every DSL ends up being Smalltalk
http://doesnotunderstand.org/
Status: New
Owner: ----
Labels: Type-Defect Priority-Medium
New issue 778 by fabrizio...(a)gmail.com: FAMIXAssociation should not
implement sourceAnchor
http://code.google.com/p/moose-technology/issues/detail?id=778
FAMIXAssociation should not implement sourceAnchor.
Status: New
Owner: tudor.gi...(a)gmail.com
Labels: Type-Defect Priority-Medium Component-Glamour Milestone-4.7
New issue 779 by tudor.gi...(a)gmail.com: Glamour listing should update the
morph
http://code.google.com/p/moose-technology/issues/detail?id=779
The morphic rendering does not properly update the list in the morph tree
morph. This is due to changes in the morphtreemorph internal structure.
Status: New
Owner: ----
Labels: Type-Defect Priority-Medium Component-Glamour Milestone-4.7
New issue 777 by tudor.gi...(a)gmail.com: Pagination does not work for
ListingPresentation
http://code.google.com/p/moose-technology/issues/detail?id=777
When rendering a list with many items, specifying showOnly: does not have
any effect.
To reproduce the problem:
GLMFinder new
show: [:a |
a list display: [:x | 1 to: x ]; showOnly: 100 ];
openOn: 1000
Hi,
There is some code in moose (in FMDefaultCodeGenerator) which use
ORChangesBrowser but the class is not in the system. Was the class removed
in 1.4 or we do not load the proper package?
Cheers,
Fabrizio
can you send the mail to the moose-dev?
Because I'm busy.
Stef
On Feb 14, 2012, at 2:01 PM, Holger Hans Peter Freyther wrote:
> Hi Stephan,
>
> I took a break from my GSM work and wrap up my studies (German Diploma is
> gone, it ends up only being a Bachelor..). I tried to import Saros[1] into
> moose and ended up with Exceptions on parsing catch statements. I have
> attached a file that shows this issue and the backtrace is below:
>
>
> *** VerveineJ visitor got exception: 'fr.inria.verveine.core.gen.famix.Type
> cannot be cast to fr.inria.verveine.core.gen.famix.Class' while processing
> file:
> /home/ich/uni/bachelor-arbeit/dpp/de.fu_berlin.inf.dpp/src/de/fu_berlin/inf/dpp/Example.java
> java.lang.ClassCastException: fr.inria.verveine.core.gen.famix.Type cannot be
> cast to fr.inria.verveine.core.gen.famix.Class
> at fr.inria.verveine.extractor.java.VerveineVisitor.visit(Unknown Source)
> at org.eclipse.jdt.core.dom.CatchClause.accept0(CatchClause.java:162)
> at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2514)
> at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:2585)
> at org.eclipse.jdt.core.dom.TryStatement.accept0(TryStatement.java:258)
> at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2514)
> at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:2585)
> at org.eclipse.jdt.core.dom.Block.accept0(Block.java:136)
> at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2514)
> at org.eclipse.jdt.core.dom.ASTNode.acceptChild(ASTNode.java:2562)
> at org.eclipse.jdt.core.dom.IfStatement.accept0(IfStatement.java:190)
> at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2514)
> at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:2585)
> at org.eclipse.jdt.core.dom.Block.accept0(Block.java:136)
> at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2514)
> at org.eclipse.jdt.core.dom.ASTNode.acceptChild(ASTNode.java:2562)
> at org.eclipse.jdt.core.dom.MethodDeclaration.accept0(MethodDeclaration.java:504)
> at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2514)
> at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:2585)
> at org.eclipse.jdt.core.dom.TypeDeclaration.accept0(TypeDeclaration.java:484)
> at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2514)
> at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:2585)
> at org.eclipse.jdt.core.dom.CompilationUnit.accept0(CompilationUnit.java:219)
> at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2514)
> at fr.inria.verveine.extractor.java.FamixRequestor.acceptAST(Unknown Source)
> at
> org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve(CompilationUnitResolver.java:1016)
> at
> org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve(CompilationUnitResolver.java:628)
> at org.eclipse.jdt.core.dom.ASTParser.createASTs(ASTParser.java:988)
> at fr.inria.verveine.extractor.java.VerveineJParser.parse(Unknown Source)
> at fr.inria.verveine.extractor.java.VerveineJParser.main(Unknown Source)
>
>
> I have attached a workaround but I don't understand under which circumstances
> a type might not be resolvable to a Class (wrong classpath). Somehow the code
> already accepts a nil class, so adding the exception handling only makes the
> code more ugly but might end up being correct.
>
>
>
> cheers
> holger
>
> PS: What is the license of that code?
>
>
>
>
>
> [1] http://www.saros-project.org/
> <Example.java><workaround.diff>
Hi,
I was implementing a new element as subclass of FAMIXEntity than I created
an association between these new elements as subclass of FAMIXAssociation.
By browsing these associations I was getting a weird error related to the
sourceAnchor method. Than I realized that FAMIXAssociation is subclass of
FAMIXSourceEntity and that implement the sourceAnchor method as
^self from sourceAnchor.
Now my point is:
FAMIXAssociation should be subclass of FAMIXEntity because FAMIXAssociation
should be a superclass for any association between entities not just source
entities. In this way we can also ride of the method
FAMIXAssociation>>>sourceAnchor which I found disturbing.
Anyway, in the comment of FAMIXAssociation it is written: "FAMIXAssociation
is an abstract superclass for relationships between Famix named entities".
So I would like to push FAMIXAssociation up and make it subclass of
FAMIXEntity.
If you disagree, it should be at least push down as subclass of
FAMIXNamedEntity.
What do you think?
Cheers,
Fabrizio
Status: New
Owner: tudor.gi...(a)gmail.com
Labels: Type-Defect Priority-High Component-Glamour Milestone-4.7
New issue 776 by tudor.gi...(a)gmail.com: The Glamour Finder should scroll
properly
http://code.google.com/p/moose-technology/issues/detail?id=776
After the port to Pharo 1.4, the Finder does not scroll anymore. Use this
snippet to reproduce (and then click until you get 3 panes)
GLMFinder new
show: [:a | a list display: [:x | 1 to: x ]];
openOn: 100
Hi,
I saw that the method MooseBrowser>>codeWithFlawsBrowser refers to some of
the Identity Disharmonies proposed by Lanza and Marinescu in the book
"Object-Oriented Metrics in Practice". However, I couldn't find the method
to calculate if a class is for example a God Class or a BrainClass. Is this
code available somewhere?
Thanks
--
Santiago Vidal
Hi all,
I'm starting with Glamour, particularly I'm interested in the
GLMBasicExamples>>smalltalkCode example
My question is: is it possible to have access to variable bindings, in
order to show them, for instance, in an inspector?
Thanks in advance!
Nahuel
Great!
Martin
On Thu, Feb 16, 2012 at 5:42 AM, Tudor Girba <tudor(a)tudorgirba.com> wrote:
> Yuppee, problem solved!
>
> Thanks a lot.
>
> Cheers,
> Doru
>
> On Thu, Feb 16, 2012 at 6:07 AM, Martin Dias <tinchodias(a)gmail.com> wrote:
> > (At the moment Moose is loading from 'http://www.squeaksource.com/Fuel')
> >
> >
> > On Thu, Feb 16, 2012 at 2:05 AM, Martin Dias <tinchodias(a)gmail.com>
> wrote:
> >>
> >> I'm not sure if this solves the issue, but... Could you update the Fuel
> >> (and FuelMooseExtension) repository to 'http://ss3.gemstone.com/ss/Fuel'
> ?
> >>
> >> We have moved there.
> >>
> >> Martin
> >>
> >> On Wed, Feb 15, 2012 at 6:22 PM, Martin Dias <tinchodias(a)gmail.com>
> wrote:
> >>>
> >>> Hi Doru,
> >>>
> >>> I'll take a look now.
> >>>
> >>> Martin
> >>>
> >>>
> >>> On Wed, Feb 15, 2012 at 3:38 AM, Tudor Girba <tudor(a)tudorgirba.com>
> >>> wrote:
> >>>>
> >>>> Hi Martin, hi Mariano,
> >>>>
> >>>> Loading FuelMooseExtensions 1.4 is broken because FuelContainer is no
> >>>> longer loaded.
> >>>>
> >>>> This is due to the fact that FuelContainer was taken out of the
> >>>> CoreWithExtras group from ConfigurationOfFuel 1.7.
> >>>>
> >>>> Could you take a look?
> >>>>
> >>>> Cheers,
> >>>> Doru
> >>>>
> >>>>
> >>>> --
> >>>> www.tudorgirba.com
> >>>>
> >>>> "Beauty is where we see it."
> >>>>
> >>>>
> >>>>
> >>>
> >>
> >
>
>
>
> --
> www.tudorgirba.com
>
> "Every thing has its own flow"
>