Poisoning Rubinius: The _why and How

83
Monday, November 15, 2010

description

RubyConf X talk

Transcript of Poisoning Rubinius: The _why and How

Page 1: Poisoning Rubinius: The _why and How

Monday, November 15, 2010

Page 2: Poisoning Rubinius: The _why and How

Monday, November 15, 2010

Page 3: Poisoning Rubinius: The _why and How

http://www.flickr.com/photos/pragdave/173649119/

Monday, November 15, 2010

Page 4: Poisoning Rubinius: The _why and How

http://mislav.uniqpath.com/poignant-guide/book/

Monday, November 15, 2010

Page 5: Poisoning Rubinius: The _why and How

•inspire•diversify•new•worse

Monday, November 15, 2010

Page 6: Poisoning Rubinius: The _why and How

Monday, November 15, 2010

Page 7: Poisoning Rubinius: The _why and How

_why is hidingwhere Dave Thomas’

brain is missing!!!

Monday, November 15, 2010

Page 8: Poisoning Rubinius: The _why and How

_why struggledwith programming

Monday, November 15, 2010

Page 9: Poisoning Rubinius: The _why and How

http://commons.wikimedia.org/wiki/File:Space_Shuttle_Columbia_launching_cropped_2.jpg.jpg

Monday, November 15, 2010

Page 10: Poisoning Rubinius: The _why and How

http://commons.wikimedia.org/wiki/File:Space_Shuttle_Columbia_launching_cropped_2.jpg.jpg

Fallacy of Scope

Monday, November 15, 2010

Page 11: Poisoning Rubinius: The _why and How

Monday, November 15, 2010

Page 12: Poisoning Rubinius: The _why and How

Fallacy of Quality

Monday, November 15, 2010

Page 13: Poisoning Rubinius: The _why and How

Monday, November 15, 2010

Page 14: Poisoning Rubinius: The _why and How

WEBSCALE

Monday, November 15, 2010

Page 15: Poisoning Rubinius: The _why and How

Monday, November 15, 2010

Page 16: Poisoning Rubinius: The _why and How

Monday, November 15, 2010

Page 17: Poisoning Rubinius: The _why and How

Monday, November 15, 2010

Page 18: Poisoning Rubinius: The _why and How

Toy [noun]: A technological product which is simple and fun to use, and which may be criticized by some people as being weak and not suitable for serious work.

Monday, November 15, 2010

Page 19: Poisoning Rubinius: The _why and How

•user-oriented & UX•general BS•bigger ecosystem

Monday, November 15, 2010

Page 20: Poisoning Rubinius: The _why and How

Monday, November 15, 2010

Page 21: Poisoning Rubinius: The _why and How

what if you knewnothing

about programming?

Monday, November 15, 2010

Page 22: Poisoning Rubinius: The _why and How

Monday, November 15, 2010

Page 23: Poisoning Rubinius: The _why and How

Monday, November 15, 2010

Page 24: Poisoning Rubinius: The _why and How

Monday, November 15, 2010

Page 25: Poisoning Rubinius: The _why and How

Monday, November 15, 2010

Page 26: Poisoning Rubinius: The _why and How

Monday, November 15, 2010

Page 27: Poisoning Rubinius: The _why and How

Monday, November 15, 2010

Page 28: Poisoning Rubinius: The _why and How

Monday, November 15, 2010

Page 29: Poisoning Rubinius: The _why and How

Potion

Monday, November 15, 2010

Page 30: Poisoning Rubinius: The _why and How

Monday, November 15, 2010

Page 31: Poisoning Rubinius: The _why and How

Monday, November 15, 2010

Page 32: Poisoning Rubinius: The _why and How

Monday, November 15, 2010

Page 33: Poisoning Rubinius: The _why and How

Monday, November 15, 2010

Page 34: Poisoning Rubinius: The _why and How

Monday, November 15, 2010

Page 35: Poisoning Rubinius: The _why and How

