Difference between revisions of "Rethinking Design, Risk, and Software (2012)"
(27 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> | ||
− | <subtitle id="0:06">I'm Joel Orr.</subtitle> | + | <subtitle id="0:06">I'm Joel Orr. I'm welcoming you to COFES. I'm very glad that you're all here, and I have the impossible task of introducing Alan Kay this morning. Alan has been an idol of mine for many many years. And, when I asked him how to introduce him, he said, like a woman's skirt. And I said, huh, and he said short enough to be interesting. And really, I could spend the whole hour talking about Alan's contributions to the worlds of computing, education, and so much more. Please do look them up on the web.</subtitle> |
− | <subtitle id="0:0: | + | <subtitle id="0:0:59"> There is no lack of adequate places to learn about the inventor of the laptop, the guy responsible for all kinds of wonderful networking things and language things.</subtitle> |
− | <subtitle id="0: | + | <subtitle id="0:1:14">So, with that let me not take any more time away from his keynote, and let me welcome my friend Alan Kay.</subtitle> |
− | + | == Opening == | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
<subtitle id="0:1:29"> I tried to incorporate in this title the topic, central topic, of this symposium. And, I'm also using the words engineering and science.</subtitle> | <subtitle id="0:1:29"> I tried to incorporate in this title the topic, central topic, of this symposium. And, I'm also using the words engineering and science.</subtitle> | ||
Line 45: | Line 33: | ||
<subtitle id="0:2:47"> I love it better than almost any other form of communication because I can decide when not to use it.</subtitle> | <subtitle id="0:2:47"> I love it better than almost any other form of communication because I can decide when not to use it.</subtitle> | ||
+ | == 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 60: | Line 57: | ||
<subtitle id="0:3:32"> Tinkering is kind of the thing that is built in to many mammals. If you have a cat, imagine what a cat would be like if it had hands it would be basically a monkey. If you'd come home from vacation your house would be dismantled.</subtitle> | <subtitle id="0:3:32"> Tinkering is kind of the thing that is built in to many mammals. If you have a cat, imagine what a cat would be like if it had hands it would be basically a monkey. If you'd come home from vacation your house would be dismantled.</subtitle> | ||
− | <subtitle id="0:3:50"> | + | <subtitle id="0:3:50"> We want to extract principles we want to push them back into the things, so we start doing principles building of things.</subtitle> |
<subtitle id="0:3:59"> Those principles leak back into how we design things, and they even leak back into how we have ideas.</subtitle> | <subtitle id="0:3:59"> Those principles leak back into how we design things, and they even leak back into how we have ideas.</subtitle> | ||
− | <subtitle id="0:4:8"> | + | <subtitle id="0:4:8"> This has been going along on a lot longer than mathematics and science.</subtitle> |
− | <subtitle id="0:4:14"> | + | <subtitle id="0:4:14"> In the twentieth century one of the ideas that gave rise to was a really really tall building done very quickly.</subtitle> |
<subtitle id="0:4:23"> Here's what it looked like when they got done with it. And, I'm not going to spend a lot of time with this but when you talk about engineering, this is one of the three or four things that comes up, the Empire State Building.</subtitle> | <subtitle id="0:4:23"> Here's what it looked like when they got done with it. And, I'm not going to spend a lot of time with this but when you talk about engineering, this is one of the three or four things that comes up, the Empire State Building.</subtitle> | ||
− | + | == How Empire State Building was designed and architected == | |
− | <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> | + | <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]] | ||
+ | <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> | ||
+ | <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:5:5"> So they clad the thing as they went up and the entire building of the Empire State Building took less than 12 months and was done by about 3,000 people.</subtitle> | <subtitle id="0:5:5"> So they clad the thing as they went up and the entire building of the Empire State Building took less than 12 months and was done by about 3,000 people.</subtitle> | ||
Line 84: | Line 93: | ||
<subtitle id="0:5:56"> There's some really interesting things. Anybody who aspires to being an engineer of any kind should be intimately familiar with how this was done.</subtitle> | <subtitle id="0:5:56"> There's some really interesting things. Anybody who aspires to being an engineer of any kind should be intimately familiar with how this was done.</subtitle> | ||
+ | == A book on the Empire State Building == | ||
+ | |||
+ | <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> | ||
<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> | ||
<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> | ||
− | <subtitle id="0:7:14"> "Gentlemen, this building of yours is going to present unusual problems. Ordinary building equipment won't be built worth a damn on. it will buy and make new stuff fitted for the job that's what we do on every big job. | + | <subtitle id="0:7:14"> "Gentlemen, this building of yours is going to present unusual problems. Ordinary building equipment won't be built worth a damn on. it will buy and make new stuff fitted for the job that's what we do on every big job. It costs less than renting secondhand stuff, and it's more efficient." Okay.</subtitle> |
− | |||
− | |||
<subtitle id="0:7:32"> Now in software, a first order theory that's obtained as long as I've been in the field, which is 50 years, is that you should never build your own tools. It's a black hole. Don't build your own operating system. Don't build your own computer for god sakes .</subtitle> | <subtitle id="0:7:32"> Now in software, a first order theory that's obtained as long as I've been in the field, which is 50 years, is that you should never build your own tools. It's a black hole. Don't build your own operating system. Don't build your own computer for god sakes .</subtitle> | ||
Line 116: | Line 132: | ||
<subtitle id="0:9:2"> Sounds ridiculous, right? Not really.</subtitle> | <subtitle id="0:9:2"> Sounds ridiculous, right? Not really.</subtitle> | ||
+ | == 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 126: | Line 153: | ||
<subtitle id="0:9:38"> The reason they got good movies of it is he said when a wind comes up that's over 55 miles an hour, this bridge is going down. So, when that wind came up, they went down to a now-famous camera store in Seattle, famous for supplying the movie cameras, which they then took out to the bridge, set them up.</subtitle> | <subtitle id="0:9:38"> The reason they got good movies of it is he said when a wind comes up that's over 55 miles an hour, this bridge is going down. So, when that wind came up, they went down to a now-famous camera store in Seattle, famous for supplying the movie cameras, which they then took out to the bridge, set them up.</subtitle> | ||
+ | <note for="0:9:56"> | ||
+ | You can see the movie on the Internet, for example, like this one: [https://www.youtube.com/watch?v=j-zczJXSxnw|Tacoma Narrows Bridge Collapse.]. | ||
+ | </note> | ||
<subtitle id="0:9:56"> And, watch the thing shake itself apart.</subtitle> | <subtitle id="0:9:56"> And, watch the thing shake itself apart.</subtitle> | ||
Line 162: | 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 171: | 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 190: | 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> | ||
− | <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. | + | == "Can Software Engineering do anything like this?": Complexity of Software and Software Engineering == |
+ | <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 216: | 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 225: | Line 272: | ||
<subtitle id="0:18:17"> But what is the actual level of improvement, which is tantamount to asking, how complex is the actual problems we're trying to solve compared to the complexity we're creating by just bumbling around.</subtitle> | <subtitle id="0:18:17"> But what is the actual level of improvement, which is tantamount to asking, how complex is the actual problems we're trying to solve compared to the complexity we're creating by just bumbling around.</subtitle> | ||
+ | |||
+ | == 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 230: | 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 236: | Line 299: | ||
<subtitle id="0:19:8"> The starry night it's pretty air but it's still complicated. People spent thousand of years misunderstanding it in a bunch of ways.</subtitle> | <subtitle id="0:19:8"> The starry night it's pretty air but it's still complicated. People spent thousand of years misunderstanding it in a bunch of ways.</subtitle> | ||
+ | <note for="0:19:17"> | ||
+ | Scheffer Stroke is a logical operation of NAND, from which you can build any other operations, and logical structure. [https://en.wikipedia.org/wiki/Sheffer_stroke|Scheffer Stroke on Wikipedia]. | ||
+ | </note> | ||
<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 244: | 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"> | ||
+ | The notation is not science. | ||
+ | </note> | ||
<subtitle id="0:20:35"> Now science is not this. The problem is when most people take science courses they're taught the T-shirt.</subtitle> | <subtitle id="0:20:35"> Now science is not this. The problem is when most people take science courses they're taught the T-shirt.</subtitle> | ||
− | <subtitle id="0:20:41"> But science is actually that. Science is the realm of the relationship between the phenomena that we can't get to./subtitle> | + | <subtitle id="0:20:41"> But science is actually that. Science is the realm of the relationship between the phenomena that we can't get to.</subtitle> |
+ | |||
+ | == Science with Engineering by making an artifact and observing it == | ||
<subtitle id="0:20:53"> Similarly, we can do science with engineering, because it's an artifact that has phenomena so we can actually look at that bridge that we built there. Scientists can look at what engineers do and make a T-shirt of it.</subtitle> | <subtitle id="0:20:53"> Similarly, we can do science with engineering, because it's an artifact that has phenomena so we can actually look at that bridge that we built there. Scientists can look at what engineers do and make a T-shirt of it.</subtitle> | ||
Line 260: | Line 334: | ||
<subtitle id="0:21:50"> Just for comparison, there is our Empire State Building. So the pylons on this bridge are the height of the Empire Building. And, there's the Great Pyramid of Egypt.</subtitle> | <subtitle id="0:21:50"> Just for comparison, there is our Empire State Building. So the pylons on this bridge are the height of the Empire Building. And, there's the Great Pyramid of Egypt.</subtitle> | ||
+ | <note for="0:22:0"> | ||
+ | Akashi Kaikyō Bridge. The longest suspension bridge in the world. [https://en.wikipedia.org/wiki/Akashi_Kaiky%C5%8D_Bridge| Wikipedia]. | ||
+ | </note> | ||
<subtitle id="0:22:0"> This is the Asahi [Akashi] bridge in Japan. Just can't beat it. So lovely.</subtitle> | <subtitle id="0:22:0"> This is the Asahi [Akashi] bridge in Japan. Just can't beat it. So lovely.</subtitle> | ||
<subtitle id="0:22:8"> So, this is what we want to think about. We want to think about real engineering. We want to think about real science.</subtitle> | <subtitle id="0:22:8"> So, this is what we want to think about. We want to think about real engineering. We want to think about real science.</subtitle> | ||
+ | == 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> | ||
<subtitle id="0:22:20"> Part of it is because computer science persists in only building things. It doesn't spend a lot of time trying to understand them.</subtitle> | <subtitle id="0:22:20"> Part of it is because computer science persists in only building things. It doesn't spend a lot of time trying to understand them.</subtitle> | ||
− | <subtitle id="0:22:29"> So, you can look, you know, computers We have built.There, you have their complicated artifacts. Programming languages is a complicated artifacts you can do the same thing.</subtitle> | + | <subtitle id="0:22:29"> So, you can look, you know, computers We have built. There, you have their complicated artifacts. Programming languages is a complicated artifacts you can do the same thing.</subtitle> |
+ | <note for="0:22:41"> | ||
+ | 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> | ||
<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 278: | Line 367: | ||
<subtitle id="0:23:8"> Whereas trying to go over on the other side and mess around with Fortran directly to make it better, it just never happen.</subtitle> | <subtitle id="0:23:8"> Whereas trying to go over on the other side and mess around with Fortran directly to make it better, it just never happen.</subtitle> | ||
+ | <note for="0:23:20"> | ||
+ | Alan is showing the cell biology he studied and the Internet that inspired [[Smalltalk]] design. | ||
+ | </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 284: | Line 376: | ||
<subtitle id="0:23:53">It just didn't happen. So most people program in a way that is strikingly similar to the way programming was done around 1965.</subtitle> | <subtitle id="0:23:53">It just didn't happen. So most people program in a way that is strikingly similar to the way programming was done around 1965.</subtitle> | ||
+ | == 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 294: | Line 411: | ||
<subtitle id="0:24:26"> People did this with bricks for thousands of years before somebody had a strategic thought which is,</subtitle> | <subtitle id="0:24:26"> People did this with bricks for thousands of years before somebody had a strategic thought which is,</subtitle> | ||
− | <subtitle id="0:24:35">"hey, let's make something out of the bricks before we make the thing.</subtitle> | + | <subtitle id="0:24:35">"hey, let's make something out of the bricks before we make the thing."</subtitle> |
<subtitle id="0:24:38"> Let's make a new kind of building component a different kind of structural integrity than a pyramid does, and all of a sudden, we can kick ass.</subtitle> | <subtitle id="0:24:38"> Let's make a new kind of building component a different kind of structural integrity than a pyramid does, and all of a sudden, we can kick ass.</subtitle> | ||
+ | <note for="0:24:47"> | ||
+ | With an arch, one can build as tall structure as a pyramid with much less material. | ||
+ | </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 304: | 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 312: | Line 432: | ||
<subtitle id="0:25:53"> It beats regular fractions in many many ways. Of course the Romans and the Greeks. Romans had a socially accepted QWERTY form of numbers called Roman numerals.</subtitle> | <subtitle id="0:25:53"> It beats regular fractions in many many ways. Of course the Romans and the Greeks. Romans had a socially accepted QWERTY form of numbers called Roman numerals.</subtitle> | ||
− | <subtitle id="0:26:5"> But they didn't use them. most people use this in the wrong way. The Romans and the Greeks had abacuses to compute with. | + | <subtitle id="0:26:5"> But they didn't use them. most people use this in the wrong way. The Romans and the Greeks had abacuses to compute with. This is a Roman abacus and those stones are called calculi.</subtitle> |
<subtitle id="0:26:17"> The calculus came from this notion of what they pull out of your teeth, also. When they you go to the dentist to get the plaque removed they call them calculi.</subtitle> | <subtitle id="0:26:17"> The calculus came from this notion of what they pull out of your teeth, also. When they you go to the dentist to get the plaque removed they call them calculi.</subtitle> | ||
+ | <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> | ||
<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 326: | Line 449: | ||
<subtitle id="0:27:2"> You need to go strategically.</subtitle> | <subtitle id="0:27:2"> You need to go strategically.</subtitle> | ||
+ | <note for="0:27:5"> | ||
+ | Jacquard Loom was a powered device that was controlled by punch cards and produced textiles with complex patterns. [https://en.wikipedia.org/wiki/Jacquard_loom|Jacuard 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. | ||
+ | </note> | ||
<subtitle id="0:27:5"> Of course this was done a long time before with a Jacquard loom, von Neumann architectures, von Neumann style programming languages.</subtitle> | <subtitle id="0:27:5"> Of course this was done a long time before with a Jacquard loom, von Neumann architectures, von Neumann style programming languages.</subtitle> | ||
Line 334: | Line 460: | ||
<subtitle id="0:27:32"> There have been about 3,000 different programming languages invented and some of them really useful.</subtitle> | <subtitle id="0:27:32"> There have been about 3,000 different programming languages invented and some of them really useful.</subtitle> | ||
− | <subtitle id="0:27:38"> But style of programming that is used today is almost entirely this style. It's style where the programming language is rather similar | + | <subtitle id="0:27:38"> But style of programming that is used today is almost entirely this style. It's style where the programming language is rather similar to the underlying storage mechanisms and control structures of the machine.</subtitle> |
<subtitle id="0:27:53"> There are few convenience is there, but not a lot and not enough.</subtitle> | <subtitle id="0:27:53"> There are few convenience is there, but not a lot and not enough.</subtitle> | ||
− | <subtitle id="0:27:59"> But, of course there are always weird people out on the fringes, who, like Turing himself, who did things are completely different. For instance, Sketchpad, which is having its 50th anniversary this year, computed by, you programmed it by, putting in constraints that | + | <note for="0:27:59"> |
+ | Sketchpad is the black and white picture with the light pen interface on the bottom row. [https://en.wikipedia.org/wiki/Sketchpad|Wikipedia]. | ||
+ | </note> | ||
+ | <subtitle id="0:27:59"> But, of course there are always weird people out on the fringes, who, like Turing himself, who did things are completely different. For instance, Sketchpad, which is having its 50th anniversary this year, computed by, you programmed it by, putting in constraints that Sketchpad had to figure out.</subtitle> | ||
<subtitle id="0:28:20"> So, instead of writing solutions to problems, you just gave Sketchpad what the problem, what the nature of the problem was, what the nature that would characterize a solution. Sketchpad had three problem solvers.</subtitle> | <subtitle id="0:28:20"> So, instead of writing solutions to problems, you just gave Sketchpad what the problem, what the nature of the problem was, what the nature that would characterize a solution. Sketchpad had three problem solvers.</subtitle> | ||
Line 346: | Line 475: | ||
<subtitle id="0:28:38"> By the way, he also invented computer graphics while doing it, and also this is the first object-oriented system I know of. </subtitle> | <subtitle id="0:28:38"> By the way, he also invented computer graphics while doing it, and also this is the first object-oriented system I know of. </subtitle> | ||
− | <subtitle id="0:28:44"> | + | <subtitle id="0:28:44"> Those three things were done by Ivan Sutherland as a thesis project in one year, one person. I once asked Ivan: "how could you do these three things in one year?" He says well I didn't know it was hard.</subtitle> |
<subtitle id="0:28:59"> Ivan was a genius, but he had also had the advantage of just aiming for what we really needed.</subtitle> | <subtitle id="0:28:59"> Ivan was a genius, but he had also had the advantage of just aiming for what we really needed.</subtitle> | ||
Line 365: | Line 494: | ||
<subtitle id="0:30:26"> The Internet is really the only extant true object-oriented system in the world right now.</subtitle> | <subtitle id="0:30:26"> The Internet is really the only extant true object-oriented system in the world right now.</subtitle> | ||
+ | <note for="0:30:32"> | ||
+ | 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. | ||
+ | </note> | ||
+ | <subtitle id="0:30:32"> Then, there's, of course, AI, which people have lost interest in, just as it was starting to get really well work done. We should be spending more time thinking about this. </subtitle> | ||
− | + | == Xerox ALTO in 1973 == | |
− | <subtitle id="0:30: | + | <subtitle id="0:30:40"> Now, one little blast from the past, 1973, we showed this machine and this system.</subtitle> |
− | <subtitle id="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. | ||
+ | <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> | ||
+ | <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:31:14"> These got split up when they came out into the real world, but it's, in Xerox theory, one thing. There was no operating system, because you don't need one.</subtitle> | <subtitle id="0:31:14"> These got split up when they came out into the real world, but it's, in Xerox theory, one thing. There was no operating system, because you don't need one.</subtitle> | ||
− | <subtitle id="0:31:23"> | + | <subtitle id="0:31:23"> When Xerox asked us what we were we're doing, we gave them our own version of Paul Starrett's speech, not even a pick and shovel.</subtitle> |
<subtitle id="0:31:38"> Part of the deal at Xerox PARC was we built every bit of the hardware and software ourselves from scratch.</subtitle> | <subtitle id="0:31:38"> Part of the deal at Xerox PARC was we built every bit of the hardware and software ourselves from scratch.</subtitle> | ||
Line 392: | Line 535: | ||
<subtitle id="0:33:8"> This is called making an algebra. This was a technique that we use pretty generally at PARC.</subtitle> | <subtitle id="0:33:8"> This is called making an algebra. This was a technique that we use pretty generally at PARC.</subtitle> | ||
+ | == 8 and half Inventions at Xerox PARC == | ||
+ | |||
+ | <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. | ||
+ | <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> | ||
<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 406: | 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 == | ||
− | <subtitle id="0:34:38"> Now let's take a look at a science project in the present. | + | <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. | ||
+ | <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> | ||
+ | <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 422: | Line 590: | ||
<subtitle id="0:35:29"> But this is a science project. We want those T-shirts.</subtitle> | <subtitle id="0:35:29"> But this is a science project. We want those T-shirts.</subtitle> | ||
+ | == Principles of STEPS == | ||
+ | |||
+ | <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]. | ||
+ | <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> | ||
<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 430: | Line 609: | ||
<subtitle id="0:36:17"> I hate bullets. So please do not regard these as bullets. just look. They're ten blobs, out of twelve or thirteen blobs, that we used.</subtitle> | <subtitle id="0:36:17"> I hate bullets. So please do not regard these as bullets. just look. They're ten blobs, out of twelve or thirteen blobs, that we used.</subtitle> | ||
− | <subtitle id="0:36:29"> What they are are things, a couple of those we invented but, most of them were things that have been around | + | <subtitle id="0:36:29"> What they are are things, a couple of those we invented but, most of them were things that have been around for 50 years that didn't make it into the particulars design culture that computing is.</subtitle> |
<subtitle id="0:36:44"> See, the difference here is nature helps physicists be honest, because in the end you're supposed to submit your theories back to nature. But the problem is we're a design field: so our trade is bullshit.</subtitle> | <subtitle id="0:36:44"> See, the difference here is nature helps physicists be honest, because in the end you're supposed to submit your theories back to nature. But the problem is we're a design field: so our trade is bullshit.</subtitle> | ||
Line 442: | Line 621: | ||
<subtitle id="0:37:32"> A system lock up. there is no way to do something ahead of time that will tell you you won't get system lock up.</subtitle> | <subtitle id="0:37:32"> A system lock up. there is no way to do something ahead of time that will tell you you won't get system lock up.</subtitle> | ||
+ | <note for="0:37:44"> | ||
+ | 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> | ||
<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 448: | 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 454: | 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 464: | 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 472: | 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 480: | 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 488: | 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 496: | 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 528: | 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 546: | 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 554: | 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 574: | 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 == | ||
+ | |||
+ | <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"/> | ||
− | <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> |
+ | <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 588: | Line 862: | ||
<subtitle id="0:49:59"> This represents taking something it was done by very good people, but in the wrong language, and done essentially in a way that generated unnecessary code.</subtitle> | <subtitle id="0:49:59"> This represents taking something it was done by very good people, but in the wrong language, and done essentially in a way that generated unnecessary code.</subtitle> | ||
− | <subtitle id="0:50:11"> big key here was not so much the language</subtitle> | + | <subtitle id="0:50:11"> The big key here was not so much the language as the method.</subtitle> |
− | <subtitle id="0:50: | + | <subtitle id="0:50:17"> The method came first, and then we did the language to do it so the whole thing collapses down.</subtitle> |
− | <subtitle id="0:50: | + | <subtitle id="0:50:23"> Okay.</subtitle> |
− | + | == Particles and Fields Abstraction == | |
− | <subtitle id="0:50: | + | <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: | + | <subtitle id="0:50:44"> In fact, there are animals that do this also like ants.</subtitle> |
− | <subtitle id="0:50: | + | <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: | + | <subtitle id="0:51:8"> This is using about eleven thousand parallel processes, because each little cell is being used to diffuse the perfume the ants lay down. You see, right now, all of the ants have been captured by the field even they're not communicating directly with each other they're communicating indirectly with each other.</subtitle> |
− | <subtitle id="0: | + | <subtitle id="0:51:29"> We would call this loose coupling.</subtitle> |
− | + | == Paragraph Justification with Rules == | |
− | <subtitle id="0: | + | <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: | + | <subtitle id="0:51:41"> Who said you could do the encyclopedia over here?</subtitle> |
− | <subtitle id="0: | + | <subtitle id="0:51:47">We're not going to do the encyclopedia but we're just going to say: "hey, we should be able to organizae these little ants to do a paragraph.</subtitle> |
− | <subtitle id="0: | + | <subtitle id="0:51:59">The simplest thing that you can get fifth graders to figure out is.. Well, when you have to do something, follow the guy who is in front of you, and if there's nobody in front of you go to the upper left-hand corner.</subtitle> |
− | <subtitle id="0: | + | <subtitle id="0:52:8"> If you find yourself over the the right-hand margin, tell the guy in front of you, and eventually somebody will know what to do, like go to the next line, right?</subtitle> |
− | <subtitle id="0: | + | <subtitle id="0:52:17"> Let's just say go do this.</subtitle> |
− | <subtitle id="0: | + | <subtitle id="0:52:23"> I just gave you like a three line formatter, right?</subtitle> |
− | <subtitle id="0: | + | <subtitle id="0:52:29"> So, this is math. I'm going to set it off again.</subtitle> |
− | <subtitle id="0: | + | <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: | + | <subtitle id="0:52:41"> I can turn general here into justify.</subtitle> |
− | <subtitle id="0: | + | <subtitle id="0:52:47"> And, it's just redoing this over and over again. All right.</subtitle> |
− | <subtitle id="0: | + | <subtitle id="0:52:53"> The editor is actually working</subtitle> |
− | <subtitle id="0: | + | <subtitle id="0:52:59">Now, another way to do it, a little faster, is to say: "hey, don't follow the leader here because this is just for the crowd".</subtitle> |
− | <subtitle id="0: | + | <subtitle id="0:53:5"> When it's time to do your thing, wait until the guy in front of you gets to the right place, and then go right behind him.</subtitle> |
− | <subtitle id="0: | + | <subtitle id="0:53:14"> This is called jump, and here's what that looks like.</subtitle> |
− | <subtitle id="0: | + | <subtitle id="0:53:17"> Now, they're all standing still. Okay.</subtitle> |
− | <subtitle id="0: | + | <subtitle id="0:53:29"> If I start jump here, and I just say now do this in between frame times.</subtitle> |
− | <subtitle id="0: | + | <subtitle id="0:53:35">Bonk</subtitle> |
− | <subtitle id="0: | + | <subtitle id="0:53:41">okay, so all of the editing here is done like this.</subtitle> |
− | <subtitle id="0: | + | <subtitle id="0:53:47"> In fact, this is another one of the documents in this universal document system.</subtitle> |
− | <subtitle id="0: | + | <subtitle id="0:53:53"> Remember, we have to do Microsoft Office here.</subtitle> |
− | <subtitle id="0: | + | <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: | + | <subtitle id="0:54:5"> Well, the answer is simple, because amazingly people will put up with this silliness enough to buy it from them, and thus encourage them further.</subtitle> |
− | <subtitle id="0: | + | <subtitle id="0:54:17"> This is nonsense.</subtitle> |
− | <subtitle id="0: | + | <subtitle id="0:54:20"> Really, what you want is a universal document in just different ways. You really don't need to have a different system for the World Wide Web, do you?</subtitle> |
− | <subtitle id="0: | + | <subtitle id="0:54:32"> No, because it's just a different way of accessing these multimedia Docs.</subtitle> |
− | <subtitle id="0: | + | <subtitle id="0:54:38"> This is actually how we write code. This is an explanation to somebody like you to show in a little essay how the how the code actually works.</subtitle> |
− | <subtitle id="0: | + | <subtitle id="0:54:56"> We start off here, and say: "okay, the first thing we want to do is just get these guys out there randomly."</subtitle> |
− | <subtitle id="0: | + | <subtitle id="0:55:5"> These two lines of these two little boxes of code do this. And, here's one that just does this without worrying about the next line.</subtitle> |
− | <subtitle id="0: | + | <subtitle id="0:55:17"> Here are some special cases.</subtitle> |
− | <subtitle id="0: | + | <subtitle id="0:55:26"> This is a reminiscent of the way Knuth sometimes likes to program.</subtitle> |
− | <subtitle id="0: | + | <subtitle id="0:55:32"> You actually learn the thing while you're looking at it. You can do little experiments.</subtitle> |
− | <subtitle id="0: | + | <subtitle id="0:55:38"> By the time you've done that, bingo, you've got the thing.</subtitle> |
− | <subtitle id="0: | + | <subtitle id="0:55:44"> Here, this is a yet another problem-oriented language, but with rules this time. So rule based.</subtitle> |
− | <subtitle id="0: | + | <subtitle id="0:55:53"> Seven rules for doing the layout.</subtitle> |
− | <subtitle id="0: | + | <subtitle id="0:55:59"> The whole editor, like Microsoft Word. Paragraphs is 35 rules, okay.</subtitle> |
− | <subtitle id="0: | + | <subtitle id="0:56:8"> So, that's all you have to do for that.</subtitle> |
− | + | == Coordinating Multiple Solvers == | |
− | <subtitle id="0: | + | <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: | + | <subtitle id="0:56:20"> But the problem with problem solvers and these problem-oriented languages, they're [also] problem solvers, they aren't integrated.</subtitle> |
− | <subtitle id="0: | + | <subtitle id="0:56:29">So, you wind up with a hodgepodge of different things serving different things, and you want to be able to integrate them.</subtitle> |
− | <subtitle id="0: | + | <subtitle id="0:56:35"> Here, we can have a simplex solver, differential equations, propagation, dynamic programming, relaxing, the rules for the paragraph. These all have different problem domains.</subtitle> |
− | <subtitle id="0: | + | <subtitle id="0:56:47"> What we want to do is to approach them strategically, as I've been talking about here, through general relational languages that talk to, or a kind of a little operating system for solvers, and often with the help of an expert system that helps make a strategy for using these things.</subtitle> |
− | <subtitle id="0: | + | <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 == | |
− | <subtitle id="0: | + | <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: | + | <subtitle id="0:57:23"> Here's something that happened in the 60s except nobody noticed it except maybe the ARPA researchers, and the outgrowth of that to Xerox PARC. </subtitle> |
− | <subtitle id="0: | + | <subtitle id="0:57:35"> That is, that the entire paradigm of computing, because of Moore's law, was going to be able to shift from a gear like way of doing things, basically tight coupling, brittle code, to something more like ecology, something more biological.</subtitle> |
− | <subtitle id="0:53 | + | <subtitle id="0:57:53"> We use these ideas very strongly in the invention of the Internet, and in the invention of the object-oriented techniques that we used for software at Xerox PARC.</subtitle> |
− | <subtitle id="0: | + | <subtitle id="0:58:5"> The deal here is you can fix a clock, but you can only make clocks of a certain size. Maybe a thousand gears before they just crash.</subtitle> |
− | <subtitle id="0: | + | <subtitle id="0:58:11"> This is what happens in today's programming.</subtitle> |
− | <subtitle id="0: | + | <subtitle id="0:58:14"> You have to negotiate with the system. A lot of what growing the old world into this new world is learning what it means to do this kind of negotiation, as you add more system elements.</subtitle> |
− | <subtitle id="0: | + | <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 == | |
− | <subtitle id="0: | + | <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: | + | <subtitle id="0:58:47">We control time, and we'll do it by simulating our own time.</subtitle> |
− | <subtitle id="0: | + | <subtitle id="0:58:50"> We don't want to have any preferred center. We want to have something like the Internet all the way down.</subtitle> |
− | <subtitle id="0: | + | <subtitle id="0:58:55"> We want loose coupling. Now of course, this has all been done before, again with networks.</subtitle> |
− | <subtitle id="0: | + | <subtitle id="0:59:5"> Here now, we're looking at physical computers on the Internet or Ethernet.</subtitle> |
− | <subtitle id="0: | + | <subtitle id="0:59:11"> Ideally, we'd like our computations to be software versions of these hardware networks. Why?</subtitle> |
− | <subtitle id="0: | + | <subtitle id="0:59:20"> Because in most cases we will need to do load balancing.</subtitle> |
− | <subtitle id="0: | + | <subtitle id="0:59:26"> Sometimes we'll be able to run all of these guys on a single machine, in which case we just have increased integrity and ability to design quickly. But a lot of the time, especially now with mobile, we want to have the same computations able to drift around the network to different kinds of devices.</subtitle> |
− | <subtitle id="0: | + | <subtitle id="0:59:47"> In some cases, not all of the computation is going to want to be in the machine that is next to the user interface. If you think of the user interface here, it's basically a set of views of processes that are giving it images to integrate up on the surface.</subtitle> |
− | <subtitle id=" | + | <subtitle id="1:00:8">Here's a great thing if you're interested. Dave Reed's 1978 Ph. D thesis at MIT. The design of an operating system for the Internet was never done, but we validated it a few years ago at Viewpoints.</subtitle> |
− | <subtitle id=" | + | <subtitle id="1:00:26"> What if you want to make a system that is the size of the Internet that is a software system. What is it that you have to do to absolutely ensure that you're going to have what people like to call data integrity always.</subtitle> |
− | <subtitle id=" | + | <subtitle id="1:00:41"> So that no matter where you ask a question anywhere on the network about anything anywhere on the network, you will get the same answer for the pseudo time referent of that question.</subtitle> |
− | <subtitle id=" | + | <subtitle id="1:00:56"> A working version of a migratory system was done by Jerry Popek. I put this up here because this book was written in the 80s, you can still get it from MIT press.</subtitle> |
− | <subtitle id=" | + | <subtitle id="1:01:8"> The Locus distributed system architecture. You'll find the entire book interesting. It just a thin little volume. The first two chapters are a classic still of the issues you have to think about and solve in order to do this.</subtitle> |
− | <subtitle id=" | + | <subtitle id="1:01:23"> Again, this has all been done. This is almost 30 years old now, but nobody uses it.</subtitle> |
− | <subtitle id=" | + | <subtitle id="1:01:29"> but if you were to use it, all applications are now just mashups, right?</subtitle> |
− | <subtitle id=" | + | <subtitle id="1:01:35"> We don't want applications as smoke stacks, because we want to integrate. We didn't have appications at Xerox PARC, and we did not have operating systems.</subtitle> |
− | <subtitle id=" | + | <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 == | |
− | <subtitle id=" | + | <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=" | + | <subtitle id="1:02:14"> But if you think about analogies to what's happening with the scaling that's going on here. It basically starts looking like a biological ecology.</subtitle> |
− | <subtitle id=" | + | <subtitle id="1:02:26"> These have their own dynamics and they need to be thought about in special ways.</subtitle> |
− | <subtitle id=" | + | <subtitle id="1:02:32"> The ability for us to scale to what Moore's law is allowing right now is going to require us to start thinking more and more like this</subtitle> |
− | <subtitle id=" | + | <subtitle id="1:02:42"> We did this to some extent when we did the Internet.</subtitle> |
− | <subtitle id=" | + | <subtitle id="1:02:44"> Like, I have a degree in molecular biology in my misspent youth.</subtitle> |
− | <subtitle id=" | + | <subtitle id="1:02:50"> A lot of the ways I think about this stuff is through tissue biology and how the hundred trillion cells in our body work without having a dedicated center and so forth.</subtitle> |
− | <subtitle id=" | + | <subtitle id="1:03:2"> But in computing, we have problems of our own that are special. Then, the next step beyond this, the best book I've ever seen about it is Minsky's Society of Mind book, which is actually about a model for human psychology.</subtitle> |
− | <subtitle id=" | + | <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 == | |
− | <subtitle id=" | + | <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=" | + | <subtitle id="1:03:29"> I won't say which one is the lemon.</subtitle> |
− | <subtitle id=" | + | <subtitle id="1:03:32"> Down on the bottom here, our little Frankenstein monster that we made is that I've been showing you today is less than 20,000 lines of code.</subtitle> |
− | <subtitle id=" | + | <subtitle id="1:03:44"> So it's worth pondering.</subtitle> |
− | <subtitle id=" | + | <subtitle id="1:03:47"> We are not using any of the Macintosh software in order to do this demo.</subtitle> |
− | <subtitle id=" | + | <subtitle id="1:03:56"> Here's just to kick off, I think I'll just show this slide and then quit.</subtitle> |
− | <subtitle id=" | + | <subtitle id="1:04:2"> I organized the talk so I can stop now at any place and I need to in about a minute.</subtitle> |
− | <subtitle id=" | + | <subtitle id="1:04:8"> I'll just leave this one thought with you. Maybe we can have a few questions.</subtitle> |
− | <subtitle id=" | + | <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: | + | <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: | + | <subtitle id="1:04:32"> News is the stuff that is incremental to the categories that we already know. Almost every bit of news is a specific parameter into some category that we already understand.</subtitle> |
− | <subtitle id="1: | + | <subtitle id="1:04:44"> It's this war, that killing, this marriage, that hem size, right?</subtitle> |
− | <subtitle id="1: | + | <subtitle id="1:04:53"> You can get a quite a bit of this out in a few minutes.</subtitle> |
− | <subtitle id="1: | + | <subtitle id="1:04:59"> There's almost no context to news that it's not already inside of our own head.</subtitle> |
− | <subtitle id="1: | + | <subtitle id="1:05:5"> New on the other hand, real new. not news.</subtitle> |
− | <subtitle id="1: | + | <subtitle id="1:05:11"> Real new is invisible. We don't have a category. McLuhan said until I believe it I can't see it.</subtitle> |
− | <subtitle id="1: | + | <subtitle id="1:05:20"> That is the way it works in the human nervous system.</subtitle> |
− | <subtitle id="1: | + | <subtitle id="1:05:23"> News is something that's been going on for the entire existence of the human race about two hundred thousand years.</subtitle> |
− | <subtitle id="1: | + | <subtitle id="1:05:32">It's basically campfires, and this is what we're doing right now.</subtitle> |
− | <subtitle id="1: | + | <subtitle id="1:05:35"> This is a campfire. I'm doing the best I can do in an hour of telling stories in a campfire.</subtitle> |
− | <subtitle id="1: | + | <subtitle id="1:05:41"> The problem is new can take two to five years to get the new categories that you need in order to actually see it.</subtitle> |
− | <subtitle id="1: | + | <subtitle id="1:05:53"> One of the unfortunate things that happens is that new when you try to talk about it, and people make an effort on it, they usually transform it back into news.</subtitle> |
− | <subtitle id="1:06: | + | <subtitle id="1:06:5"> For instance, we did this as a way of boosting mankind.</subtitle> |
− | <subtitle id="1:06: | + | <subtitle id="1:06:11"> It was all about learning by doing.</subtitle> |
− | <subtitle id="1:06: | + | <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: | + | <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: | + | <subtitle id="1:06:32"> But in fact, people only value them as as much as they value their television sets. And, they use them roughly the way they use their television sets. The big problem whenever something new comes along, like personal computing and the internet, is that people when they see a convenience to themselves, they recast it back to the forms that they know about.</subtitle> |
− | <subtitle id="1: | + | <subtitle id="1:06:56"> For instance, object-oriented programming never made it outside of Xerox PARC. Only the term did.</subtitle> |
− | <subtitle id="1: | + | <subtitle id="1:06:59"> We got designer jeans, but designer jeans are just dungarees with a fancy label on them. Thank you.</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.