Hi,
Talking about Moose in Latin America, I would like to share my exploration about new artifacts and writing metaphors for bootstrapping open, citizen, garage science and research:
http://mutabit.com/deltas/repos.fossil/grafoscopio/doc/tip/Docs/Es/Articulos...
The exploration was done using Pharo/Moose.
Is also taking place as workshops in our local hackerspace at Bogotá Colombia:
Cheers,
Offray
El 28/11/14 a las #4, Haroldo Stenger escribió:
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 mailto: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 <mailto:Moose-dev@iam.unibe.ch> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Moose-dev mailing list Moose-dev@iam.unibe.ch https://www.iam.unibe.ch/mailman/listinfo/moose-dev