Monday, November 15, 2010

Page 36: Poisoning Rubinius: The _why and How

pause for effect...

Monday, November 15, 2010

Page 37: Poisoning Rubinius: The _why and How

Monday, November 15, 2010

Page 38: Poisoning Rubinius: The _why and How

Monday, November 15, 2010

Page 39: Poisoning Rubinius: The _why and How

http://www.sciencemag.org/cgi/content/summary/292/5524/1971c

Monday, November 15, 2010

Page 40: Poisoning Rubinius: The _why and How

http://ferryservicestokeywest.com/snorkeling.php

Monday, November 15, 2010

Page 41: Poisoning Rubinius: The _why and How

Rubinius

how does it work?

Monday, November 15, 2010

Page 42: Poisoning Rubinius: The _why and How

Source → Parser → Compiler

Monday, November 15, 2010

Page 43: Poisoning Rubinius: The _why and How

Source → Parser → Compiler → Virtu

Monday, November 15, 2010

Page 44: Poisoning Rubinius: The _why and How

Source → Parser → Compiler → Virtu

Monday, November 15, 2010

Page 45: Poisoning Rubinius: The _why and How

Source → Parser → Compiler → Virtu

script

class

name

Exclaimersuperclass

nilmethod

blurt

Abstract Syntax Tree

Monday, November 15, 2010

Page 46: Poisoning Rubinius: The _why and How

Source → Parser → Compiler → Virtual Machin

Monday, November 15, 2010

Page 47: Poisoning Rubinius: The _why and How

Source → Parser → Compiler → Virtual Machin

Monday, November 15, 2010

Page 48: Poisoning Rubinius: The _why and How

Virtual Machine

[ :push_literal, “_why ”, :push_local, :blurb, ...]

Source → Parser → Compiler → Virtual Machine

Stack

IP = 0

Instruction Sequence

Monday, November 15, 2010

Page 49: Poisoning Rubinius: The _why and How

Virtual Machine

[ :push_literal, “_why ”, :push_local, :blurb, ...]

Source → Parser → Compiler → Virtual Machine

Stack

IP = 0

Instruction Sequence

“_why ”

Monday, November 15, 2010

Page 50: Poisoning Rubinius: The _why and How

Virtual Machine

[ ..., :push_local, :blurb, :allow_private, :send_st...]

Source → Parser → Compiler → Virtual Machine

Stack

IP = 2

Instruction Sequence

“_why ”

Monday, November 15, 2010

Page 51: Poisoning Rubinius: The _why and How

Virtual Machine

[ ..., :push_local, :blurb, :allow_private, :send_st...]

Source → Parser → Compiler → Virtual Machine

Stack

IP = 2

Instruction Sequence

“_why ”

“rocks”

Monday, November 15, 2010

Page 52: Poisoning Rubinius: The _why and How

Virtual Machine

[ ..., :send_stack, :to_s, 0, :push_literal, “!”, :str...]

Source → Parser → Compiler → Virtual Machine

Stack

IP = 5

Instruction Sequence

“_why ”

“rocks”

Monday, November 15, 2010

Page 53: Poisoning Rubinius: The _why and How

Virtual Machine

[ ..., :push_literal, “!”, :string_build, 3, :ret]

Source → Parser → Compiler → Virtual Machine

Stack

IP = 8

Instruction Sequence

“_why ”

“rocks”

Monday, November 15, 2010

Page 54: Poisoning Rubinius: The _why and How

Virtual Machine

[ ..., :push_literal, “!”, :string_build, 3, :ret]

Source → Parser → Compiler → Virtual Machine

Stack

IP = 8

Instruction Sequence

“_why ”

“rocks”

“!”

Monday, November 15, 2010

Page 55: Poisoning Rubinius: The _why and How

Virtual Machine

[ ..., :string_build, 3, :ret]

Source → Parser → Compiler → Virtual Machine

Stack

IP = 10

