roassal presentation
DESCRIPTION
TRANSCRIPT
![Page 1: Roassal presentation](https://reader034.vdocuments.net/reader034/viewer/2022051818/54b6e06e4a7959f4118b4690/html5/thumbnails/1.jpg)
Roassalturn your programming environment into a
beauty center for objects
Vanessa PeñaCamilo Gomez
Alexandre Bergel
Object Profile & University of Chile
![Page 2: Roassal presentation](https://reader034.vdocuments.net/reader034/viewer/2022051818/54b6e06e4a7959f4118b4690/html5/thumbnails/2.jpg)
Roassal
Advanced visualization engine
Useful to draw pictures of your data
Well modularized Easily portable (Pharo, VisualWorks, Amber, ...)
Few external dependencies
Open source (MIT)
![Page 3: Roassal presentation](https://reader034.vdocuments.net/reader034/viewer/2022051818/54b6e06e4a7959f4118b4690/html5/thumbnails/3.jpg)
![Page 4: Roassal presentation](https://reader034.vdocuments.net/reader034/viewer/2022051818/54b6e06e4a7959f4118b4690/html5/thumbnails/4.jpg)
view nodes: Collection withAllSubclasses.
![Page 5: Roassal presentation](https://reader034.vdocuments.net/reader034/viewer/2022051818/54b6e06e4a7959f4118b4690/html5/thumbnails/5.jpg)
view nodes: Collection withAllSubclasses.
![Page 6: Roassal presentation](https://reader034.vdocuments.net/reader034/viewer/2022051818/54b6e06e4a7959f4118b4690/html5/thumbnails/6.jpg)
view nodes: Collection withAllSubclasses.view edgesFrom: #superclass.
![Page 7: Roassal presentation](https://reader034.vdocuments.net/reader034/viewer/2022051818/54b6e06e4a7959f4118b4690/html5/thumbnails/7.jpg)
view nodes: Collection withAllSubclasses.view edgesFrom: #superclass.view treeLayout
![Page 8: Roassal presentation](https://reader034.vdocuments.net/reader034/viewer/2022051818/54b6e06e4a7959f4118b4690/html5/thumbnails/8.jpg)
view shape rectangle ! width: #numberOfVariables;! height: #numberOfMethods.view nodes: Collection withAllSubclasses.view edgesFrom: #superclass.view treeLayout
DEMO
![Page 9: Roassal presentation](https://reader034.vdocuments.net/reader034/viewer/2022051818/54b6e06e4a7959f4118b4690/html5/thumbnails/9.jpg)
Roassal architecture & model
Pharo, VW, Amber
Roassal
Mondrian
Your application
GraphicalElement
shape1 shape2 shape3
interactiondictionary
![Page 10: Roassal presentation](https://reader034.vdocuments.net/reader034/viewer/2022051818/54b6e06e4a7959f4118b4690/html5/thumbnails/10.jpg)
#executions
execution time
gray = side effectyellow = no side effect
A
B
D
C
E
F
1
2
3Method 1 calls Method 2.Method 3 calls Method 1
Profiling blueprint
10
![Page 11: Roassal presentation](https://reader034.vdocuments.net/reader034/viewer/2022051818/54b6e06e4a7959f4118b4690/html5/thumbnails/11.jpg)
Profiling blueprint
11
#executions
execution time
gray = side effectyellow = no side effect
A
B
D
C
E
F
1
2
3Method 1 calls Method 2.Method 3 calls Method 1
methods that takes times, are executed many times,
and without significant side effect
![Page 12: Roassal presentation](https://reader034.vdocuments.net/reader034/viewer/2022051818/54b6e06e4a7959f4118b4690/html5/thumbnails/12.jpg)
Adding a memoization
ROElement>>bounds! "Return the bounds of the element"
! boundsCache ifNotNil: [ ^ boundsCache ].
! ^ boundsCache := self position extent: (shape extentFor: self)
![Page 13: Roassal presentation](https://reader034.vdocuments.net/reader034/viewer/2022051818/54b6e06e4a7959f4118b4690/html5/thumbnails/13.jpg)
Adding a memoization
ROElement>>bounds! "Return the bounds of the element"
! boundsCache ifNotNil: [ ^ boundsCache ].
! ^ boundsCache := self position extent: (shape extentFor: self)
![Page 14: Roassal presentation](https://reader034.vdocuments.net/reader034/viewer/2022051818/54b6e06e4a7959f4118b4690/html5/thumbnails/14.jpg)
Effect of the memoization
14
![Page 15: Roassal presentation](https://reader034.vdocuments.net/reader034/viewer/2022051818/54b6e06e4a7959f4118b4690/html5/thumbnails/15.jpg)
AB C D
cached
absoluteBoundsmake display:on:
call absoluteBoundsinstead of absoluteBoundsFor:
A'
C'
B'
C'
15
![Page 16: Roassal presentation](https://reader034.vdocuments.net/reader034/viewer/2022051818/54b6e06e4a7959f4118b4690/html5/thumbnails/16.jpg)
16
Execution profiling blueprints. So!ware: Practices and Experience, 2012Visualizing Dynamic Metrics with Profiling Blueprints. Proceedings of the TOOLS, 2010Counting Messages as a Proxy for Average Execution Time in Pharo. Proceedings of ECOOP, 2011Identifying Optimization Opportunities by Visualizing So!ware Execution. To be submitted to CACM
![Page 17: Roassal presentation](https://reader034.vdocuments.net/reader034/viewer/2022051818/54b6e06e4a7959f4118b4690/html5/thumbnails/17.jpg)
17
![Page 18: Roassal presentation](https://reader034.vdocuments.net/reader034/viewer/2022051818/54b6e06e4a7959f4118b4690/html5/thumbnails/18.jpg)
18
VisuAuleVisual code inspector
By Camilo during the ‘show us your project’ session
![Page 19: Roassal presentation](https://reader034.vdocuments.net/reader034/viewer/2022051818/54b6e06e4a7959f4118b4690/html5/thumbnails/19.jpg)
Join us!
We have positions Interships
Engineering
Master
PhD
Deadline is the end of this month
Santiago is a cool city! no mosquitos!
![Page 20: Roassal presentation](https://reader034.vdocuments.net/reader034/viewer/2022051818/54b6e06e4a7959f4118b4690/html5/thumbnails/20.jpg)
ObjectProfile.comfacebook.com/ObjectProfile@ObjectProfile
Spy @ Cincom StoreSpy @ SqueakSourceSpy @ ...
Thanks to all of you guys!