[squeak-dev] I went to Biloxi and all I got was a Tshirt, part 3

Chris Cunnington smalltalktelevision at gmail.com
Wed Mar 21 16:13:04 UTC 2012


http://alistair.cockburn.us/Using+natural+language+as+a+metaphoric+base+for+object-oriented+modeling+and+programming/v/slim
http://www.evolutionofcomputing.org/
http://squeaksource.com/Spy/
http://objectprofile.com/
http://www.mediagenix.tv
http://yesplan.be/
http://wiki.squeak.org/squeak/3836

There are a few facts to display before talking about Sam Adams talk Big 
POOP - parallel OOP. It's non-deterministic, so it doesn't want to say 
something like "= C" but that it "approaches C". It started with a 
Squeak VM and a 1.7 Squeak image. It has lots of cores and lots of heaps 
and the cores start and stop all the time so the hardware configuration 
is changing all the time. Each core has the power of a PDP-11. The 
result is the Roar VM project.

Oh, yea. Previously the CPU was the centre of attention. We lined up 
data to go through the CPU. The paradigm flips so that data, massive 
amounts of data are at the centre and are surrounded by many spiraling 
eddies of cores. Its uses MVC and not Morphic due to cycle consumption 
or something.

A key idea is using different parts of speech in programming instead of 
just nouns and verbs. This goes back to a paper from Alistair Cockburn 
at OOPSLA in 1988. There will be a paper this year by Doug Kimelman and 
Dave Ungar called "Non-deterministic collections - Ensembles."

We need to get under three words: adverb, gerund, and ensemble. You know 
what an adverb is. In English it will end in 'ly'. A participle is a 
verbal adjective. 'A loving father' is a participle acting as an 
adjective describing a father. This matters because a participle must 
have a subject. If you have too much distance between your subject and 
participle something else in the sentence may appear to be the subject 
and you have a dangling participle. A gerund is a verbal noun. It 
requires no subject. 'A father who fears loving' shows a gerund. The 
word 'loving' has no subject. The father fears the process of loving, 
the act. It's a process that becomes it's own, objective thing. (Perhaps 
a reification of the process of loving.) The immediate confusion comes 
because there is no subject. Does the father fear loving or being loved? 
Is the father the subject or the object? The lover or the object of 
love? With a gerund, that is unspecified.

The third word we need to get under is ensemble, which is a replacement 
for a Collection. An ensemble is a container full of instances that 
cannot be accessed directly. There is no index or order. You can only 
affect the instances indirectly and then they influence themselves. An 
ensemble is a flock of instances like a flock of birds. Or like a school 
of fish. If a flock of birds all turn at once, you need Boid algorithms 
to model that. There is no subject/object relationship in a flock of 
birds turning. The bird next to another bird is both the subject and the 
object, as a turning bird influences the bird next to it and is also 
influenced by the bird next to it.

An ensemble of birds in the presence of the gerund 'turning' all 
influence each other without a clear idea of who is the subject and who 
is the object. I decided the picture that makes this simple for me is 
street riot. An ensemble of people emerge from an arena onto a street to 
encounter the gerund 'rioting'. Being weak willed, they become rioters. 
And in turn the next set of young people coming onto the street are 
influenced by the newly created rioters. Sam Adams does not talk about 
riots, but he can talk about war.

The language of the Roar VM is Ly, taken from the last two letters of an 
adverb in English. It looks like JavaScript.

Boid.inflate(1000 --fuzzily)

The gerund is inflate and it is asking 1000 newly created instances to 
influence each other in a fuzzy way.

flock.position(--averagely)

The ensemble called flock is told to influence each other in a way to 
return a position, while modified by the adverb.

flock..position(--averagely)

If you change the number of periods you can determine how the ensemble 
is relating to itself, only part, or something like that.

Andres Valloud asked Sam Adams what you could do with this. Say you are 
in a convoy in Afghanistan and you want to avoid IEDs on the side of the 
road. In thirty seconds you will turn left or right. In those thirty 
seconds you have collected all the electromagnetic communication in 
different languages, cell phones, GPS and it's one giant flop of data. 
You are trying to track the communications of the enemy. You can 
generate a probability of which is the road least likely to have an IED.

Andrew Black in Portland does the software. Stephan Marr is doing the VM 
in Belgium.

Chris Muller did a presentation on his geo-location project in South 
Africa. If a caller dials an emergency number and you have their 
lat/long, how do you know where they are? He worked with public map 
services to lay the location onto a map to pass to emergency services. 
His presentation had the best slides. He used a BookMorph and a tool 
he's written called OfficeObjects. His screen was a Squeak image on full 
screen. It used Maui for the UI generation, had maps of Uganda and South 
Africa, where he would dynamically layover different examples.

The Smalltalk Directions single panel was presented by Alexandre Bergel. 
We were handed a ring bound book with two papers: The Hidden Face of 
Execution Profiling; and, Memory Snapshotting of Self-Modifying Systems. 
The first was about how the profiler is unreliable. If you do many 
passes, then it becomes more reliable. Plotting those points, you get a 
graph shape, and what were the various pathways on a tree diagram 
producing the results? The second paper was not presented, but involved 
SqueakNOS. It's likely there is pdf somewhere with these papers.

Then Alexandre Bergel presented on the Spy package which has the Kai 
profiler and the Hapa'o tool to visually display how much test coverage 
your application has. He also mentioned that beside CMS Box there was 
another business using Pharo called YesPlan for scheduling.

And, Alexander did the Pharo roadmap where he said Pharo 1.4 will 
replace ImageSegment with Fuel, because it's faster. There will be a 
Pharo By Example 2 pdf book soon. The aim of the Pharo team is 
"cleaning, cleaning, cleaning". That's how he describes the effort of 
the Pharo community to rewrite all code in the image from top to bottom. 
They have a saying in Hollywood: put your money where people will see 
it. That means put your money on the screen and not into invisible parts 
of the process. Ocean may be a library that creates an OOP socket 
library, but does anybody need such a thing? Sockets aren't OOP, so why 
bother? It seems to me the Pharo community has very, very strong 
feelings about how things should be designed in a way that is perhaps 
irrelevant to the kind of work being done. C'est la.

MediaGeniX creates a scheduling product called What's On for European TV 
stations such as MTVUK, Kanal 5, TV Norge, TV2, YLE, TVN, RTBF. They 
have 26 developers writing code in VisualWorks. They make 70 
integrations a day and were displaying their continuous integration 
process. They have a Seaside interface for all their running and 
completed testing routines.

Today I'm going to Dale Henrichs Practical Git For Smalltalk and the 
lightning talks, which should be interesting.

Thanks,
Chris


More information about the Squeak-dev mailing list