SlideShare uma empresa Scribd logo
1 de 86
Baixar para ler offline
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




                                                                                @jschauma

Thursday, June 28, 12
Velocity 2012 - Down with the fancy pants!




                                                                    On
                                                                       ion
                                                                           s!


                                            http://etsy.me/L1iiuo


Thursday, June 28, 12
Velocity 2012 - Down with the fancy pants!




                                        i on s!
                              ra ct
                        D ist




                                            http://etsy.me/KQDDSU


Thursday, 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/nn3QDV

Thursday, June 28, 12
Velocity 2012 - Down with the fancy pants!




                                           s!
                                         t
                                   lle
                                Bu
                        e     r
                  S i lv



                                            http://etsy.me/L6tJ40




Thursday, June 28, 12
Velocity 2012 - Down with the fancy pants!




                                           s!
                                         t
                                   lle
                                Bu
                        e     r
                  S i lv




Thursday, June 28, 12
Velocity 2012 - Down with the fancy pants!




                                         X
                                 y !
                               rr
                            S o




                                            http://etsy.me/L6tJ40




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/LieAZe




Thursday, June 28, 12
Velocity 2012 - Down with the fancy pants!




                          How do we build websites?
                                                        ^
                                                   large scale




Thursday, June 28, 12
Velocity 2012 - Down with the fancy pants!




              Load Balancer

          HTTP Servers

         Message Broker


                  Database




         Storage System



                                                                     #dadops

Thursday, June 28, 12
Velocity 2012 - Down with the fancy pants!




                                                                     Systems Architect
              Load Balancer

          HTTP Servers

         Message Broker


                  Database


                                                                     DNS
         Storage System



                                                                     #dadops

Thursday, 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/zQMzBn




Thursday, 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, I'd like to get the contents of this file, please."
                      GET / HTTP/1.0nn




Thursday, June 28, 12
Velocity 2012 - Down with the fancy pants!



                    Remember how a web server used to work?

                    Client: "Hello, I'd like to get the contents of this file, please."
                      GET / HTTP/1.0nn

                    Server: "Why, certainly, here you go."
                      cat file > socket




Thursday, June 28, 12
Velocity 2012 - Down with the fancy pants!



                    Remember how a web server used to work?

                    Client: "Hello, I'd 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/L8TeSc

Thursday, June 28, 12
Velocity 2012 - Down with the fancy pants!



                                                 HTTP today...

                        Client: "Hello, I'd like to get the contents of this file on this server, please."
                          GET / HTTP/1.1nn
                          Host: this-servernn




Thursday, June 28, 12
Velocity 2012 - Down with the fancy pants!



                                                 HTTP today...

                        Client: "Hello, I'd like to get the contents of this file on this server, please."
                          GET / HTTP/1.1nn
                          Host: this-servernn

                    Server: "I'm sorry, Node.js just crashed."
                     HTTP/1.1 500 Internal Server Error
                     Server: Apache-Coyote/1.1




Thursday, June 28, 12
Velocity 2012 - Down with the fancy pants!



                                                 HTTP today...

                        Client: "Hello, I'd like to get the contents of this file on this server, please."
                          GET / HTTP/1.1nn
                          Host: this-servernn

                    Server: "I'm sorry, Node.js just crashed."
                     HTTP/1.1 500 Internal Server Error
                     Server: Apache-Coyote/1.1




                                                  http://etsy.me/LlGtC5

Thursday, June 28, 12
Velocity 2012 - Down with the fancy pants!



                                               HTTP today...

                        Client: "Uhm... Node.js? I thought you said you're 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 you're an Apache server?"

                        Server: "Oh, sure, but I hand off LESS compilation to Node.js, which is
                                 faster than Rhino."

                        Client: "Uhm... Rhino? So you're... running Javascript inside Java?"

                        Server: "Oh, sure, I'm a Tomcat server!"




Thursday, June 28, 12
Velocity 2012 - Down with the fancy pants!



                                                HTTP today...

                        Client: "Uhm... Node.js? I thought you said you're an Apache server?"

                        Server: "Oh, sure, but I hand off LESS compilation to Node.js, which is
                                 faster than Rhino."

                        Client: "Uhm... Rhino? So you're... running Javascript inside Java?"

                        Server: "Oh, sure, I'm a Tomcat server!"

                        Client: "So I'm 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 don't you just serve the plain old
                                CSS?"

                        Server: "Don't 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/Lb57Y0


