Done, check with the last version of Roassal
| b color |
b := RTTreeMapBuilder new.
color := RTScale linear
domain: { 0. 12000.};
range: { Color gray. Color red }.
b
color: Color transparent;
borderColor: Color black;
leafColor: [ :f | color scale: f size sqrt ];
leafWeight: [:f | f size sqrt ];
explore: FileSystem disk workingDirectory
nesting: #directories
leaves: #files.
b build.
^ b view
[image: Imágenes integradas 1]
Cheers,
Milton
2015-08-23 9:37 GMT-04:00 Alexandre Bergel <alexandre.bergel(a)me.com>:
Make sense to me
Alexandre
Le 23 août 2015 à 07:32, Tudor Girba <tudor(a)tudorgirba.com> a écrit :
It looks great.
The only place which still requires the if now is the specification of
color.
I think that for this builder, given that the shape is predefined, it
makes sense to provide direct color manipulation in the builder:
| b color |
b := RTTreeMapBuilder new.
color := RTScale linear
domain: { 0. 12000.};
range: { Color green. Color red }.
b
* color: Color transparent;*
* borderColor: Color black;*
* leafColor: [ :f | color scale: f size sqrt ];*
leafWeight: [:f | f size sqrt ];
explore: FileSystem disk workingDirectory
nesting: #directories
leaves: #files.
b build.
^ b
What do you think?
Cheers,
Doru
On Fri, Aug 21, 2015 at 12:52 AM, milton mamani <akevalion(a)gmail.com>
wrote:
> Hi Tudor,
>
> I've been working on this. The next piece of code shows an example in the
> file system.
>
> .=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=
> | b color |
> b := RTTreeMapBuilder new.
> color := RTScale linear
> domain: { 0. 12000.};
> range: { Color green. Color red }.
> b shape
> color: Color transparent;
> borderColor: Color black;
> if: [ :f | f isFile ] color: [ :f | color scale: f size sqrt ].
> b
> *leafWeight: *[:f | f size sqrt ];
> *explore:* FileSystem disk workingDirectory
> * nesting:* #directories
> * leaves: *#files.
> b build.
> ^ b view
> .=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=
>
>
> #explore:nesting:leaves: is related to the point 1, please tell me is
> that what you expected?
> #leaftWeight: selector is related to the point 2 and the point 3,
>
>
> The result for RTTreeMapBuilder
>
> [image: Imágenes integradas 2]
>
> the color means red = big file.
>
> This is the result for RTCircularTreeMapBuilder
>
> [image: Imágenes integradas 3]
>
> Cheers,
> Milton
>
>
>
> 2015-07-31 9:16 GMT-04:00 Alexandre Bergel <alexandre.bergel(a)me.com>:
>
>> Excellent!
>> We will work on this!
>>
>> Alexandre
>> --
>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>> Alexandre Bergel
http://www.bergel.eu
>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>
>>
>>
>> On Jul 31, 2015, at 5:06 AM, Tudor Girba <tudor(a)tudorgirba.com> wrote:
>>
>> Hi,
>>
>> I use it quite often.
>>
>> The builder is Ok, but I would improve some things to make it elegant:
>>
>> 1. A treemap works well when there is a nested structure of one kind of
>> nodes and the leaves are of a different kind. So, folder/file,
>> packages/classes. Thus, having only one traversal will inevitably lead to
>> an if inside. I would rather be interested in having a higher level
>> constructs that allow us to state what is the nested structure, and what
>> are the leaves. Perhaps like this:
>> b
>> buildFrom: aRootNestingObject
>> nesting: [ :aNestingObject | aNestingObject childNestedObjects ]
>> leaves: [ :aNestingObject | aNestingObject childLeaves]
>>
>> 2. The aggregation of metrics should be built in. Typically, you want
>> the size of the nested structure to be deduced by the aggregate size of the
>> inner leaves. Thus, ideally, there should be a way to specify the weight
>> only for the leaves and let the engine do the rest of calculations. For
>> example, in the case of the file system visualization, the weight block
>> looks like
>> weight: [ :each |
>> each isFile
>> ifTrue: [each size max: 1]
>> ifFalse: [(each allChildren sumNumbers: #size) max: 1 ] ].
>> This means that I will traverse and compute the size of files needlessly
>> multiple times for each of the parent folder. To make it faster, I would
>> have to build a cache for the size of files and look it up in the block.
>> This should be offered by the engine because it is the default use case.
>> So, I should only say:
>> b leafWeight: [:file | file size]
>>
>> 3. Talking about weights, if the weight is 0, the builder crashes. This
>> should be made more robust. In my scripts, I always add a "max: 1",
but
>> this is clumsy. This should be built in.
>>
>> The same remarks apply for the RTTreeMapBuilder.
>>
>> Cheers,
>> Doru
>>
>>
>> On Fri, Jul 31, 2015 at 12:38 AM, Alexandre Bergel <
>> alexandre.bergel(a)me.com> wrote:
>>
>>> Excellent!
>>>
>>> By the way, you told me you use the treemap builder quite a lot.
>>> This means you are happy about it right ? Do you have anything to
>>> change?
>>>
>>> Alexandre
>>>
>>>
>>> > On Jul 30, 2015, at 5:35 PM, Tudor Girba <tudor(a)tudorgirba.com>
>>> wrote:
>>> >
>>> > Of course, it is. In fact, a treemap is a better suited
>>> representation for understanding the size of a file system.
>>> >
>>> > Here it is:
>>> >
http://ws.stfx.eu/C9RM2EURHKMI
>>> >
>>> > <file-treemap.png>
>>> >
>>> > Cheers,
>>> > Doru
>>> >
>>> > On Thu, Jul 30, 2015 at 8:40 PM, H. Hirzel
<hannes.hirzel(a)gmail.com>
>>> wrote:
>>> > Is it possible to use a tree map?
>>> >
>>> > --Hannes
>>> >
>>> > On 7/30/15, Alexandre Bergel <alexandre.bergel(a)me.com> wrote:
>>> > > I gave a try, and I did not find anything weird.
>>> > > I guess your document folder contains many files, as Doru said
>>> > >
>>> > > Alexandre
>>> > > --
>>> > > _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>>> > > Alexandre Bergel
http://www.bergel.eu
>>> > > ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>> > >
>>> > >
>>> > >
>>> > >> On Jul 30, 2015, at 5:51 AM, Dimitris Chloupis <
>>> kilon.alios(a)gmail.com>
>>> > >> wrote:
>>> > >>
>>> > >> Frankly I dont mind big images or big data , neither I share
the
>>> obsession
>>> > >> to shrink things down to few mbs in a time that we are talking
in
>>> TBs .
>>> > >>
>>> > >> Anyway you asked for the image and this is a link to it
>>> > >>
>>> > >>
>>>
https://www.dropbox.com/s/wh1071xgoo54fq7/1%20Ephestos%2027-05-15.zip?dl=0
>>> > >> <
>>>
https://www.dropbox.com/s/wh1071xgoo54fq7/1%20Ephestos%2027-05-15.zip?dl=0
>>> >
>>> > >>
>>> > >> I dont think you will find anything abnormal about it though.
>>> > >>
>>> > >> I was wondering whether it would worth the effort beyond the
unit
>>> tests
>>> > >> that check for behaviour of the code to have also benchmark
tests
>>> that
>>> > >> will have to pass specific standards so that specific method
must
>>> perform
>>> > >> under a strict timetable specific tasks, this way CI may alert
not
>>> only
>>> > >> unit tests that fail but also benchmarks that fail ,
automagically.
>>> > >>
>>> > >> Maybe some food for thought.
>>> > >>
>>> > >> Personally I am far more worried how much CPU Pharo consumes
than
>>> how much
>>> > >> RAM.
>>> > >>
>>> > >> On Wed, Jul 29, 2015 at 11:54 PM Peter Uhnák
<i.uhnak(a)gmail.com
>>> > >> <mailto:i.uhnak@gmail.com>> wrote:
>>> > >> Not sure if there is any downside (I've been using it for a
long
>>> time
>>> > >> without problems), but image cleanup often does wonders for
me.
>>> > >>
>>> > >> Moose image
>>> > >> 410 MB => cleanup (World -> System -> Do Image
Cleanup) => save
>>> => 237
>>> > >> MB
>>> > >> and I even had situations where it went from ~600 MB to ~60
MB.
>>> > >> (As to why my images are so massive... right now there are 19
>>> windows
>>> > >> opened inside most of them with opened roassal
visualization...
>>> and I am
>>> > >> saving like every five minutes... but that is just a guess.)
>>> > >>
>>> > >> But image cleanup is supposed to break things, so better to
backup
>>> the
>>> > >> folder first.
>>> > >> Plus is cache really necessary? I mean it's a cache. .image
+
>>> .changes
>>> > >> should usually suffice.
>>> > >>
>>> > >> Peter
>>> > >>
>>> > >> On Wed, Jul 29, 2015 at 10:45 PM, Dimitris Chloupis <
>>> kilon.alios(a)gmail.com
>>> > >> <mailto:kilon.alios@gmail.com>> wrote:
>>> > >> Tudor I dont know if you received my message but I already
>>> answered that
>>> > >> with this:
>>> > >>
>>> > >> "ah ok then its normal. Yes the structure is extensive,
its 13
>>> folders
>>> > >> (the rest 71 are files some of them very big), I would not be
>>> surprised if
>>> > >> each contains 100 files in its own subfolders."
>>> > >>
>>> > >>
>>> > >>
>>> > >> On Wed, Jul 29, 2015 at 11:30 PM Tudor Girba
<tudor(a)tudorgirba.com
>>> > >> <mailto:tudor@tudorgirba.com>> wrote:
>>> > >> Hi,
>>> > >>
>>> > >> But, do you confirm that you have many files under the
mentioned
>>> folder?
>>> > >>
>>> > >> Cheers,
>>> > >> Doru
>>> > >>
>>> > >>
>>> > >>
>>> > >> On Wed, Jul 29, 2015 at 10:25 PM, Dimitris Chloupis <
>>> kilon.alios(a)gmail.com
>>> > >> <mailto:kilon.alios@gmail.com>> wrote:
>>> > >> the image is 180 mb, changes are another 15, there are several
>>> other
>>> > >> folders that raise the total size to 250 mb, monticello-cache
and
>>> > >> github-cache prodominately.
>>> > >>
>>> > >> Hmm ok my bad, the size of the zip is 89 MB not 200 mb. Still
will
>>> take me
>>> > >> 1-2 hours to upload on this connection. So if you guys still
need
>>> the
>>> > >> image i can upload tommorow from work, though it seems my slow
>>> down is
>>> > >> normal.
>>> > >>
>>> > >> Afterall I am sure you can test it yourselves on complex file
>>> structures
>>> > >> to see if it has delays as long as 20 minutes.
>>> > >>
>>> > >>
>>> > >>
>>> > >> On Wed, Jul 29, 2015 at 11:01 PM Sven Van Caekenberghe <
>>> sven(a)stfx.eu
>>> > >> <mailto:sven@stfx.eu>> wrote:
>>> > >>
>>> > >> > On 29 Jul 2015, at 21:33, Dimitris Chloupis <
>>> kilon.alios(a)gmail.com
>>> > >> > <mailto:kilon.alios@gmail.com>> wrote:
>>> > >> >
>>> > >> > well i can send you the image tommorow because its huge
(200 MB
>>> ziped)
>>> > >> > for my pathetically slow internet connection at home. I
will
>>> send it
>>> > >> > from work which is 8 times faster.
>>> > >>
>>> > >> If the image is 200 MB zipped, how large is it in its normal
state
>>> ?
>>> > >>
>>> > >> For me, a 100 MB image file is already quite large, that would
>>> compress to
>>> > >> maybe 20/30 MB.
>>> > >>
>>> > >> This doesn't sound right to me, unless you explicitly tried
to
>>> store a lot
>>> > >> of data.
>>> > >>
>>> > >> Maybe something else is wrong that would explain the slowness.
>>> > >>
>>> > >> > I can tell you that I am on MacOS Yosemite , I get my
image with
>>> > >> > pharolauncher, the image was dowloaded at 27-07-15 some of
the
>>> 84 items
>>> > >> > are folders that contain many sub folders. No idea if
that
>>> matters.
>>> > >> >
>>> > >> > I got Roassal 2 using the Package Browser in Pharo 5 (the
new
>>> > >> > configuration browser).
>>> > >> >
>>> > >> > On Wed, Jul 29, 2015 at 8:17 PM Alexandre Bergel
>>> > >> > <alexandre.bergel(a)me.com
<mailto:alexandre.bergel@me.com>>
>>> wrote:
>>> > >> > Are you using windows? I know it may has problems
regarding the
>>> source
>>> > >> > code. You have 84 items and the visualization is slow? How
is
>>> this
>>> > >> > possible.
>>> > >> >
>>> > >> > Can I have a look at your image?
>>> > >> >
>>> > >> > Cheers,
>>> > >> > Alexandre
>>> > >> > --
>>> > >> > _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>>> > >> > Alexandre Bergel
http://www.bergel.eu
<
http://www.bergel.eu/>
>>> > >> > ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>> > >> >
>>> > >> >
>>> > >> >
>>> > >> >> On Jul 29, 2015, at 12:26 PM, Dimitris Chloupis <
>>> kilon.alios(a)gmail.com
>>> > >> >> <mailto:kilon.alios@gmail.com>> wrote:
>>> > >> >>
>>> > >> >> thats ok it unfroze after 20 minutes or so . I managed
to
>>> inspect the b
>>> > >> >> but its incredible slow to navigate and use . Even
moving the
>>> inspector
>>> > >> >> around is incredible slow. My Documents folder
contains 84
>>> items, maybe
>>> > >> >> it cant handle so well this amount of datea ?
>>> > >> >>
>>> > >> >> On Wed, Jul 29, 2015 at 5:55 PM Alexandre Bergel
>>> > >> >> <alexandre.bergel(a)me.com
<mailto:alexandre.bergel@me.com>>
>>> wrote:
>>> > >> >> Oh… sorry. Was not my intention
>>> > >> >>
>>> > >> >> Alexandre
>>> > >> >> --
>>> > >> >> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>>> > >> >> Alexandre Bergel
http://www.bergel.eu
<
http://www.bergel.eu/>
>>> > >> >> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>> > >> >>
>>> > >> >>
>>> > >> >>
>>> > >> >>> On Jul 29, 2015, at 11:24 AM, Dimitris Chloupis
<
>>> kilon.alios(a)gmail.com
>>> > >> >>> <mailto:kilon.alios@gmail.com>> wrote:
>>> > >> >>>
>>> > >> >>> that was a nice way to freeze my image, thank you
:D
>>> > >> >>>
>>> > >> >>> On Wed, Jul 29, 2015 at 4:27 PM Alexandre Bergel
>>> > >> >>> <alexandre.bergel(a)me.com
<mailto:alexandre.bergel@me.com>>
>>> wrote:
>>> > >> >>> Hi!
>>> > >> >>>
>>> > >> >>> Just to share a couple of experiment. I have tried
the
>>> following in a
>>> > >> >>> playground:
>>> > >> >>> -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
>>> > >> >>> b := RTMondrian new.
>>> > >> >>>
>>> > >> >>> b shape rectangle
>>> > >> >>> if: [ :aFile | aFile path basename beginsWith:
'.' ]
>>> color: Color
>>> > >> >>> red.
>>> > >> >>> b nodes: FileLocator documents allChildren.
>>> > >> >>> b edges connectFrom: #parent.
>>> > >> >>> b normalizer
>>> > >> >>> normalizeSize: #size using: #sqrt.
>>> > >> >>> b layout tree.
>>> > >> >>> b
>>> > >> >>> -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
>>> > >> >>>
>>> > >> >>> It shows a tree of the file system. Thanks to GT,
simply
>>> clicking on a
>>> > >> >>> file may show you the content and other things.
>>> > >> >>> <Screen Shot 2015-07-29 at 10.23.51 AM.png>
>>> > >> >>>
>>> > >> >>> You can also use the cluster layout:
>>> > >> >>> <Screen Shot 2015-07-29 at 10.25.11 AM.png>
>>> > >> >>>
>>> > >> >>> I have tried this on OS X, since the pointed
folder is
>>> ~/Documents.
>>> > >> >>>
>>> > >> >>> Cheers,
>>> > >> >>> Alexandre
>>> > >> >>> --
>>> > >> >>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>>> > >> >>> Alexandre Bergel
http://www.bergel.eu
<
http://www.bergel.eu/>
>>> > >> >>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>> > >> >>>
>>> > >> >>>
>>> > >> >>>
>>> > >> >>> _______________________________________________
>>> > >> >>> Moose-dev mailing list
>>> > >> >>> Moose-dev(a)iam.unibe.ch
<mailto:Moose-dev@iam.unibe.ch>
>>> > >> >>>
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>>> > >> >>>
<
https://www.iam.unibe.ch/mailman/listinfo/moose-dev>
>>> > >> >>
>>> > >> >> _______________________________________________
>>> > >> >> Moose-dev mailing list
>>> > >> >> Moose-dev(a)iam.unibe.ch
<mailto:Moose-dev@iam.unibe.ch>
>>> > >> >>
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>>> > >> >>
<
https://www.iam.unibe.ch/mailman/listinfo/moose-dev>
>>> > >> >> _______________________________________________
>>> > >> >> Moose-dev mailing list
>>> > >> >> Moose-dev(a)iam.unibe.ch
<mailto:Moose-dev@iam.unibe.ch>
>>> > >> >>
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>>> > >> >>
<
https://www.iam.unibe.ch/mailman/listinfo/moose-dev>
>>> > >> >
>>> > >> > _______________________________________________
>>> > >> > Moose-dev mailing list
>>> > >> > Moose-dev(a)iam.unibe.ch
<mailto:Moose-dev@iam.unibe.ch>
>>> > >> >
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>>> > >> >
<
https://www.iam.unibe.ch/mailman/listinfo/moose-dev>
>>> > >> > _______________________________________________
>>> > >> > Moose-dev mailing list
>>> > >> > Moose-dev(a)iam.unibe.ch
<mailto:Moose-dev@iam.unibe.ch>
>>> > >> >
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>>> > >> >
<
https://www.iam.unibe.ch/mailman/listinfo/moose-dev>
>>> > >>
>>> > >>
>>> > >> _______________________________________________
>>> > >> Moose-dev mailing list
>>> > >> Moose-dev(a)iam.unibe.ch <mailto:Moose-dev@iam.unibe.ch>
>>> > >>
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>>> > >> <
https://www.iam.unibe.ch/mailman/listinfo/moose-dev>
>>> > >>
>>> > >> _______________________________________________
>>> > >> Moose-dev mailing list
>>> > >> Moose-dev(a)iam.unibe.ch <mailto:Moose-dev@iam.unibe.ch>
>>> > >>
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>>> > >> <
https://www.iam.unibe.ch/mailman/listinfo/moose-dev>
>>> > >>
>>> > >>
>>> > >>
>>> > >>
>>> > >> --
>>> > >>
www.tudorgirba.com <
http://www.tudorgirba.com/>
>>> > >>
>>> > >> "Every thing has its own flow"
>>> > >> _______________________________________________
>>> > >> Moose-dev mailing list
>>> > >> Moose-dev(a)iam.unibe.ch <mailto:Moose-dev@iam.unibe.ch>
>>> > >>
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>>> > >> <
https://www.iam.unibe.ch/mailman/listinfo/moose-dev>
>>> > >>
>>> > >> _______________________________________________
>>> > >> Moose-dev mailing list
>>> > >> Moose-dev(a)iam.unibe.ch <mailto:Moose-dev@iam.unibe.ch>
>>> > >>
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>>> > >> <
https://www.iam.unibe.ch/mailman/listinfo/moose-dev>
>>> > >>
>>> > >>
>>> > >> _______________________________________________
>>> > >> Moose-dev mailing list
>>> > >> Moose-dev(a)iam.unibe.ch <mailto:Moose-dev@iam.unibe.ch>
>>> > >>
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>>> > >> <
https://www.iam.unibe.ch/mailman/listinfo/moose-dev>
>>> > >> _______________________________________________
>>> > >> Moose-dev mailing list
>>> > >> Moose-dev(a)iam.unibe.ch
>>> > >>
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>>> > >
>>> > >
>>> >
>>> >
>>> >
>>> >
>>> > --
>>> >
www.tudorgirba.com
>>> >
>>> > "Every thing has its own flow"
>>>
>>> --
>>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>>> Alexandre Bergel
http://www.bergel.eu
>>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> Moose-dev mailing list
>>> Moose-dev(a)iam.unibe.ch
>>>
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>>>
>>
>>
>>
>> --
>>
www.tudorgirba.com
>>
>> "Every thing has its own flow"
>> _______________________________________________
>> Moose-dev mailing list
>> Moose-dev(a)iam.unibe.ch
>>
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>>
>>
>>
>> _______________________________________________
>> Moose-dev mailing list
>> Moose-dev(a)iam.unibe.ch
>>
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>>
>>
>
> _______________________________________________
> Moose-dev mailing list
> Moose-dev(a)iam.unibe.ch
>
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>
>
--
www.tudorgirba.com
"Every thing has its own flow"
_______________________________________________
Moose-dev mailing list
Moose-dev(a)iam.unibe.ch
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
_______________________________________________
Moose-dev mailing list
Moose-dev(a)iam.unibe.ch
https://www.iam.unibe.ch/mailman/listinfo/moose-dev