Hi!
I had fun implementing a spring layout in mondrian. Try:
-=-=-=--=-=-=-=--=-=-=-=--=
| view |
view := MOViewRenderer title: 'Spring layout example'.
view interaction refreshLayoutEvery: 30.
view shape rectangle size: 15.
view nodes: (1 to: 30).
view edges: (1 to: 30) from: #yourself to: [:v | v \\ 5].
view springLayout.
view open
-=-=-=--=-=-=-=--=-=-=-=--=
A spring layout was my very first program in Smalltalk, about 10 years
ago. It was fun to show it to Michele. Fortunately for me, he spoke
French :-)
In its actual state, the layout does not scale. If you have more than
100 nodes, it will become very slow. The algorithm complexity is quite
bad. I had some ideas on making it a bit more scalable.
Cheers,
Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Hi all,
I try to use Moose in a pharo1.1.
I have a small bug in Mondrian:
It uses the method clone, which is no more defined in pharo1.1,
To resolve the bug, I replace it by copy, but I don't now what are the ripple effects.
With this, I do well a DSM.
Cheers,
---
Jannik Laval
Hi guys
Since moose is a platform it is not obvious that you are forced to refer to it when writing papers.
May be you are working on representing the evolution of mushrooms grow in sahara and your
competitors will kill you if you do not cite their previous great and fabulous work on mushrooms
drying in sahara sub-mediteranean.
Now please not forget that you can model mushrooms often because you use Moose, so adding a
reference to Moose, Mondrian and others is important too. More important that you believe
so please remember it to yourself. Be nice with your friends.
Because if you are only nice with your competitors then may be this is better after all but we
do not share the same idea of life (and deontology).
Stef
one possible way to refer to moose is
@incollection{Duca05a,
Abstract = {Software systems are complex and difficult to
analyze. Reverse engineering is a complex analysis
that usually involves combining different techniques
and tools. Moreover, oftentimes the existing tools
are not perfectly suitable for the task, and
customization of existing tools, or development of
new tools is required. Moose is an extensible
reengineering environment designed to provide the
necessary infrastructure for tool integration. Moose
centers on a language independent meta-model, and
offers services like grouping, querying, navigation,
and advanced tool integration mechanism.},
Address = {Milano},
Aeres = {OS},
Aeresstatus = {aeres08},
Annote = {articlebook},
Author = {St\'ephane Ducasse and Tudor G\^irba and Michele
Lanza and Serge Demeyer},
Booktitle = {Tools for Software Maintenance and Reengineering},
Inria = {hors},
Isbn = {88-464-6396-X},
Keywords = {moose-pub scg-pub skipdoi jb05 recast05 stefPub
jointERCIM girba},
Pages = {55--71},
Publisher = {Franco Angeli},
Series = {RCOST / Software Technology Series},
Title = {Moose: a Collaborative and Extensible Reengineering
Environment},
Url =
{http://scg.unibe.ch/archive/papers/Duca05aMooseBookChapter.pdf},
Year = {2005},
Bdsk-Url-1 =
{http://scg.unibe.ch/archive/papers/Duca05aMooseBookChapter.pdf}
}
Is there a place where 'mcc' (fact extractor that parses C/C++ code) can
be accessed? I tried on the homepage of the LOOSE project, but it was
not accessible. It also didn't seem to be a part of the MOOST suite or
inFusion tools.
(I am working on Ubuntu.)
Thank you!
--
Marc Toussaint, Ph.D.
TU Berlin
Franklinstr. 28/29 FR6-9
10587 Berlin, Germany
+49 (0)30 314 24470
http://ml.cs.tu-berlin.de/~mtoussai/
Hi,
I exchanged a number of emails with Jaayer and Norbert regarding some
improvements of XMLSupport and its port to Gemstone.
It may be a bit difficult for people to follow this, but I think it is
important to not discuss privately.
>>>>> I already changed
>>>>>
>>>>> XMLTokenizer>>nextName
>>>>> ....
>>>>> ^ self fastStreamStringContents: nameBuffer
>>>>>
>>>>> to
>>>>>
>>>>> XMLTokenizer>>nextName
>>>>> ....
>>>>> ^ (self fastStreamStringContents: nameBuffer) asSymbol
>>>>>
>>>>> in the gemstone parser to be more consistent.
>>>>
>>>> Have you noticed any slow down for this?
>>>>
>>> No I didn't do any tests. But if internally all names are symbols
>>> than I guess converting it while reading is the best way to do.
>>
>> I added benchmark1 in XMLParserTest. Really simple way to measure
>> progress (or slowdown).
>> On my machine, I have:
>> XMLParserTest new benchmark1
>> => 2097
>>
>> Adding "(self fastStreamStringContents: nameBuffer) asSymbol"
>> increase the bench to 2273
>>
> I don't believe this ;) you read them as string from the stream. If
> they are managed as symbols somehow they need to be converted. If
> not at this place then on some other. I would suspect that there are
> doubled calls to asSymbol. Could you check the sources?
There is indeed a slowdown. I am not sure where it comes from however.
Executing twice "XMLParserTest new benchmark1" does not return the
same result. Actually, it increases at each execution! I thought that
a garbage collect before running the bench would help, does apparently
it does not.
Calling asSymbol on a symbol should not be perceptible I believe.
Cheers,
Alexandre
>>> anElement attributes class (I wrote species but that will fail in
>>> gemstone too I guess. Hell!)
>>
>> I just committed with species. Let me know. This is easy to adjust.
>>
> Ok.
>
>>>>> The gemstone XML Parser decides somehow to use
>>>>> IdentityDictionary internally. I think this should be allowed. I
>>>>> just changed Dictionary to IdentityDictionary so the = test
>>>>> reflects the right type. If you change it it is clear that it
>>>>> fails. Because pharo uses Dictionary internally. So you might
>>>>> see that it is not a question of using Dictionary or
>>>>> IdentityDictionary but a question of the wrongness of using =
>>>>
>>>> How the XMLNodeTest should look like to accommodate your situation?
>>>>
>>> I need to recheck this. The problem is really that the XML Parser
>>> creatios instances of class Association but { #key->'value' }
>>> creates an instance of class SymbolAssociation. That means I would
>>> know how to fix the test but I want to understand the implications
>>> of all of this. I'll get to you if I know anything new.
>>
>> Ok.
>>
> My mail to the gemstone list led to a ticket about removing class
> checks from Association. That would be easing the handling a lot.
>
> Norbert
>>>
>>>
>>>> Alexandre
>>>>
>>>>>
>>>>>>> Here there is an assumption about the allAttributes collection
>>>>>>> while using = as comparsion. But there is also an assumption
>>>>>>> about the order of the content. I changed this to
>>>>>>>
>>>>>>> self assert: (firstPerson allAttributes includesAllOf:
>>>>>>> #(#'first-name' #'employee-number' #'family-name')).
>>>>>>> self assert: (firstPerson allAttributeAssociations asArray
>>>>>>> includesAllOf: {(#'first-name'->'Bob'). (#'employee-number'-
>>>>>>> >'A0000'). (#'family-name'->'Gates')}).
>>>>>>
>>>>>> Very right. My mistake. But wouldn't an asSortedCollection do
>>>>>> the thing? Do you not test the size of the array.
>>>>>>
>>>>>>> This is not the best way to do because the check is only in
>>>>>>> one direction but for this test it is ok. Somehow the second
>>>>>>> assert fails and I have to check what is going on here.
>>>>>>
>>>>>> Yeah, my mistake. Sorry. The elements may be differently
>>>>>> ordered. Would a asSortedCollection help?
>>>>>>
>>>>>> I have now granted you an access to the repository. You should
>>>>>> be able to directly commit in it.
>>>>>>
>>>>>> Jaayer, what is your Squeaksource account?
>>>>>>
>>>>>> Cheers,
>>>>>> Alexandre
>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On 28.02.2010, at 02:01, Alexandre Bergel wrote:
>>>>>>>
>>>>>>>>> thanks for now. I did a first merge attempt. It will be
>>>>>>>>> quite a bit of work. For me the xml parser is an important
>>>>>>>>> component. With the newest changes it became biased towards
>>>>>>>>> pharo. There are things like ClassTestCase, Unicode
>>>>>>>>> CharacterSet. These are for sure improvements/changes in
>>>>>>>>> pharo you like to use. But they make porting a lot more
>>>>>>>>> difficult. I would be glad if we could find some way to
>>>>>>>>> lower the porting barrier. The necessary class I could put
>>>>>>>>> in the squeak compat package in gemstone. But then the xml
>>>>>>>>> parser will depend on the squeak package which I don't like.
>>>>>>>>
>>>>>>>>
>>>>>>>> Hi Norbert,
>>>>>>>>
>>>>>>>> XMLParser effectively depends on Squeak specific classes. I
>>>>>>>> wrote a small script that identify the squeak classes used in
>>>>>>>> XML-Support. Here is the list: LanguageEnvironment, Unicode,
>>>>>>>> LocaleID, CharacterSet
>>>>>>>>
>>>>>>>> I guess that porting the whole multilingual support may not
>>>>>>>> be that easy. The tag xml:lang is used to select the proper
>>>>>>>> support. It should be easy for you to ignore it I guess.
>>>>>>>>
>>>>>>>> CharacterSet seems to be one that has to be ported. It is not
>>>>>>>> a big class. It depends on WideCharacterSet. I am not sure
>>>>>>>> whether this is useful in your case however.
>>>>>>>>
>>>>>>>> Cheers,
>>>>>>>> Alexandre
>>>>>>>>
>>>>>>>> --
>>>>>>>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>>>>>>>> Alexandre Bergel http://www.bergel.eu
>>>>>>>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>> --
>>>>>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>>>>>> Alexandre Bergel http://www.bergel.eu
>>>>>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>>> --
>>>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>>>> Alexandre Bergel http://www.bergel.eu
>>>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>
>> --
>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>> Alexandre Bergel http://www.bergel.eu
>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>
>>
>>
>>
>>
>
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Hi!
Apparently, WizardPart>>contents: is deprecated, but it get invoked
when do you a ChooseFilePart new.
Cheers,
Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Hi!
I wanted to load the last version of Moose to try Cyrille code, but I
bumped into:
This package depends on the following classes:
MAMatrix
MAVector
MASymetricMatrix
You must resolve these dependencies before you will be able to load
these definitions:
DudeBooleanMatrix
DudeBooleanSymetricMatrix
DudeBooleanVector
Select Proceed to continue, or close this window to cancel the
operation.
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Hi!
Here is a short script excerpt I use.
view shape rectangle
size: 10;
fillColor: [ :aMethod | aMethod isCovered ifTrue: [ Color lightRed ]
ifFalse: [ Color white ]].
view nodes: (aClass methods sortedAs: #isCovered).
I feel the way the color is set is very verbose.
The following are equivalent
fillColor: { #isCovered -> #lightRed }
fillColor: { [:m | m isCovered] -> #lightRed }
fillColor: { #isCovered -> #lightRed . [:m | m isCovered not ] ->
#white}
The white color could be the default color is no color is picked up.
In the script above, I also use #sortedAs: to sort my elements. I find
this method quite handy. It is defined as an extension of Collection.
It is more flexible than Jannik's #sortedBy: and Moose's #sorted:.
#sortedAs operates on boolean as well.
Any opinion?
Cheers,
Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Hi all,
Using todays moose and pharo rc2. See the image below to understand what the title means. I'd like the entire mondrian pane to be white, as it was in previous versions. How do I do this? Thanks in advance!
--
Johan Fabry
jfabry(a)dcc.uchile.cl - http://dcc.uchile.cl/~jfabry
PLEIAD Lab - Computer Science Department (DCC) - University of Chile