Thursday, June 28, 12
Velocity 2012 - Down with the fancy pants!




          “Complex systems fail in complex ways.”
                                                                     Steven M. Bellovin




Thursday, 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/KU1wJr


Thursday, 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/LrIexP


Thursday, 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 Knuth




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!




                          How do we build websites?




Thursday, June 28, 12
Velocity 2012 - Down with the fancy pants!




                                            http://etsy.me/w2pZPN



Thursday, June 28, 12
Velocity 2012 - Down with the fancy pants!




                                               /bin/sh




                                            http://etsy.me/L6Gb5O



Thursday, 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 stream




Thursday, 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 Je
Thursday, June 28, 12
Velocity 2012 - Down with the fancy pants!




                              text stream | text stream




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!




                        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/Lbsj8k

Thursday, June 28, 12
Velocity 2012 - Down with the fancy pants!




                                       object | object




Thursday, 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 | tool2




Thursday, June 28, 12
Velocity 2012 - Down with the fancy pants!


                    Complexity simplified:

                 •“essential complexity” is inherent to the
                    problem and cannot be reduced




Thursday, 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 indirectly




Thursday, 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 | tool2




Thursday, June 28, 12
Velocity 2012 - Down with the fancy pants!




                                       object | object




Thursday, June 28, 12
Velocity 2012 - Down with the fancy pants!




                         http://stackoverflow.com/questions/6260420/choices-of-message-queue




Thursday, June 28, 12
Velocity 2012 - Down with the fancy pants!




                         http://stackoverflow.com/questions/6260420/choices-of-message-queue




Thursday, June 28, 12
Velocity 2012 - Down with the fancy pants!




                                            http://etsy.me/eZxOwz



Thursday, 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/maintain

Thursday, June 28, 12
Velocity 2012 - Down with the fancy pants!




                                            http://etsy.me/LkuGI5



Thursday, 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/maintain

Thursday, 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/Lj89aR




Thursday, June 28, 12
Velocity 2012 - Down with the fancy pants!




                                               http://etsy.me/Lj8hqI



Thursday, 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/Lj8hqI



Thursday, 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/Lj8hqI



Thursday, June 28, 12
Velocity 2012 - Down with the fancy pants!




                                            http://etsy.me/LtSSrp



Thursday, June 28, 12
Velocity 2012 - Down with the fancy pants!




                             “Adding manpower to a late software
                                   project makes it later.”
                                                                     Brooks’s Law




Thursday, 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 = 1225


Thursday, 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 Needham




Thursday, 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/LnMCv7
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!




                                          http://etsy.me/L8WcGD

Thursday, 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/uCnnMg




Thursday, June 28, 12

Mais conteúdo relacionado

Destaque

Scaling Etsy: What Went Wrong, What Went Right
Scaling Etsy: What Went Wrong, What Went RightScaling Etsy: What Went Wrong, What Went Right
Scaling Etsy: What Went Wrong, What Went RightRoss Snyder
 
From Obvious to Ingenius: Incrementally Scaling Web Apps on PostgreSQL
From Obvious to Ingenius: Incrementally Scaling Web Apps on PostgreSQLFrom Obvious to Ingenius: Incrementally Scaling Web Apps on PostgreSQL
From Obvious to Ingenius: Incrementally Scaling Web Apps on PostgreSQLKonstantin Gredeskoul
 
Etsy Case Study
Etsy Case StudyEtsy Case Study
Etsy Case StudySlideShare
 
Design for Continuous Experimentation
Design for Continuous ExperimentationDesign for Continuous Experimentation
Design for Continuous ExperimentationDan McKinley
 

Destaque (6)

Ipv6 basics
Ipv6 basicsIpv6 basics
Ipv6 basics
 
Scaling postgres
Scaling postgresScaling postgres
Scaling postgres
 
Scaling Etsy: What Went Wrong, What Went Right
Scaling Etsy: What Went Wrong, What Went RightScaling Etsy: What Went Wrong, What Went Right
Scaling Etsy: What Went Wrong, What Went Right
 
From Obvious to Ingenius: Incrementally Scaling Web Apps on PostgreSQL
From Obvious to Ingenius: Incrementally Scaling Web Apps on PostgreSQLFrom Obvious to Ingenius: Incrementally Scaling Web Apps on PostgreSQL
From Obvious to Ingenius: Incrementally Scaling Web Apps on PostgreSQL
 
Etsy Case Study
Etsy Case StudyEtsy Case Study
Etsy Case Study
 
