hi,
I'm very happy that moose is getting into Latin America. I wonder wether there are moose-trained people here in Uruguay

best regards
Haroldo


2014-11-28 18:15 GMT-02:00 Alexandre Bergel <alexandre.bergel@me.com>:
Hi!

We had a wonderful week here in Cochabamba, Bolivia. Juan-Pablo, Juraj and I have taught Pharo and Moose during 5 days. Was pretty cool!

Here is a script that shows that one of the group was able to produce in just 3 days.
The figures analyze the content of my package-cache directory. It shows the number of commit per day, per hour, per author. 




-=-=-=-=-=-=-=—=
myRepository := MCCacheRepository default.
myRepository allVersionNames.
packageNames := myRepository allVersionNames select: [ :e | 'Roassal*' match: e ].
"packageNames := myRepository allVersionNames. "

lista := packageNames collect: [ :packageName | 
myRepository versionInfoFromVersionNamed: packageName. ].

autores := lista groupedBy: [ :e | e author ].  
fechas  := lista groupedBy: [ :e | e date ].  
horas := lista groupedBy: [ :e | e time hour ].

c := RTComposer new.
v := c view.
c gap: 50.

popup := RTPopup text: [:assoc | assoc key asString, ', commits:', assoc value size asString].
elements := (RTEllipse elementsOn: fechas associations).
v addAll: elements @ popup.
builder := RTGlobalBuilder new.
builder
view: v;
normalizeX: [ :e | e key asTimeStamp asUnixTime ] 
min: 0 
max: 50000;
normalizeSize: [:e | e value size ] min: 10 max: 20;
normalizeColor: [:e | e value size ];
alphaColor: 0.3;
elementsToConsider: elements; 
execute.

"We add a line from the left most element to the right most element"
v add: ((RTLine new color: Color lightGray) edgeFrom: v elements leftMostElement to: v elements rightMostElement).

"It make sense to only drag horizontally"
v @ RTHorizontalDraggableView.

c propagateHighlight.
c group: 'date'.

listTags := Array new: autores size.

autores doWithIndex: [ :each :i| 
test := each groupedBy: [ :e | e date ]. 
elements := (RTEllipse elementsOn: test associations).
v addAll: elements @ popup.
builder 
   elementsToConsider: elements;
execute. 

v add: ((RTLine new color: Color lightGray) edgeFrom: elements leftMostElement to: elements rightMostElement).

newTag := 'Author' asString, i asString.
listTags at: i put: newTag.
c propagateHighlight.
c group: newTag.

].


popup := RTPopup text: [:assoc | 'Hour: ' asString, assoc key asString, ', commits:', assoc value size asString].
elements := (RTEllipse elementsOn: horas associations).
v addAll: elements @ popup.
builder := RTGlobalBuilder new.
builder
view: v;
normalizeX: [ :e | e key ] 
min: 0 
max: 380;
normalizeSize: [:e | e value size ] min: 10 max: 20;
normalizeColor: [:e | e value size ];
alphaColor: 0.3;
elementsToConsider: elements; 
execute.

v add: ((RTLine new color: Color lightGray) edgeFrom: elements leftMostElement to: elements rightMostElement).
c propagateHighlight.
c group: 'Hour'.




popup := RTPopup text: [:assoc | assoc author asString, ', ' , ' message size: ', assoc message size asString].
elements := (RTEllipse elementsOn: lista).
v addAll: elements @ popup.
builder := RTGlobalBuilder new.
builder
view: v;
normalizeX: [ :e | e timeStamp asUnixTime ] 
min: 0 
max: 50000;
normalizeSize: [ :e | e message size ] min: 10 max: 20;
normalizeColor: [ :e | e message size ];
alphaColor: 0.3;
elementsToConsider: elements; 
execute.

v add: ((RTLine new color: Color lightGray) edgeFrom: elements leftMostElement to: elements rightMostElement).
c propagateHighlight.
c group: 'Comment'.


listTags doWithIndex: [ :e :i| 
(i == 1)
 ifTrue: [ 
c move: e below: 'date'.
last := e.
c nameGroup: 'date' as: 'History by Date'.
aAuthor := autores keys at: i.
c nameGroup: e as: 'History by: ' asString,  aAuthor asString.
 ]
 ifFalse: [ 
c move: e below: last.
last := e.
aAuthor := autores keys at: i.
c nameGroup: e as: 'History by: ' asString, aAuthor asString.
 ]
].

c move: 'Hour' below: last.
c nameGroup: 'Hour' as: 'History by Hour'.

c move: 'Comment' below: 'Hour'.
c nameGroup: 'Comment' as: 'History by Comment'.


"We add a small legend"
v canvas addFixedShape: (TRLabelShape new text: 'History of Changes').
TRConstraint stickAtTheBottomOfTheWindow: v canvas fixedShapes last.

^v
-=-=-=-=-=-=-=—=

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




_______________________________________________
Moose-dev mailing list
Moose-dev@iam.unibe.ch
https://www.iam.unibe.ch/mailman/listinfo/moose-dev