I am writing TDD in Ruby book that has a chapter on Gilded Rose Kata. I have watched the presentations by Sandi Metz and Paul on this kata. They take different approaches to solve the problem. Sandi Metz's presentation was more engaging. I thought it was a great idea when she gradually refactored by trapping one type of cheese at a time by short-circuiting the code path for a certain cheese and make those tests fail and gradually making them pass one at a time. I don't think inheritance is the right choice in the final design. The problem is we are not inheriting any behavior from the superclass. Only the state is shared between the superclass and the subclasses so composition would have been the right choice.

I liked Paul's design of wrapping the item class and not using any dynamic class creation like Sandi Metz. Paul had a great examples of making the code express the domain concepts. But fell short in the end because he failed to recognize the data duplication and perhaps missed an opportunity to make it more expressive. Sandi Metz failed to raise the level of abstraction in the unit tests. Surprising thing is when she is describing what the test does, it could have easily been made a domain specific assertion like assert_quality_decrease etc. Hopefully, my book will address these shortcomings and perhaps I will push myself to produce something that I use in a conference talk.

Paul's presentation was a bit dry but he still had some good refactoring patterns and discussion about De Morgan's Law. I never thought what I had learned in high school would be relevant to coding today.

Saturday, November 05, 2016

I'm not gonna be talking about writing code i'm not going to talk aboutbuilding software and we we normally think about it but this is very deeplyabout creating programs and kind of in the same way that we create sounds whenwe talk we create letters on your right is about creating programs as a means ofa person-to-person communication as a means of representing thought this isthis is kind of a personal talk in certain ways and so I want to start outjust with a little bit of personal background - so you can kind of seewhere I'm coming fromI got my start like many people you know making games and apps and whatnotI think I kind of found my stride designing creative tools made a numberof musical instruments visual design tools that sort of thing that startedgetting me interested in UI design and after studying that I went to appleinventing and prototyping you I concepts for experimental projects which ended upinfluencing these things and perhaps other things yet to comeand it was also very interested in information designI helped al gore make a book app about climate changedesigned a series of interactive information graphics to enable readersto understand things and ways that be difficult to understand text and then II got on a train and start living on the train as a wandering research hoboamong other things designing new kinds of reading material where it's not theauthor lecturing at the reader but the authors guiding the reader throughexploring dynamic models simulations of the author's provided the reader kind ofthe agency to try different things out to say what if to critique the model bemore active people are participating reader somaking these things and then also prototyping these different creativetool environments for for dynamic things so tools for work with mathematicalsystems for making software making electronics animation tools for makingthings that have behavior that to stuff and my focus always seem to be on therepresentation of that behavior how could I authors see what the things aremaking it's actually doing and what are powerful ways of seeing so they candeeply understand what the figures doing and understand in many different waysso this notion of representation representation of dynamic behaviorseemed to be very central and so I made all these things and made all theseprototypes and this kind of hobo . was just look goodyou know a couple years or so and then over the last year I've just kind ofbeen reflecting on all thisthis raw material and trying to trying to hear what the prototypes are tryingto say because all those things that that i showed you know each one of themwas kind of individuallyit's sort of useful its own little domain but that's not really the pointof any of thisall those were kind of advantage . to get a glimpse of something much biggerthan this new way of working and thinking in the dynamic medium and thatthat bigger picture is what I want to try to talk about todayso this talk has two parts the first half is about the past and the secondhalf is about the future in the first halfI'm gonna try to make the argument that representations which i mean the theways we externalized thought have been responsible over the last 2,000 years inlarge part for the intellectual progress of humanity enabling us to thinkthoughts of you didn't think before but while these media that we've inventedhave empowered us in certain ways they've also crippled us in other waysand we now have the opportunity to design a new medium of thought thatundoes some that damage that's both humane and empoweringso that's the first half and the second half i'm gonna try to sketch out whatthat medium might look likeso what it might be like to communicate to work to think in a humane dynamicmedium so we'll start with representations of what i mean byrepresentation is the physical form of a thought it's something out there in theworld that you can sense with your senses and manipulate with your body andas an example i want to tell you about one of my favorite form ofrepresentation of all time which was invented by William play fair in 1786will play for was writing a book abouthe loves trade with other nations and he had a lot of data and back thendata was always expressed it was always represented in tables of numbersyou're doing economics or business or science you had these tables numbersneed to learn how to read and write them and data and tables of data they werethe same concept you can tease them apart the data and the way they wererepresenting the data people couldn't think of them separately and playfairhad a very interesting thoughthe realized that there's a certain form of understanding that we bring to thetable the numbers but there's a very different way of understanding that webring to things like Maps is kind of a different set of perceptual andcognitive capabilities that we bring into play when we're looking atand playfair had the unprecedented thought of making a very peculiar kindof map where instead of left rightbeing west-east it would be earlier later and step up down bill north southit would be more money less money and so he drew this funny kind of map which wasthe first data graphic the first time anybody plotted data can peopleimmediately caught on to like wow this is a really powerful way ofunderstanding data as these things happened it didn'tpeople got it but it didn't actually catch on as a thing for another hundredyears or so but eventually didand today of course the data plot underlies almost all of modern scienceand engineering most sprint as a science and engineering will be almostunthinkable without the plot it's just totally fundamental to everything we doto the extent that it almost seems obvious right and it's hard to realizethat was only invented couple of years agoso the point here in this kind of what i want your hole through the entire talkwhat play fair did was he realized that human beings have a certain capabilityfor understanding maps for understanding this kind of cartographic abstractionand this capability was not being used when they're trying to understand dataand so we invented a representation which represent the data in such a waythat this latent capability could be brought into service right and that'swhat representations do that's how they work their magic is they draw on certainlatent in eight capabilities that we have and your capabilities thatoriginally in evolved for like you know in a hunting-gathering context and bringthese late and capabilities into service repurposing them for a more abstractpurpose and they're originally intended for and you can see the sort of patternin play in many of the great reputationsthroughout history mathematics course one of the first amazing ones was theinvention Arabic place value numeralsyou can't do arithmetic in roman numeralsyou can't think arithmetic in roman numerals you have to let go over to yourabacus place value arabic numerals were the first user interface for numbersthat allowed calculation to be done on paperthis was totally transformative same sort of story with the invention ofalgebraic notation as opposed to like writing out imperative knowledge and bigblocks of text you could write things declarative and small number of symbolsabsolutely transformative Leibniz's notation for the calculus leave it wasthe UI designer of the 17th century he was obsessed with notation always tryingout different notations always like talking with his friends about notationbecause he realized that a lot of the power an idealies in the form in which is expressed because that's what allows people tothink itand in any given field you can go in there and find a particular formerrepresentation which transformed ignited the field so the periodic table forexample mentally correct cable is basically the beginning of a theory ofchemistrythat's where it all started Bohr's model of the atom which of course wasoriginally inspired by Copernicus's model of the solar systemFaraday's representation of magnetism has lines the force which influencedMaxwell to make historyalthough Maxwell did not write Maxwell's equationsMaxwell wrote 20 equations and twenty unknowns has scattered throughout hispaper it was absolutely brilliant theory but there's something much deeper therethat nobody could see and it was Oliver Heaviside who invented the language ofvector calculus specifically for the sole purpose of being able to writeMaxwell's equations in that kind of compact for Lyme symmetric form so ofcourse that reputation of Maxwell's equations as then you're veryinfluential but more so heavy sides representation of the vector basicallypower to hundreds of physicsso when you're thinking of the great ideas of history often what you reallywant to be thinking about is the great representations that enabled peoplethink those ideas soideas living representations and the representations in turn have to live inmedium so there's different have thought there's some ideas that you can talkabout in speech that some ideas that you are carried well in song or theater butthe Big E of course was print invention of the printing press five hundred yearsago which basically made all that stuff on the Left possibleall that stuff on the left was basically designed for the medium front with thepossible exception of numerals but even those they've been around for a fewhundred years but they're basically kind of niche thing until print came alongand that's when they started becoming widespread so a powerful medium is whatenables powerful representations to be used and seen and spread so you canthink about the invention of powerful representations and the invention ofpowerful media to most powerful presentations as being one of the bigdrivers of last 2,000 years of the intellectual progress of humanity aseach representation allows us to think thoughts that we couldn't think beforewe kind of continuously expand our thinking territoryso you can think of this is tied to you know that the Grand meta-narrative ofthe scent of humanity moving away from myth and superstition and ignorance andtowards a deeper understanding of ourselves and the world around usI bring the stuff explicitly because i think it's good for people toacknowledge the motivation for the work and this is this love story of theintellectual progress of humanity is something that I find very motivatinginspiring and it's something I feel like I want to contribute to but i think thatif this it if you take this as your motivation you have to be honest withyourself that that they're definitely has been a centwe have improved in many ways but there are also other ways in which our historyhas not been sentsowe invent technology event media technology to kind of help us make thisthis climb but every technology is a double-edged swordevery technology enables us has a potential to enable sent in certain wayswhile debilitating us in other ways and that's especially true forrepresentations because the way the reputations work is they draw on certaincapabilities that we haveso if we go all in a particular medium like we did with print who thecapabilities that are not well supported in that medium they get neglected andthey atrophy and we atrophyI wish I knew who drew the picture because it's It's a Wonderful depictionof what i'm trying to express here and even a little misleading because theperson the last stage they're kind of hunched over his tiny rectangle we reachthat stage of comp wonder years ago rightwe reach that stage with the printing press and cheap paper book basedknowledge the invention of paper-based bureaucracy paper-based workingwe invented this lifestyle this way of working where to do knowledge work meantto sit at a desk and stare at your little tiny rectangle make a littlemotions of your handit started out is sitting at a desk staring at papers or books and makingmotions but the pen and now it's sitting at a desk staring at a computer screenmaking a little motions with your keyboard but it's basically the samething we've this is what it means to do knowledge work nowadays this is what itmeans to be a thinkerit means to be sitting and working with symbols on a little tiny rectangle tothe extent that again it almost seems inseparableyou can't separate the reputation for what it actually is and and this isbasically just an accident of historythis is just the way that our media technology happened to evolve and thenwe have designed a way of knowledge work for that media that we happen to haveand I think I so i'm going to make the claim that this style of knowledge workthis lifestyle is inhumane and I mean something very precise by thatso I try to explain with an analogy imaginedI met you adopt a puppy so your doctor's puppy and your name and puddles you takecouple's home and you get a little snack and ustick puddles in the cage and youlock the door forever and never open it again and puddles live out the rest ofhis poor life trapped inside this little cageso that's wrong I think most of us would agree that's sadistic that obviouslyinhumane and so well let's ask what exactly is wrong about thatyou know what would an inhuman about sticking puddles in the cagewell you know we kind of have a notion of what it means to live a full doggylife ride dogs have to run around dogs run around and they sniff other dogs andthey pee on things and that's kind of what it means to be a dogthey've inherited this the set of capabilities capabilities and traitsfrom their wolf ancestors and we recognize that a dog has to be allowedthe full free expression of its entire range of capabilities by sticking in thecage or constraining his range of experienceyou're not letting him do all the things that dogs can do and this is exactlywhat we've done to ourselves we've invented media that severely constrainedour range of intellectual experience that of all the many capabilities thatwe have the mall in many ways of thinking that we have we haveconstrained ourselves to a tiny subsetwe're not allowed to use our full intellect and to see that I think weneed to take a look at you what is that full range of capabilities what are allthe different ways we can think about things and it turns out it's it's a veryvast and amorphous space are modes of understandingso there's been a number of different attempts to add structure that space tocarve it up one way of looking at it is by looking at the different sensorychannels that we used to make sense of things so an exampleI say music you probably think oh that's something that we understand our earlyrightbut there's another representation music which is visual which sheet music whichallows us to understand music and a very different and very powerful way you'remaking musicthen you're often thinking about attackBilly it's a tackle understanding is that interaction between your hands andthe instrument you could define dance as an understanding of music which lives inthe body looks in the movements of the body and if you've ever played inorchestra band you can appreciate a kind of spatial understanding of Music whereyou know the guitars over there the drummer's over there you have thinkingabout music and spatially distributed waythe music is just an example there's any number of things which can berepresented that any or all of these these forms these channels and it's amore than the sum of their parts thing that we have multiple representationsthey compound and reinforce each otherincredibly powerful ways and allowed to allow for understanding that would notbe possible in any single channel so that's one I guess one attempt to drawbasis vectors into this kind of space of understandingsanother useful one was presented by Jerome Bruner have adapted from pjseriesso we talked about the action based image based and language-basedunderstandings riding a bike is something that you understand by doingityou can't talk about how you ride a bike gets the understanding lives in thePerforming of itthere's an image-based understanding and look at the drivetrain of bike and seehow the sprocket is pulling the chain or the trailer and I understand thiscomplex mechanical system in this image based wordless way and then of coursethere's language-based understanding understand and articulate you can talkabout parts of like you can talk about gear ratios and calculate them i thinkmost of us in this crowd tend to gravitate towards the symbolic and so Ithink it's importantyou may be too to remember that speech is purely symbolic and the most the mostimportant invention in the history of humanity was the invention of writingwe took speech and turned it into an image-based iconic second channel formright so that's what happens when you get multiple channels involved as youneed toleads to understanding that would not be possible with any any single one morepair with a couple others just to kind of give you a sense of the breadth ofthe spaceso there's Howard Gardner's multiple intelligencessome people use this to say things like johnny is visual and Sally is verbal orwhatever i'm no don't do thatthe way to use this is to realize that every human being has all thesecapabilities and we can design reputations across town especially likegardeners because he explicitly calls out and pathetic forms of understand theway that we understand other people understand ourselves understand naturewe can use all of these capabilitiesmy current favorite right now is cured Eakins frameworkhe's got inspired by vygotsky and soul too subtle to talk about here but ifyou're interested in this sort of thing I recommend you read his book theeducated mind because it's fantasticso the point of all of this is really just that the space of the ways weunderstand thingsthe space for cognitive capabilities is so vast and so diverse that even peoplewho devoted their entire careers to trying to reduce it down to a neatlittle Theory have come up with very different answers because there'sthere's so much there is such a rich facelet's just focus on these two for nowso basically every every circle up there is a superpower right every circle upthere is a capability that we've been holding for hundreds of thousands ofyears that we use in you know innumerable ways and can combine withthe other ones and really powerful ways and what happened with the invention ofthe printing press in the invention of tiny rectangle based knowledge work isthisso all that stuff drops out and we're working with visual symbols right we'rereading visual symbols for manipulating visual symbolsthat's what it means to do intellectual work nowadays andand you might think oh ok maybe that was true with like paper and books but youknow with computers it's getting better rightand no with computers it is getting worseso with a book your book is at least a physical object which exists in theworld have some amount of tactical response you can hold it and move itaround with a book you can make a shelf which is a spatial representation ofknowledgeit's not a very good one but it's at least something that you can understandspecially when you're riding with ink on paper you can move freely betweendrawing imagery and writing and language that the paper doesn't really care whatkind of marks you make on it you have the freedom at least two move betweenthose two modes but then we invent these things and they have these flat glassyscreens that have no tactical response and that drops out and they're expensivelittle screens they take up a little tiny portion of your field of view andthe special stuff drops out and at these keyboardsbasically the only convenient thing to do is punch in symbolsespecially for us anything from writing an email to write a computer programanything other than just typing in letters is incredibly cumbersomeregardless what you're trying to express you express it in symbols because that'swhat the interface encourage you to do so that drops outand so this is the cage that we have trapped ourselvesthis is the way in which we have constrained our range of experiencewhich we have created a tiny subset of our intellectual capabilities andrestrict ourselves to this tiny subset and have forbidden ourselves to use ourfull intellectso there's two things wrong with this one is that it's inhumane so in the sameway you know keeping puddles in the cages and you mean because he can't doall those doggie things using media that restrict our thinking to this tinysubset is inhumane because we can't do our thinking things we can't think inall the ways that human beings are able to think so thats there's kind of amoral argument thereif you don't buy that there's also a practical argument which is that's justwastefulone way to think about it is you know as programmers imagine you have like anequal processor and you're writing some codeit's kind of a sequential algorithm can paralyze it so you're running this codeits maxing out one of the course and the other seven pores are just idling rightand that that hurts rightlike as a program you kind of get this feeling in your stomach like you knowgod this is so inefficient like if only I could paralyze the algorithm move likethis just like so much latelypower I can draw on and that's exactly the emotion that I get when I'm lookingat this tiny rectangle based knowledge work that we do is that that there's allthese cores we have all these capabilities and they're just sittingthere idle and if we could only paralyzedour reputation is across all these capabilitieswho knows what would be capable of thinking so the good news is that we nowhave an opportunity to do something about thisso we're now at a I believe unique moment in history where we're inventingthe next medium of thought after the printing presswe're inventing the dynamic medium so in the same way there's certain thoughtsthat can be conveyed pretty well and speech and thoughts conveyed in theateror printthere's I believe a very wide range of thoughts that can be conveyed andprogramsonce matters have understand how to do thatso this medium that were inventing the dynamic medium has three veryinteresting propertiesone is that is computational which means that is capable of simulation cansimulate processes on the worldit's responsive so unlike a book or you poked in the book and book it doesn't doanythingdynamic things can respond to stimuli so when they're simulate stuff in the worldthey can respond and show you the results in many different ways and it'sconnected so unlike a book here in a book there they can't you know they'reisolated objects dynamic material can exchange information and talk to eachother and so what this meansif you're trying to represent something like system today in language for tryingto represent system you describe you talk about it it's a very poor way ofsending it in a computational medium you can model it you can actively model andexplore that system and then see what it's doing in many different ways andyou can start to fill in thiswe've got a responsive medium and you know today we mostly think ofcomputational responsiveness as a visual thing you know you've got a screen andit does stuff and the matter of our responsiveness and I think things areonly going to get really interestingonce we have tactical responsiveness I'm not really talking about haptics herei'm talking basically about taking computation out of the screen and intothe physical worldso confusing physical matter with computation and letting kind of dynamicresponsiveness be something that exists in the world and something you can touchand feel and interact with with your handsthe way we've been working with tools for millions of yearsso what we have kind of a full physical responsiveness we can start to fill thatin and as a connected medium that means that you have space filled with dynamicmaterialit's not all isolated they can talk to each other they can work together tomake large-scale representationsso where we no longer have to work with like little things that we hold in ourhandsand but all the material can host things that our body scale or room scale startto fill the atom and we can start to have the the potential at least todesign a medium that is humane and empowering and these are two sides ofthe same . humane meaning allowing us to draw on our full range of capabilitiesgetting us out of the cage allowing us to express our full intellect andempowering meeting taking advantage of that drawing on our full intellect toenable people to think thought they couldn't think beforeso in the second half of the talk i want to take you through a little sketch ofwhat it might be like working in a fully dynamic mediumhow fast would be represented in these different modes person a personone-to-one conversation that went to many presentations thing person thingslike know what does it mean to read our knowledge from a knowledge object or tobrowse many of them personal thingwhat does it mean to author the sort of material or to use it as the way ofthinkingso this is 40 years ouchas we may think or dynabook kind of thing but it's not really intended as apredictionso much as just a guidepost to kind of steer the ship towards I found it veryuseful as guidance for my own work and so I hope you'll find it useful as welli'm only going to be talking about the human experience of working and thinkingthis mediumI'm not really going to address the implementation of this stuffthe the technology that underlies that isn't really the point here but I'vebeen reminded that there are people at this conference who are very interestedin technology and I would be remiss to leave it on addressedso here's the part of the talk about technologyI'm taking the liberty of inviting in legendary MIT professorGerry Sussman offer of a scheme and 60 inch thick and all these wonderfulthings and trust me it's gonna tell us about the technology of the future butyou're in the future is going to be the case that that computers are so cheapand so easy to make that you can get in size of a grain of sand completely madeup by the ram gonna buy them by the but by the bushel I suppose you can pourthem into your concrete and you buy your concrete by mega flop and you have awall that smartit's always good to get the power to them and they could do something youknow that's going to happenok it's sort of the way I said remember you into your cells are about are prettysmart and they but they seem to talk to each other and do useful thingsso we have to begin to worry about that kind of a world that will happen it'sgoing to happenthis is no other way to make the future happen so assessments that is going tohappen that's good enough for meand as he says we have to begin to worry about that kind of a worldwhat he's worried about this case it is the engineering problem of how do webuild working reliable systems out of this and distributed computationmaterial but I'm worrying about and I'm hoping to impress on to you as well asthe humanist problem of what should we build and why are we built together butwe do with it and what what is it going to do to usright because this technology they talking about you know this kind of youknow 300 and computers per square inch or whatever infused into the intophysical matter that that sounds like really far off right that sounds likewe've got time but your technology does the exponential thing and we're alwaysblind side of exponential so this technology is talking about is going tobe here before we know it and so it's kind of up to us to prepare for that youknow we have the choice to to say okay let's start envisioning it sketching approad / typing designing designing something that we know understand to behumane so that when the technology is ready we're like okay we know we knowwhat we want to build with this we know it's going to work we know it's going tobe goodso you can do that or you can just kind of do the incremental thing and kind ofyou know jump on whatever technology bandwagon comes on and let technologyfollow us on course and I can guarantee you that that is not going to be humanethat result is just going to lead you into a tighter and tighter cage becausewhen technology takes its own pathit finds certain Baines of the Cape of human capabilities and just kind of likedrills further in those and leaves the rest of the capability landscapeuntouchedso even though it doesn't seem feasible right now I think we need to startthinking about how to design the Humane medium with the technology that we wantto haveso let's start off with the most fundamental active communication whichis a real-time conversation between two peopleso this is something that we've been doing for hundreds of thousands of yearsand we do it nowadays basically in the same way that we have been doing it forhundreds of years is by I'm spoken words going back and forththat's how we I'm community that's how we converse is like spoken words goingback and forth with our hands around maybe maybe like draw some sketches on awhiteboard or cave wall and there's some things that you can represent well andin that medium and there's many things especially kind of modern things that weneed to talk about nowadays which are not well represented in spoken languageand one of those is systemsso for so we we live in an era of systemsthere's a natural systems like the environment ecosystems biologicalsystems pathological systemsthere's the stuff that we make political economic infrastructure systems thingsthat we make out of concrete and metal electronics and the wrong way tounderstand the system is to talk about it to describe it the right way tounderstand it is to kind of get in there and model and explore it and you can'tdo that in words and so what we have is people are X using these very old toolspeople are explaining and convincing for reasoning and rhetoric instead of thenewer tools of evidence and explorable models we want to meet him that supportsthatso we can start to think about a medium medium for conversation that isnaturally shown to all where depicting and describing or on an equal footingit's just as easy to create an image as it is to create a description and whatyou are depicting are not static images as we do today but actual working modelsyou're creating simulations you're creating programs and so for example ifyou want to talk about howthis case how airplane wing generates lift if you want to talk about theeffect of some policy change of all these things can be modeled we want tohave a medium where you can model them and then explore them and have that bethe content of the conversation and you want these models that you're buildingto be evidence backed you want them to drop on the facts and knowledge that weknow about the world incorporate them into the model and have everybody beable to see that the fact that you're breaking in the province of the factseverybody see everyone to see how the models working and so this kind of leadsto the first first of several big juicy research questions which is how how dowe do this kind of modeling because kind of that the way that we create dynamicmodels today is with this activity that we call programming which is kind ofgoing off and staring at a screen and passion on the keyboard for a few hoursor weeks and i'm talking about getting this down to secondsimprovising sketching dynamic models in real time as part of the real time giventake the conversation we don't know how to do that we don't know how to createworking dynamic material in seconds and you might think that's impossible likehow can you program in secondsbut that i would agree this probably isn't possible if you're thinking aboutstaring at a screen bashing on the keyboardI'm talking about something that works using all the capabilities of the humanbody and I you know and we're pretty fluent in talking in words and somehowwe got very fluent in writing and drawingI can you just kind of do that without thinking about that playing a musicalinstrument we can't do that without thinking about ityou've been trained and I think it's good will be the same thing for dynamicmodeling that we find the right medium then we can do that in real time as partof the give and take of a conversationthere again this this is kind of a big research question not a lot of peopleworking on itif you've seen like some of kin purlins latest work with Chalky's starting tomake the initial baby steps i'm creating a dynamic language that can be used toreal-time conversationthis I'm talking about here this is not computer-supported collaborative workthis is not google docs those things are about making the old representationsmore efficient those things are about sticking with words and static picturesare moving those around faster i'm talking about pushing worse the sidelineand having dynamic modeling creating programs and real-time be the content ofthe conversationyour modelling exploring together with the other person so now we can thinkabout one too many kinds of communicationnow obviously let's get away from this looking through a PowerPoint deck andsomething i'm close to a blackboard wherever cats again kind of sketchingmaterial from scratch where you can go in any direction and again it should bedynamic material so what your we're sketching as per your presentation isworking models and your kind exploring them there with the audience and thereare evidence-based modelsmeaning that conversation today tend to become a string of anecdotes like oh Iheard that and then you say well I will trust him because he's an authorityfigureor he looks trustworthy or someone else said he was that just for the end youknow this complex notion of trust which is hopefully going to be obsoleteif I am a pure building my models and you can see the modern buildingyou don't have to take my word for you can see the model you can see the factsand knowledge i'm bringing in to support the not model you can see where thoseare coming from you can kind of see the Providence of everything i'm using tosupport my argument and you know you protect the model you can like to checkthe facts yourself and you may call that visible it leads to a very differentnotion oftrust and integrity and this is I think a really important part of the theempowering aspect is that trusting authority is disempowering giving peoplethe ability to be independent is empowering so presentations in the formof improvising dynamic models that are explored together with the audienceI think the most interesting possibility has to do with using the spaceso right now I'm on a stage and the stage is completely emptyright there's the podium and there's like a guy and you know big picturesover there and you know it would be nice if I had like no props that I could beshowing you things but i don't know i would have had to go i carry that in mysuitcase I don't have a way of downloading things to the stage but ifwe have an environment which is kind of full of dynamic material then we canstart to think about actually using human scale representations using bodyscale room scale representations having a presentation where the presenters havemoving around interacting with real things in the environment so we canstart to think about things like mapping concept space to physical space like thedifferent topics at the presenter is presenting actually areare there you can see them they don't go away the presenter presents by movingtheir body from one topic to another as the argument moves from one topic toanother and having a very strong spatial grounding start to think about thingslike having the the outline of the talk evident in the space that what I talkedabout five minutes ago is there i'm going to talk about in five minutesis there it's not just like one thing after another after another as it istodayso again using the medium to have invoked these kinesthetic and spatialforms of understanding that are really importantso for this real-time form of conversation i'm really talking aboutimprovising dynamic models as the content of the conversation of thepresentation and exploring them with the other personnow we can think about non real-time forms of communicationwhat is the equivalent of a book or website books or websitesnowadays are basically big piles the words right and so they inherit the sameproblems that speech is in that the authors are explaining and convincingthrough reasoning and rhetoric not through evidence explorable models andthey have an additional problem which is that they're one size fits all theirmass manufactured and so I read a book you read a book or both we both readexactly the same words even though we have for coming to a different level ofknowledge and we want it we want to get different things out of it right and youknow in a dynamic medium that makes no senseso we can start to think about first of all contacts sensitive dynamic materialwhat I read and what you read are not necessarily the same thing the materialtakes into account who we are and what we want to get out of thisthis is again have a big juicy research question how do you create contextsensitive material many years back i wrote a paper called magic ink about onthe topic of context sensitive reading material but thisthere's so much more there that needs to be done and again the big thing isexplorable modelso what the the author is sending out to the reader is not a big pile of wordsbut it's a working thing it's a programhappy reader than kind of actively explorers and what this can be to onepossibility is the reader getting more out of the material they offer put intoitso in the same way that game designers are always surprised by the players endup doing in their game and authors of creative tools are always surprised bywhat people make their tools i'd like to see authors being surprised by whatreaders end up learning from their material because the authors not justsending out some ecstatic they're sending out a program which is capableof emergent behavior and so the the reader will be able to try out differentthings and discovered things that the author had intended when you have thiskind of activist reading it kind of brings back in some of the things thatwe lostwe went from learning through active dialogues with another person to justkind of reading a single argumentthis allows you to kind of have more interrogative mode we can have a timedialog with the material but kind of like what i said with presentations ithink the the most exciting possibility here has to do with the form factorso what what I've depicted up here is kind of you know the legacy of theprinting press is kind of flat thing you hold in your handsI don't really think that's what a book should look like in the dynamic medium ithink a book wants to be a space that you walk around inso something that feels a little bit more like a museum gallery than a booktodayso you read this book by walking around in itengaging again visually spatially tangibly using all those capabilitiesthat we've evolved for understanding spaces environmentsso you want to learn linear algebra for example you download the linear algebratextbook which is this entire space maybe each floor there's a particularchapter you can make your way through the book by making our way through thespace interacting with the things the concepts are represented in tangiblephysical forms can use your special forms of perception to understand thegist of the entire materialI want to clarify that but I'm talking about here is not PR this is not thearts not they areit's just ourdr if you like dynamic reality it's a real physical matter that you can youcan touch but you know real physical matter that offers all the thousands ofperceptual cues and physical forces that we've been holding over the last hundredthousand years but its dynamic in the same way a picture of a computer screenis a dynamic picture this dynamic physicalityso that's what a book looks like you start to think about what a librarylooks like and no surprise i think that a library should also be a physicalspace they walk around and library today our physical spaces but walk around andyou just see a bunch of spines which are very useful and so you start to thinkabout a spatial representation of the entire breadth of human knowledge havingdifferent areas of space represent different areas of knowledge you canwalk into a space kind of just glanced around and kind of get the gist of someparticular branch of knowledgeif you want to go deeper on something just kind of move towards it gets moredetailed you move towards it gets more detailed to have this kind of continuoustransition between browsing and skimming and engaging deeply you can do againwith your bodyso so far i've been talking about knowledge in this in this medium beingrepresented not as big pile of words but as essentially as programs as dynamicmodels that the reader is kind of actively engaging with so we can ask thequestion how do you create that material how do you create those programs withthe authorship look like in this medium and the closest thing that we have rightnow is this activity that we call programming and I think that programmingas we understand it today conflates two very different activities two verydifferent things that we've kind of both lumped in with programming which i'mgoing to call engineering and offering so engineering is thing the thing andauthoring is person-to-person engineering is building a workingreliable system that meets a speckin metal spec you're designing a op amp or a hydroelectric dam you have thismaterial that you're working with is just really matter of what is theconfiguration of my material that you know meet the spec its kind of betweenyou and the material and the force of natureso that's the thing the thing and then there's authoring which isperson-to-person authoring if you think about writing a newspaper article orcreating picture somethingthe entire point is to create an impression another person's mindthe thing that you're making is just kind of intermediary what you reallycare about is getting your message from the person to the personso these are I believe very different activities and we have loved both ofthose things into programming and we do them both in the same way with the sametools both of them just kind of writing codeI think that moving forward we need to disentangle those so moving forwardengineering might continue using code but authoring I don't think code is anappropriate way of doing that because it's in direct manipulationso if you think about a journalist create a newspaper article directlymanipulating the words in the article you think about an artist painting apicture of the directly manipulating the ink on the paperthere's something very important about being able to directly and manipulatethe experience that the recipient is going to get right because the authorkind of has to be empathizing with the recipient and has to be able to kind ofsee exactly what they're going to experience and so if you're reading anewspaper article you directly manipulating the the words if you'recreating dynamic behavior and dynamic medium and I think you need to bedirectly manipulating that dynamic behavior not going through theintermediate area codewhat kind of directly manipulating the end result so this notion of directmanipulation of time behavior is something that I and others have beenworking on for some time and you know the certain threads and programminglanguage research which can go back several decades but still kind of abitch obscure thing and I think that's also a big important research questionfor this crowd especiallyit's good to work on developing methods for that engineering stuff but then wealso need to think about how people are going to be creating dynamic messagesfor other people and I think it needs to be more direct manipulation and needs tobe kind of more sketchy improvisational mode so getting away from kind ofEngineers obsession with precision and more towards kind of free expressionso lastly we can think about using dynamic material to think with amathematician you eventually prepares their proof for publication but beforethey get there they're doing a whole bunch of stuff on scratch paper so itkind of think about that what is using dynamic material just to support yourown thought process you a lot of what it said already applies because the therecitations we used to communicate end up being the same representation that weuse in our head a lotkind of thinking the same language that we speak in but we can start to thinkhear about the form factors of dynamic materiallike what what is the stuff that will use to think with and i think thatthere's there's kind of a duality there's certain representations that youwant to hold in your hand and kind of inspect from the outsidethere's other representations that you want to kind of be embedded in a kind ofexplore from the insideso there's this duality between objects environments and soalmost all intellectual work that we do nowadays is flat and intangible rightit's on paper or pixels on a screen and physical objects to think with you knowwe we used to have that we used to have things like slide rulesarchitectural models molecular models and these things are kind of goingextinct because of virtualization that molecular model on a computer screen isweaker in some respects because you can't actually hold in your hands and Ithink about your hands but it's stronger because its dynamic and dynamic trumpseverythingand so we've been led to more and more virtualization not because we actuallywant virtualization what we want is a dynamic - we want dynamic behavior andputting it virtually on a screen is currently the only way we know how toget dynamic behavior and so that's why it's so important to get things out ofthe screeninfuse computation into the physical world trade dynamic physical matterand then we can start to be able to think with our hands again I think themost intriguing possibility here is the possibility of abstract tangiblerepresentationsso the little representations are pretty easy right like an architectural modelis just a house scale down molecular models just a molecule scaled upyou know that's that's pretty easy but how do you representfor example an algebraic equation in a form that you feel what it what is arepresentation of y equals x to the end that that concept has always lived inflatland and it's almost unthinkable like you know how could it be anythingother than the flat symbols that we've been using so long to represent thatagain i think that this is entirely an accident of history that we've designeda mathematics for flat and we can redesign mathematics that draws on allof our your physical tactical capabilitiesit's kind of a weird thought what would an algebraic equation look like in aphysical object but you have to think about the play fair thingwhat is reading maps have to do with understanding data they're totallydifferent things but then play fair inventor reputationthe day traffic which allowed people to use their map reading ability tounderstand data and it's totally transformative and i think it's going tobe similarly transformative to draw on our incredibly profound capabilitiesthat allow us to tie a shoelace or play a musical instrument or do all thethings we do their hands and bring the capabilities to bear on more abstractthan gameso lastly the the dual two objects are environmentstoday we everybody works in some sort of environment we work in some sort of roomthat is in a building that is in a neighborhood and all that is static andbecause it's static it can't participate in work that happens at the speed ofthoughtso today all the work that happens at the speed of thought has to basicallyhappen within the reach of your arms because your hands are your only dynamicinstrument that you have and so that's what led to the desk and you knowworking with papers on the desk or objects on a desk is everything had tobe within arm's reachbut when you have a environment that's full dynamic material that can respondat the speed of thoughtthen you get away from that and you can start to think about representationsthat can take up large amount of space start to think about a form ofintellectual work that involves walking around moving around looking aroundinteracting with human scale spatial representations you know takingadvantage of peripheral vision and special scanning and sense of scale andall these things that we've you know we've been holding for millions of yearsI mean it's kind of obviously debilitating to sit at a desk all dayright and we've had to invent this very peculiar concept of artificial exerciseto keep our bodies from atrophying and the solution to that is not fit itsinventing a new form of knowledge of work which naturally incorporates thebody that draws on the strength of the body that uses the body and the way thatthe body is always meant to bejustso this is my vision of a humane medium or thought this is my vision of a mediumof thought that treats the human being as sacred that treats these capabilitiesthat we've been holding for hundreds of thousands of years as sacred treats thephysical world in our interaction with the physical world as sacred and buildson top of those things to continue this ascent of intellectual progress enablepeople to think ever greater thoughts you might have a different conception ofwhat a humane medium would look like and that's that's totally greatthe point that I want to get across here the point that i want to leave you withis that humane won't just happen right this is not like systems technologywhich is going to happen because it's already really powerful forces at playhumane is never a default and humane only comes out a very deliberate andconscientious design work if you do the incremental thing and just go ride thecurrent wave of technology and let technology leads you ever lead youit's going to lead you into a tighter and tighter cageit's going to lead to more virtualization more disembodiment moredehumanization and so if you believe in the possibility of a humane media thenyou know it's up to us to kind of fight that trend and it's up to us to make it