Design for Continuous Experimentation
Design for Continuous ExperimentationDesign for Continuous Experimentation
Design for Continuous Experimentation
 

Mais de Jan Schaumann

The Razors Edge - Cutting your TLS Baggage
The Razors Edge - Cutting your TLS BaggageThe Razors Edge - Cutting your TLS Baggage
The Razors Edge - Cutting your TLS BaggageJan Schaumann
 
Know Your Enemy - An Introduction to Threat Modeling
Know Your Enemy - An Introduction to Threat ModelingKnow Your Enemy - An Introduction to Threat Modeling
Know Your Enemy - An Introduction to Threat ModelingJan Schaumann
 
Crazy Like A Fox - #Infosec Ideas That Just Might Work
Crazy Like A Fox - #Infosec Ideas That Just Might WorkCrazy Like A Fox - #Infosec Ideas That Just Might Work
Crazy Like A Fox - #Infosec Ideas That Just Might WorkJan Schaumann
 
It's the people, stupid.
It's the people, stupid.It's the people, stupid.
It's the people, stupid.Jan Schaumann
 
Semper Ubi Sub Ubi - Things They Don't Teach You In School
Semper Ubi Sub Ubi - Things They Don't Teach You In SchoolSemper Ubi Sub Ubi - Things They Don't Teach You In School
Semper Ubi Sub Ubi - Things They Don't Teach You In SchoolJan Schaumann
 
