finding a way out
DESCRIPTION
Chris Granger @ Strange Loop 2013TRANSCRIPT
![Page 1: Finding a Way Out](https://reader033.vdocuments.site/reader033/viewer/2022052600/5575b092d8b42a3b498b4cab/html5/thumbnails/1.jpg)
Finding a way outChris Granger 8/20/13
![Page 2: Finding a Way Out](https://reader033.vdocuments.site/reader033/viewer/2022052600/5575b092d8b42a3b498b4cab/html5/thumbnails/2.jpg)
How do we make programming better?
![Page 3: Finding a Way Out](https://reader033.vdocuments.site/reader033/viewer/2022052600/5575b092d8b42a3b498b4cab/html5/thumbnails/3.jpg)
2004 - 2009
![Page 4: Finding a Way Out](https://reader033.vdocuments.site/reader033/viewer/2022052600/5575b092d8b42a3b498b4cab/html5/thumbnails/4.jpg)
2009 - 2011
![Page 5: Finding a Way Out](https://reader033.vdocuments.site/reader033/viewer/2022052600/5575b092d8b42a3b498b4cab/html5/thumbnails/5.jpg)
2011 - 2013
![Page 6: Finding a Way Out](https://reader033.vdocuments.site/reader033/viewer/2022052600/5575b092d8b42a3b498b4cab/html5/thumbnails/6.jpg)
Still broken.
![Page 7: Finding a Way Out](https://reader033.vdocuments.site/reader033/viewer/2022052600/5575b092d8b42a3b498b4cab/html5/thumbnails/7.jpg)
How do we make programming better?
![Page 8: Finding a Way Out](https://reader033.vdocuments.site/reader033/viewer/2022052600/5575b092d8b42a3b498b4cab/html5/thumbnails/8.jpg)
What is programming?
And what’s wrong with it?
![Page 9: Finding a Way Out](https://reader033.vdocuments.site/reader033/viewer/2022052600/5575b092d8b42a3b498b4cab/html5/thumbnails/9.jpg)
Programming is unobservable
![Page 10: Finding a Way Out](https://reader033.vdocuments.site/reader033/viewer/2022052600/5575b092d8b42a3b498b4cab/html5/thumbnails/10.jpg)
person.walk()
![Page 11: Finding a Way Out](https://reader033.vdocuments.site/reader033/viewer/2022052600/5575b092d8b42a3b498b4cab/html5/thumbnails/11.jpg)
Programming is unobservable
![Page 12: Finding a Way Out](https://reader033.vdocuments.site/reader033/viewer/2022052600/5575b092d8b42a3b498b4cab/html5/thumbnails/12.jpg)
Programming is indirect
![Page 13: Finding a Way Out](https://reader033.vdocuments.site/reader033/viewer/2022052600/5575b092d8b42a3b498b4cab/html5/thumbnails/13.jpg)
#include <algorithm>!#include <iostream>!#include <iterator>!#include <cmath>!#include <vector>!#include <iterator>!#include <numeric>! !template <typename Iterator>!double standard_dev( Iterator begin , Iterator end ) {! double mean = std::accumulate( begin , end , 0 ) / std::distance( begin , end ) ;! std::vector<double> squares ;! for( Iterator vdi = begin ; vdi != end ; vdi++ ) ! squares.push_back( std::pow( *vdi - mean , 2 ) ) ;! return std::sqrt( std::accumulate( squares.begin( ) , squares.end( ) , 0 ) / squares.size( ) ) ;!}! !int main( ) {! double demoset[] = { 2 , 4 , 4 , 4 , 5 , 5 , 7 , 9 } ;! int demosize = sizeof demoset / sizeof *demoset ;! std::cout << "The standard deviation of\n" ;! std::copy( demoset , demoset + demosize , std::ostream_iterator<double>( std::cout, " " ) ) ; ! std::cout << "\nis " << standard_dev( demoset , demoset + demosize ) << " !\n" ;! return 0 ;!}!
![Page 14: Finding a Way Out](https://reader033.vdocuments.site/reader033/viewer/2022052600/5575b092d8b42a3b498b4cab/html5/thumbnails/14.jpg)
![Page 15: Finding a Way Out](https://reader033.vdocuments.site/reader033/viewer/2022052600/5575b092d8b42a3b498b4cab/html5/thumbnails/15.jpg)
Programming is indirect
![Page 16: Finding a Way Out](https://reader033.vdocuments.site/reader033/viewer/2022052600/5575b092d8b42a3b498b4cab/html5/thumbnails/16.jpg)
cards[0][12]
![Page 17: Finding a Way Out](https://reader033.vdocuments.site/reader033/viewer/2022052600/5575b092d8b42a3b498b4cab/html5/thumbnails/17.jpg)
![Page 18: Finding a Way Out](https://reader033.vdocuments.site/reader033/viewer/2022052600/5575b092d8b42a3b498b4cab/html5/thumbnails/18.jpg)
Programming is indirect
![Page 19: Finding a Way Out](https://reader033.vdocuments.site/reader033/viewer/2022052600/5575b092d8b42a3b498b4cab/html5/thumbnails/19.jpg)
Programming is incidentally complex
![Page 20: Finding a Way Out](https://reader033.vdocuments.site/reader033/viewer/2022052600/5575b092d8b42a3b498b4cab/html5/thumbnails/20.jpg)
unobservable !
indirect !
incidentally complex
![Page 21: Finding a Way Out](https://reader033.vdocuments.site/reader033/viewer/2022052600/5575b092d8b42a3b498b4cab/html5/thumbnails/21.jpg)
teacupteacupteacupteacup
teacupteacupteacup
teacupteacup
teacupteacup
teacupteacup
![Page 22: Finding a Way Out](https://reader033.vdocuments.site/reader033/viewer/2022052600/5575b092d8b42a3b498b4cab/html5/thumbnails/22.jpg)
Data transformation.
![Page 23: Finding a Way Out](https://reader033.vdocuments.site/reader033/viewer/2022052600/5575b092d8b42a3b498b4cab/html5/thumbnails/23.jpg)
observable, direct, simple
![Page 24: Finding a Way Out](https://reader033.vdocuments.site/reader033/viewer/2022052600/5575b092d8b42a3b498b4cab/html5/thumbnails/24.jpg)
medium an agency or means of doing something.
![Page 25: Finding a Way Out](https://reader033.vdocuments.site/reader033/viewer/2022052600/5575b092d8b42a3b498b4cab/html5/thumbnails/25.jpg)