Instruction Sequence

“_why ”

“rocks”

“!”

Monday, November 15, 2010

Page 56: Poisoning Rubinius: The _why and How

Virtual Machine

[ ..., :string_build, 3, :ret]

Source → Parser → Compiler → Virtual Machine

Stack

IP = 10

Instruction Sequence

“_why rocks!”

Monday, November 15, 2010

Page 57: Poisoning Rubinius: The _why and How

now, the hard part

Monday, November 15, 2010

Page 58: Poisoning Rubinius: The _why and How

Source → Parser → Compiler

Monday, November 15, 2010

Page 59: Poisoning Rubinius: The _why and How

Source → Parser → Compiler → Virtu

Monday, November 15, 2010

Page 60: Poisoning Rubinius: The _why and How

Source → Parser → Compiler → Virtu

Monday, November 15, 2010

Page 61: Poisoning Rubinius: The _why and How

Source → Parser → Compiler → Virtu

Monday, November 15, 2010

Page 62: Poisoning Rubinius: The _why and How

Source → Parser → Compiler → Virtu

Monday, November 15, 2010

Page 63: Poisoning Rubinius: The _why and How

Source → Parser → Compiler → Virtu

Monday, November 15, 2010

Page 64: Poisoning Rubinius: The _why and How

Source → Parser → Compiler → Virtu

Monday, November 15, 2010

Page 65: Poisoning Rubinius: The _why and How

Source → Parser → Compiler → Virtu

Monday, November 15, 2010

Page 66: Poisoning Rubinius: The _why and How

Source → Parser → Compiler → Virtu

Monday, November 15, 2010

Page 67: Poisoning Rubinius: The _why and How

Source → Parser → Compiler → Virtu

Monday, November 15, 2010

Page 68: Poisoning Rubinius: The _why and How

Source → Parser → Compiler → Virtu

Monday, November 15, 2010

Page 69: Poisoning Rubinius: The _why and How

Source → Parser → Compiler → Virtu

Monday, November 15, 2010

Page 70: Poisoning Rubinius: The _why and How

Source → Parser → Compiler → Virtual Machin

Monday, November 15, 2010

Page 71: Poisoning Rubinius: The _why and How

Source → Parser → Compiler → Virtual Machin

Monday, November 15, 2010

Page 72: Poisoning Rubinius: The _why and How

Source → Parser → Compiler → Virtual Machin

Monday, November 15, 2010

Page 73: Poisoning Rubinius: The _why and How

Source → Parser → Compiler → Virtual Machin

Monday, November 15, 2010

Page 74: Poisoning Rubinius: The _why and How

Source → Parser → Compiler → Virtual Machin

Monday, November 15, 2010

Page 75: Poisoning Rubinius: The _why and How

Source → Parser → Compiler → Virtual Machin

Monday, November 15, 2010

Page 76: Poisoning Rubinius: The _why and How

Source → Parser → Compiler → Virtual Machin

Monday, November 15, 2010

Page 77: Poisoning Rubinius: The _why and How

integrateinter-operate

Monday, November 15, 2010

Page 78: Poisoning Rubinius: The _why and How

Monday, November 15, 2010

Page 79: Poisoning Rubinius: The _why and How

Monday, November 15, 2010

Page 80: Poisoning Rubinius: The _why and How

Monday, November 15, 2010

Page 81: Poisoning Rubinius: The _why and How

http://www.lulu.com/product/paperback/learn-python-the-hard-way/13509215http://commons.wikimedia.org/wiki/File:Cornelis_Pietersz._Bega_-_De_Alchemist.jpg

ois

Monday, November 15, 2010

Page 82: Poisoning Rubinius: The _why and How

github.com/brixen/poison

po.isono.us

Monday, November 15, 2010

Page 83: Poisoning Rubinius: The _why and How

ZOMG THANK YOUEVERYONE!!!

(and @tenderlove)

Monday, November 15, 2010