Everything is Awful (And You're Not Helping)
Everything is Awful (And You're Not Helping)Everything is Awful (And You're Not Helping)
Everything is Awful (And You're Not Helping)Jan Schaumann
 
Primum non nocere - Ethical Obligations in Internet Operations
Primum non nocere - Ethical Obligations in Internet OperationsPrimum non nocere - Ethical Obligations in Internet Operations
Primum non nocere - Ethical Obligations in Internet OperationsJan Schaumann
 
Protecting Data in Untrusted Locations
Protecting Data in Untrusted LocationsProtecting Data in Untrusted Locations
Protecting Data in Untrusted LocationsJan Schaumann
 
Headless Host Scanning
Headless Host ScanningHeadless Host Scanning
Headless Host ScanningJan Schaumann
 
L3DSR - Overcoming Layer 2 Limitations of Direct Server Return Load Balancing
L3DSR - Overcoming Layer 2 Limitations of Direct Server Return Load BalancingL3DSR - Overcoming Layer 2 Limitations of Direct Server Return Load Balancing
L3DSR - Overcoming Layer 2 Limitations of Direct Server Return Load BalancingJan Schaumann
 
Building better tools
Building better toolsBuilding better tools
Building better toolsJan Schaumann
 

Mais de Jan Schaumann (15)

The Razors Edge - Cutting your TLS Baggage
The Razors Edge - Cutting your TLS BaggageThe Razors Edge - Cutting your TLS Baggage
The Razors Edge - Cutting your TLS Baggage
 
OpSec101
OpSec101OpSec101
OpSec101
 
Know Your Enemy - An Introduction to Threat Modeling
Know Your Enemy - An Introduction to Threat ModelingKnow Your Enemy - An Introduction to Threat Modeling
Know Your Enemy - An Introduction to Threat Modeling
 
Crazy Like A Fox - #Infosec Ideas That Just Might Work
Crazy Like A Fox - #Infosec Ideas That Just Might WorkCrazy Like A Fox - #Infosec Ideas That Just Might Work
Crazy Like A Fox - #Infosec Ideas That Just Might Work
 
It's the people, stupid.
It's the people, stupid.It's the people, stupid.
It's the people, stupid.
 
Semper Ubi Sub Ubi - Things They Don't Teach You In School
Semper Ubi Sub Ubi - Things They Don't Teach You In SchoolSemper Ubi Sub Ubi - Things They Don't Teach You In School
Semper Ubi Sub Ubi - Things They Don't Teach You In School
 
Everything is Awful (And You're Not Helping)
Everything is Awful (And You're Not Helping)Everything is Awful (And You're Not Helping)
Everything is Awful (And You're Not Helping)
 
Defense at Scale
Defense at ScaleDefense at Scale
Defense at Scale
 
Primum non nocere - Ethical Obligations in Internet Operations
Primum non nocere - Ethical Obligations in Internet OperationsPrimum non nocere - Ethical Obligations in Internet Operations
Primum non nocere - Ethical Obligations in Internet Operations
 
Protecting Data in Untrusted Locations
Protecting Data in Untrusted LocationsProtecting Data in Untrusted Locations
Protecting Data in Untrusted Locations
 
Headless Host Scanning
Headless Host ScanningHeadless Host Scanning
Headless Host Scanning
 
L3DSR - Overcoming Layer 2 Limitations of Direct Server Return Load Balancing
L3DSR - Overcoming Layer 2 Limitations of Direct Server Return Load BalancingL3DSR - Overcoming Layer 2 Limitations of Direct Server Return Load Balancing
L3DSR - Overcoming Layer 2 Limitations of Direct Server Return Load Balancing
 
Building better tools
Building better toolsBuilding better tools
Building better tools
 
Useless use of *
Useless use of *Useless use of *
Useless use of *
 
DST @ Yahoo!
DST @ Yahoo!DST @ Yahoo!
DST @ Yahoo!
 

Último

How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 

Último (20)

How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 

Fancy pants

  • 1. 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 @jschauma Thursday, June 28, 12
  • 2. Velocity 2012 - Down with the fancy pants! On ion s! http://etsy.me/L1iiuo Thursday, June 28, 12
  • 3. Velocity 2012 - Down with the fancy pants! i on s! ra ct D ist http://etsy.me/KQDDSU Thursday, June 28, 12
  • 4. Velocity 2012 - Down with the fancy pants! The Art of Yak Shaving! http://etsy.me/LlIZsf (Yak Wo ol) http://etsy.me/nn3QDV Thursday, June 28, 12
  • 5. Velocity 2012 - Down with the fancy pants! s! t lle Bu e r S i lv http://etsy.me/L6tJ40 Thursday, June 28, 12
  • 6. Velocity 2012 - Down with the fancy pants! s! t lle Bu e r S i lv Thursday, June 28, 12
  • 7. Velocity 2012 - Down with the fancy pants! X y ! rr S o http://etsy.me/L6tJ40 Thursday, June 28, 12
  • 8. Velocity 2012 - Down with the fancy pants! How do we build websites? Thursday, June 28, 12
  • 9. Velocity 2012 - Down with the fancy pants! http://etsy.me/LieAZe Thursday, June 28, 12
  • 10. Velocity 2012 - Down with the fancy pants! How do we build websites? ^ large scale Thursday, June 28, 12
  • 11. Velocity 2012 - Down with the fancy pants! Load Balancer HTTP Servers Message Broker Database Storage System #dadops Thursday, June 28, 12
  • 12. Velocity 2012 - Down with the fancy pants! Systems Architect Load Balancer HTTP Servers Message Broker Database DNS Storage System #dadops Thursday, June 28, 12
  • 13. Velocity 2012 - Down with the fancy pants! Exciting, right? Thursday, June 28, 12
  • 14. Velocity 2012 - Down with the fancy pants! http://etsy.me/zQMzBn Thursday, June 28, 12
  • 15. Velocity 2012 - Down with the fancy pants! Remember how a web server used to work? Thursday, June 28, 12
  • 16. Velocity 2012 - Down with the fancy pants! Remember how a web server used to work? Client: "Hello, I'd like to get the contents of this file, please." GET / HTTP/1.0nn Thursday, June 28, 12
  • 17. Velocity 2012 - Down with the fancy pants! Remember how a web server used to work? Client: "Hello, I'd like to get the contents of this file, please." GET / HTTP/1.0nn Server: "Why, certainly, here you go." cat file > socket Thursday, June 28, 12
  • 18. Velocity 2012 - Down with the fancy pants! Remember how a web server used to work? Client: "Hello, I'd 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/L8TeSc Thursday, June 28, 12
  • 19. Velocity 2012 - Down with the fancy pants! HTTP today... Client: "Hello, I'd like to get the contents of this file on this server, please." GET / HTTP/1.1nn Host: this-servernn Thursday, June 28, 12
  • 20. Velocity 2012 - Down with the fancy pants! HTTP today... Client: "Hello, I'd like to get the contents of this file on this server, please." GET / HTTP/1.1nn Host: this-servernn Server: "I'm sorry, Node.js just crashed."    HTTP/1.1 500 Internal Server Error Server: Apache-Coyote/1.1 Thursday, June 28, 12
  • 21. Velocity 2012 - Down with the fancy pants! HTTP today... Client: "Hello, I'd like to get the contents of this file on this server, please." GET / HTTP/1.1nn Host: this-servernn Server: "I'm sorry, Node.js just crashed."    HTTP/1.1 500 Internal Server Error Server: Apache-Coyote/1.1 http://etsy.me/LlGtC5 Thursday, June 28, 12
  • 22. Velocity 2012 - Down with the fancy pants! HTTP today... Client: "Uhm... Node.js? I thought you said you're an Apache server?" Server: "Oh, sure, but I hand off LESS compilation to Node.js, which is faster than Rhino." Thursday, June 28, 12
  • 23. Velocity 2012 - Down with the fancy pants! HTTP today... Client: "Uhm... Node.js? I thought you said you're an Apache server?" Server: "Oh, sure, but I hand off LESS compilation to Node.js, which is faster than Rhino." Client: "Uhm... Rhino? So you're... running Javascript inside Java?" Server: "Oh, sure, I'm a Tomcat server!" Thursday, June 28, 12
  • 24. Velocity 2012 - Down with the fancy pants! HTTP today... Client: "Uhm... Node.js? I thought you said you're an Apache server?" Server: "Oh, sure, but I hand off LESS compilation to Node.js, which is faster than Rhino." Client: "Uhm... Rhino? So you're... running Javascript inside Java?" Server: "Oh, sure, I'm a Tomcat server!" Client: "So I'm 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
  • 25. Velocity 2012 - Down with the fancy pants! HTTP today... Client: "Uhm... LESS? 'Compilation'? Why don't you just serve the plain old CSS?" Server: "Don't 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
  • 26. Velocity 2012 - Down with the fancy pants! HTTP today... Client: "My head hurts. How did we get here?" http://etsy.me/Lb57Y0 Thursday, June 28, 12
  • 27. Velocity 2012 - Down with the fancy pants! “Complex systems fail in complex ways.” Steven M. Bellovin Thursday, June 28, 12
  • 28. 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
  • 29. Velocity 2012 - Down with the fancy pants! Optimize for human time. Thursday, June 28, 12
  • 30. 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/KU1wJr Thursday, June 28, 12
  • 31. Velocity 2012 - Down with the fancy pants! <script src="less.js" type="text/javascript"></script> Thursday, June 28, 12
  • 32. Velocity 2012 - Down with the fancy pants! Thursday, June 28, 12
  • 33. Velocity 2012 - Down with the fancy pants! -- `$=`;$_=%!;($_)=/(.)/;$==++$|;($.,$/,$,,$,$",$;,$^,$#,$~,$*,$:,@%)=( $!=~/(.)(.).(.)(.)(.)(.)..(.)(.)(.)..(.)......(.)/,$"),$=++;$.++;$.++; $_++;$_++;($_,$,$,)=($~.$"."$;$/$%[$?]$_$$,$:$%[$?]",$"&$~,$#,);$,++ ;$,++;$^|=$";`$_$$,$/$:$;$~$*$%[$?]$.$~$*${#}$%[$?]$;$$"$^$~$*.>&$=` Thursday, June 28, 12
  • 34. Velocity 2012 - Down with the fancy pants! Thursday, June 28, 12
  • 35. Velocity 2012 - Down with the fancy pants! Thursday, June 28, 12
  • 36. Velocity 2012 - Down with the fancy pants! Thursday, June 28, 12
  • 37. Velocity 2012 - Down with the fancy pants! http://etsy.me/LrIexP Thursday, June 28, 12
  • 38. Velocity 2012 - Down with the fancy pants! Thursday, June 28, 12
  • 39. Velocity 2012 - Down with the fancy pants! “Premature optimization is the root of all evil.” Donald Knuth Thursday, June 28, 12
  • 40. Velocity 2012 - Down with the fancy pants! Optimize for human time. Thursday, June 28, 12
  • 41. Velocity 2012 - Down with the fancy pants! How do we build websites? Thursday, June 28, 12
  • 42. Velocity 2012 - Down with the fancy pants! http://etsy.me/w2pZPN Thursday, June 28, 12
  • 43. Velocity 2012 - Down with the fancy pants! /bin/sh http://etsy.me/L6Gb5O Thursday, June 28, 12
  • 44. Velocity 2012 - Down with the fancy pants! stdin stdout stderr /bin/sh << < | > >> Thursday, June 28, 12
  • 45. Velocity 2012 - Down with the fancy pants! stdin stdout stderr awk(1) /bin/sh << < | > >> Thursday, June 28, 12
  • 46. Velocity 2012 - Down with the fancy pants! stdin stdout stderr awk(1) sed(1) /bin/sh << < | > >> Thursday, June 28, 12
  • 47. 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
  • 48. 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
  • 49. Velocity 2012 - Down with the fancy pants! | Thursday, June 28, 12
  • 50. Velocity 2012 - Down with the fancy pants! text stream | text stream Thursday, June 28, 12
  • 51. Velocity 2012 - Down with the fancy pants! ...it is on! http://etsy.me/LoKFRA http://etsy.me/LoKw0B rse y vs . MIT Ne w Je Thursday, June 28, 12
  • 52. Velocity 2012 - Down with the fancy pants! text stream | text stream Thursday, June 28, 12
  • 53. Velocity 2012 - Down with the fancy pants! XML makes me YAML. Thursday, June 28, 12
  • 54. 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
  • 55. Velocity 2012 - Down with the fancy pants! XML makes me YAML. Thursday, June 28, 12
  • 56. Velocity 2012 - Down with the fancy pants! The Dunning-Kruger effect applies to Domain-Specific Languages, too. Thursday, June 28, 12
  • 57. 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/Lbsj8k Thursday, June 28, 12
  • 58. Velocity 2012 - Down with the fancy pants! object | object Thursday, June 28, 12
  • 59. Velocity 2012 - Down with the fancy pants! Public: Public: color: orange color: orange shape: rect shape: rect Private: Private: corners: round corners:angular tool1 | tool2 Thursday, June 28, 12
  • 60. Velocity 2012 - Down with the fancy pants! Complexity simplified: •“essential complexity” is inherent to the problem and cannot be reduced Thursday, June 28, 12
  • 61. 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 indirectly Thursday, June 28, 12
  • 62. 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 | tool2 Thursday, June 28, 12
  • 63. Velocity 2012 - Down with the fancy pants! object | object Thursday, June 28, 12
  • 64. Velocity 2012 - Down with the fancy pants! http://stackoverflow.com/questions/6260420/choices-of-message-queue Thursday, June 28, 12
  • 65. Velocity 2012 - Down with the fancy pants! http://stackoverflow.com/questions/6260420/choices-of-message-queue Thursday, June 28, 12
  • 66. Velocity 2012 - Down with the fancy pants! http://etsy.me/eZxOwz Thursday, June 28, 12
  • 67. 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/maintain Thursday, June 28, 12
  • 68. Velocity 2012 - Down with the fancy pants! http://etsy.me/LkuGI5 Thursday, June 28, 12
  • 69. 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/maintain Thursday, June 28, 12
  • 70. Velocity 2012 - Down with the fancy pants! Software maintenance is ~75% of TCO. Thursday, June 28, 12
  • 71. Velocity 2012 - Down with the fancy pants! Software maintenance is ~75% of TCO. Operational costs are the other 75%. Thursday, June 28, 12
  • 72. Velocity 2012 - Down with the fancy pants! http://etsy.me/Lj89aR Thursday, June 28, 12
  • 73. Velocity 2012 - Down with the fancy pants! http://etsy.me/Lj8hqI Thursday, June 28, 12
  • 74. Velocity 2012 - Down with the fancy pants! minor PHP upgrade various ruby gems added / updated libmemcached, sqlite, zlib, and openssl updated http://etsy.me/Lj8hqI Thursday, June 28, 12
  • 75. 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/Lj8hqI Thursday, June 28, 12
  • 76. Velocity 2012 - Down with the fancy pants! http://etsy.me/LtSSrp Thursday, June 28, 12
  • 77. Velocity 2012 - Down with the fancy pants! “Adding manpower to a late software project makes it later.” Brooks’s Law Thursday, June 28, 12
  • 78. Velocity 2012 - Down with the fancy pants! Brooks’s Law also holds for software endpoints. Thursday, June 28, 12
  • 79. 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 = 1225 Thursday, June 28, 12
  • 80. 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
  • 81. 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 Needham Thursday, June 28, 12
  • 82. Velocity 2012 - Down with the fancy pants! Identify accidental and essential complexity. Eliminate the former, then optimize the latter. Thursday, June 28, 12
  • 83. 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/LnMCv7 Thursday, June 28, 12
  • 84. Velocity 2012 - Down with the fancy pants! Optimize for human time. Thursday, June 28, 12
  • 85. Velocity 2012 - Down with the fancy pants! http://etsy.me/L8WcGD Thursday, June 28, 12
  • 86. 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/uCnnMg Thursday, June 28, 12