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 |
Free forum by Nabble | Edit this page |