I went to Biloxi and all I got was a Tshirt, part 3

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

I went to Biloxi and all I got was a Tshirt, part 3

Chris Cunnington
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