Keynote: The Unfortunate Value of Failure

Video thumbnail (Frame 0) Video thumbnail (Frame 3337) Video thumbnail (Frame 8258) Video thumbnail (Frame 9341) Video thumbnail (Frame 10089) Video thumbnail (Frame 10773) Video thumbnail (Frame 11806) Video thumbnail (Frame 13024) Video thumbnail (Frame 13723) Video thumbnail (Frame 18612) Video thumbnail (Frame 22835) Video thumbnail (Frame 24273) Video thumbnail (Frame 28290) Video thumbnail (Frame 29142) Video thumbnail (Frame 29895) Video thumbnail (Frame 30910) Video thumbnail (Frame 32302) Video thumbnail (Frame 34138) Video thumbnail (Frame 35362) Video thumbnail (Frame 44937) Video thumbnail (Frame 47336) Video thumbnail (Frame 48254) Video thumbnail (Frame 50995)
Video in TIB AV-Portal: Keynote: The Unfortunate Value of Failure

Formal Metadata

Keynote: The Unfortunate Value of Failure
Title of Series
Number of Parts
CC Attribution - ShareAlike 3.0 Unported:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal and non-commercial purpose as long as the work is attributed to the author in the manner specified by the author or licensor and the work or content is shared also in adapted form only under the conditions of this license.
Release Date

Content Metadata

