damn abstraction : development vs operational efficiency
DESCRIPTION
Abstraction, Abstraction, Abstraction.The presentation I wanted to give at GotoCon Copenhagen but some bugs decided otherwise.TRANSCRIPT
![Page 1: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/1.jpg)
Patrick Debois
goto;conference
Copenhagen2011
Wednesday 11 May 2011
![Page 2: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/2.jpg)
http://jedi.be/blog monitoring
http://devopsdays.orgWednesday 11 May 2011
![Page 3: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/3.jpg)
Project TaskWe need performance!
1 million writes /5 seconds
Wednesday 11 May 2011
![Page 4: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/4.jpg)
Wednesday 11 May 2011
![Page 5: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/5.jpg)
“All problems in computer science can be solved by another level of abstraction”
Wednesday 11 May 2011
![Page 6: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/6.jpg)
“All problems in computer science can be solved by another level of indirection”
Butler Lampson
http://zedshaw.com/essays/indirection_is_not_abstraction.html
Wednesday 11 May 2011
![Page 7: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/7.jpg)
We love Ruby & Rails
Wednesday 11 May 2011
![Page 8: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/8.jpg)
Performance Testing
JmeterApache
BenchmarkTsung
Rely much on OS tuningLimitations (tcp sessions, max fd, sockets,...)
Wednesday 11 May 2011
![Page 9: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/9.jpg)
Rails Application
Rails
Rack
Ruby (threading)
OS (threading)
Active Record
NgnixApache, Passenger
Thin Unicorn,Rainbows
Event Machine
Threads, Fibers, PIL
FS, Network tuningWednesday 11 May 2011
![Page 10: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/10.jpg)
Scaling
Web ServerApache/Nginx
MultiInstance
Loadbalancer
Database Pool
Wednesday 11 May 2011
![Page 11: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/11.jpg)
“All problems in computer science can be solved by another level of abstraction”
Wednesday 11 May 2011
![Page 12: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/12.jpg)
“... except for the problem of too many layers of indirection”
David Wheeler
Wednesday 11 May 2011
![Page 13: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/13.jpg)
Magic?
Wednesday 11 May 2011
![Page 14: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/14.jpg)
curl http://npmjs.org/
install.sh | sh
https://github.com/jordansissel/fpm/wiki/ConvertingNodeNPM
But Seriously??
Wednesday 11 May 2011
![Page 15: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/15.jpg)
bash < <(curl -s https://rvm.beginrescueend.com/install/rvm)
RVM
https://github.com/jordansissel/rvm-packaging
Wednesday 11 May 2011
![Page 16: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/16.jpg)
Brew install
curl -LsSf https://github.com/mxcl/homebrew/tarball/master | sudo /usr/bin/tar xvz -C/usr/local --strip 1
Wednesday 11 May 2011
![Page 17: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/17.jpg)
https://github.com/sstephenson/gosh
gosh: Security theater for piped shell scripts
Wednesday 11 May 2011
![Page 18: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/18.jpg)
Select Database?
Wednesday 11 May 2011
![Page 19: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/19.jpg)
Logging
http://logging.apache.org/log4j/http://log4r.rubyforge.org/
https://github.com/indexzero/winston
https://github.com/cloudera/flume
https://github.com/facebook/scribe
http://www.loggly.com/
Wednesday 11 May 2011
![Page 20: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/20.jpg)
Dependency Mgmt
Capistrano
Warbler
BundlerMaven
Cargo Plugin
Fat Jar
Wednesday 11 May 2011
![Page 21: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/21.jpg)
“All problems in computer science can be solved by another level of abstraction”
Wednesday 11 May 2011
![Page 22: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/22.jpg)
“But that usually create another problem”
David Wheeler
http://www.dmst.aueb.gr/dds/pubs/inbook/beautiful_code/html/Spi07g.html
Wednesday 11 May 2011
![Page 23: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/23.jpg)
“Every abstraction layer adds (a little) overhead
to the CPU
Wednesday 11 May 2011
![Page 24: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/24.jpg)
but also to the poor human who has to read
that code
http://blog.billyang.me/2009/10/dark-side-of-abstraction.html
Dark Side of Abstraction
Wednesday 11 May 2011
![Page 25: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/25.jpg)
VS
+++++++ +
Improvements
Wednesday 11 May 2011
![Page 26: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/26.jpg)
Runtime Abstraction
Wednesday 11 May 2011
![Page 27: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/27.jpg)
Database Abstraction
Wednesday 11 May 2011
![Page 28: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/28.jpg)
Do compilers, Languages, and frames
make dumber programmers?
http://stackoverflow.com/questions/428571/do-smarter-compilers-languages-and-frameworks-make-dumber-programmers
Wednesday 11 May 2011
![Page 29: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/29.jpg)
They don't make good programmers dumber, they
make them more productive;
http://stackoverflow.com/questions/428571/do-smarter-compilers-languages-and-frameworks-make-dumber-programmers
Wednesday 11 May 2011
![Page 30: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/30.jpg)
But they make dumber people be able to program
and think they are great programmer
http://stackoverflow.com/questions/428571/do-smarter-compilers-languages-and-frameworks-make-dumber-programmers
Wednesday 11 May 2011
![Page 31: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/31.jpg)
Sysadmin Land
Wednesday 11 May 2011
![Page 32: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/32.jpg)
Hardware Abstraction(OS/Drivers)
Wednesday 11 May 2011
![Page 33: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/33.jpg)
Disk Abstraction
Wednesday 11 May 2011
![Page 34: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/34.jpg)
Filesystem Abstraction
VFAT
NTFS
Iscsi NAS
ext2
reiserfs
Wednesday 11 May 2011
![Page 35: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/35.jpg)
VM/Storage Abstraction
http://libvirt.org/
Xen
Qemu
LXC
OpenVZ
Usermode Linux
Virtualbox
Vmware
Wednesday 11 May 2011
![Page 36: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/36.jpg)
Disk Images
Wednesday 11 May 2011
![Page 37: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/37.jpg)
Cloud Abstraction
https://github.com/geemus/fog https://github.com/jclouds/jclouds
Wednesday 11 May 2011
![Page 38: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/38.jpg)
Abstraction Fusion
Wednesday 11 May 2011
![Page 39: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/39.jpg)
Config ManagementAbstraction
Wednesday 11 May 2011
![Page 40: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/40.jpg)
A model is an abstraction ... for a purpose
http://www.cs.princeton.edu/courses/archive/spr98/cs333/lectures/19/sld002.htm
Wednesday 11 May 2011
![Page 41: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/41.jpg)
http://docs.puppetlabs.com/guides/cloud_pack_getting_started.html
Puppet Cloudpack
https://github.com/opscode/knife-ec2
Knife ec2 Bootstrap
If all you have is a hammer
http://www.amusei.com/images/hammer-in-the-head1.jpg
Wednesday 11 May 2011
![Page 42: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/42.jpg)
Orchestration
http://docs.puppetlabs.com/mcollective/ http://rundeck.org/
Wednesday 11 May 2011
![Page 43: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/43.jpg)
http://www.iinteractive.com/yapc/slides.htmlThank you @jtimberman
Wednesday 11 May 2011
![Page 44: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/44.jpg)
Vagrant
http://vagrantup.com/
https://github.com/jedi4ever/veewee
https://github.com/jedi4ever/sahara
http://vagrantbox.es/
https://github.com/jedi4ever/mccloud
http://www.jedi.be/blog/2011/03/28/using-vagrant-as-a-team/
Wednesday 11 May 2011
![Page 45: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/45.jpg)
Packages Boundaries
gem
npm
jar
deb
rpm
tgzEffing Package Management
Wednesday 11 May 2011
![Page 46: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/46.jpg)
Source/Binary
wget ...tar -xzvf ...
cd ..../configure
makemake install
package install
External Download => Local RepoCompiling => Do it only once
Wednesday 11 May 2011
![Page 47: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/47.jpg)
Idempotent
Wednesday 11 May 2011
![Page 48: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/48.jpg)
“Abstraction is
selective ignorance”
Andrew König
http://en.wikipedia.org/wiki/Andrew_Koenig_(programmer)
Wednesday 11 May 2011
![Page 49: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/49.jpg)
IAAS
Wednesday 11 May 2011
![Page 50: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/50.jpg)
PAAS
Google App Engine
Wednesday 11 May 2011
![Page 51: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/51.jpg)
Cloud Stacks
Wednesday 11 May 2011
![Page 52: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/52.jpg)
Cloud API Standardisation
Wednesday 11 May 2011
![Page 53: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/53.jpg)
Result is suboptimization
http://www.michaelnygard.com/blog/2004/04/too_much_abstraction.html
Wednesday 11 May 2011
![Page 54: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/54.jpg)
Too much abstraction(1)
Do the Simplest Thing that could possibly work
TDD
http://c2.com/cgi/wiki?TooMuchAbstraction
Wednesday 11 May 2011
![Page 55: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/55.jpg)
Too much abstraction(2)
Abstraction should be based on Practical Experience
Premature Optimization
http://c2.com/cgi/wiki?TooMuchAbstraction
Wednesday 11 May 2011
![Page 56: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/56.jpg)
Abstraction is deciding which aspects of a
problem to consider and which ones to ignore
http://www.cs.princeton.edu/courses/archive/spr98/cs333/lectures/19/sld002.htm
Wednesday 11 May 2011
![Page 57: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/57.jpg)
Sound a lot likeManagement
(without domain knowledge?)
Wednesday 11 May 2011
![Page 58: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/58.jpg)
Organization Abstractions
Wednesday 11 May 2011
![Page 59: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/59.jpg)
Something’s Fishy
http://weblog.raganwald.com/2007/12/somethings-fishy.html
Wednesday 11 May 2011
![Page 60: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/60.jpg)
Devops
http://mdzlog.alcor.net/2010/06/08/devops-and-cloud/
Wednesday 11 May 2011
![Page 61: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/61.jpg)
Devops
http://rationalautomation.wordpress.com/2010/02/04/dogs-and-cats-living-together/
Wednesday 11 May 2011
![Page 62: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/62.jpg)
Devops
http://www.rajiv.com/blog/2009/03/17/technology-department/
Wednesday 11 May 2011
![Page 63: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/63.jpg)
Generalist vs Specialist
Wednesday 11 May 2011
![Page 64: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/64.jpg)
Consider Specialization First
... And Generalization Second
Wednesday 11 May 2011
![Page 65: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/65.jpg)
http://www.noop.nl/2010/06/t-shaped-people.html
They have a principal skill that describes
the vertical leg of the T
T-shaped People
But they are so empathetic that they can branch out into other skills, such as anthropology, and do them as well.
Wednesday 11 May 2011
![Page 66: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/66.jpg)
http://images.icanhascheezburger.com/completestore/2008/9/11/128656414813278195.jpg
Wednesday 11 May 2011
![Page 67: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/67.jpg)
Wednesday 11 May 2011
![Page 68: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/68.jpg)
NOOPS = Human Abstraction?
http://rlv.zcache.com/i_love_noops_t_shirt-p235186382091096346trlf_400.jpg
Wednesday 11 May 2011
![Page 69: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/69.jpg)
abstraction is selective ignorance
http://www.cs.princeton.edu/courses/archive/spr98/cs333/lectures/19/sld002.htm
Wednesday 11 May 2011
![Page 70: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/70.jpg)
http://blog.rightscale.com/2011/04/25/amazon-ec2-outage-summary-and-lessons-learned/
Amazon.com’s real problem isn’t the outage, it’s the communication
http://aws.amazon.com/message/65648/
Wednesday 11 May 2011
![Page 71: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/71.jpg)
The Chaos Monkey’s job is to randomly kill instances and services within our architecture
If we aren’t constantly tes0ng our ability to succeed despite failure, then it isn’t likely to work when it ma;ers most – in the event of an unexpected outage.
http://www.codinghorror.com/blog/2011/04/working-with-the-chaos-monkey.html
Wednesday 11 May 2011
![Page 72: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/72.jpg)
Chaos Monkey
https://github.com/simonmunro/ChaosMonkey
https://github.com/mattbasta/chaos-chimp
__ w c(..)o ( \__(-) __) /\ ( /(_)___) w /| | \ m m
Wednesday 11 May 2011
![Page 73: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/73.jpg)
All non-trivial abstractions, to some
degree, are leaky
http://www.joelonsoftware.com/articles/LeakyAbstractions.html
Wednesday 11 May 2011
![Page 74: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/74.jpg)
When you drive a car, thinking about howthe engine works is
a distraction
http://www.cs.princeton.edu/courses/archive/spr98/cs333/lectures/19/sld002.htm
Wednesday 11 May 2011
![Page 75: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/75.jpg)
When you repair the car, thinking about
how the engine works is essential.
http://www.cs.princeton.edu/courses/archive/spr98/cs333/lectures/19/sld002.htm
Wednesday 11 May 2011
![Page 76: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/76.jpg)
Questions?
Wednesday 11 May 2011
![Page 77: Damn Abstraction : Development vs Operational Efficiency](https://reader033.vdocument.in/reader033/viewer/2022052523/55527a53b4c905115b8b4995/html5/thumbnails/77.jpg)
Programming is a human activity;
forget that and all is lost
Meta-advicehttp://www.cs.princeton.edu/courses/archive/spr99/cs333/pdf/21.pdf
Wednesday 11 May 2011