SlideShare uma empresa Scribd logo
1 de 20
Baixar para ler offline
Scaling war stories

                  • Last.fm vs Xbox360
                  • Quick and hacky profiling
                  • Discuss


Wednesday, 26 May 2010
What happens when
                   scale is forced on you?
                  • 24 Million Xbox360 users
                  • Estimated ~5 times peak traffic increase
                  • No control over source of client
                  • External partner, with their own deadlines
                  • Must be reliable at launch. Err? (The PR
                         problem)


Wednesday, 26 May 2010
A dose of reality

                  • You won’t have the resources you’d like
                   • People (skills, availability,
                   • Budget (new servers would be nice)
                   • Time (more of this would be nice too)

Wednesday, 26 May 2010
B-b-but...

                  • It’s not an ideal world
                  • I’m not a systems developer (I spend half
                         my time on the front end)
                  • Quite hacky. Open to suggestions,
                         alternatives, your experiences



Wednesday, 26 May 2010
HTTP profiling

                  • Had a development Xbox
                  • Stuck a proxy box in the middle
                  • Profiled traffic with Wireshark


Wednesday, 26 May 2010
Wireshark




Wednesday, 26 May 2010
Making a list...

                  • API calls made
                  • In order, as uses cases
                  • Bad uses that can be factored out
                  • What breaks when call X is disbabled
                   • Proxy routed to a dev version of API

Wednesday, 26 May 2010
Xbox Beta
                  • Launched to 1,000 people (At midnight on
                         a Friday). Then to a further 9,000 people
                  • Gave a nice real usage sample
                  • Great, the most common calls are...
                         completely pointless.
                  • frequent != expensive (necessarily)

Wednesday, 26 May 2010
Custom Logging gen-time

               LogFormat "%h %l %u %t "%r"
               %>s %b "% 
                {Referer}i" "%{User-Agent}i"
                %{gentime}n"

             <?php
              apache_note("gen-time", $x);



Wednesday, 26 May 2010
Abusing bash
            Text

            awk 'BEGIN 
             {FS="t"} {a[$2]++;b[$2]=b[$2]+$1} 
             END 
             {for (i in a) printf("%.2f %sn", b[i]/a[i]/
             1000000, i)} '



Wednesday, 26 May 2010
Stats
         Count                                       Total   Average

         71638           trackgetInfo                15789   0.22
         53941           artistgetImages             19647   0.36
         15150           radiogetPlaylist             6962   0.46
          7308           librarygetArtists            2402   0.33
          5020           usergetRecentStations        1674   0.33
          4979           adsgetvideos                 1810   0.36
          4205           radiotune                     923   0.22
          3155           tracklove                       0   0.00
          1507           artistgetinfo                 440   0.29
          1258           usergetRecommendedArtists    1457   1.16
          1135           usergetInfo                   171   0.15
          1130           geogetTopArtists              575   0.51
          1128           radiogamerstations            298   0.26
          1102           taggettopartists             1488   1.35
          1021           trackban                        0   0.00
          1006           usergetLovedTracks            271   0.27
Wednesday, 26 May 2010
zomg, graphs!



Wednesday, 26 May 2010
Wednesday, 26 May 2010
Wednesday, 26 May 2010
Wednesday, 26 May 2010
Profiling with Xdebug
                  • Profile PHP, stack traces, memory usage, etc
                  • http://xdebug.org
                   extension=xdebug.so
                   xdebug.max_nesting_level=500
                   xdebug.default_enable=0
                   xdebug.profiler_enable_trigger=1
                   xdebug.profiler_append=1
                   xdebug.trace_output_name=
                   %R.cache.out
Wednesday, 26 May 2010
Making sense of it




Wednesday, 26 May 2010
Contingencies
                  • From invisible, to user affecting
                  • Disable DB writes, speed up and prevent
                         blocking on failure
                  • Suppress badly architected Flash Player (and
                         less evil taste-o-meter)
                  • Kill % of method calls at perlbal

Wednesday, 26 May 2010
Wednesday, 26 May 2010
Monitoring porn
                  • Launch control with: 3 projectors, 5 x 24”
                         monitors, a dozen dev/sysops with laptops
                  • A moose, a cow and a fail train




Wednesday, 26 May 2010

Mais conteúdo relacionado

Semelhante a ScaleCamp 2009 - Last.fm vs Xbox

Scaling webappswithrabbitmq
Scaling webappswithrabbitmqScaling webappswithrabbitmq
Scaling webappswithrabbitmqAlvaro Videla
 
causos da linha de frente - #rsonrails 2011
causos da linha de frente - #rsonrails 2011causos da linha de frente - #rsonrails 2011
causos da linha de frente - #rsonrails 2011bzanchet
 
Availability, the Cloud and Everything
Availability, the Cloud and EverythingAvailability, the Cloud and Everything
Availability, the Cloud and Everythinglogicalstack
 
Rubinius - What Have You Done For Me Lately?
Rubinius - What Have You Done For Me Lately?Rubinius - What Have You Done For Me Lately?
Rubinius - What Have You Done For Me Lately?evanphx
 
BCS SIGiST - How Fast is the Cloud?
BCS SIGiST - How Fast is the Cloud?BCS SIGiST - How Fast is the Cloud?
BCS SIGiST - How Fast is the Cloud?Richard Bishop
 
John adams talk cloudy
John adams   talk cloudyJohn adams   talk cloudy
John adams talk cloudyJohn Adams
 
Testing Zen
Testing ZenTesting Zen
Testing Zenday
 
Hacklu2011 tricaud
Hacklu2011 tricaudHacklu2011 tricaud
Hacklu2011 tricaudstricaud
 
Bar Camp Auckland - Mongo DB Presentation BCA4
Bar Camp Auckland - Mongo DB Presentation BCA4Bar Camp Auckland - Mongo DB Presentation BCA4
Bar Camp Auckland - Mongo DB Presentation BCA4John Ballinger
 
Voxxed Vienna 2015 Fault tolerant microservices
Voxxed Vienna 2015 Fault tolerant microservicesVoxxed Vienna 2015 Fault tolerant microservices
Voxxed Vienna 2015 Fault tolerant microservicesChristopher Batey
 
No one listens to my podcast (a kibana story)
No one listens to my podcast (a kibana story)No one listens to my podcast (a kibana story)
No one listens to my podcast (a kibana story)OpenSource Connections
 
Chirp 2010: Scaling Twitter
Chirp 2010: Scaling TwitterChirp 2010: Scaling Twitter
Chirp 2010: Scaling TwitterJohn Adams
 
Android casting-wide-net-android-devices
Android casting-wide-net-android-devicesAndroid casting-wide-net-android-devices
Android casting-wide-net-android-devicesMarakana Inc.
 
Scaling with Postgres (Highload++ 2010)
Scaling with Postgres (Highload++ 2010)Scaling with Postgres (Highload++ 2010)
Scaling with Postgres (Highload++ 2010)Robert Treat
 
NodeJS, CoffeeScript & Real-time Web
NodeJS, CoffeeScript & Real-time WebNodeJS, CoffeeScript & Real-time Web
NodeJS, CoffeeScript & Real-time WebJakub Nesetril
 
Gaelyk - SpringOne2GX - 2010 - Guillaume Laforge
Gaelyk - SpringOne2GX - 2010 - Guillaume LaforgeGaelyk - SpringOne2GX - 2010 - Guillaume Laforge
Gaelyk - SpringOne2GX - 2010 - Guillaume LaforgeGuillaume Laforge
 

Semelhante a ScaleCamp 2009 - Last.fm vs Xbox (20)

Scaling webappswithrabbitmq
Scaling webappswithrabbitmqScaling webappswithrabbitmq
Scaling webappswithrabbitmq
 
causos da linha de frente - #rsonrails 2011
causos da linha de frente - #rsonrails 2011causos da linha de frente - #rsonrails 2011
causos da linha de frente - #rsonrails 2011
 
Availability, the Cloud and Everything
Availability, the Cloud and EverythingAvailability, the Cloud and Everything
Availability, the Cloud and Everything
 
Rubinius - What Have You Done For Me Lately?
Rubinius - What Have You Done For Me Lately?Rubinius - What Have You Done For Me Lately?
Rubinius - What Have You Done For Me Lately?
 
Varnish Oscon 2009
Varnish Oscon 2009Varnish Oscon 2009
Varnish Oscon 2009
 
Oscon 2010
Oscon 2010Oscon 2010
Oscon 2010
 
BCS SIGiST - How Fast is the Cloud?
BCS SIGiST - How Fast is the Cloud?BCS SIGiST - How Fast is the Cloud?
BCS SIGiST - How Fast is the Cloud?
 
John adams talk cloudy
John adams   talk cloudyJohn adams   talk cloudy
John adams talk cloudy
 
Testing Zen
Testing ZenTesting Zen
Testing Zen
 
Hacklu2011 tricaud
Hacklu2011 tricaudHacklu2011 tricaud
Hacklu2011 tricaud
 
Bar Camp Auckland - Mongo DB Presentation BCA4
Bar Camp Auckland - Mongo DB Presentation BCA4Bar Camp Auckland - Mongo DB Presentation BCA4
Bar Camp Auckland - Mongo DB Presentation BCA4
 
Voxxed Vienna 2015 Fault tolerant microservices
Voxxed Vienna 2015 Fault tolerant microservicesVoxxed Vienna 2015 Fault tolerant microservices
Voxxed Vienna 2015 Fault tolerant microservices
 
No one listens to my podcast (a kibana story)
No one listens to my podcast (a kibana story)No one listens to my podcast (a kibana story)
No one listens to my podcast (a kibana story)
 
Check Please!
Check Please!Check Please!
Check Please!
 
Chirp 2010: Scaling Twitter
Chirp 2010: Scaling TwitterChirp 2010: Scaling Twitter
Chirp 2010: Scaling Twitter
 
WebSockets
WebSocketsWebSockets
WebSockets
 
Android casting-wide-net-android-devices
Android casting-wide-net-android-devicesAndroid casting-wide-net-android-devices
Android casting-wide-net-android-devices
 
Scaling with Postgres (Highload++ 2010)
Scaling with Postgres (Highload++ 2010)Scaling with Postgres (Highload++ 2010)
Scaling with Postgres (Highload++ 2010)
 
NodeJS, CoffeeScript & Real-time Web
NodeJS, CoffeeScript & Real-time WebNodeJS, CoffeeScript & Real-time Web
NodeJS, CoffeeScript & Real-time Web
 
Gaelyk - SpringOne2GX - 2010 - Guillaume Laforge
Gaelyk - SpringOne2GX - 2010 - Guillaume LaforgeGaelyk - SpringOne2GX - 2010 - Guillaume Laforge
Gaelyk - SpringOne2GX - 2010 - Guillaume Laforge
 

Último

FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 

Último (20)

FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 

ScaleCamp 2009 - Last.fm vs Xbox

  • 1. Scaling war stories • Last.fm vs Xbox360 • Quick and hacky profiling • Discuss Wednesday, 26 May 2010
  • 2. What happens when scale is forced on you? • 24 Million Xbox360 users • Estimated ~5 times peak traffic increase • No control over source of client • External partner, with their own deadlines • Must be reliable at launch. Err? (The PR problem) Wednesday, 26 May 2010
  • 3. A dose of reality • You won’t have the resources you’d like • People (skills, availability, • Budget (new servers would be nice) • Time (more of this would be nice too) Wednesday, 26 May 2010
  • 4. B-b-but... • It’s not an ideal world • I’m not a systems developer (I spend half my time on the front end) • Quite hacky. Open to suggestions, alternatives, your experiences Wednesday, 26 May 2010
  • 5. HTTP profiling • Had a development Xbox • Stuck a proxy box in the middle • Profiled traffic with Wireshark Wednesday, 26 May 2010
  • 7. Making a list... • API calls made • In order, as uses cases • Bad uses that can be factored out • What breaks when call X is disbabled • Proxy routed to a dev version of API Wednesday, 26 May 2010
  • 8. Xbox Beta • Launched to 1,000 people (At midnight on a Friday). Then to a further 9,000 people • Gave a nice real usage sample • Great, the most common calls are... completely pointless. • frequent != expensive (necessarily) Wednesday, 26 May 2010
  • 9. Custom Logging gen-time LogFormat "%h %l %u %t "%r" %>s %b "% {Referer}i" "%{User-Agent}i" %{gentime}n" <?php apache_note("gen-time", $x); Wednesday, 26 May 2010
  • 10. Abusing bash Text awk 'BEGIN {FS="t"} {a[$2]++;b[$2]=b[$2]+$1} END {for (i in a) printf("%.2f %sn", b[i]/a[i]/ 1000000, i)} ' Wednesday, 26 May 2010
  • 11. Stats Count Total Average 71638 trackgetInfo 15789 0.22 53941 artistgetImages 19647 0.36 15150 radiogetPlaylist 6962 0.46 7308 librarygetArtists 2402 0.33 5020 usergetRecentStations 1674 0.33 4979 adsgetvideos 1810 0.36 4205 radiotune 923 0.22 3155 tracklove 0 0.00 1507 artistgetinfo 440 0.29 1258 usergetRecommendedArtists 1457 1.16 1135 usergetInfo 171 0.15 1130 geogetTopArtists 575 0.51 1128 radiogamerstations 298 0.26 1102 taggettopartists 1488 1.35 1021 trackban 0 0.00 1006 usergetLovedTracks 271 0.27 Wednesday, 26 May 2010
  • 16. Profiling with Xdebug • Profile PHP, stack traces, memory usage, etc • http://xdebug.org extension=xdebug.so xdebug.max_nesting_level=500 xdebug.default_enable=0 xdebug.profiler_enable_trigger=1 xdebug.profiler_append=1 xdebug.trace_output_name= %R.cache.out Wednesday, 26 May 2010
  • 17. Making sense of it Wednesday, 26 May 2010
  • 18. Contingencies • From invisible, to user affecting • Disable DB writes, speed up and prevent blocking on failure • Suppress badly architected Flash Player (and less evil taste-o-meter) • Kill % of method calls at perlbal Wednesday, 26 May 2010
  • 20. Monitoring porn • Launch control with: 3 projectors, 5 x 24” monitors, a dozen dev/sysops with laptops • A moose, a cow and a fail train Wednesday, 26 May 2010