Difference between revisions of "Rethinking Design, Risk, and Software (2012)"
(14 intermediate revisions by the same user not shown) | |||
Line 3: | Line 3: | ||
|id=QboI_1WJUlM | |id=QboI_1WJUlM | ||
|alignment=left | |alignment=left | ||
− | |autoresize= | + | |autoresize=true |
}} | }} | ||
+ | <slideview/> | ||
== Introduction by Joel Orr == | == Introduction by Joel Orr == | ||
<note for="0:06"> | <note for="0:06"> | ||
+ | <slide for="0:00" name="COFES2012-Title.png"/> | ||
Joel Orr was Chief Visionary (Emeritus) at Cyon Research. | Joel Orr was Chief Visionary (Emeritus) at Cyon Research. | ||
</note> | </note> | ||
Line 33: | Line 35: | ||
== What is Engineering? == | == What is Engineering? == | ||
+ | <note for="0:2:56"> | ||
+ | <slide for="2:56" name="COFES2012-WhatIsEngineering1.png"/> | ||
+ | <slide for="3:20" name="COFES2012-WhatIsEngineering2.png"/> | ||
+ | <slide for="3:26" name="COFES2012-WhatIsEngineering3.png"/> | ||
+ | <slide for="3:32" name="COFES2012-WhatIsEngineering4.png"/> | ||
+ | <slide for="3:50" name="COFES2012-WhatIsEngineering5.png"/> | ||
+ | <slide for="3:59" name="COFES2012-WhatIsEngineering6.png"/> | ||
+ | <slide for="4:08" name="COFES2012-WhatIsEngineering7.png"/> | ||
+ | <slide for="4:14" name="COFES2012-WhatIsEngineering8.png"/> | ||
+ | <slide for="4:23" name="COFES2012-WhatIsEngineering9.png"/> | ||
+ | <slide for="4:24" name="COFES2012-WhatIsEngineering10.png"/> | ||
+ | </note> | ||
<subtitle id="0:2:56"> You all know what I mean. Okay, let's tackle engineering first.</subtitle> | <subtitle id="0:2:56"> You all know what I mean. Okay, let's tackle engineering first.</subtitle> | ||
− | + | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
<subtitle id="0:2:59"> One way of thinking about engineering is that in the world we're presented with situations. Here's a really nice beautiful one but it has a couple of drawbacks from practical human need that gives rise to an idea.</subtitle> | <subtitle id="0:2:59"> One way of thinking about engineering is that in the world we're presented with situations. Here's a really nice beautiful one but it has a couple of drawbacks from practical human need that gives rise to an idea.</subtitle> | ||
Line 71: | Line 71: | ||
<note for="0:4:38"> | <note for="0:4:38"> | ||
Paul Starrett oversaw and managed the construction of the Empire State Building. See [[Wikipedia:Paul_Starrett|Paul Starrett on Wikipedia]] | Paul Starrett oversaw and managed the construction of the Empire State Building. See [[Wikipedia:Paul_Starrett|Paul Starrett on Wikipedia]] | ||
− | + | <slide for="0:4:38" name="COFES2012-EmpireState1.png"/> | |
− | < | + | <slide for="0:4:53" name="COFES2012-EmpireState2.png"/> |
− | + | <slide for="0:4:54" name="COFES2012-EmpireState3.png"/> | |
− | + | <slide for="0:4:55" name="COFES2012-EmpireState4.png"/> | |
− | + | <slide for="0:4:56" name="COFES2012-EmpireState5.png"/> | |
− | + | <slide for="0:4:57" name="COFES2012-EmpireState6.png"/> | |
− | + | <slide for="0:4:58" name="COFES2012-EmpireState7.png"/> | |
− | |||
− | |||
− | |||
</note> | </note> | ||
<subtitle id="0:4:38"> here's an article in one of the engineering magazines that says planning control permit erection of 85 stories of steel in six months. It wasn't just 85 stories of steel, it was 85 stories of steel and granite.</subtitle> | <subtitle id="0:4:38"> here's an article in one of the engineering magazines that says planning control permit erection of 85 stories of steel in six months. It wasn't just 85 stories of steel, it was 85 stories of steel and granite.</subtitle> | ||
− | |||
− | |||
− | |||
<subtitle id="0:4:53"> Here's what it looked like. Here's the site after they demolished the old Waldorf Astoria Hotel, and then, Bing, Bing, Bing, Bing, Bing.</subtitle> | <subtitle id="0:4:53"> Here's what it looked like. Here's the site after they demolished the old Waldorf Astoria Hotel, and then, Bing, Bing, Bing, Bing, Bing.</subtitle> | ||
Line 102: | Line 96: | ||
<note for="0:6:8"> | <note for="0:6:8"> | ||
− | < | + | <slide for="0:6:8" name="COFES2012-Starrett1.png"/> |
− | + | <slide for="0:6:10" name="COFES2012-Starrett2.png"/> | |
− | + | <slide for="0:6:12" name="COFES2012-Starrett3.png"/> | |
− | + | <slide for="0:6:14" name="COFES2012-Starrett4.png"/> | |
− | + | <slide for="0:6:16" name="COFES2012-Starrett5.png"/> | |
− | |||
− | |||
</note> | </note> | ||
<subtitle id="0:6:8"> What's wonderful that there are many good books about it, including this facsimile of the Foreman's, notebook. One of the foremen, every night, typed on his pica typewriter, and took a picture and pasted it in there.</subtitle> | <subtitle id="0:6:8"> What's wonderful that there are many good books about it, including this facsimile of the Foreman's, notebook. One of the foremen, every night, typed on his pica typewriter, and took a picture and pasted it in there.</subtitle> | ||
Line 114: | Line 106: | ||
<subtitle id="0:6:26"> This has come down to us but we don't know who the foreman was. And, a few years ago it was a facsimile into a book that you can buy and are many interesting things are in there.</subtitle> | <subtitle id="0:6:26"> This has come down to us but we don't know who the foreman was. And, a few years ago it was a facsimile into a book that you can buy and are many interesting things are in there.</subtitle> | ||
− | <subtitle id="0:6:41"> | + | <subtitle id="0:6:41"> One of the questions that was asked the aspiring contractors was what tools do you have for this job.</subtitle> |
− | <subtitle id="0:6:50"> | + | <subtitle id="0:6:50"> One of them was Paul Starret who was one of two Starret brothers. They had built some very large buildings in Manhattan previously but they were one of three big companies bidding for this job.</subtitle> |
− | <subtitle id="0:7:2"> | + | <subtitle id="0:7:2"> They'd all said to this question, "well, we have all the tools we need in blah blah blah blah."</subtitle> |
<subtitle id="0:7:8"> What Starrett said is not a blankety-blank thing, not even a pick and shovel.</subtitle> | <subtitle id="0:7:8"> What Starrett said is not a blankety-blank thing, not even a pick and shovel.</subtitle> | ||
Line 142: | Line 134: | ||
== Engineering Bridges == | == Engineering Bridges == | ||
+ | <note for="0:9:5"> | ||
+ | <slide for="0:9:5" name="COFES2012-Bridge1.png"/> | ||
+ | <slide for="0:9:26" name="COFES2012-Bridge2.png"/> | ||
+ | <slide for="0:9:59" name="COFES2012-Bridge3.png"/> | ||
+ | <slide for="0:10:14" name="COFES2012-Bridge4.png"/> | ||
+ | <slide for="0:10:17" name="COFES2012-Bridge5.png"/> | ||
+ | <slide for="0:13:23" name="COFES2012-Bridge6.png"/> | ||
+ | <slide for="0:14:14" name="COFES2012-Bridge7.png"/> | ||
+ | </note> | ||
<subtitle id="0:9:5"> Now, the other thing about engineering, real engineering that makes it rather different still from what we attempt to do in software is this problem.</subtitle> | <subtitle id="0:9:5"> Now, the other thing about engineering, real engineering that makes it rather different still from what we attempt to do in software is this problem.</subtitle> | ||
− | <subtitle id="0:9:17"> This is the Tacoma Narrows Bridge. We have much | + | <subtitle id="0:9:17"> This is the Tacoma Narrows Bridge. We have much of our infrastructure is crumbling.</subtitle> |
− | <subtitle id="0:9:26"> Here's one that wasn't as funny as the Tacoma Narrows Bridge | + | <subtitle id="0:9:26"> Here's one that wasn't as funny as the Tacoma Narrows Bridge was funny because nobody got hurt.</subtitle> |
<subtitle id="0:9:32"> It was predicted by a University of Washington professor.</subtitle> | <subtitle id="0:9:32"> It was predicted by a University of Washington professor.</subtitle> | ||
Line 191: | Line 192: | ||
<subtitle id="0:13:5"> Now we don't know what happened to the Roman engineers who failed.</subtitle> | <subtitle id="0:13:5"> Now we don't know what happened to the Roman engineers who failed.</subtitle> | ||
− | <subtitle id="0:13:11">I've suspected, because their engineering was so good for its time, I've suspected that | + | <subtitle id="0:13:11">I've suspected, because their engineering was so good for its time, I've suspected that they actually wound up in the Colosseum for failures.</subtitle> |
<subtitle id="0:13:23">But consider this. This is the longest extant, it's not the longest Roman bridge ever made, but it's the longest one that we still have. With those light poles on it.</subtitle> | <subtitle id="0:13:23">But consider this. This is the longest extant, it's not the longest Roman bridge ever made, but it's the longest one that we still have. With those light poles on it.</subtitle> | ||
Line 200: | Line 201: | ||
<subtitle id="0:13:53"> This is partly because the Romans created the best cement the world has ever known. It took a long time for us to find out, just really about 10-15 years ago, to find out exactly what the secrets were of the Roman cement.</subtitle> | <subtitle id="0:13:53"> This is partly because the Romans created the best cement the world has ever known. It took a long time for us to find out, just really about 10-15 years ago, to find out exactly what the secrets were of the Roman cement.</subtitle> | ||
+ | |||
+ | <note for="0:14:14"> | ||
+ | Alcántara Bridge, also in Extremadura, Spain, [https://en.wikipedia.org/wiki/Alc%C3%A1ntara_Bridge]. | ||
+ | </note> | ||
<subtitle id="0:14:14"> How about this one. Same age. Again, if you walk right up to it, looks, holy smokes. This thing looks like it was built yesterday.</subtitle> | <subtitle id="0:14:14"> How about this one. Same age. Again, if you walk right up to it, looks, holy smokes. This thing looks like it was built yesterday.</subtitle> | ||
Line 219: | Line 224: | ||
<subtitle id="0:15:20">Yeah, so the answer to this question is, "no". Software Engineering cannot do anything like this today.</subtitle> | <subtitle id="0:15:20">Yeah, so the answer to this question is, "no". Software Engineering cannot do anything like this today.</subtitle> | ||
− | == "Can Software Engineering do anything like this?": Complexity of Software and Software Engineering == | + | == "Can Software Engineering do anything like this?": Complexity of Software and Software Engineering == |
− | <subtitle id="0:15:32">To make some comparisons here, I just note that a 400 page book has 20,000 lines of text in it. | + | <note for="0:15:32"> |
+ | <slide for="0:15:32" name="COFES2012-SoftwareEngineering1.png"/> | ||
+ | <slide for="0:15:35" name="COFES2012-SoftwareEngineering2.png"/> | ||
+ | <slide for="0:15:48" name="COFES2012-SoftwareEngineering3.png"/> | ||
+ | <slide for="0:15:57" name="COFES2012-SoftwareEngineering4.png"/> | ||
+ | <slide for="0:16:17" name="COFES2012-SoftwareEngineering5.png"/> | ||
+ | <slide for="0:16:48" name="COFES2012-SoftwareEngineering6.png"/> | ||
+ | <slide for="0:17:18" name="COFES2012-SoftwareEngineering7.png"/> | ||
+ | <slide for="0:17:24" name="COFES2012-SoftwareEngineering8.png"/> | ||
+ | <slide for="0:17:41" name="COFES2012-SoftwareEngineering8.png"/> | ||
+ | </note> | ||
+ | <subtitle id="0:15:32">To make some comparisons here, I just note that a 400 page book has 20,000 lines of text in it.</subtitle> | ||
+ | <subtitle id="0:15:35"> Each one of those could be a line of code so 20,000 line program is one 400 page book.</subtitle> | ||
<subtitle id="0:15:48"> And a foot of books is about 300,000 lines. Million lines of code per meter: there's an easy one to remember.</subtitle> | <subtitle id="0:15:48"> And a foot of books is about 300,000 lines. Million lines of code per meter: there's an easy one to remember.</subtitle> | ||
Line 246: | Line 263: | ||
<subtitle id="0:17:41"> We would love to have that modularity in the code that we write. so I think the picture that fits our code better is a slum.</subtitle> | <subtitle id="0:17:41"> We would love to have that modularity in the code that we write. so I think the picture that fits our code better is a slum.</subtitle> | ||
− | <subtitle id="0:17:51"> Particularly the web. | + | <subtitle id="0:17:51"> Particularly the web. But basically it's all rather slum like.</subtitle> |
<subtitle id="0:17:53">There is no large sense of architecture of any kind. Things are tacked in there.</subtitle> | <subtitle id="0:17:53">There is no large sense of architecture of any kind. Things are tacked in there.</subtitle> | ||
Line 257: | Line 274: | ||
== What is Science: With a hair ball standing in for Complexity == | == What is Science: With a hair ball standing in for Complexity == | ||
+ | <note for="0:18:35"> | ||
+ | <slide for="0:18:35" name="COFES2012-WhatIsScience1.png"/> | ||
+ | <slide for="0:19:2" name="COFES2012-WhatIsScience2.png"/> | ||
+ | <slide for="0:19:8" name="COFES2012-WhatIsScience3.png"/> | ||
+ | <slide for="0:19:17" name="COFES2012-WhatIsScience4.png"/> | ||
+ | <slide for="0:19:26" name="COFES2012-WhatIsScience5.png"/> | ||
+ | <slide for="0:19:29" name="COFES2012-WhatIsScience6.png"/> | ||
+ | <slide for="0:19:29" name="COFES2012-WhatIsScience7.png"/> | ||
+ | <slide for="0:20:41" name="COFES2012-WhatIsScience8.png"/> | ||
+ | <slide for="0:20:47" name="COFES2012-WhatIsScience9.png"/> | ||
+ | <slide for="0:20:53" name="COFES2012-WhatIsScience10.png"/> | ||
+ | <slide for="0:21:44" name="COFES2012-WhatIsScience11.png"/> | ||
+ | <slide for="0:21:50" name="COFES2012-WhatIsScience12.png"/> | ||
+ | </note> | ||
<subtitle id="0:18:35"> Let's ask a question about what science is. Now that we've talked about engineering.</subtitle> | <subtitle id="0:18:35"> Let's ask a question about what science is. Now that we've talked about engineering.</subtitle> | ||
Line 262: | Line 293: | ||
<subtitle id="0:18:44"> Real science looks at hairballs. This is my favorite hairball. It's about this big, recovered from the stomach of a woolly mammoth found in a glacier.</subtitle> | <subtitle id="0:18:44"> Real science looks at hairballs. This is my favorite hairball. It's about this big, recovered from the stomach of a woolly mammoth found in a glacier.</subtitle> | ||
− | <subtitle id="0:18:53"> But because hair balls are ugly to look at but it got your attention, | + | <subtitle id="0:18:53"> But because hair balls are ugly to look at but it got your attention, especially when I say how big it is.</subtitle> |
<subtitle id="0:19:2"> It represents complications. But, you know, the universe is good enough.</subtitle> | <subtitle id="0:19:2"> It represents complications. But, you know, the universe is good enough.</subtitle> | ||
Line 273: | Line 304: | ||
<subtitle id="0:19:17"> We little creatures with our brains have languages. We can make all of our languages out of the Scheffer's stroke. Here, this is the NAND operator.</subtitle> | <subtitle id="0:19:17"> We little creatures with our brains have languages. We can make all of our languages out of the Scheffer's stroke. Here, this is the NAND operator.</subtitle> | ||
− | <subtitle id="0:19:29"> Because we have tiny little brains, we invented mathematics, and we come up with something like Maxwell's equations, or | + | <note for="0:19:29"> |
+ | Oliver Heavyside cleaned up the formula to concisely describe Maxwell original idea. [https://en.wikipedia.org/wiki/Oliver_Heaviside] | ||
+ | </note> | ||
+ | <subtitle id="0:19:29"> Because we have tiny little brains, we invented mathematics, and we come up with something like Maxwell's equations, or Heavyside's version of Maxwell's equation, and put a large part of the phenomena that we're looking at out there on a T-shirt.</subtitle> | ||
<subtitle id="0:19:47"> This represents complexity, so the complexity of the electromagnetic field, in large amounts of it, enough to invent a radio and radar and etc. etc., can be represented by a couple of these equations.</subtitle> | <subtitle id="0:19:47"> This represents complexity, so the complexity of the electromagnetic field, in large amounts of it, enough to invent a radio and radar and etc. etc., can be represented by a couple of these equations.</subtitle> | ||
Line 279: | Line 313: | ||
<subtitle id="0:20:5"> These equations should be symmetrical because the magnetic field and the electric field are trade off against each other but aren't.</subtitle> | <subtitle id="0:20:5"> These equations should be symmetrical because the magnetic field and the electric field are trade off against each other but aren't.</subtitle> | ||
− | <subtitle id="0:20:17"> So, if you worry about that and you happen to be named Einstein, you will come up with the special theory of relativity which will put symmetry into the whole thing and you get down to two equations, just like you should have. | + | <subtitle id="0:20:17"> So, if you worry about that and you happen to be named Einstein, you will come up with the special theory of relativity which will put symmetry into the whole thing and you get down to two equations, just like you should have. One for the electric field and one for the magnetic field.</subtitle> |
<note for="0:20:35"> | <note for="0:20:35"> | ||
Line 309: | Line 343: | ||
== Computer Science, contrasted with Real Science and Engineering == | == Computer Science, contrasted with Real Science and Engineering == | ||
+ | <note for="0:22:14"> | ||
+ | <slide for="0:22:14" name="COFES2012-ComputerScience1.png"/> | ||
+ | <slide for="0:22:29" name="COFES2012-ComputerScience2.png"/> | ||
+ | <slide for="0:22:41" name="COFES2012-ComputerScience3.png"/> | ||
+ | <slide for="0:23:5" name="COFES2012-ComputerScience4.png"/> | ||
+ | <slide for="0:23:20" name="COFES2012-ComputerScience5.png"/> | ||
+ | </note> | ||
<subtitle id="0:22:14"> Computer science is not real science. Ask anybody to give you a definition, and they will give you an engineering definition.</subtitle> | <subtitle id="0:22:14"> Computer science is not real science. Ask anybody to give you a definition, and they will give you an engineering definition.</subtitle> | ||
Line 316: | Line 357: | ||
<note for="0:22:41"> | <note for="0:22:41"> | ||
− | What is on the T-shirt is Lisp semantics written in the form of an interpreter written in Lisp. | + | What is on the T-shirt is Lisp semantics written in the form of an interpreter written in Lisp. The core of a language can fit on a T-Shirt. |
</note> | </note> | ||
<subtitle id="0:22:41"> John McCarthy looked at them, and being a mathematician, you want a G-shirt ["T-shirt"]. This is the programming language Lisp on the T-shirt.</subtitle> | <subtitle id="0:22:41"> John McCarthy looked at them, and being a mathematician, you want a G-shirt ["T-shirt"]. This is the programming language Lisp on the T-shirt.</subtitle> | ||
Line 327: | Line 368: | ||
<note for="0:23:20"> | <note for="0:23:20"> | ||
− | Alan is showing the cell biology he studied and the Internet that inspired Smalltalk design. | + | Alan is showing the cell biology he studied and the Internet that inspired [[Smalltalk]] design. |
</note> | </note> | ||
<subtitle id="0:23:20"> So, John came up with a mathematical theory of computation. And, those of us who came in the next generation after McCarthy got to do some really fun things with this idea. I should mention that what I'm talking to you about actually happened in the 60s. </subtitle> | <subtitle id="0:23:20"> So, John came up with a mathematical theory of computation. And, those of us who came in the next generation after McCarthy got to do some really fun things with this idea. I should mention that what I'm talking to you about actually happened in the 60s. </subtitle> | ||
Line 337: | Line 378: | ||
== Tactics vs. Strategies == | == Tactics vs. Strategies == | ||
+ | <note for="0:24:5"> | ||
+ | <slide for="0:24:5" name="COFES2012-TacticsStrategies1.png"/> | ||
+ | <slide for="0:24:14" name="COFES2012-TacticsStrategies2.png"/> | ||
+ | <slide for="0:24:20" name="COFES2012-TacticsStrategies3.png"/> | ||
+ | <slide for="0:24:35" name="COFES2012-TacticsStrategies4.png"/> | ||
+ | <slide for="0:24:47" name="COFES2012-TacticsStrategies5.png"/> | ||
+ | <slide for="0:25:11" name="COFES2012-TacticsStrategies6.png"/> | ||
+ | <slide for="0:25:17" name="COFES2012-TacticsStrategies7.png"/> | ||
+ | <slide for="0:25:35" name="COFES2012-TacticsStrategies8.png"/> | ||
+ | <slide for="0:26:5" name="COFES2012-TacticsStrategies9.png"/> | ||
+ | <slide for="0:26:29" name="COFES2012-TacticsStrategies10.png"/> | ||
+ | <slide for="0:26:47" name="COFES2012-TacticsStrategies11.png"/> | ||
+ | <slide for="0:27:2" name="COFES2012-TacticsStrategies12.png"/> | ||
+ | <slide for="0:27:5" name="COFES2012-TacticsStrategies13.png"/> | ||
+ | <slide for="0:27:8" name="COFES2012-TacticsStrategies14.png"/> | ||
+ | <slide for="0:27:14" name="COFES2012-TacticsStrategies15.png"/> | ||
+ | <slide for="0:27:38" name="COFES2012-TacticsStrategies16.png"/> | ||
+ | <slide for="0:27:59" name="COFES2012-TacticsStrategies17.png"/> | ||
+ | <slide for="0:28:11" name="COFES2012-TacticsStrategies18.png"/> | ||
+ | <slide for="0:28:20" name="COFES2012-TacticsStrategies19.png"/> | ||
+ | <slide for="0:30:32" name="COFES2012-TacticsStrategies20.png"/> | ||
+ | <slide for="0:30:35" name="COFES2012-TacticsStrategies21.png"/> | ||
+ | </note> | ||
<subtitle id="0:24:5"> Let's take a look at the idea of tactics versus strategies.</subtitle> | <subtitle id="0:24:5"> Let's take a look at the idea of tactics versus strategies.</subtitle> | ||
Line 352: | Line 416: | ||
<note for="0:24:47"> | <note for="0:24:47"> | ||
− | + | With an arch, one can build as tall structure as a pyramid with much less material. | |
</note> | </note> | ||
<subtitle id="0:24:47"> Took thousands of years to get beyond what the brick forced into our minds by being in front of us to this very odd thing that requires more building materials to make than when you're done. This is one of the hard things about an arch.</subtitle> | <subtitle id="0:24:47"> Took thousands of years to get beyond what the brick forced into our minds by being in front of us to this very odd thing that requires more building materials to make than when you're done. This is one of the hard things about an arch.</subtitle> | ||
Line 360: | Line 424: | ||
<subtitle id="0:25:11"> The same thing happened in computing, where we build things out of NAND's.</subtitle> | <subtitle id="0:25:11"> The same thing happened in computing, where we build things out of NAND's.</subtitle> | ||
− | <subtitle id="0:25:17"> Basically computing is all about comparing things. So you can take materials, like even two rulers, this is something that first graders love is they can do any fractional arithmetic problem their ten-year-old brother can't do./subtitle> | + | <subtitle id="0:25:17"> Basically computing is all about comparing things. So you can take materials, like even two rulers, this is something that first graders love is they can do any fractional arithmetic problem their ten-year-old brother can't do.</subtitle> |
<subtitle id="0:25:35"> They can do it in two seconds with two rulers. All right, because the ruler is an addition slide rule. You show this to a kid they'll love you for life</subtitle> | <subtitle id="0:25:35"> They can do it in two seconds with two rulers. All right, because the ruler is an addition slide rule. You show this to a kid they'll love you for life</subtitle> | ||
Line 373: | Line 437: | ||
<note for="0:26:29"> | <note for="0:26:29"> | ||
− | + | The couple of British are William Eccles and F. W. Jordan. Origin of Flip Flop on [https://en.wikipedia.org/wiki/Flip-flop_(electronics)|Wikipedia]. | |
</note> | </note> | ||
<subtitle id="0:26:29"> Flip-flops didn't come people wanted to do computers but because a couple of Brits wanted to see if they could make a memory that could do some of the things human memory could do out of materials.</subtitle> | <subtitle id="0:26:29"> Flip-flops didn't come people wanted to do computers but because a couple of Brits wanted to see if they could make a memory that could do some of the things human memory could do out of materials.</subtitle> | ||
Line 441: | Line 505: | ||
<note for="0:30:56"> | <note for="0:30:56"> | ||
Alan refers to the idea that each graphical object on screen can be considered as a self-contained entity like an application, and the window border around them is optional. A document in DTP can be organized as an assortment of such graphical objects. | Alan refers to the idea that each graphical object on screen can be considered as a self-contained entity like an application, and the window border around them is optional. A document in DTP can be organized as an assortment of such graphical objects. | ||
+ | <slide for="0:30:40" name="COFES2012-Alto1.png"/> | ||
+ | <slide for="0:10:14" name="COFES2012-Alto2.png"/> | ||
+ | <slide for="0:31:23" name="COFES2012-Alto6.png"/> | ||
+ | <slide for="0:31:38" name="COFES2012-Alto7.png"/> | ||
+ | <slide for="0:32:5" name="COFES2012-Alto8.png"/> | ||
+ | <slide for="0:32:20" name="COFES2012-Alto9.png"/> | ||
+ | <slide for="0:32:35" name="COFES2012-Alto10.png"/> | ||
</note> | </note> | ||
<subtitle id="0:30:56"> Notice, overlapping windows there, it was a view oriented object-oriented system, desktop publishing was essentially the views without the borders on them.</subtitle> | <subtitle id="0:30:56"> Notice, overlapping windows there, it was a view oriented object-oriented system, desktop publishing was essentially the views without the borders on them.</subtitle> | ||
Line 468: | Line 539: | ||
<note for="0:33:14"> | <note for="0:33:14"> | ||
Half of the Internet means that Xerox PARC had its own packet switching protocol called PUP, which influenced the design of TCP/IP. | Half of the Internet means that Xerox PARC had its own packet switching protocol called PUP, which influenced the design of TCP/IP. | ||
+ | <slide for="0:33:14" name="COFES2012-Parc1.png"/> | ||
+ | <slide for="0:33:15" name="COFES2012-Parc2.png"/> | ||
+ | <slide for="0:33:16" name="COFES2012-Parc3.png"/> | ||
+ | <slide for="0:33:17" name="COFES2012-Parc4.png"/> | ||
+ | <slide for="0:33:18" name="COFES2012-Parc5.png"/> | ||
+ | <slide for="0:33:19" name="COFES2012-Parc6.png"/> | ||
+ | <slide for="0:33:20" name="COFES2012-Parc7.png"/> | ||
+ | <slide for="0:33:21" name="COFES2012-Parc8.png"/> | ||
+ | <slide for="0:33:22" name="COFES2012-Parc9.png"/> | ||
+ | <slide for="0:33:23" name="COFES2012-Parc10.png"/> | ||
+ | <slide for="0:33:24" name="COFES2012-Parc11.png"/> | ||
+ | <slide for="0:33:25" name="COFES2012-Parc12.png"/> | ||
</note> | </note> | ||
<subtitle id="0:33:14"> In a few years, we did this: the bitmap screen, the GUI, WYSIWYG in desktop publishing, real objects, laser printers, Ethernet, peer-to-peer and client-server, and about a half of the Internet.</subtitle> | <subtitle id="0:33:14"> In a few years, we did this: the bitmap screen, the GUI, WYSIWYG in desktop publishing, real objects, laser printers, Ethernet, peer-to-peer and client-server, and about a half of the Internet.</subtitle> | ||
Line 483: | Line 566: | ||
<subtitle id="0:34:23"> We'll leave that because we don't want to talk about the past too much.</subtitle> | <subtitle id="0:34:23"> We'll leave that because we don't want to talk about the past too much.</subtitle> | ||
− | <subtitle id="0:34:26"> | + | <subtitle id="0:34:26"> Most people do not realize it was only two dozen people. That is only four to five years to do all this stuff, and doing it all from scratch.</subtitle> |
== Introduction to the STEPS project background == | == Introduction to the STEPS project background == | ||
Line 489: | Line 572: | ||
<note for="0:34:38"> | <note for="0:34:38"> | ||
The picture, with two children (two of triplets) using the XO laptop, is a recreation of the drawing in the [http://www.vpri.org/pdf/hc_pers_comp_for_children.pdf|"Personal Computer for Children of All Ages"] paper. | The picture, with two children (two of triplets) using the XO laptop, is a recreation of the drawing in the [http://www.vpri.org/pdf/hc_pers_comp_for_children.pdf|"Personal Computer for Children of All Ages"] paper. | ||
+ | <slide for="0:34:38" name="COFES2012-ScienceProject1.png"/> | ||
+ | <slide for="0:34:59" name="COFES2012-ScienceProject2.png"/> | ||
+ | <slide for="0:35:8" name="COFES2012-ScienceProject3.png"/> | ||
</note> | </note> | ||
− | <subtitle id="0:34:38"> Now let's take a look at a science project in the present. | + | <subtitle id="0:34:38"> Now let's take a look at a science project in the present. Same idea here, so all of these ideas I've been talking about here.</subtitle> |
− | <subtitle id="0:34:50"> We're going to apply them to this big thing called personal computing. | + | <subtitle id="0:34:50"> We're going to apply them to this big thing called personal computing. It's got all kinds of stuff in it.</subtitle> |
<subtitle id="0:34:59"> Again, we're interested in this area that goes from the end-user all the way down to the metal. so, there's a lot of stuff.</subtitle> | <subtitle id="0:34:59"> Again, we're interested in this area that goes from the end-user all the way down to the metal. so, there's a lot of stuff.</subtitle> | ||
Line 508: | Line 594: | ||
<note for="0:35:32"> | <note for="0:35:32"> | ||
Refer to some of the STEPS proposals and reports available at the VPRI site: [http://vpri.org/html/writings.php|VPRI Writings], including [http://www.vpri.org/pdf/tr2012001_steps.pdf|the first year report]. | Refer to some of the STEPS proposals and reports available at the VPRI site: [http://vpri.org/html/writings.php|VPRI Writings], including [http://www.vpri.org/pdf/tr2012001_steps.pdf|the first year report]. | ||
+ | <slide for="0:35:32" name="COFES2012-RealComputerScience1.png"/> | ||
+ | <slide for="0:35:53" name="COFES2012-RealComputerScience2.png"/> | ||
+ | <slide for="0:36:11" name="COFES2012-RealComputerScience3.png"/> | ||
+ | <slide for="0:36:34" name="COFES2012-RealComputerScience4.png"/> | ||
+ | <slide for="0:36:17" name="COFES2012-RealComputerScience5.png"/> | ||
+ | <slide for="0:38:20" name="COFES2012-RealComputerScience6.png"/> | ||
</note> | </note> | ||
<subtitle id="0:35:32"> So, let's take a look. Let's say half of what Microsoft, or Moore, has in there is just code they can't get rid of. But still, most of these, you know, Linux and OpenOffice and stuff: it's like a hundred million lines of code. </subtitle> | <subtitle id="0:35:32"> So, let's take a look. Let's say half of what Microsoft, or Moore, has in there is just code they can't get rid of. But still, most of these, you know, Linux and OpenOffice and stuff: it's like a hundred million lines of code. </subtitle> | ||
Line 530: | Line 622: | ||
<note for="0:37:44"> | <note for="0:37:44"> | ||
− | Simulation of Time is one of the principles. Alan refers to David Reed's work | + | Simulation of Time is one of the principles. Alan refers to John McCarthy's Situation Calculus and the concept of fluents [https://en.wikipedia.org/wiki/Situation_calculus|Situation Calculus on Wikipedia] and David Reed's work on distributed decision making [http://publications.csail.mit.edu/lcs/specpub.php?id=773]. |
</note> | </note> | ||
<subtitle id="0:37:44"> So, this is like the world's worst idea to let the CPU control the time base of your computations. you're screwed.</subtitle> | <subtitle id="0:37:44"> So, this is like the world's worst idea to let the CPU control the time base of your computations. you're screwed.</subtitle> | ||
Line 538: | Line 630: | ||
<subtitle id="0:38:8"> But it's just not generally used, and it won't be used for a while, because these things take decades to get rid of things that are, you know, de facto religions.</subtitle> | <subtitle id="0:38:8"> But it's just not generally used, and it won't be used for a while, because these things take decades to get rid of things that are, you know, de facto religions.</subtitle> | ||
− | <subtitle id="0:38:20"> I'm just going to pick on a couple of these. I already talked about math wins, and I want to talk about this now in this area, up around in here, because one of the things we have to do in personal computing today is make anti-alias, 2 and 1/2 D computer graphics./subtitle> | + | == The graphics engine of the STEPS project: Dan Amelang's Nile and Gezira == |
+ | |||
+ | <note for="0:38:20"> | ||
+ | <slide for="0:38:41" name="COFES2012-DanMom1.png"/> | ||
+ | <slide for="0:39:23" name="COFES2012-DanMom2.png"/> | ||
+ | <slide for="0:40:11" name="COFES2012-DanMom3.png"/> | ||
+ | <slide for="0:40:44" name="COFES2012-DanMom4.png"/> | ||
+ | <slide for="0:40:44" name="COFES2012-DanMom6.png"/> | ||
+ | <slide for="0:43:11" name="COFES2012-FrankPopout1.png"/> | ||
+ | <slide for="0:43:29" name="COFES2012-NileFeatures1.png"/> | ||
+ | <slide for="0:43:30" name="COFES2012-NileFeatures2.png"/> | ||
+ | <slide for="0:43:38" name="COFES2012-NileFeatures3.png"/> | ||
+ | <slide for="0:43:53" name="COFES2012-NileFeatures4.png"/> | ||
+ | <slide for="0:43:39" name="COFES2012-NileFeatures5.png"/> | ||
+ | <slide for="0:43:40" name="COFES2012-NileFeatures6.png"/> | ||
+ | <slide for="0:43:41" name="COFES2012-NileFeatures7.png"/> | ||
+ | <slide for="0:43:59" name="COFES2012-NileFeatures8.png"/> | ||
+ | <slide for="0:44:01" name="COFES2012-NileFeatures9.png"/> | ||
+ | <slide for="0:44:03" name="COFES2012-NileFeatures10.png"/> | ||
+ | <slide for="0:44:05" name="COFES2012-NileFeatures11.png"/> | ||
+ | <slide for="0:44:07" name="COFES2012-NileFeatures12.png"/> | ||
+ | </note> | ||
+ | <subtitle id="0:38:20"> I'm just going to pick on a couple of these. I already talked about math wins, and I want to talk about this now in this area, up around in here, because one of the things we have to do in personal computing today is make anti-alias, 2 and 1/2 D computer graphics.</subtitle> | ||
<subtitle id="0:38:41"> We have to make it look really good. If we didn't have it look really good, then we will be sloughing off part of making something that is like computer graphics that we can recognize today.</subtitle> | <subtitle id="0:38:41"> We have to make it look really good. If we didn't have it look really good, then we will be sloughing off part of making something that is like computer graphics that we can recognize today.</subtitle> | ||
Line 544: | Line 658: | ||
<subtitle id="0:38:59"> Of course whenever you have a hard problem you get a graduate student to do it, because they are just so much smarter than we are.</subtitle> | <subtitle id="0:38:59"> Of course whenever you have a hard problem you get a graduate student to do it, because they are just so much smarter than we are.</subtitle> | ||
− | <subtitle id="0:39:8">This is Dan Amelang, who's a graduate student at UC San Diego. A very good mathematician and computer guy. | + | <subtitle id="0:39:8">This is Dan Amelang, who's a graduate student at UC San Diego. A very good mathematician and computer guy. And even better, he has a mom.</subtitle> |
<subtitle id="0:39:23"> Of course we all do, but his mom happens to be a high school geometry teacher of that special kind that actually understands math.</subtitle> | <subtitle id="0:39:23"> Of course we all do, but his mom happens to be a high school geometry teacher of that special kind that actually understands math.</subtitle> | ||
Line 554: | Line 668: | ||
<subtitle id="0:40:11"> he and his mom worked together on this thing through January, finally showed up in January with this formula.</subtitle> | <subtitle id="0:40:11"> he and his mom worked together on this thing through January, finally showed up in January with this formula.</subtitle> | ||
+ | <note for="0:40:17"> | ||
+ | To see more about Dan's work, check out the talk by him [http://tinlizzie.org/IA/index.php/How_Complex_is_%22Personal_Computing%22%3F_(2009)|A talk at UIUC by Dan (starts around 17:00 mark)]. | ||
+ | </note> | ||
<subtitle id="0:40:17"> This is one of these serendipitous things that you can't completely supply by method. But this stuff has been kicked around by the best people in the world for forty five years. But in fact, they found a new way of thinking about the involvement of an arbitrary polygon with a pixel that computes exactly the right shade of the pixel to give you perfect anti-aliasing.</subtitle> | <subtitle id="0:40:17"> This is one of these serendipitous things that you can't completely supply by method. But this stuff has been kicked around by the best people in the world for forty five years. But in fact, they found a new way of thinking about the involvement of an arbitrary polygon with a pixel that computes exactly the right shade of the pixel to give you perfect anti-aliasing.</subtitle> | ||
Line 562: | Line 679: | ||
<subtitle id="0:41:11"> This language that he devised, he decided to make it a dataflow language with kind of functional engines at the nodes. Because of that, it is highly amenable to automatic use of parallel resources.</subtitle> | <subtitle id="0:41:11"> This language that he devised, he decided to make it a dataflow language with kind of functional engines at the nodes. Because of that, it is highly amenable to automatic use of parallel resources.</subtitle> | ||
+ | <note for="0:41:29"> | ||
+ | Refer to some other talks for the live demo, until we manage to put the movie, or a real working system here. | ||
+ | <slide for="0:43:5" name="COFES2012-DanMom6.png"/> | ||
+ | </note> | ||
<subtitle id="0:41:29"> Here's one of our benchmarks. This is 5000 anti-aliased translucent characters being re-rendered every time by these 45 lines of code.</subtitle> | <subtitle id="0:41:29"> Here's one of our benchmarks. This is 5000 anti-aliased translucent characters being re-rendered every time by these 45 lines of code.</subtitle> | ||
Line 570: | Line 691: | ||
<subtitle id="0:42:8"> So you're seeing that one of those is being devoted to this task, and the fan has come on.</subtitle> | <subtitle id="0:42:8"> So you're seeing that one of those is being devoted to this task, and the fan has come on.</subtitle> | ||
− | <subtitle id="0:42:14"> As I say go faster, it says "okay, give me another thread." There it is. | + | <subtitle id="0:42:14"> As I say go faster, it says "okay, give me another thread." There it is. What it's doing here is when I say up to four here, it's spacing them out, so they're each in different cores.</subtitle> |
<subtitle id="0:42:35"> As I go faster and faster, it starts interleaving them. I can start zooming in. here so you can sort of see what's going on a little better.</subtitle> | <subtitle id="0:42:35"> As I go faster and faster, it starts interleaving them. I can start zooming in. here so you can sort of see what's going on a little better.</subtitle> | ||
Line 578: | Line 699: | ||
<subtitle id="0:42:53"> We're actually quite surprised that... this is a lot of computing, but we're getting a lot of a lot out of it. </subtitle> | <subtitle id="0:42:53"> We're actually quite surprised that... this is a lot of computing, but we're getting a lot of a lot out of it. </subtitle> | ||
− | <subtitle id="0:43:5"> What I thought was, "wow we should be able to make a whole system just out of this math."</subtitle> | + | <subtitle id="0:43:5"> What I thought was, "wow, we should be able to make a whole system just out of this math."</subtitle> |
<subtitle id="0:43:11"> This is in fact what I'm using. I'm not using PowerPoint here.</subtitle> | <subtitle id="0:43:11"> This is in fact what I'm using. I'm not using PowerPoint here.</subtitle> | ||
Line 586: | Line 707: | ||
<subtitle id="0:43:29"> Here's my next slide.</subtitle> | <subtitle id="0:43:29"> Here's my next slide.</subtitle> | ||
+ | <note for="0:43:38"> | ||
+ | The CompositeOver rule, which does the normal blending, is shown in the first oval, and compositing the star with gradient over the Frank character is shown as a result. | ||
+ | </note> | ||
<subtitle id="0:43:38">Here's Dan's brother, and here's all the compositing rules.</subtitle> | <subtitle id="0:43:38">Here's Dan's brother, and here's all the compositing rules.</subtitle> | ||
+ | <note for="0:43:41"> | ||
+ | Likewise, there are three more examples of using different composition rules. | ||
+ | </note> | ||
<subtitle id="0:43:41"> So for instance, this one is invert. Here's another combination rule here.</subtitle> | <subtitle id="0:43:41"> So for instance, this one is invert. Here's another combination rule here.</subtitle> | ||
<subtitle id="0:43:53">It's 95 lines to do all of the compositing rules that you use.</subtitle> | <subtitle id="0:43:53">It's 95 lines to do all of the compositing rules that you use.</subtitle> | ||
− | <subtitle id="0:43:59"> | + | <subtitle id="0:43:59"> Now that you've seen. Of course there are those 45 lines. There's gradients, so I should actually... </subtitle> |
− | <subtitle id="0:44:08"> | + | <note for="0:44:08"> |
+ | The document editor is called Frank. Refer to the STEPS project reports and also a paper: [http://www.vpri.org/pdf/tr2013002_KSonward.pdf|KScript and KSWorld: A Time-Aware and Mostly Declarative Language and Interactivev GUI Framework]. | ||
+ | </note> | ||
+ | <subtitle id="0:44:08"> This user interface here is made out of the system also, because it's all one sort of one big desktop publishing document.</subtitle> | ||
<subtitle id="0:44:17"> I'm going to.. The system is also live. This has not been compiled away into C code down there. </subtitle> | <subtitle id="0:44:17"> I'm going to.. The system is also live. This has not been compiled away into C code down there. </subtitle> | ||
+ | <note for="0:44:26"> | ||
+ | Alan pops out from the full screen mode by clicking the top right button, select a button widget for editing in the document editor, and change the gradient by manipulating mutli-stop gradient editor. | ||
+ | <slide for="0:44:26" name="COFES2012-Frank1.png"/> | ||
+ | <slide for="0:44:32" name="COFES2012-Frank2.png"/> | ||
+ | <slide for="0:44:40" name="COFES2012-Frank3.png"/> | ||
+ | <slide for="0:44:50" name="COFES2012-Frank4.png"/> | ||
+ | <slide for="0:44:55" name="COFES2012-Frank5.png"/> | ||
+ | </note> | ||
<subtitle id="0:44:26"> I'm actually going to pick an object here like this.</subtitle> | <subtitle id="0:44:26"> I'm actually going to pick an object here like this.</subtitle> | ||
Line 618: | Line 756: | ||
<subtitle id="0:45:41"> So a thousand should get your attention, right? You have to learn a new language. On the other hand, here it is. The whole thing is just a few pages of code, and it's live, and you can run and use it. Okay.</subtitle> | <subtitle id="0:45:41"> So a thousand should get your attention, right? You have to learn a new language. On the other hand, here it is. The whole thing is just a few pages of code, and it's live, and you can run and use it. Okay.</subtitle> | ||
− | <subtitle id="0:45:56"> | + | == OMeta, Language Transformation Language == |
+ | |||
+ | <note for="0:45:56"> | ||
+ | The language Nothing was an experiment at VPRI to provide an intermediate system language. (This demo was not using Nothing.) | ||
+ | <slide for="0:45:56" name="COFES2012-CodeTansformation1.png"/> | ||
+ | <slide for="0:46:5" name="COFES2012-CodeTansformation2.png"/> | ||
+ | <slide for="0:46:14" name="COFES2012-CodeTansformation3.png"/> | ||
+ | <slide for="0:46:16" name="COFES2012-CodeTansformation4.png"/> | ||
+ | <slide for="0:46:18" name="COFES2012-CodeTansformation5.png"/> | ||
+ | <slide for="0:46:20" name="COFES2012-CodeTansformation6.png"/> | ||
+ | <slide for="0:45:21" name="COFES2012-CodeTansformation7.png"/> | ||
+ | <slide for="0:46:23" name="COFES2012-CodeTansformation8.png"/> | ||
+ | <slide for="0:45:24" name="COFES2012-CodeTansformation9.png"/> | ||
+ | <slide for="0:45:25" name="COFES2012-CodeTansformation10.png"/> | ||
+ | <slide for="0:45:26" name="COFES2012-CodeTansformation11.png"/> | ||
+ | <slide for="0:45:27" name="COFES2012-CodeTansformation12.png"/> | ||
+ | <slide for="0:46:29" name="COFES2012-CodeTansformation13.png"/> | ||
+ | <slide for="0:46:33" name="COFES2012-CodeTansformation14.png"/> | ||
+ | <slide for="0:46:38" name="COFES2012-CodeTansformation15.png"/> | ||
+ | <slide for="0:46:44" name="COFES2012-CodeTansformation16.png"/> | ||
+ | <slide for="0:46:48" name="COFES2012-CodeTansformation17.png"/> | ||
+ | <slide for="0:46:53" name="COFES2012-CodeTansformation18.png"/> | ||
+ | <slide for="0:46:56" name="COFES2012-CodeTansformation19.png"/> | ||
+ | <slide for="0:47:5" name="COFES2012-CodeTansformation20.png"/> | ||
+ | <slide for="0:47:41" name="COFES2012-Ometa1.png"/> | ||
+ | <slide for="0:47:47" name="COFES2012-Ometa2.png"/> | ||
+ | <slide for="0:47:53" name="COFES2012-Ometa3.png"/> | ||
+ | <slide for="0:48:26" name="COFES2012-Ometa4.png"/> | ||
+ | <slide for="0:48:56" name="COFES2012-Ometa5.png"/> | ||
+ | </note> | ||
+ | <subtitle id="0:45:56"> Where did this language come from? I have to build that.</subtitle> | ||
<subtitle id="0:46:5">So there's actually quite a distance between one of these compositing rules, a one-liner of code, and getting the result at the other end.</subtitle> | <subtitle id="0:46:5">So there's actually quite a distance between one of these compositing rules, a one-liner of code, and getting the result at the other end.</subtitle> | ||
Line 636: | Line 804: | ||
<subtitle id="0:46:59"> In the old days, they are called problem-oriented languages. I like old terminology because I'm old.</subtitle> | <subtitle id="0:46:59"> In the old days, they are called problem-oriented languages. I like old terminology because I'm old.</subtitle> | ||
− | <subtitle id="0:47:5"> We need another problem-oriented language here, whose problem domain is transforming languages. Of course, there are tools around for doing this.</subtitle> | + | <subtitle id="0:47:5"> We need another problem-oriented language here, whose problem domain is transforming languages.</subtitle> |
+ | |||
+ | <subtitle id="0:47:11"> Of course, there are tools around for doing this.</subtitle> | ||
<subtitle id="0:47:17"> But this is one of the big stoppers for people doing this themselves because making a language the way it is taught in school is a daunting procedures usually taught through some set of tools like Yacc.</subtitle> | <subtitle id="0:47:17"> But this is one of the big stoppers for people doing this themselves because making a language the way it is taught in school is a daunting procedures usually taught through some set of tools like Yacc.</subtitle> | ||
Line 644: | Line 814: | ||
<subtitle id="0:47:38"> But in fact, you can make a much better language.</subtitle> | <subtitle id="0:47:38"> But in fact, you can make a much better language.</subtitle> | ||
− | <subtitle id="0:47:41"> Here's one we did called | + | <note for="0:47:41"> |
+ | OMeta by Alex Warth is described in detail in his Ph.D thesis: [http://www.vpri.org/pdf/tr2008003_experimenting.pdf|Experimenting with Programming Languages]. | ||
+ | </note> | ||
+ | <subtitle id="0:47:41"> Here's one we did called OMeta. and here's a simple arithmetic expression, and here's the program. If I say do it, it transforms that expression into a tree.</subtitle> | ||
<subtitle id="0:47:53"> If I come down here, and pick this more complicated expression up, and paste it in here and say do it.</subtitle> | <subtitle id="0:47:53"> If I come down here, and pick this more complicated expression up, and paste it in here and say do it.</subtitle> | ||
Line 664: | Line 837: | ||
<subtitle id="0:49:2"> As you get closer and closer down to the bottom of the system, you start using these base things over and over again.</subtitle> | <subtitle id="0:49:2"> As you get closer and closer down to the bottom of the system, you start using these base things over and over again.</subtitle> | ||
− | <subtitle id="0:49:11"> The problem oriented language is staying on the top.</subtitle> | + | <subtitle id="0:49:11"> The problem-oriented language is staying on the top.</subtitle> |
+ | |||
+ | == The working model of TCP/IP by Ian Piumarta == | ||
− | <subtitle id="0:49:14"> Okay, but we have to do the internet. So, TCP/IP, 20,000 lines of C for that. So, one book, one of those books. | + | <note for="0:49:14"> |
+ | Refer to the [http://www.vpri.org/pdf/tr2007008_steps.pdf|first year STEPS annual report]. | ||
+ | <slide for="0:49:14" name="COFES2012-DesignWins1.png"/> | ||
+ | <slide for="0:49:32" name="COFES2012-DesignWins2.png"/> | ||
+ | <slide for="0:49:35" name="COFES2012-DesignWins3.png"/> | ||
+ | <slide for="0:49:41" name="COFES2012-DesignWins4.png"/> | ||
+ | <slide for="0:49:47" name="COFES2012-DesignWins5.png"/> | ||
+ | |||
+ | </note> | ||
+ | <subtitle id="0:49:14"> Okay, but we have to do the internet. So, TCP/IP, 20,000 lines of C for that. So, one book, one of those books. This C code and most computers is a good nice job.</subtitle> | ||
<subtitle id="0:49:32"> TCP/IP was invented by experts so we didn't expect to get a factor of thousand on this.</subtitle> | <subtitle id="0:49:32"> TCP/IP was invented by experts so we didn't expect to get a factor of thousand on this.</subtitle> | ||
Line 684: | Line 868: | ||
<subtitle id="0:50:23"> Okay.</subtitle> | <subtitle id="0:50:23"> Okay.</subtitle> | ||
+ | == Particles and Fields Abstraction == | ||
+ | |||
+ | <note for="0:50:26"> | ||
+ | The dynamic content here is to be filled in. | ||
+ | <slide for="0:50:26" name="COFES2012-ComputingAsPhenomena2.png"/> | ||
+ | </note> | ||
<subtitle id="0:50:26"> Let's take another one of these metaphors: particles and fields. Everybody understands this as a kind of a metaphor for iron filings in a magnetic field. The iron filings seem to know what to do. They're feeling this field and they're doing individual things that look like they're somewhat coordinated.</subtitle> | <subtitle id="0:50:26"> Let's take another one of these metaphors: particles and fields. Everybody understands this as a kind of a metaphor for iron filings in a magnetic field. The iron filings seem to know what to do. They're feeling this field and they're doing individual things that look like they're somewhat coordinated.</subtitle> | ||
− | <subtitle id="0:50:44"> | + | <subtitle id="0:50:44"> In fact, there are animals that do this also like ants.</subtitle> |
<subtitle id="0:50:50"> Here's a little ant simulation. This is their nest. These guys are the food. And, if we start this thing going, then we see that the ants are finding the food, going to the nest and they're leaving this pheromone trail. </subtitle> | <subtitle id="0:50:50"> Here's a little ant simulation. This is their nest. These guys are the food. And, if we start this thing going, then we see that the ants are finding the food, going to the nest and they're leaving this pheromone trail. </subtitle> | ||
Line 693: | Line 883: | ||
<subtitle id="0:51:29"> We would call this loose coupling.</subtitle> | <subtitle id="0:51:29"> We would call this loose coupling.</subtitle> | ||
+ | |||
+ | == Paragraph Justification with Rules == | ||
<subtitle id="0:51:32"> Well, if you have crazy brains, you could imagine that a paragraph of text is one of those things.</subtitle> | <subtitle id="0:51:32"> Well, if you have crazy brains, you could imagine that a paragraph of text is one of those things.</subtitle> | ||
Line 710: | Line 902: | ||
<subtitle id="0:52:29"> So, this is math. I'm going to set it off again.</subtitle> | <subtitle id="0:52:29"> So, this is math. I'm going to set it off again.</subtitle> | ||
− | <subtitle id="0:52:35"> And, I'm going to point out that I can edit this. | + | <subtitle id="0:52:35"> And, I'm going to point out that I can edit this. Let's let it.</subtitle> |
<subtitle id="0:52:41"> I can turn general here into justify.</subtitle> | <subtitle id="0:52:41"> I can turn general here into justify.</subtitle> | ||
− | <subtitle id="0:52:47"> And, it's just redoing this over and over again. | + | <subtitle id="0:52:47"> And, it's just redoing this over and over again. All right.</subtitle> |
<subtitle id="0:52:53"> The editor is actually working</subtitle> | <subtitle id="0:52:53"> The editor is actually working</subtitle> | ||
Line 732: | Line 924: | ||
<subtitle id="0:53:41">okay, so all of the editing here is done like this.</subtitle> | <subtitle id="0:53:41">okay, so all of the editing here is done like this.</subtitle> | ||
− | <subtitle id="0:53:47"> In fact this is another one of the documents in this universal document system.</subtitle> | + | <subtitle id="0:53:47"> In fact, this is another one of the documents in this universal document system.</subtitle> |
− | <subtitle id="0:53:53"> Remember, we have to do Microsoft Office here./subtitle> | + | <subtitle id="0:53:53"> Remember, we have to do Microsoft Office here.</subtitle> |
<subtitle id="0:53:56"> But, why would anybody in the right mind give you seven applications that all do almost the same thing but not quite.</subtitle> | <subtitle id="0:53:56"> But, why would anybody in the right mind give you seven applications that all do almost the same thing but not quite.</subtitle> | ||
Line 768: | Line 960: | ||
<subtitle id="0:56:8"> So, that's all you have to do for that.</subtitle> | <subtitle id="0:56:8"> So, that's all you have to do for that.</subtitle> | ||
+ | == Coordinating Multiple Solvers == | ||
+ | |||
+ | <note for="0:56:13"> | ||
+ | Refer to Hesam Samimi and Alan Borning work on [http://vpri.org/html/writings.php|VPRI Writings] page. | ||
+ | <slide id="0:56:13" name="COFES2012-RelationalProgramming1.png"/> | ||
+ | <slide id="0:56:20" name="COFES2012-RelationalProgramming2.png"/> | ||
+ | <slide id="0:56:35" name="COFES2012-RelationalProgramming3.png"/> | ||
+ | <slide id="0:56:36" name="COFES2012-RelationalProgramming4.png"/> | ||
+ | <slide id="0:56:37" name="COFES2012-RelationalProgramming5.png"/> | ||
+ | <slide id="0:56:38" name="COFES2012-RelationalProgramming6.png"/> | ||
+ | <slide id="0:56:39" name="COFES2012-RelationalProgramming7.png"/> | ||
+ | <slide id="0:56:40 name="COFES2012-RelationalProgramming8.png"/> | ||
+ | <slide id="0:56:47" name="COFES2012-RelationalProgramming9.png"/> | ||
+ | <slide id="0:56:50" name="COFES2012-RelationalProgramming10.png"/> | ||
+ | <slide id="0:56:55" name="COFES2012-RelationalProgramming11.png"/> | ||
+ | <slide id="0:57:00" name="COFES2012-RelationalProgramming12.png"/> | ||
+ | </note> | ||
<subtitle id="0:56:13">Here is another area. A thing that's very useful to have is problem-solvers.</subtitle> | <subtitle id="0:56:13">Here is another area. A thing that's very useful to have is problem-solvers.</subtitle> | ||
Line 780: | Line 989: | ||
<subtitle id="0:57:8"> The further stuff here is beyond the scope of this short talk, so I'll just move on here.</subtitle> | <subtitle id="0:57:8"> The further stuff here is beyond the scope of this short talk, so I'll just move on here.</subtitle> | ||
+ | == From Gears to Ecologies == | ||
+ | |||
+ | <note for="0:57:14"> | ||
+ | <slide for="0:57:14" name="COFES2012-Gears1.png"/> | ||
+ | <slide for="0:57:35" name="COFES2012-Gears2.png"/> | ||
+ | <slide for="0:58:5" name="COFES2012-Gears3.png"/> | ||
+ | <slide for="0:58:14" name="COFES2012-Gears4.png"/> | ||
+ | </note> | ||
<subtitle id="0:57:14">Okay, here's an important idea. Too many ideas in this talk, right?</subtitle> | <subtitle id="0:57:14">Okay, here's an important idea. Too many ideas in this talk, right?</subtitle> | ||
Line 796: | Line 1,013: | ||
<subtitle id="0:58:26"> The next little thing is just a couple of minutes of gloss, because I'm getting close to the end here. But I wanted to say something about systems.</subtitle> | <subtitle id="0:58:26"> The next little thing is just a couple of minutes of gloss, because I'm getting close to the end here. But I wanted to say something about systems.</subtitle> | ||
+ | == Simulation of Space and Time == | ||
+ | |||
+ | <note for="0"58:38"> | ||
+ | David Reed's work on distributed decision making [http://publications.csail.mit.edu/lcs/specpub.php?id=773]. and Gerald Popek's Locus: [https://mitpress.mit.edu/books/locus-distributed-system-architecture|Locus]. | ||
+ | <slide for="0:58:38" name="COFES2012-Phenomena2-2.png"/> | ||
+ | <slide for="0:58:38" name="COFES2012-SimulationTime1.png"/> | ||
+ | <slide for="0:59:5" name="COFES2012-SimulationTime2.png"/> | ||
+ | <slide for="0:58:55" name="COFES2012-SimulationTime3.png"/> | ||
+ | <slide for="1:00:8" name="COFES2012-SimulationTime4.png"/> | ||
+ | <slide for="1:00:56" name="COFES2012-SimulationTime5.png"/> | ||
+ | <slide for="1:01:29" name="COFES2012-SimulationTime6.png"/> | ||
+ | <slide for="1:01:44" name="COFES2012-SimulationTime7.png"/> | ||
+ | </note> | ||
<subtitle id="0:58:38"> Three of the ideas here are that we want to control time. I mentioned this a little bit before. We do not want to CPU to control time first. </subtitle> | <subtitle id="0:58:38"> Three of the ideas here are that we want to control time. I mentioned this a little bit before. We do not want to CPU to control time first. </subtitle> | ||
Line 832: | Line 1,062: | ||
<subtitle id="1:01:44"> The current web which is getting more and more complicated can immediately get simple except for all the legacy stuff that has been done so far.</subtitle> | <subtitle id="1:01:44"> The current web which is getting more and more complicated can immediately get simple except for all the legacy stuff that has been done so far.</subtitle> | ||
+ | == Scalability of Ecology and Psychology == | ||
+ | |||
+ | <note for="1:01:56"> | ||
+ | The books shown are Ecology: From Individuals to Ecosystems [https://en.wikipedia.org/wiki/Ecology:_From_Individuals_to_Ecosystems] and the Society of Mind. | ||
+ | <slide for="1:01:56" name="COFES2012-Ecology1.png"/> | ||
+ | <slide for="1:03:2" name="COFES2012-Ecology2.png"/> | ||
+ | </note> | ||
<subtitle id="1:01:56"> Here's something that Viewpoints has on its list but we expect not to be able to solve this, at least in this path of doing things. it, may be beyond, may require a much larger effort than a small nonprofit can do.</subtitle> | <subtitle id="1:01:56"> Here's something that Viewpoints has on its list but we expect not to be able to solve this, at least in this path of doing things. it, may be beyond, may require a much larger effort than a small nonprofit can do.</subtitle> | ||
Line 850: | Line 1,087: | ||
<subtitle id="1:03:17"> But in fact, it is a very good model for what the Internet is going to turn into. Okay.</subtitle> | <subtitle id="1:03:17"> But in fact, it is a very good model for what the Internet is going to turn into. Okay.</subtitle> | ||
+ | == Apple, Orange and Lemon == | ||
+ | |||
+ | <note for="1:03:26"> | ||
+ | Apple is Apple, and orange refers to the theme color of Ubuntu as a stand in for the Linux Operating System. | ||
+ | <slide for="1:03:2" name="COFES2012-Apple1.png"/> | ||
+ | <slide for="1:03:29" name="COFES2012-Apple2.png"/> | ||
+ | <slide for="1:03:32" name="COFES2012-Apple3.png"/> | ||
+ | <slide for="1:03:35" name="COFES2012-Apple4.png"/> | ||
+ | </note> | ||
<subtitle id="1:03:26"> So the punchline here, we've got three main operating systems.</subtitle> | <subtitle id="1:03:26"> So the punchline here, we've got three main operating systems.</subtitle> | ||
Line 867: | Line 1,113: | ||
<subtitle id="1:04:14"> Then, maybe more will happen. I think there's a smaller group question session coming up later.</subtitle> | <subtitle id="1:04:14"> Then, maybe more will happen. I think there's a smaller group question session coming up later.</subtitle> | ||
+ | |||
+ | == News and New == | ||
+ | |||
+ | <note for="1:04:23"> | ||
+ | A recurring theme on learning that Alan mentions in various ways over the decades. | ||
+ | <slide for="1:03:35" name="COFES2012-News1.png"/> | ||
+ | <slide for="1:04:32" name="COFES2012-News2.png"/> | ||
+ | <slide for="1:05:5" name="COFES2012-News3.png"/> | ||
+ | <slide for="1:03:35" name="COFES2012-News4.png"/> | ||
+ | <slide for="1:03:35" name="COFES2012-News5.png"/> | ||
+ | <slide for="1:05:32" name="COFES2012-News6.png"/> | ||
+ | <slide for="1:05:41" name="COFES2012-News7.png"/> | ||
+ | <slide for="1:05:53" name="COFES2012-News8.png"/> | ||
+ | <slide for="1:06:32" name="COFES2012-News9.png"/> | ||
+ | </note> | ||
<subtitle id="1:04:23">Let's think about this idea. Something appears and we've got two things about it. That are very different. There's news and new.</subtitle> | <subtitle id="1:04:23">Let's think about this idea. Something appears and we've got two things about it. That are very different. There's news and new.</subtitle> | ||
Line 898: | Line 1,159: | ||
<subtitle id="1:06:11"> It was all about learning by doing.</subtitle> | <subtitle id="1:06:11"> It was all about learning by doing.</subtitle> | ||
− | <subtitle id="1:06:14"> But in fact, almost everybody in the world uses it only as a consumable device for their | + | <subtitle id="1:06:14"> But in fact, almost everybody in the world uses it only as a consumable device for their own convenience.</subtitle> |
<subtitle id="1:06:23"> I would spend thousand five hundred dollars, which is the price of an average American car, for a laptop. if I could, because I know what computers are good for.</subtitle> | <subtitle id="1:06:23"> I would spend thousand five hundred dollars, which is the price of an average American car, for a laptop. if I could, because I know what computers are good for.</subtitle> |
Latest revision as of 18:49, 17 July 2018
Contents
- 1 Introduction by Joel Orr
- 2 Opening
- 3 What is Engineering?
- 4 How Empire State Building was designed and architected
- 5 A book on the Empire State Building
- 6 Engineering Bridges
- 7 "Can Software Engineering do anything like this?": Complexity of Software and Software Engineering
- 8 What is Science: With a hair ball standing in for Complexity
- 9 Science with Engineering by making an artifact and observing it
- 10 Computer Science, contrasted with Real Science and Engineering
- 11 Tactics vs. Strategies
- 12 Xerox ALTO in 1973
- 13 8 and half Inventions at Xerox PARC
- 14 Introduction to the STEPS project background
- 15 Principles of STEPS
- 16 The graphics engine of the STEPS project: Dan Amelang's Nile and Gezira
- 17 OMeta, Language Transformation Language
- 18 The working model of TCP/IP by Ian Piumarta
- 19 Particles and Fields Abstraction
- 20 Paragraph Justification with Rules
- 21 Coordinating Multiple Solvers
- 22 From Gears to Ecologies
- 23 Simulation of Space and Time
- 24 Scalability of Ecology and Psychology
- 25 Apple, Orange and Lemon
- 26 News and New
Introduction by Joel Orr
Joel Orr was Chief Visionary (Emeritus) at Cyon Research.
Opening
What is Engineering?
How Empire State Building was designed and architected
Paul Starrett oversaw and managed the construction of the Empire State Building. See Paul Starrett on Wikipedia
A book on the Empire State Building
Engineering Bridges
You can see the movie on the Internet, for example, like this one: Narrows Bridge Collapse..
Alcántara Bridge, also in Extremadura, Spain, [1].
"Can Software Engineering do anything like this?": Complexity of Software and Software Engineering
What is Science: With a hair ball standing in for Complexity
Scheffer Stroke is a logical operation of NAND, from which you can build any other operations, and logical structure. Stroke on Wikipedia.
Oliver Heavyside cleaned up the formula to concisely describe Maxwell original idea. [2]
The notation is not science.
Science with Engineering by making an artifact and observing it
Akashi Kaikyō Bridge. The longest suspension bridge in the world. Wikipedia.
Computer Science, contrasted with Real Science and Engineering
What is on the T-shirt is Lisp semantics written in the form of an interpreter written in Lisp. The core of a language can fit on a T-Shirt.
Alan is showing the cell biology he studied and the Internet that inspired Smalltalk design.
Tactics vs. Strategies
With an arch, one can build as tall structure as a pyramid with much less material.
The couple of British are William Eccles and F. W. Jordan. Origin of Flip Flop on [3].
Jacquard Loom was a powered device that was controlled by punch cards and produced textiles with complex patterns. Loom on Wikipedia. Alan refers to the fact that von Neumann style languages are following what the low-level machine instructions dictates, including ALGOL and Java shown on the slide.
Sketchpad is the black and white picture with the light pen interface on the bottom row. [4].
The brain image used to denote AI. In other talks the same image is used to explain how brain interprets the incoming signal and how itself synthesizes information.
Xerox ALTO in 1973
Alan refers to the idea that each graphical object on screen can be considered as a self-contained entity like an application, and the window border around them is optional. A document in DTP can be organized as an assortment of such graphical objects.
8 and half Inventions at Xerox PARC
Half of the Internet means that Xerox PARC had its own packet switching protocol called PUP, which influenced the design of TCP/IP.
Introduction to the STEPS project background
The picture, with two children (two of triplets) using the XO laptop, is a recreation of the drawing in the "Personal Computer for Children of All Ages" paper.
Principles of STEPS
Refer to some of the STEPS proposals and reports available at the VPRI site: Writings, including first year report.
Simulation of Time is one of the principles. Alan refers to John McCarthy's Situation Calculus and the concept of fluents Calculus on Wikipedia and David Reed's work on distributed decision making [5].
The graphics engine of the STEPS project: Dan Amelang's Nile and Gezira
To see more about Dan's work, check out the talk by him talk at UIUC by Dan (starts around 17:00 mark).
Refer to some other talks for the live demo, until we manage to put the movie, or a real working system here.
The CompositeOver rule, which does the normal blending, is shown in the first oval, and compositing the star with gradient over the Frank character is shown as a result.
Likewise, there are three more examples of using different composition rules.
The document editor is called Frank. Refer to the STEPS project reports and also a paper: and KSWorld: A Time-Aware and Mostly Declarative Language and Interactivev GUI Framework.
Alan pops out from the full screen mode by clicking the top right button, select a button widget for editing in the document editor, and change the gradient by manipulating mutli-stop gradient editor.
OMeta, Language Transformation Language
The language Nothing was an experiment at VPRI to provide an intermediate system language. (This demo was not using Nothing.)
OMeta by Alex Warth is described in detail in his Ph.D thesis: with Programming Languages.
The working model of TCP/IP by Ian Piumarta
Refer to the year STEPS annual report.
Particles and Fields Abstraction
The dynamic content here is to be filled in.
Paragraph Justification with Rules
Coordinating Multiple Solvers
Refer to Hesam Samimi and Alan Borning work on Writings page.
From Gears to Ecologies
Simulation of Space and Time
David Reed's work on distributed decision making [6]. and Gerald Popek's Locus: [7].
Scalability of Ecology and Psychology
The books shown are Ecology: From Individuals to Ecosystems [8] and the Society of Mind.
Apple, Orange and Lemon
Apple is Apple, and orange refers to the theme color of Ubuntu as a stand in for the Linux Operating System.
News and New
A recurring theme on learning that Alan mentions in various ways over the decades.