• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Fancy pants
 

Fancy pants

on

  • 5,133 views

Down With the Fancy Pants! -- How People Have Been Optimizing the Wrong Things and Increased Complexity

Down With the Fancy Pants! -- How People Have Been Optimizing the Wrong Things and Increased Complexity

Originally given at Velocity 2012.

Statistics

Views

Total Views
5,133
Views on SlideShare
5,074
Embed Views
59

Actions

Likes
5
Downloads
36
Comments
0

8 Embeds 59

http://lanyrd.com 29
https://twimg0-a.akamaihd.net 12
https://si0.twimg.com 7
http://us-w1.rockmelt.com 3
http://coderwall.com 3
http://www.linkedin.com 2
https://www.linkedin.com 2
https://twitter.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Fancy pants Fancy pants Presentation Transcript

    • Velocity 2012 Down with the fancy pants! How people have been optimizing the wrong things and increased complexity. Jan Schaumann <jschauma@etsy.com> B60D A9F7 0D89 544A 7995 7D25 5A5B 4375 275F 0BB5 @jschaumaThursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! On ion s! http://etsy.me/L1iiuoThursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! i on s! ra ct D ist http://etsy.me/KQDDSUThursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! The Art of Yak Shaving! http://etsy.me/LlIZsf (Yak Wo ol) http://etsy.me/nn3QDVThursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! s! t lle Bu e r S i lv http://etsy.me/L6tJ40Thursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! s! t lle Bu e r S i lvThursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! X y ! rr S o http://etsy.me/L6tJ40Thursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! How do we build websites?Thursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! http://etsy.me/LieAZeThursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! How do we build websites? ^ large scaleThursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! Load Balancer HTTP Servers Message Broker Database Storage System #dadopsThursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! Systems Architect Load Balancer HTTP Servers Message Broker Database DNS Storage System #dadopsThursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! Exciting, right?Thursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! http://etsy.me/zQMzBnThursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! Remember how a web server used to work?Thursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! Remember how a web server used to work? Client: "Hello, Id like to get the contents of this file, please." GET / HTTP/1.0nnThursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! Remember how a web server used to work? Client: "Hello, Id like to get the contents of this file, please." GET / HTTP/1.0nn Server: "Why, certainly, here you go." cat file > socketThursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! Remember how a web server used to work? Client: "Hello, Id like to get the contents of this file, please." GET / HTTP/1.0nn Server: "Why, certainly, here you go." cat file > socket http://etsy.me/L8TeScThursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! HTTP today... Client: "Hello, Id like to get the contents of this file on this server, please." GET / HTTP/1.1nn Host: this-servernnThursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! HTTP today... Client: "Hello, Id like to get the contents of this file on this server, please." GET / HTTP/1.1nn Host: this-servernn Server: "Im sorry, Node.js just crashed."    HTTP/1.1 500 Internal Server Error Server: Apache-Coyote/1.1Thursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! HTTP today... Client: "Hello, Id like to get the contents of this file on this server, please." GET / HTTP/1.1nn Host: this-servernn Server: "Im sorry, Node.js just crashed."    HTTP/1.1 500 Internal Server Error Server: Apache-Coyote/1.1 http://etsy.me/LlGtC5Thursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! HTTP today... Client: "Uhm... Node.js? I thought you said youre an Apache server?" Server: "Oh, sure, but I hand off LESS compilation to Node.js, which is faster than Rhino."Thursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! HTTP today... Client: "Uhm... Node.js? I thought you said youre an Apache server?" Server: "Oh, sure, but I hand off LESS compilation to Node.js, which is faster than Rhino." Client: "Uhm... Rhino? So youre... running Javascript inside Java?" Server: "Oh, sure, Im a Tomcat server!"Thursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! HTTP today... Client: "Uhm... Node.js? I thought you said youre an Apache server?" Server: "Oh, sure, but I hand off LESS compilation to Node.js, which is faster than Rhino." Client: "Uhm... Rhino? So youre... running Javascript inside Java?" Server: "Oh, sure, Im a Tomcat server!" Client: "So Im talking to... your Coyote HTTP connector, which hands my requests off to your ‘Catalina servlet container’, which..." Server: "...looks up stuff in various databases, triggers actions in a message broker and hands the LESS compilation off to Node.js..."Thursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! HTTP today... Client: "Uhm... LESS? Compilation? Why dont you just serve the plain old CSS?" Server: "Dont be silly. All problems in computer science can be solved by another level of indirection. Now where was I?" Server: "Oh, right: ...hands the LESS compilation off to Node.js, which just crashed."Thursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! HTTP today... Client: "My head hurts. How did we get here?" http://etsy.me/Lb57Y0Thursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! “Complex systems fail in complex ways.” Steven M. BellovinThursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! <!-- web0013.ny4.etsy.com at Wed 20 06 12:24:24 2012 in 462 ms -->Thursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! Optimize for human time.Thursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! Is less really more? // LESS /* Compiled CSS */ #header { #header h1 { h1 { font-size: 26px; font-size: 26px; font-weight: bold; font-weight: bold; } } #header p { p { font-size: 12px; font-size: 12px; a { text-decoration: none; } &:hover { border-width: 1px } #header p a { } text-decoration: none; } } } #header p a:hover { border-width: 1px; } http://etsy.me/KU1wJrThursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! <script src="less.js" type="text/javascript"></script>Thursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants!Thursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants!--`$=`;$_=%!;($_)=/(.)/;$==++$|;($.,$/,$,,$,$",$;,$^,$#,$~,$*,$:,@%)=($!=~/(.)(.).(.)(.)(.)(.)..(.)(.)(.)..(.)......(.)/,$"),$=++;$.++;$.++;$_++;$_++;($_,$,$,)=($~.$"."$;$/$%[$?]$_$$,$:$%[$?]",$"&$~,$#,);$,++;$,++;$^|=$";`$_$$,$/$:$;$~$*$%[$?]$.$~$*${#}$%[$?]$;$$"$^$~$*.>&$=`Thursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants!Thursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants!Thursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants!Thursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! http://etsy.me/LrIexPThursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants!Thursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! “Premature optimization is the root of all evil.” Donald KnuthThursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! Optimize for human time.Thursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! How do we build websites?Thursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! http://etsy.me/w2pZPNThursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! /bin/sh http://etsy.me/L6Gb5OThursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! stdin stdout stderr /bin/sh << < | > >>Thursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! stdin stdout stderr awk(1) /bin/sh << < | > >>Thursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! stdin stdout stderr awk(1) sed(1) /bin/sh << < | > >>Thursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! sort(1) stdin stdout stderr awk(1) sed(1) /bin/sh uniq(1) << < | > >> wc(1)Thursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! lam(1) comm(1) sort(1) stdin stdout stderr awk(1) sed(1) /bin/sh *roff(1) uniq(1) << < | > >> col(1) fmt(1) wc(1) paste(1)Thursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! |Thursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! text stream | text streamThursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! ...it is on! http://etsy.me/LoKFRA http://etsy.me/LoKw0B rse y vs . MIT Ne w JeThursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! text stream | text streamThursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! XML makes me YAML.Thursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! XSLT is a language with an XML-based syntax that is used to transform XML documents into other XML documents...Thursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! XML makes me YAML.Thursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! The Dunning-Kruger effect applies to Domain-Specific Languages, too.Thursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! http://www.jsonml.org/ “The purpose of JsonML is to provide a compact format for transporting XML-based markup as JSON which allows it to be losslessly converted back to its original form.” On the internet, nobody knows if you’re trolling. http://etsy.me/Lbsj8kThursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! object | objectThursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! Public: Public: color: orange color: orange shape: rect shape: rect Private: Private: corners: round corners:angular tool1 | tool2Thursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! Complexity simplified: •“essential complexity” is inherent to the problem and cannot be reducedThursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! Complexity simplified: •“essential complexity” is inherent to the problem and cannot be reduced •“accidental complexity” is inadvertent and frequently introduced indirectlyThursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! Public: Public: color: orange color: orange shape: rect shape: rect Private: Private: corners: round corners:angular tool1| filter | tool2Thursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! object | objectThursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! http://stackoverflow.com/questions/6260420/choices-of-message-queueThursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! http://stackoverflow.com/questions/6260420/choices-of-message-queueThursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! http://etsy.me/eZxOwzThursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! Total Cost of Ownership purchase price time to evaluate solution support contract time to deploy solution savings in $resource time to on-ramp staff time to integrate with existing tools time to debug/update/maintainThursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! http://etsy.me/LkuGI5Thursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! Total Cost of Ownership $$ s purchase price time to evaluate solution our support contract time to deploy solution savings in $resource time to on-ramp staff n-h time to integrate with existing tools ma time to debug/update/maintainThursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! Software maintenance is ~75% of TCO.Thursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! Software maintenance is ~75% of TCO. Operational costs are the other 75%.Thursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! http://etsy.me/Lj89aRThursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! http://etsy.me/Lj8hqIThursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! minor PHP upgrade various ruby gems added / updated libmemcached, sqlite, zlib, and openssl updated http://etsy.me/Lj8hqIThursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! http://etsy.me/HT7BJm runs linux minor PHP upgrade various ruby gems added / updated libmemcached, sqlite, zlib, and openssl updated http://etsy.me/Lj8hqIThursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! http://etsy.me/LtSSrpThursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! “Adding manpower to a late software project makes it later.” Brooks’s LawThursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! Brooks’s Law also holds for software endpoints.Thursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! Group Intercommunication Formula: #of channels of communication = n(n − 1) / 2 5 developers: 5(5-1)/2 = 10 10 developers: 10(10-1)/2 = 45 50 developers: 50(50-1)/2 = 1225Thursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! Brooks’s Law also holds for software endpoints. Adding independent components to a software architecture increases complexity exponentially.Thursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! “Optimization is the process of taking something that works and replacing it with something that almost works, but costs less.” Roger NeedhamThursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! Identify accidental and essential complexity. Eliminate the former, then optimize the latter.Thursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! •“Complex systems fail in complex ways.” (Bellovin) •“Premature optimization is the root of all evil.” (Knuth) •“Worse is better (is worse is still better).” (Gabriel) •“Complexity increases non-linearly.” (Brooks) •“Complexity is the enemy of security.” (Schneier) •echo “import this” | python http://etsy.me/Ly59Ly http://etsy.me/LlIZsf http://etsy.me/LnMCv7Thursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! Optimize for human time.Thursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! http://etsy.me/L8WcGDThursday, June 28, 12
    • Velocity 2012 - Down with the fancy pants! Related talks, presentations and articles in no particular order: • http://concur.rspace.googlecode.com/hg/talk/concur.html • http://radar.oreilly.com/2012/04/complexity-vs-simplicity.html • http://www.confreaks.com/videos/860-railsconf2012-keynote-simplicity-matters • http://dreamsongs.com/WorseIsBetter.html • http://michaelochurch.wordpress.com/2012/04/13/java-shop-politics/ • http://codebetter.com/markneedham/2010/03/18/essential-and-accidental-complexity/ • http://html9responsiveboilerstrapjs.com/ • http://jamesgolick.com/2010/10/27/we-are-experiencing-too-much-load-lets-add-a-new- server..html • http://is.gd/uCnnMgThursday, June 28, 12