Slideshare.net (beta)

 
Post: 
Myspace Hi5 Friendster Xanga LiveJournal Facebook Blogger Tagged Typepad Freewebs BlackPlanet gigya icons

All comments

Add a comment on Slide 1

If you have a SlideShare account, login to comment; else you can comment as a guest


Showing 1-50 of 0 (more)

MeshU Thin & Rack

From guestbac5dc, 3 months ago

Marc-Andre Cournoyer MeshU presentation on Thin & Rack

299 views  |  0 comments  |  0 favorites  |  4 downloads  |  1 embed (Stats)
 

Tags

meshu thin rack

 
 

Groups / Events

 

 
Embed
options

More Info

This slideshow is Public
Total Views: 299
on Slideshare: 141
from embeds: 158

Slideshow transcript

Slide 1: Hi!

Slide 5: beard

Slide 6: beard

Slide 7: Thin & Rack

Slide 8: © jezebel.com - http://www.flickr.com/photos/lamazone/2366616647/

Slide 9: http://www.mykaussie.com/images/tshirt7.jpg

Slide 10: Sorry!

Slide 11: Story

Slide 17: A random feed feed feed entry Eating cookies, yummy!

Slide 21: Zzzz...

Slide 22: http://dancingspoon.typepad.com/espresso.jpg

Slide 24: OMGWTFBBQ!!11!!1

Slide 29: ...

Slide 30: 69.110.148.55 - - [09/May/2008:23:58:18 +0000] "GET friendfeedfeedfeed.com/feeds/2 HTTP/1.1" 200 712 "http://friendfeedfeedfeed.com/feeds/2" "Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14" 69.110.148.55 - - [09/May/2008:23:58:18 +0000] "GET friendfeedfeedfeed.com/feeds/2 HTTP/1.1" 200 712 "http://friendfeedfeedfeed.com/feeds/2" "Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14" 69.110.148.55 - - [09/May/2008:23:58:18 +0000] "GET friendfeedfeedfeed.com/feeds/2 HTTP/1.1" 200 712 "http://friendfeedfeedfeed.com/feeds/2" "Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14" 69.110.148.55 - - [09/May/2008:23:58:18 +0000] "GET friendfeedfeedfeed.com/feeds/2 HTTP/1.1" 200 712 "http://friendfeedfeedfeed.com/feeds/2" "Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14" 69.110.148.55 - - [09/May/2008:23:58:18 +0000] "GET friendfeedfeedfeed.com/feeds/2 HTTP/1.1" 200 712 "http://friendfeedfeedfeed.com/feeds/2" "Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14" 69.110.148.55 - - [09/May/2008:23:58:18 +0000] "GET friendfeedfeedfeed.com/feeds/2 HTTP/1.1" 200 712 "http://friendfeedfeedfeed.com/feeds/2" "Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14" 69.110.148.55 - - [09/May/2008:23:58:18 +0000] "GET friendfeedfeedfeed.com/feeds/2 HTTP/1.1" 200 712 "http://friendfeedfeedfeed.com/feeds/2" "Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14" 69.110.148.55 - - [09/May/2008:23:58:18 +0000] "GET friendfeedfeedfeed.com/feeds/2 HTTP/1.1" 200 712 "http://friendfeedfeedfeed.com/feeds/2" "Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14" 69.110.148.55 - - [09/May/2008:23:58:18 +0000] "GET friendfeedfeedfeed.com/feeds/2 HTTP/1.1" 200 712 "http://friendfeedfeedfeed.com/feeds/2" "Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14" 69.110.148.55 - - [09/May/2008:23:58:18 +0000] "GET friendfeedfeedfeed.com/feeds/2 HTTP/1.1" 200 712 "http://friendfeedfeedfeed.com/feeds/2" "Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14"

Slide 31: A random feed feed feed entry Eating cookies, yummy!

Slide 32: Cache?

Slide 33: Cache?

Slide 34: random

Slide 35: (

Slide 38: Web Server

Slide 39: Event Driven Web Server

Slide 42: Process-Based

Slide 43: So what?

Slide 44: server = TCPServer.new('localhost', 3000) loop do client = server.accept puts client.read client.close end

Slide 45: server = TCPServer.new('localhost', 3000) loop do client = server.accept puts client.read client.close end

Slide 46: Client Server

Slide 47: Client Server read

Slide 48: server = TCPServer.new('localhost', 3000) loop do client = server.accept puts client.read client.close end

Slide 49: server = TCPServer.new('localhost', 3000) loop do client = server.accept Thread.new do puts client.read client.close end end

Slide 50: Client Client Server Client

Slide 51: Client Thread Client Server Thread Client Thread

Slide 52: Time

Slide 53: Resources

Slide 54: (?)

Slide 55: @kernel notify me if readable

Slide 56: Non-Blocking Sockets

Slide 57: I/O Multiplexing

Slide 58: OMGWTFBBQ!!11!!1

Slide 59: F******

Slide 60: You lost me at I/O

Slide 61: Complex

Slide 62: http://rev.rubyforge.org/ http://rubyeventmachine.com/ http://twistedmatrix.com/ http://code.google.com/p/pyev/ http://software.schmorp.de/pkg/libev.html

Slide 63: Event Driven

Slide 64: Event Driven Web Server

Slide 65: server = TCPServer.new('localhost', 3000) server.on_readable do client = server.accept client.on_readable do puts client.read client.close end end

Slide 66: More Connections

Slide 67: Less Memory

Slide 68: Faster

Slide 70: (

Slide 71: HTTP

Slide 72: Simple

Slide 73: Flexible

Slide 74: Elegant

Slide 75: Beautiful

Slide 76: and

Slide 77: Sexy

Slide 78: Sexy

Slide 79: Request Response

Slide 80: Request

Slide 81: POST /path HTTP/1.1 Host: localhost Connection: close Content-Length: 6 ohaie!

Slide 82: Response

Slide 83: HTTP/1.1 200 OK Content-Length: 34 Content-Type: text/html <html> <h1>kthxbaie</h1> </html>

Slide 87: API

Slide 88: HTTP

Slide 89: WSGI

Slide 90: API

Slide 91: 1 line

Slide 92: proc { |env| [200, {}, "kthxbai"] }

Slide 93: POST / HTTP/1.1 env = { "REQUEST_METHOD" => "POST", Host: localhost "PATH_INFO" => "/", Connection: close "HTTP_VERSION" => "1.1", Content-Length: 6 "HTTP_HOST" => "localhost", "HTTP_CONNECTION" => "close", "CONTENT_LENGTH" => "6" ohaie! }

Slide 94: [ 200, { HTTP/1.1 200 OK "Content-Length" => "34", Content-Length: 34 "Content-Type" => "text/html" Content-Type: text/html }, [ "<html>", <html> " <h1>kthxbaie</h1>", <h1>kthxbaie</h1> "</html>" ] </html> ]

Slide 95: class MyApp def call(env) [ 200, { 'Content-Type' => 'text/plain' }, "you requested " + env['PATH_INFO'] ] end end

Slide 96: Run it

Slide 97: my_app.ru

Slide 98: run MyApp.new

Slide 99: map '/other' do run OtherApp.new end run MyApp.new

Slide 100: use Rack::CommonLogger map '/other' do run OtherApp.new end run MyApp.new

Slide 101: thin start -R my_app.ru

Slide 102: Ebb

Slide 103: ))

Slide 104: A random feed feed feed entry Eating cookies, yummy!

Slide 105: A random feed feed feed entry Eating cookies, yummy!

Slide 106: self.demo! :code

Slide 107: Thanks! http://code.macournoyer.com/thin

Slide 108: Questions ?