Title: Moose how to solve real problems without reading code
Speaker: Tudor Girba
Mon, August 18, 12:00pm – 12:30pm
Video: https://www.youtube.com/watch?v=mikD2tPrA5w
Moose is a platform for software and data analysis (http://moosetechnology.org). It runs on Pharo and it can help you figure out problems around software systems.
In this talk, I show several real-life examples of how custom tools built on top of Moose helped solve concrete problems. The examples vary both in scope and in the kind of problems. For example, we talk about how we fixed a caching problem in a Java system by analyzing logs, or how we fixed a Morphic problem by means of visualization and interaction. Even if these problems are so different, all of them were solvable with one uniform set of programmable tools.
That is the power of Moose, and it is now at the fingertips of any Pharo programmer.
BIO:
Tudor Gîrba attained his PhD from the University of Berne, and he now works as team and innovation lead at CompuGroup Medical Schweiz, and as an independent consultant. He leads the work on Moose, a smart open-source platform for software and data analysis (http://moosetechnology.org) and he is part of the board of Pharo, the new cool kid on the object-oriented languages arena (http://pharo.org). He developed the humane assessment method (http://humane-assessment.com), and he is helping companies to rethink the way they manage software systems. To demystify innovation, he also developed the demo-driven innovation method (http://demodriven.com) as a combination of design thinking, idea prototyping and storytelling. In 2014, he won the prestigious Dahl-Nygaard Junior Award (http://aito.org) for his work on modeling and visualization of evolution and interplay of large numbers of objects.
16. Moose
how to solve real problems!
without reading code
17.
18. @Remote(...)
@Stateless(...)
public class A
implements IA {
@EJB
private IB b;
...
}
@Remote(...)
@Stateless(...)
public class B
implements IB {
@EJB
private IA a;
...
}
19. @Remote(...)
@Stateless(...)
public class A
implements IA {
@EJB
private IB b;
...
}
@Remote(...)
@Stateless(...)
public class B
implements IB {
@EJB
private IA a;
...
}
(model allClasses select: #isRemote)
cyclesToAll: [ :class |
class attributes flatCollectAsSet: [ :attr |
attr declaredType withSubclassHierarchy ]]]
20.
21.
22.
23. 2012-03-13 16:10:56,876 TRACE CachingDelegate: Cache hit /service/Region QueryTO [depth=-1,
parentDepth=1, namespace=Region, regioncode=IACA, itemcodes=[APA4725090], codesystem=,
elementkind=ITEM, descriptionIncluded=false, validityTestMode=false] hash=-742458864
2012-03-13 16:10:58,470 TRACE CachingDelegate: Cache MISS /service/Region QueryTO [depth=1,
parentDepth=2, namespace=Region, regioncode=Structure, itemcodes=[], codesystem=,
elementkind=ITEM, descriptionIncluded=false, validityTestMode=false] hash=2003270021
2012-03-13 16:10:58,563 INFO LegacyScriptCalls: LegacyScriptCall called with Parameter:
namespace[nnn;Core]
From=abc
To=xyz
!
[DataFilter]
Id=1234
!
[OutputFormat]
Format=xml
!
[XsltConfig]
XSLT=WithItemId
] payload[]
2012-03-13 16:10:58,798 INFO ActionService: getActionsByDate: patId=8909580, caseId=3807672,
from=Wed Dec 21 00:00:00 CET 2011, to=Wed Mar 14 00:00:00 CET 2012
2012-03-13 16:10:58,923 TRACE CachingDelegate: Cache hit /service/Region AnotherQueryTO
[regioncode=null, itemCodes=[], namespace=Region, codeSystem=domain.entry, elementKind=Region,
validityDate=Tue Mar 13 00:00:00 CET 2012, descriptionIncluded=false, locale=de_CH,
validityTestMode=false] hash=570633577
2012-03-13 16:10:59,266 TRACE CachingDelegate: Cache MISS /service/AnotherRegion QueryTO
[depth=1, parentDepth=-1, namespace=AnotherRegion, regioncode=630, itemcodes=[I_23451],
codesystem=, elementkind=ITEM, descriptionIncluded=false, validityTestMode=false]
hash=-1116635756
24. Cache hit
2012-03-13 16:10:56,876 TRACE CachingDelegate: Cache hit /service/Region QueryTO [depth=-1,
parentDepth=1, namespace=Region, regioncode=IACA, itemcodes=[APA4725090], codesystem=,
elementkind=ITEM, descriptionIncluded=false, validityTestMode=2012-03-13 16:10:58,470 TRACE CachingDelegate: Cache Cache MISS MISS
false] hash=-742458864
/service/Region QueryTO [depth=1,
parentDepth=2, namespace=Region, regioncode=Structure, itemcodes=[], codesystem=,
elementkind=ITEM, descriptionIncluded=false, validityTestMode=false] hash=2003270021
2012-03-13 16:10:58,563 INFO LegacyScriptCalls: LegacyScriptCall called with Parameter:
namespace[nnn;Core]
From=abc
To=xyz
!
[DataFilter]
Id=1234
!
[OutputFormat]
Format=xml
!
[XsltConfig]
XSLT=WithItemId
] payload[]
2012-03-13 16:10:58,798 INFO ActionService: getActionsByDate: patId=8909580, caseId=3807672,
from=Wed Dec 21 00:00:00 CET 2011, to=Wed Mar 14 Cache 00:00:00 CET hit
2012
2012-03-13 16:10:58,923 TRACE CachingDelegate: Cache hit /service/Region AnotherQueryTO
[regioncode=null, itemCodes=[], namespace=Region, codeSystem=domain.entry, elementKind=Region,
validityDate=Tue Mar 13 00:00:00 CET 2012, descriptionIncluded=false, locale=de_CH,
validityTestMode=false] hash=570633577
2012-03-13 16:10:59,266 TRACE CachingDelegate: Cache Cache MISS MISS
/service/AnotherRegion QueryTO
[depth=1, parentDepth=-1, namespace=AnotherRegion, regioncode=630, itemcodes=[I_23451],
codesystem=, elementkind=ITEM, descriptionIncluded=false, validityTestMode=false]
hash=-1116635756
25. Cache hit
QueryTO
2012-03-13 16:10:56,876 TRACE CachingDelegate: Cache hit /service/Region QueryTO [depth=-1,
parentDepth=1, namespace=Region, regioncode=IACA, itemcodes=[APA4725090], codesystem=,
elementkind=ITEM, descriptionIncluded=false, validityTestMode=2012-03-13 16:10:58,470 TRACE CachingDelegate: Cache Cache MISS MISS
false] hash=-QueryTO
742458864
/service/Region QueryTO [depth=1,
parentDepth=2, namespace=Region, regioncode=Structure, itemcodes=[], codesystem=,
elementkind=ITEM, descriptionIncluded=false, validityTestMode=false] hash=2003270021
2012-03-13 16:10:58,563 INFO LegacyScriptCalls: LegacyScriptCall called with Parameter:
namespace[nnn;Core]
From=abc
To=xyz
!
[DataFilter]
Id=1234
!
[OutputFormat]
Format=xml
!
[XsltConfig]
XSLT=WithItemId
] payload[]
2012-03-13 16:10:58,798 INFO ActionService: getActionsByDate: patId=8909580, caseId=3807672,
from=Wed Dec 21 00:00:00 CET 2011, to=Wed Mar 14 Cache 00:00:00 CET 2012
2012-03-13 16:10:58,923 TRACE CachingDelegate: Cache hit /hit
service/Region AnotherQueryTO
AnotherQueryTO
[regioncode=null, itemCodes=[], namespace=Region, codeSystem=domain.entry, elementKind=Region,
validityDate=Tue Mar 13 00:00:00 CET 2012, descriptionIncluded=false, locale=de_CH,
validityTestMode=false] hash=570633577
2012-03-13 16:10:59,266 TRACE CachingDelegate: Cache Cache MISS MISS
/service/AnotherRegion QueryTO
QueryTO
[depth=1, parentDepth=-1, namespace=AnotherRegion, regioncode=630, itemcodes=[I_23451],
codesystem=, elementkind=ITEM, descriptionIncluded=false, validityTestMode=false]
hash=-1116635756