Subject Area
Ramsey Nasser is a Lebanese computer scientist, game designer, and educator based in Brooklyn. He researches programming languages by building tools to make computation more expressive and implementing projects that question the basic assumptions we make about code itself. His games playfully push people out of their comfort zones, and are often built using experimental tools of his design. A former Eyebeam fellow and a member of Kitchen Table Coders, when he is not reasoning about abstract unintuitive machines, he builds and maintains vintage motorcycles.
Word Computer animation Angle Lecture/Conference Code Eigenvalues and eigenvectors Multiplication sign Right angle Quicksort Descriptive statistics Neuroinformatik Compiler
Dialect Code Gradient Set (mathematics) Dichotomy Open set Mereology Perspective (visual) Field (computer science) Computer programming Twitter Subset Expected value Pointer (computer programming) Process (computing) Computer animation Different (Kate Ryan album) Personal digital assistant Right angle Quicksort Spectrum (functional analysis) Resultant Exception handling
Computer animation Information Multiplication sign Moment (mathematics) Field (computer science) Condition number
Area Computer animation Divisor Chemical equation 1 (number) Right angle Error message Computer programming Neuroinformatik
Computer animation Execution unit Negative number Sound effect Right angle Software framework Error message Software bug
Axiom of choice Pixel Computer animation State of matter Moment (mathematics) Virtual machine Right angle Quicksort Graph coloring Semantics (computer science) Computer programming Computer icon
Medical imaging Arithmetic mean Message passing Computer animation Lattice (order) Error message
Noise (electronics) Dependent and independent variables Code Multiplication sign Open set Mereology Computer programming Frequency Optical disc drive Process (computing) Computer animation Spherical cap Internetworking Mixed reality Pattern language Right angle Quicksort Buffer overflow Writing Social class Form (programming)
Area Point (geometry) Programming language Information Mathematical analysis Virtual machine Set (mathematics) Water vapor Nominal number Line (geometry) Variable (mathematics) Computer programming Number Neuroinformatik Programmer (hardware) Message passing Computer animation Algebraic closure Right angle Quicksort Error message Compilation album Physical system Condition number
Predictability Finitismus Computer animation State of matter Right angle Water vapor Total S.A. Computer programming Exception handling Number
NP-hard Functional programming Complex (psychology) Divisor State of matter Multiplication sign Source code Combinational logic Semantics (computer science) Computer programming Number Neuroinformatik Operating system Energy level Integer Scripting language Multiplication Total S.A. Bit Measurement Demoscene Compiler Arithmetic mean Computer animation Software Summierbarkeit Right angle Complex system Library (computing)
Process (computing) Video game Graph coloring
Message passing Perfect group Musical ensemble Disk read-and-write head Error message God
Musical ensemble Quicksort Disk read-and-write head
Programmer (hardware) Perfect group Code Moment (mathematics) Energy level Right angle Quicksort Parameter (computer programming) Mereology Evolute Social class
Point (geometry) Word Process (computing) Computer animation State of matter Execution unit Computer science Video game Damping Right angle Basis <Mathematik> Machine code
Predictability Computer animation Spectrum (functional analysis)
Functional programming Presentation of a group Code Direction (geometry) Mereology Semantics (computer science) Computer programming Neuroinformatik Programmer (hardware) Exclusive or Conservation law Arrow of time Error message Descriptive statistics Physical system Social class Area Predictability Message passing Data management Arithmetic mean Website output Right angle Quicksort Writing Point (geometry) Slide rule Game controller Link (knot theory) Electronic program guide Mass Student's t-test Number Lecture/Conference Energy level Form (programming) Information Graph (mathematics) Line (geometry) Symbol table Frame problem Compiler Word Computer animation Commitment scheme Integrated development environment Video game Game theory Logische Programmiersprache Spectrum (functional analysis)
Programming language Slide rule Divisor Information Military base Online help Line (geometry) Mereology Number Process (computing) Computer animation Right angle Damping Error message Spacetime
Programming language Code Moment (mathematics) Shared memory Water vapor Instance (computer science) Student's t-test Mereology Rule of inference Graph coloring Computer programming Twitter Programmer (hardware) Process (computing) Computer animation Bit rate Software framework Logische Programmiersprache Error message Metropolitan area network Writing Social class
Word Computer animation
I yeah I'm a of it is a form of and on and on my my grandmother is from foreign mountains and had no interest in the modern world post 1961 Lebanon and she asked me once what I did for a living as a sort of a how could I communicate to you this sort of compiler I but I thought I worked with computers and that's like my favorite description of what I do so that's a great deal of so we have fewer rights code what this great so who's seen something like this yeah generating a handle on it so this is what I have talked to you all about today yeah so an I think about a still a lot of time I write code I teach so of which which basically means marinade in failing code at at all times from all angles and it's something that's that's the stock is kind of a collapsing of a bunch of things of the thing mountains or the past 2 years and so and answer and that too small the to as the on twitter if you're if you do you think the on In this sort of thing that brand new maltheusian that that but so I I write code because if it if you like this was like sometimes right eigenvector where word said Shelia posthumanism feeding and you want to but but in reality this is actually the experience of of writing code it by like that why is that why why it is that you know what I was between these 2 worlds and
so you know failing fields that right and it's not being that people talk about a lot in its you may follow people's of careers Twitter accounts to see a lot of like Hobbes great stuff that they're doing but people tend to not share their failures publicly and and and I think a big part of that is this is not fun talk about and so for this sort let you all in 1 of those is making Louisiana so that feel is to emotional experience right that feels about something inside of you then we feel is also Arabic for elephant on that so you feel bad or you could feel and I don't know so was around regarded so so I think get a little heavy understand but animated video open on this thing is going to be great this is my field the and so I won't talk about also talk about what failure is and also on new rebrand failure because because I think that the the spectrum that is what that is no right and wrong you do something like regions something wrong right on but reality i I think what's actually happening is in new you do something and you have some expectations and something else happens right I expected this code to work but it through a bunch of exceptions and and we looking like that you know given the set of all things that could possibly happen some subset of those things or your goal or your expectation I and and this sort of right wrong dichotomy would tell you that everything in grade still right you did the thing that you wanted or you fail but it's actually not true his 1 to cool stuff out there right that you did actually know and this is where programming and really any creative activity becomes a powerful interesting we can set off to do something and and run into something that you didn't know you want but in many cases this is what is look like for me I've had some idea that go out and different things will start happening at end up with something completely way playoff goal but but but much better than what I set out to do right and this is what they are healthy I think iterative creative process can can due to so the possibility of failure the possibility of surprise or it you can actually suffered on failure is important right because failure is is a lot of 1 manifestation of of surprise right so I think about it as an undesirable results different from the intended right you are deciding that of this is different result is this thing that happens is actually not what what throwing a bunch of exceptions may be your goal right and we you're writing it art piece about the collapse of the job opportunities had enough I and you know it he is very much of you know pointers of what I and I love
I love Bob Ross and and I love this and I think about so of Bob Ross perspective on like programming that would have been the end in this this perspective on no mistakes or failures is 1 eloquent and we'll come back to mister Ross and but a
moment um failures also always useful right it's always information it's never a waste of time it's always it tells you that something didn't work right that's that this value in that way I know that this approach leads to this condition which is undesirable so you're always actually learning things longer the but but feel your field
that radio was awful and and and I think
that's not to do anything with it the active feeling itself breaking it's
more to do with external of external factors related associated here
so in programming and computers but this is what areas look like the right but this is the interest for a trying to be a browser if
you use aII utterances with your balances that preserves a lot this is unity artists reunion reports its error messages an is even
processing which is that goes out of its way to the it's it's much better now but it was out of its way to prevent errors in a possible and how palatable way up to all these you know you
have this theme of red right you have on the red on black
text killing me and I you have this is
actually just you know to be completely fair 1 of my frameworks and when the errors were like units effects so the colors on awful but you can clearly see what's going on here right this is this is you gotta you know race you see you as valid OK great a is negative filename unknown 1 0 1 which is where all the bugs are good what about
that the so and meditate on these pixels for a moment like this is you know some human chose
this right shows the readers and decided that this is how the individually brand whenever you create a state and then I know whether this is the color is missing from all long suspect stuff
programming and I write up now you doing the wrong thing go the other way go back to whatever was you do or is this terrible right this is a this is nothing semantic about this icon right this is sort of the virtual machine does not depend on this branding to runs is a choice design its that continues to be made on so are
errors programming errors or you know we get messages the meeting was that they're very difficult to derive an actionable meaning from any naked images and that's we get rewarded for me that the experience of getting an error especially out while I was learning was this year but
what about how about that what I was doing a couple why would why is I do that was aware
of its what I need but no I'm mad and I'm sorry I just want to write them and
I'm a I'm a good boy I did not know the
noise in this story
our the and then we turn to the Internet for health and to me to challenge myself I limited in this part of my talk this stack overflow which is actually quite good about cutting out and you know really have Fuller you know and unhelpful and tech grow answers and is still there of course so I searched for up to be this is the sentence that I found offensive StackOverflow while ago a kind of freak out and you're indentation is terrible as the opening sentence right but it's not you no longer have it could be better it's just terrible I this this a user poses solution uses of coders example I found this amazing I'll use available or about this I'm not used publishing and for so adjusted for stop doing that right and look at the pattern of response here it's 1 sentence you're sending text somewhere before starting session period stopped doing that period in the far right what else should I do right what white why is this wrong what's going on the amazing thing about this user it is what this is just why do they do that yes most of the answers are either the only answer is already chosen answer what is then this is if you talk to this person they probably don't think of themselves as a as a two fold toxic part of programming culture but this is the stuff that chips away people and makes and never wanna write code of right and when you're answering questions on a on a on a form like StackOverflow you are a teacher and if I was in class were 1st by this as soon as I you know that that that's an awful teacher which is just the doing a better job of teaching and I've had people select all you know you don't have time in they're like the terrorists of the odds the don't post which enough you know these was you forcing you to pose I've low it's fine no answer is better than answers like this I think because answers that either overtly aggressive which if you go on you'll find on or sort of suddenly micro aggressively this they contributed people to an awful lot programming and make it very very hard and so this is this is a all so cut from that treat that I wrote native and more in all caps and then here where and people feel worse than than than inter
so so what is an elephant playing given his that the but so we all feel that this is an example
of the the nominal error message this is the programming language L which is which is which goes out of its way to our presented itself and be palatable to our 2 new users right we think about new users so much the is and the error messages are wonderful so this is an error that I artificially ran into all learning l l is a set that language I have most of my life of and the and that's also so the center that self is the familiar knows that make states but but this error message has you know most programming languages would sort of leave it at this 1 line ideally is point must declare its use of take variable number so sympathetic incorrect airesearch but it doesn't tell me a what of programmer and then they show you where the error was what we should change it to and then this last paragraph is home here's why I imagine 1 point where and so on and support the rationale of the areas in the message itself we just I've never seen a language do this right it's a yes please apply them to the right but it and so on I know that it is this it's quite because when when you're learning this is exactly what you need right it's not just that what you did was wrong and I think that should be that all but the you know why the machine sort of unable to continue by you the rationale analysis this is how is and grow and to and I've been doing compilers stuff for a while water closure by and on because that my understanding of of errors is has changed completely this is actually what happens when a programming system encounters an error is doesn't know how to continue right the information is either ambiguous and contradictory and it needs clarification or more information from the from the program that's all in here it's right it's a it's a it's a condition are where you can't continuing execution makes up and makes sensible computer can can do that compared to this you did something wrong right and and it's to the disease punished
for so that's why failure is that's why I think it feels that and the question of how can we ever really avoid on the that the answer is no right I don't think that that is that is a little every possible and and for that is
there's a of finite amount of things that we could fit in our brains point prior and all humans with without exception right whenever that amount is it's some finite amount and it's immediately water by any non-trivial program the the total number of states that a program can be and just it so quickly and vastly exceeds what humans to think about that we only have a really interact competition at a very long distance on and because of that certainty and predictability from very
difficult so this is a stick that you uh that comes out of library conferences on which is the total number of states that this function can ever be in of so this is a function that is written scene 2 integers some of them and returns the sum right this is a very simple function that you almost wouldn't think about as a source of complexity
but an integer is 32 bits so could be 1 of the 4 billion values if you're summing to integers but the total number of states of the function can be and is the multiplication which is that this measure is number of that of number of things that have happened in the function of the time given the semantics of C when you factor in what is the compiler doing what is the operating system during when time of day is it how 1 is the computer that the number of factors that go into the execution of software are just know each you actually that you're of so the fact that when we were doing creative work but also dealing with a medium that that you know necessarily is this explosively complex system on means that really we we're gonna say this can get things wrong and and this is why I think formally programming is is and will always be difficult it just is it's a problem managing complexity and and and irreducible complexity and is also why yeah just seeing something work once doesn't have guarantee that level work again could actually all the factors are changing and the operating systems like makes a less than trying to use all this problem but it's it's it's hard to it's also possible to eliminate so when when you do something new and others there's a chance of other right because you not you really know what you do is the 1st time you're doing but likewise when you're learning there's a chance that it is also don't really know what you're doing and and the programming were always listening in always doing something new but it's very unusual to write the exact same program or or act or what's script whatever uh that you've written in the past over and over and over again it's almost always something you some combination of things in that Newman is the fact that you never really know what you're doing some if I just programming is from the I and the reason I bring this
color is the name of the Father here we're not is probably can hear that this now so this is
a well-established plan on on you and and so this is seen from the movie Up
at a dance which is about
me very fictionalized account of a life of about so and this is his rival Salieri but was the presented with the original manuscripts written by modes and because his wife is trying to get this job and the emperor
score and he's looking at these manuscripts and his hearing the music is is composed
hearing music in his head and its music like he's never heard of these never heard before but he's also noticing
that the hour
that the patient has no corrections that it's this 1st pass
absolutely perfect voice of God no error thing and when he describes of a the
pope but possession and
beyond the police the worst of all the
that these the the and issue with that of the but mean did did you the so
yeah it is this a perfect music and and we describes it is it's as if our users writing down music that was finished in his head and as as if users taking dictation I and I wanted so those really really young and and this sort of stayed with
me and I was kind of waiting
for this moment when as a programmer I wouldn't be able to just like perfect perfect right and when I when I went to school for programming my teachers would show up to class with perfect code right and it is run it would run and then I go home and you would break and I didn't understand that right and and I thought there was some sort of light in the tunnel when i'd actually the good programmer and you know I could just sort of like things and and that all the great on but that's a that's fiction right that point doesn't exist and can't exist and that's a big part of this talk is about is I think a lot of people the like awful parameters because she is always breaking and that's just so programming it's right is no there's no you know you're at the top level of the Pokémon evolution is no like next is the next phase sorry
of and alan cadences is Alan caught by Alan the title of thought of computer science and and he equates failure with with a year with try pushing yourself he is not and all interested in eliminating it reaching some immaculate point where you just is never states again on now back
to Bob Ross so barbarous fascinates me because he his approach to teaching is so however just positive and and warm and welcoming and supportive but he also of produce that painting in 30 minutes on a weekly basis on television word so I do a lot of life coding and what this is is that of our life coded and to me this is kind of a goal like I am not able to do this but I would love to be able to come up and life could eaten from people that units from scratch is to show that the process right that technology I don't have to build that and I don't have that skill I can do it knows something about Bob Ross is above us to do that and any pointed out that doubt but he you know I did the
same thing happened over and over again it's about you
know and of who went and that's not a knock him that's that's the there's a there's a problem
univariate but there is a this spectrum I think between predictability which is doing something that you've done before to work and exploration and experimentation and then a mutually exclusive right it's just as a spectrum and you just need to be mindful about where you are spectra how much of what you're doing and you want to be you know very similar to something you've done before something yeah we feel good that it will actually work and how much are you just trying to the do the
and so this is an editable graphs to explain why I noticed that I have the same anxieties as a you know at the 29 as a programmer that I did when I was a teenager and I don't feel measurably better about myself as a programmer from last 10 years although it is objectively true that better program managers this is yeah just by looking at my did have people like I can see you actually that I have actually prove but I'll send you a wide feeling and and my understanding of it on as he for other people this is sort of Ireland is of I don't think that by feeling about the mice my skills programmers I should skill at all it's actually tight tried to be that things that I'm trying to do at whatever skill level on that so those 19 assignment websites was really hard right and 10 years later on trying a symbolic compiler and that's really hurt right and then the desk between what you're trying to do in what you're able to do is how you feel and every as I got better as a programmer I just kept trying harder harder things so the thing is constant never there's no point where everything will steal your wonderful because I have to do this and that is the basic websites with less of a life and after great right that's a anxiety we're going to whip up a website really quickly but that's not actually I'm excited about anymore so my ambitions in my the things I'm excited about grow with my skill and that's what keeps that feeling costs that that's what it's been for me on like right now I'm running this all presentation out of custom slide shows off of the road and I'm terrified is to explode and my he this presentation from the evidence over so so if we can eliminate it I think we need to learn to love it right we to embrace it as part of the craft of programming and and not as a thing to be avoided um failure what when you think that means you're pushing yourself and is a reaching beyond what you're capable of it because you wanted the better when when we're feeling you're learning and you're growing right that the use of saying yourself that whatever you know now is great it is wonderful but there's more that you want right it's it's a sense that you you haven't been given up on on on just absorbing as much as you can a when you're feeling you're you're exploring things that Our in that gray area that you there may be interesting surprises there or there may be things that you don't want but you're willing it's sort of great commitment to go there and to see what's out there I if a link is not wrong but this is this is a slide take away from this talk of anything and elephants words but failure and and and I mean this in your program in particular but also creatively in the set off to the creative work and doesn't work out that doesn't a need for something along with the doesn't mean that it's wrong in any discipline right that means that you're trying to write on for for programming you that is a skill at a teachers in all classes on extracting information from from error messages I notice that because of the way the presented a lot of students don't even read and write a lot people see a message and then like things less even when in better systems the mind that I report the actual line number but where the error was this enough and actionable information there people will look at are and so this a skill involved in looking pass all the so of you know the mass form of tax and finding stuff you can act on some by sometimes even descriptions are helpful in of less often than than you like I this a trick of programming backwards additive anyone has seen this on this but you could just like a game of function and there's again input function a big player did means of the environment draw frame number these functions exist I run the movie and it says get input is undefined so well I should probably write that function and right that function for a bunch of made of functions and if was a bunch of arrows any just sort of recursively right your entire thing backwards and the learning where this is a really interesting approach to protecting the new friends they any uses errors as they are and a channel of information right the computer then guides you towards the next thing that you need to do at all times and and and like mentioned before just being mindful of the tension between are you exploration predictability so if you're writing code for a living on a deadline depend on that salary you should probably not get fired right not not not a crazy idea but when I do freelance work I I turned to a very conservative engineer right I use of logic and semantics that seen work before I on things that are predictable and noble and under that crazy when do my own stuff I write their programs merchant ship right that almost guaranteed but it's again it's not about exclusions is about being mindful of of what you're choosing to do where on the spectrum all but so in this spirit is on actually you right because most recent failures was you know invited to show work at a at this wonderful game by game show public order and add to the game for some and I leans very heavily on experimental tax experimental game design house trying a bunch of stuff and it didn't come together and right the control was kind of broke the game really work in they had worked the game was a super interesting and I learned a lot I learned so watch about tech that I was building of other designs that I was that I was trying out and have all kinds of like directions to explore now but I that was a venue that I would have liked that to nothing was publicly is I I wasn't being mindful about the predictability exploration steps right I lean too heavily 1 and all the other and looking back that's something that you know I mean I wish I had done so so initially elephant fighting some
birds now is that sort of it the thank you for this kind of a lot of birds do not flinching turned out the take it somewhere else and the this and so
on so the feeling is important and feeling is such a big part of creative process but it's me hard by these external factors a how we make it easier to fit this is my next question the only thing that is how we make it easier to learn and explore which I think is all the easiest slides following so so as someone who thinks about languages if I was a lot I think this is huge and not talk about other languages compilers the and everything they just need better error messages and this is a really hard problem but the way many dancer languages are built once an error happens there's actually no information to report to the right the line number and all this kind of stuff has that optimize away um and there are ways to get in there so that it's still present when things break but really a lot of it is highly know languages like l will go from the scratch to support that kind very rich very your helpful error messages but people building up around tools just it it is more seriously I think an we also we need spaces or we can fail right we need our bases like Bankoff right
where it's OK to just you know talk about broken things and and share their experience and we we need less
of this kind of programming I think of an and and and and more communities where feel experimentation R is supported and celebrated rate and the processing Foundation and community around processing open frameworks and we know all wonderful examples of that and that's why beginners water it's not because of the technology is because the communities for warm welcoming and supportive so
and if you teach code I strongly encourage you to failing for instance so they're not waiting for that Amadeus moment where they like you could just show up with immaculate and I mean this for you know any definition of teachers students if you were a popular programmer on Twitter with a bunch of followers maybe don't only tweet about your your greatest but maybe share with the people who look up to the fact that it's OK to stumble that it's actually you're gonna some that's classes what writing it's on as a rule by I don't appear very little code in front of about class I must just confirmed that what I'm doing is on impossible have and then I write the code in front of everyone and I messed up because I don't have the processing API memorize no and others I don't have you know I I write a lot of languages I forget the particular syntax rules of the sciences that 1 and I stumble and I get errors an ideal them and move on and demonstrating that I think is a very important part of communicating people what writing code is actually like I have to acknowledge that the war at it in logic programming culture being able to fail visibly and publicly is privileges approvals I experience as as a man by if you're a man who woman publicly failing in color you're going to get shot had a whole lot faster than I ever was and I acknowledge that i which is why the sixties and see if communities that allow support for that are extremely important but because being deprived of the ability fail you actually being deprived of the whole of the new facets of the crack and it's unjust unfair so who so I
hope that felt OK is an elephant Wang and each of those and I'll leave you with these words making
course uh I
have th