Spectrograph in Roassal

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Spectrograph in Roassal

abergel
Hi!

During my Sunday evening coding session, I worked on a spectrograph in Roassal. 


Here a small example:

Each vertical line is a class. Height is the total amount of methods (class + metaclass). Red = class methods, Gray = instance methods.

The script is the following:
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
| b |
b := RTSpectrograph new.
b objects: (RTLayout withAllSubclasses reverseSortedAs: #numberOfMethods).
b popupText: [ :aClass :cm | cm methodClass name, '>>', cm selector ].
b lineBlock: [ :cls | cls methods, cls class methods ].
b highlight: [ :aClass :cm | cm methodClass isMeta ].
b title: 'Proportion of class methods'.
b open.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

A more sophisticated example:

Each vertical line is a class. 
Green classes are Trachel classes
Gray classes are Roassal classes
Height of a class is its age, in number of days (i.e., age of the oldest methods of the class). 
Each red dot is the creation of one of its method (i.e., when the method was created).

We can see that Trachel classes have not evolved that much, i.e., most of the methods have been defined on the same day. 

The to obtain this visualization is the following:
-=-=-=-= -=-=-=-= -=-=-=-= -=-=-=-= -=-=-=-= 
| b now |
now := DateAndTime now.
b := RTSpectrograph new.
b objects: ((RTObject withAllSubclasses , TRObject withAllSubclasses) reverseSortedAs: #livingInDays).

b highlight: [ :cls :livingDay | cls inheritsFrom: TRObject ] color: Color lightGreen.
b highlight: [ :cls :livingDay | cls gotMethodOnDay: livingDay ].

b popupText: [ :cls :age | cls name, '  ', age printString , ' days old' ].
b lineBlock: [ :cls | 0 to: cls livingInDays ].

b open.
-=-=-=-= -=-=-=-= -=-=-=-= -=-=-=-= -=-=-=-= 

If you try this code one day after I posted it, all the classes will be one pixel higher :-)

Cheers,
Alexandre

-- 
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.




_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: Spectrograph in Roassal

Sam Adams-2

Wow!  Very nice!
This larger visualization is really informative.
A movie of this visualization with frames taken every day from the Jenkins build would be very interesting over time.
Movies of the evolution of both individual classes, hierarchies, and packages.  Very inspirational.
Regards,
Sam


Sam S. Adams, Cognitive Knowledge Systems
IBM Distinguished Engineer, IBM Research
Mobile: 919-696-6064, email: [hidden email]
Assistant: Tonja Ross, 404-348-9086, Tie-Line: 824-9086, [hidden email]
<<Hebrews 11:6, Proverbs 3:5-6, Romans 1:16-17, 1 Corinthians 1:10>>

Inactive hide details for Alexandre Bergel ---05/11/2014 08:31:51 PM---Hi! During my Sunday evening coding session, I worked onAlexandre Bergel ---05/11/2014 08:31:51 PM---Hi! During my Sunday evening coding session, I worked on a spectrograph in Roassal.

From: Alexandre Bergel <[hidden email]>
To: Moose-related development <[hidden email]>
Date: 05/11/2014 08:31 PM
Subject: [Moose-dev] Spectrograph in Roassal
Sent by: [hidden email]





Hi!

During my Sunday evening coding session, I worked on a spectrograph in Roassal.


Here a small example:


Each vertical line is a class. Height is the total amount of methods (class + metaclass). Red = class methods, Gray = instance methods.

The script is the following:
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
| b |
b := RTSpectrograph new.
b objects: (RTLayout withAllSubclasses reverseSortedAs: #numberOfMethods).
b popupText: [ :aClass :cm | cm methodClass name, '>>', cm selector ].
b lineBlock: [ :cls | cls methods, cls class methods ].
b highlight: [ :aClass :cm | cm methodClass isMeta ].
b title: 'Proportion of class methods'.
b open.

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

A more sophisticated example:


Each vertical line is a class.
Green classes are Trachel classes
Gray classes are Roassal classes

Height of a class is its age, in number of days (i.e., age of the oldest methods of the class).
Each red dot is the creation of one of its method (i.e., when the method was created).

We can see that Trachel classes have not evolved that much, i.e., most of the methods have been defined on the same day.

The to obtain this visualization is the following:
-=-=-=-= -=-=-=-= -=-=-=-= -=-=-=-= -=-=-=-=
| b now |
now := DateAndTime now.
b := RTSpectrograph new.
b objects: ((RTObject withAllSubclasses , TRObject withAllSubclasses) reverseSortedAs: #livingInDays).

b highlight: [ :cls :livingDay | cls inheritsFrom: TRObject ] color: Color lightGreen.
b highlight: [ :cls :livingDay | cls gotMethodOnDay: livingDay ].

b popupText: [ :cls :age | cls name, '  ', age printString , ' days old' ].
b lineBlock: [ :cls | 0 to: cls livingInDays ].

b open.
-=-=-=-= -=-=-=-= -=-=-=-= -=-=-=-= -=-=-=-=


If you try this code one day after I posted it, all the classes will be one pixel higher :-)

Cheers,
Alexandre

--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  
http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: Spectrograph in Roassal

abergel
Thanks Sam!
I forgot to say that I got the inspiration from http://scg.unibe.ch/archive/papers/Meye06aMondrian.pdf (Figure 4).

I will push the spectrograph in the coming month. There is a whole range of interaction one want to have with the visualization...

Cheers,
Alexandre


On May 11, 2014, at 8:43 PM, Sam Adams <[hidden email]> wrote:

> Wow!  Very nice!
> This larger visualization is really informative.
> A movie of this visualization with frames taken every day from the Jenkins build would be very interesting over time.
> Movies of the evolution of both individual classes, hierarchies, and packages.  Very inspirational.
> Regards,
> Sam
>
>
> Sam S. Adams, Cognitive Knowledge Systems
> IBM Distinguished Engineer, IBM Research
> Mobile: 919-696-6064, email: [hidden email]
> Assistant: Tonja Ross, 404-348-9086, Tie-Line: 824-9086, [hidden email]
> <<Hebrews 11:6, Proverbs 3:5-6, Romans 1:16-17, 1 Corinthians 1:10>>
>
> <graycol.gif>Alexandre Bergel ---05/11/2014 08:31:51 PM---Hi! During my Sunday evening coding session, I worked on a spectrograph in Roassal.
>
> From: Alexandre Bergel <[hidden email]>
> To: Moose-related development <[hidden email]>
> Date: 05/11/2014 08:31 PM
> Subject: [Moose-dev] Spectrograph in Roassal
> Sent by: [hidden email]
>
>
>
> Hi!
>
> During my Sunday evening coding session, I worked on a spectrograph in Roassal.
>
>
> Here a small example:
> <72317837.gif>
>
> Each vertical line is a class. Height is the total amount of methods (class + metaclass). Red = class methods, Gray = instance methods.
>
> The script is the following:
> -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
> | b |
> b := RTSpectrograph new.
> b objects: (RTLayout withAllSubclasses reverseSortedAs: #numberOfMethods).
> b popupText: [ :aClass :cm | cm methodClass name, '>>', cm selector ].
> b lineBlock: [ :cls | cls methods, cls class methods ].
> b highlight: [ :aClass :cm | cm methodClass isMeta ].
> b title: 'Proportion of class methods'.
> b open.
> -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
>
> A more sophisticated example:
> <72003911.gif>
>
> Each vertical line is a class.
> Green classes are Trachel classes
> Gray classes are Roassal classes
> Height of a class is its age, in number of days (i.e., age of the oldest methods of the class).
> Each red dot is the creation of one of its method (i.e., when the method was created).
>
> We can see that Trachel classes have not evolved that much, i.e., most of the methods have been defined on the same day.
>
> The to obtain this visualization is the following:
> -=-=-=-= -=-=-=-= -=-=-=-= -=-=-=-= -=-=-=-=
> | b now |
> now := DateAndTime now.
> b := RTSpectrograph new.
> b objects: ((RTObject withAllSubclasses , TRObject withAllSubclasses) reverseSortedAs: #livingInDays).
>
> b highlight: [ :cls :livingDay | cls inheritsFrom: TRObject ] color: Color lightGreen.
> b highlight: [ :cls :livingDay | cls gotMethodOnDay: livingDay ].
>
> b popupText: [ :cls :age | cls name, '  ', age printString , ' days old' ].
> b lineBlock: [ :cls | 0 to: cls livingInDays ].
>
> b open.
> -=-=-=-= -=-=-=-= -=-=-=-= -=-=-=-= -=-=-=-=
>
> If you try this code one day after I posted it, all the classes will be one pixel higher :-)
>
> Cheers,
> Alexandre
>
> --
> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> Alexandre Bergel  http://www.bergel.eu
> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>
>
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev

--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.



_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev