Hello,
I would like to know if there is some things more important than others to
do for Moose.
Because I will have time to spend on issues, but better spend it in an
effective way ;)
Hi,
the problem with this test failure is related with the implementation of lineCount method. Basically the old implementation start to count to 1 and then it adds 1 for each cr found in the string.
OLD IMPLEMENTATION
lineCount
"Answer the number of lines represented by the receiver, where every cr adds one line. 5/10/96 sw"
| cr count |
cr := Character cr.
count := 1 min: self size.
1 to: self size do:
[:i | (self at: i) = cr ifTrue: [count := count + 1]].
^ count
So for the definition of this file:
file := self createFile: (self foldersString , 'fileWith9Chars4Lines2EmptyLines').
stream := file writeStream.
stream
nextPutAll: '123456';
cr;
cr;
nextPutAll: '789';
cr.
In the 1.0 lineCount return 4 -> 1 + 3 cr.
The new lineCount method counts the lines considering only the number of cr, lf or crlf that it find in the string. So the same file definition in the 1.1 return 3 -> 3 cr.
To make this test green the most logic thing it will be to add a cr in the definition of the string in such a way to fit the definition of the new method lineCount.
file := self createFile: (self foldersString , 'fileWith9Chars4Lines2EmptyLines').
stream := file writeStream.
stream
nextPutAll: '123456'; cr;
cr;
cr;
nextPutAll: '789'; cr.
If you agree i will proceed with the modification. (of course this will break the test in the 1.0)
Cheers,
Fabrizio
The screenshot should be self explainable.
I would love to have EyeSee
Cheers,
Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Hi,
This is a too long call for action :).
First, let me clarify one point. Glamour is primarily a Browser
Framework, not a User Interface Framework. The difference is in the
focus:
- a GUI Framework is concerned with placing widgets on a canvas, with
refreshing etc. Here you have complete control over how you position
ui elements.
- a Browser Framework is concerned with manipulating data. This is
based on a GUI Framework, but its goal is to provide a higher level
language for describing the desired manipulation. The components
offered should implement patterns of mapping navigation interests on
user interaction.
The core of Glamour has nothing to do with the way the UI looks, it
only focuses on providing the semantics for moving, transforming and
aggregating data.
Now, the provided presentations and browsers of Glamour are not yet
expressive enough, and neither is the rendering. This is what
sometimes causes the confusion: when you just want to get a certain
pre-defined user interface going, and there is not enough
expressivity, you will hack and as a consequence you will think that
the framework is not worth it.
I strongly believe in the core component model of Glamour, but I need
help with the rest. This problem is twofold:
1. What semantics do we want to have on the presentations and on the
browsers?
2. How to support these on in the rendering?
Help is needed here. In particular, I would need help for creating
Morphic widgets. At the very least, I would be interested in just
picking up your requirements of navigating data (not the user
interfaces you want :)) so that I can compile a list of requirements.
Cheers,
Doru
--
www.tudorgirba.com
"If you interrupt the barber while he is cutting your hair,
you will end up with a messy haircut."
Hi Doru,
Does a script exist to generate the moose image ?
I need it to push the release :)
Before, I should fix the metacello script.
Cheers
---
Jannik Laval
So I know that some of you already started to use Moose under Pharo 1.1, and now it is time to assess the situation.
I took the latest Pharo Core on the web 11383.
I loaded the latest Pharo Conf 1.1-beta1.10517
Then I loaded default of ConfigurationOfMoose.
After loading, the first issue I knew beforehand is that there was a conflicting dependency between the version of MorphTreeWidget loaded by Moose default and the one which now comes by default with Pharo 1.1
I built two new default versions for Glamour and Moose with Pharo1.1 by removing this dependency:
(ConfigurationOfMoose project version: 'default11') load
should load a working Moose (not tested)
Tests got something like 200 errors, however most of them seem to have common roots (meaning fix one problem and you fix dozens of tests). There seem to be nothing really serious, just fixing changes in API and also compiler semantics, with strange things around.
1) For example, the following snippet of code is valid (I didn't even know that!) but the semantic has changed:
[ :i ] value: 1 -> returns 1 under Pharo 1.0, and nil under Pharo 1.1
2) Also it seems that the compiler now considers _ as a message send. Just try
MSEUtilities signatureFromSmalltalkSelector: #_
and you get a nice primitive failed. Of course the importer did not like it :)
I just replaced _ with :=
3) fix deprecation asSortedArray -> asArray sort in Hashtable
4) One fix NOT commited in Glamour:
Message send autoDeselect: produces DNU, rewritten as autoDeselection:
in GLMMorphicRenderer>>treeMorphFor:and:
I started to do that, I'm now at 20 failures and 42 errors.
The fun thing is that the changes are not necessarily complicated, but the effects on tests can be weird (like above). So it's difficult sometimes to tell what is the problem. Now failing tests are mostly in GroupTest (some difference in importing the model, perhaps simply due to changes in the system classes imported) and MooseAlgos, a couple of other packages...
If someone knows how to replace the following snipper, it will solve a lot of error tests in MooseAlgos actually.
Stream endOfStreamSignal signal
--
Simon
Hi Alexandre,
I was not allowing dragging on my visualizations, however, I got that request and was trying it now...
I have a problem with some edges
the external edges (the ones that are crossing among packages).
When dragging they don't move
If i click on them, they appear where they should be connecting the respective entities.
Regards,
Veronica
Hello,
I would like to know if it is possible to display text with some style
information (emphasis, color) in a GLMTextPresentation ?
I tryed to set a styled text as parameter of GLMTextPresentation >>
display:, but style informations are taken into account.
Hello,
We are extremely happy to announce version 4.0 of the Moose Suite:
http://moosetechnology.org/download
This is the first fully open source release of Moose: it is based on
Pharo 1.0 (released under MIT), and all its components are available
under a BSD or MIT license.
WHAT'S NEW
Core developments:
• New meta-meta-model: FM3 implemented in Fame
• New FAMIX 3 meta-model defined using Fame
• New query interface for FAMIX
• FAMIX extensions for Java to support annotations and exceptions
• Glamour: a new generic engine for scripting browsers
• Merlin: a new framework for defining wizards
• MooseAlgos: Improved generic algorithms for graph and data
manipulation
• PetitParser: a novel framework for defining modular parsers
• Improved Mondrian engine for scripting graph-based visualizations
• Arki: a framework for fast creation of custom reports
Improved user interface:
• Extensible Moose Finder based on Glamour with integrated
visualizations and query facilities
• Moose meta-model browser
• Wizard-based importers for Smalltalk and Java (with inFusion)
• Customizable System Complexity visualization
• Customizable Distribution Map visualization
• Several dedicated browsers and viualizations
Better technical infrastructure:
• Hudson-based integration server
• Metacello project versioning
• Fame lint rules
Improved documentation:
• The Moose Book: http://themoosebook.org
Other applications:
• The Package Blueprint visualization
• Enriched DSM (eDSM): a suite of tools for detecting dependency cycles
• SmallDude: duplication detection engine
• Distribution Map engine
External applications:
• Aspect Maps: a visual tool for understanding Java aspects
• Spy: a Smalltalk dynamic analysis instrumentation
• AutoMoose: an integration of Moose with the command line
• Moose JEE: a set of tools dedicated to the analysis of JEE systems
• CAnalyzer: a parser and a set of visualizations to analyze C systems
• Tighter integration with inFusion for Java parsing
A complete list of issues fixed in this release can be found at:http://code.google.com/p/moose-technology/issues/list?can=1&q=status=Fix…
FUTURE PLANS
An incomplete set of future actions:
• Trait-based FAMIX metamodel for better conceptual clarity and more
reuse
• Better layered architecture nearing Pharo core: the goal is to ease
the path from a Moose prototype to a stand-alone tool for Pharo.
• Improved FAMIX query API
• Improved Glamour engine
• Improved Mondrian engine
• EyeSee engine for drawing charts
• Better browsers for various analyses use cases
• Parsers for various languages
• Tests reorganization
• <your project as a default tool in Moose Suite> ;)
Have fun,
The Moose Team
Hello,
I have a browser, which is a GLMTabulator.
I would like to dynamically change its number of rows.
Is there a way to do that?
My idea was:
Every time I want to update my browser, I delete all existing rows and
rebuild the ones i want. Is it possible?
Hello,
What I did for the moment:
renamed all the methods from EntityState with the convention of a
dictionary (propertyAt: , cacheAt: ,
attributesAt: ). We kept the old ones as deprecated.
I kept all previous methods as 'deprecated'. So normally, If I did
that well, if your code is still using the old entityState API, you
should have a 'deprecated' message re-directing you to the new API.
Hi Moosers. I am doing little experiments to export/serialize big graph of
objects using ImageSegment. I though that MooseModel was a good candidate.
And I even remember Simon's wishes for copying them. But I have a couple of
questions:
1) Which is the bigger autogenerated MooseModel I can get to test? For the
moment I am evaluating "MooseModel installDefaultModels". and then I export
"MooseModel root". Is there a bigger one I can use? how ?
2) How is the root or any other MooseModel normally exported? Which
methods? which technology ? Can you give me an example of the standard way
to export/serialize/copy a MooseModel ? The only thing I saw is MooseModel
class >> export: aModel to: aStream
I just open a file and send it as Stream?
3) Suppose that I copy/export somehow a MooseModel (suppose the root) to a
file. I take another Moose image, I load the file, objects are alive again
and I replace MooseModel rootModel with the new object. How do I know if the
copy/export worked correctly ? If I do it in the same image, I can have
both, but how can I compare them to be sure everything was done ok ? method
#= has no sense as it will use Object with is #==. So...any idea to know if
the MooseModel I export and load again with ImageSegment is really working
or not?
I want to test exporting and loading these MooseModel with different
technologies but I need a way to know if the resulted object is correct or
not.
Ahhh please, cc' me in the mail as I am not sure I receive emails from this
list.
Thanks for any hints.
Mariano
I need other clarifications on the topic of how to handle Java models in Famix.
How should we handle nested classes?
Right now, it appears infusion imports nested classes directly in a namespace, and loses the information about the parent class.
For example, anonymous classes are imported but we get no clue about the defining context, so it's pretty much useless.
Given that namespaces, but also classes and methods can contain types in Famix, why don't we use this attribute?
But then, how to access the namespace of a nested class?
Here is a brief and good overview of the different types of nested classes in Java:
http://blogs.sun.com/darcy/entry/nested_inner_member_and_top
--
Simon
I know that the requirements for mooseName are not completely explicit, however one condition which seems pretty interesting but is not completely enforced right now is that a moose name should be unique.
This is not the case for signatures from languages which provide overloading, like Java.
With infusion for example, SampleClass.method1(int) and SampleClass.method1(String) share the same mooseName SampleClass.method1()
Worse, I have seen cases where you can confuse getter and setter
void SampleCase.attribute(String attr) -> SampleCase.attribute()
String SampleCase.attribute() -> SampleCase.attribute()
Also since the moose finder uses #mooseName to format entities, this shows in the Moose finder.
Maybe we should adopt the convention of using the real signature in the moosename.
--
Simon
Hi,
I am looking into AST-Semantic. I found the one from the http://www.squeaksource.com/rb
.
However, this one does not have the methods:
- RBProgramNode>>isSuper
- RBVariableNode>>isSuper
These are needed for the SmalltalkImporter.
Am I looking at the wrong repository, or are these methods just missing?
Cheers,
Doru
--
www.tudorgirba.com
"When people care, great things can happen."
Hello
I am trying to load Glamour into Squeak 4.1. but run into a problem
completing the loading.
1) Use ConfigurationOfGlamour-tg.38.mcz (21 May 2010) in Squeak 4.1
trunk (or Squeak 4.2alpha updated)
2) Evaluate
ConfigurationOfGlamour loadDefault
3) A warning pops up
This package depends on the following classes:
Announcer
Announcement
(I am not told which package ).
Question: Where do I find the class Announcer and Announcement?
Thank you for the answer in advance.
Hannes
P.S. I tried to ignore this warning and proceeded. It loads quite a
lot but the examples do not work because the class GLMTabulator is not
known.
GLMTabulator seems to be a central class. Maybe I can load it through
other means. I do not necessarily need everyting at this moment. I
would just like to do a few simple examples to explore a net of
objects.
Hello,
I didn't find any issue about this problem, but it surely exist one:
When I import a model with inFusion and then try to export it to MSE, it
raise an error.
In my case, the 'isWrite' instance variable of a FAMIXAccess is not
initialized when importing MSE from inFusion. Then, it generate an error
when trying to export this information.
The problem come from inFusion, and I don't know if someone is already
looking at that? (tell me if I have to open an issue)
I'm trying to set some actions on items in a glamour tree presentation, say:
actions: [:tree | tree selection xMenuItems ]
But #selection called on the widget returns nil. Is this the expected behaviour?
I managed to get what I wanted after diving in the object:
actions: [:tree | tree selectionPath last xMenuItems ]
--
Simon
Hi,
I have improved a bit the drop down list. Its superclass now is GLMFormattedPresentation.
The new versions are:
Glamour-Presentations-VeronicaUquillas.79
Glamour-Morphic-VeronicaUquillas.282
Glamour-Examples-VeronicaUquillas.142
Regards,
Veronica
Hi,
i was looking for the type returned by a java method but i didn't find anything related to it neither in the FAMIX MM nor in the MSE file generated by inFusion. Is this information available in the meta model?
Cheers,
Fabrizio
hi thorsten
Good to hear about you. We made huge progress since then :)
Now for PHP we do not have an importer but I imagine about a week of work to get one using fame and PHP knowledge.
I imagine that we some incentives we could find some ways to have this support. :)
tell us more
Stef
> hello,
>
> i have just a short question. i know moose from my good old smalltalk times, but i'm currently need to reorganize a huge php project. are you supporting php code as well?
>
> best regards
>
> thorsten dittmar
> _______________________________________________
> Moose mailing list
> Moose(a)iam.unibe.ch
> https://www.iam.unibe.ch/mailman/listinfo/moose