Move Yuval's YAPC::EU::2007 slides
[gitmo/moose-website.git] / hosted-presentations / 2007 / nothingmuch-YAPC-EU / slides / start.html
diff --git a/hosted-presentations/2007/nothingmuch-YAPC-EU/slides/start.html b/hosted-presentations/2007/nothingmuch-YAPC-EU/slides/start.html
new file mode 100644 (file)
index 0000000..c55532f
--- /dev/null
@@ -0,0 +1,6535 @@
+<!-- BEGIN s5 -->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
+       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>meta meta meta meta</title>
+<meta name="generator" content="S5" />
+<meta name="version" content="S5 1.0" />
+<meta name="presdate" content="20041007" />
+<meta name="author" content="Eric A. Meyer" />
+<link rel="stylesheet" href="ui/slides.css" type="text/css" media="projection" id="slideProj" />
+<link rel="stylesheet" href="ui/opera.css" type="text/css" media="projection" id="operaFix" />
+<link rel="stylesheet" href="ui/print.css" type="text/css" media="print" id="slidePrint" />
+<script src="ui/slides.js" type="text/javascript"></script>
+</head>
+<body>
+
+<div class="layout">
+  <div id="currentSlide"></div>
+  <div id="header"></div>
+  <div id="footer">
+    <h2>יובל קוג'מן</h2>
+    <h2>nothingmuch@woobling.org</h2>
+    <div id="controls"></div>
+  </div>
+</div>
+
+<div class="slide">
+    <h1>Object Meta Programming</h1>
+    <h2>YAPC::EU::2007</h2>
+    <h3>Aug 29, 2007</h3>
+</div>
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/promopi.jpg" align=right>
+<h1>HAI FRENDS</h1>
+<p>
+
+</p>
+<h2>My name is Yuval</h2>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/7104_Squares_with_Concentric_Circles_Kandinsky_Wassily.jpg" align=right>
+<h1>Meta Programming</h1>
+<p>
+
+</p>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/door.jpg" align=right>
+<h1>Introduction</h1>
+<p>
+
+</p>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/door.jpg" align=right>
+<h1>Introduction</h1>
+<p>
+
+</p>
+<ul>
+<li>Meta programming</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/door.jpg" align=right>
+<h1>Introduction</h1>
+<p>
+
+</p>
+<ul>
+<li>Meta programming</li>
+<li>writing <em>code</em> which <em>outputs</em> or <em>manipulates</em> <em>code</em></li>
+</ul>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/manimal.jpg" align=right>
+<h1>Many forms</h1>
+<p>
+
+</p>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/manimal.jpg" align=right>
+<h1>Many forms</h1>
+<p>
+
+</p>
+<ul>
+<li>string <tt>eval</tt></li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/manimal.jpg" align=right>
+<h1>Many forms</h1>
+<p>
+
+</p>
+<ul>
+<li>string <tt>eval</tt></li>
+<li><tt>%::</tt></li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/manimal.jpg" align=right>
+<h1>Many forms</h1>
+<p>
+
+</p>
+<ul>
+<li>string <tt>eval</tt></li>
+<li><tt>%::</tt></li>
+<li>closure generators</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/manimal.jpg" align=right>
+<h1>Many forms</h1>
+<p>
+
+</p>
+<ul>
+<li>string <tt>eval</tt></li>
+<li><tt>%::</tt></li>
+<li>closure generators</li>
+<li>macros</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/manimal.jpg" align=right>
+<h1>Many forms</h1>
+<p>
+
+</p>
+<ul>
+<li>string <tt>eval</tt></li>
+<li><tt>%::</tt></li>
+<li>closure generators</li>
+<li>macros</li>
+<li>real macros</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/manimal.jpg" align=right>
+<h1>Many forms</h1>
+<p>
+
+</p>
+<ul>
+<li>string <tt>eval</tt></li>
+<li><tt>%::</tt></li>
+<li>closure generators</li>
+<li>macros</li>
+<li>real macros</li>
+<li>compilers</li>
+</ul>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/Flying_Spaghetti_Monster-thumb.jpg" align=right>
+<h1>Many forms</h1>
+<p>
+
+</p>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/Flying_Spaghetti_Monster-thumb.jpg" align=right>
+<h1>Many forms</h1>
+<p>
+
+</p>
+<ul>
+<li>Home grown snippets</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/Flying_Spaghetti_Monster-thumb.jpg" align=right>
+<h1>Many forms</h1>
+<p>
+
+</p>
+<ul>
+<li>Home grown snippets</li>
+<li>Home grown packages</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/Flying_Spaghetti_Monster-thumb.jpg" align=right>
+<h1>Many forms</h1>
+<p>
+
+</p>
+<ul>
+<li>Home grown snippets</li>
+<li>Home grown packages</li>
+<li>Stuff on the CPAN &#40;e.g. <tt>Class::Accessor</tt>, <tt>Code::Perl</tt>&#41;</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/Flying_Spaghetti_Monster-thumb.jpg" align=right>
+<h1>Many forms</h1>
+<p>
+
+</p>
+<ul>
+<li>Home grown snippets</li>
+<li>Home grown packages</li>
+<li>Stuff on the CPAN &#40;e.g. <tt>Class::Accessor</tt>, <tt>Code::Perl</tt>&#41;</li>
+<li>Large systems &#40;<tt>Template::Toolkit</tt>&#41;</li>
+</ul>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/16_peer_pressure_smoking.gif" align=right>
+<h1>Summary</h1>
+<p>
+
+</p>
+<ul>
+<li>You should already know it</li>
+<li>You probably do it</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/16_peer_pressure_smoking.gif" align=right>
+<h1>Summary</h1>
+<p>
+
+</p>
+<ul>
+<li>You should already know it</li>
+<li>You probably do it</li>
+<li>That&#39;s the intended audience anyway ;-&#41;</li>
+</ul>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+
+<h1>Object Meta Programming</h1>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+
+<h1>Object Meta Programming</h1>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+
+<h1>Object Meta Programming</h1>
+<ul>
+<li>Code that outputs or manipulates <em>object oriented code</em></li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+
+<h1>Object Meta Programming</h1>
+<ul>
+<li>Code that outputs or manipulates <em>object oriented code</em></li>
+<li>Often written in OO</li>
+</ul>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/ApplePieSlice.jpg" align=right>
+<h1>Simple Examples</h1>
+<p>
+
+</p>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/ApplePieSlice.jpg" align=right>
+<h1>Simple Examples</h1>
+<p>
+
+</p>
+<ul>
+<li><tt>Class::Accessor</tt>, <tt>Class::InsideOut</tt></li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/ApplePieSlice.jpg" align=right>
+<h1>Simple Examples</h1>
+<p>
+
+</p>
+<ul>
+<li><tt>Class::Accessor</tt>, <tt>Class::InsideOut</tt></li>
+
+<ul>
+<li>Generates accessor methods</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/ApplePieSlice.jpg" align=right>
+<h1>Simple Examples</h1>
+<p>
+
+</p>
+<ul>
+<li><tt>Class::Accessor</tt>, <tt>Class::InsideOut</tt></li>
+
+<ul>
+<li>Generates accessor methods</li>
+</ul>
+<li><tt>Class::Prototyped</tt></li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/ApplePieSlice.jpg" align=right>
+<h1>Simple Examples</h1>
+<p>
+
+</p>
+<ul>
+<li><tt>Class::Accessor</tt>, <tt>Class::InsideOut</tt></li>
+
+<ul>
+<li>Generates accessor methods</li>
+</ul>
+<li><tt>Class::Prototyped</tt></li>
+
+<ul>
+<li>Prototype object support in Perl</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/ApplePieSlice.jpg" align=right>
+<h1>Simple Examples</h1>
+<p>
+
+</p>
+<ul>
+<li><tt>Class::Accessor</tt>, <tt>Class::InsideOut</tt></li>
+
+<ul>
+<li>Generates accessor methods</li>
+</ul>
+<li><tt>Class::Prototyped</tt></li>
+
+<ul>
+<li>Prototype object support in Perl</li>
+</ul>
+<li>Lots of stuff on the CPAN</li>
+</ul>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/vogue.jpg" align=right>
+<h1>Modeling OO</h1>
+<p>
+
+</p>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/vogue.jpg" align=right>
+<h1>Modeling OO</h1>
+<p>
+
+</p>
+<ul>
+<li>High level object meta programming</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/vogue.jpg" align=right>
+<h1>Modeling OO</h1>
+<p>
+
+</p>
+<ul>
+<li>High level object meta programming</li>
+
+<ul>
+<li>The current trend</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/vogue.jpg" align=right>
+<h1>Modeling OO</h1>
+<p>
+
+</p>
+<ul>
+<li>High level object meta programming</li>
+
+<ul>
+<li>The current trend</li>
+<li>The picture illustrates an object modelling with class =&#41;</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/vogue.jpg" align=right>
+<h1>Modeling OO</h1>
+<p>
+
+</p>
+<ul>
+<li>High level object meta programming</li>
+
+<ul>
+<li>The current trend</li>
+<li>The picture illustrates an object modelling with class =&#41;</li>
+<li>Seriously though...</li>
+</ul></ul>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/vogue.jpg" align=right>
+<h1>Modeling OO</h1>
+<p>
+
+</p>
+<ul>
+<li>High level object meta programming</li>
+<li>What is a class?</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/vogue.jpg" align=right>
+<h1>Modeling OO</h1>
+<p>
+
+</p>
+<ul>
+<li>High level object meta programming</li>
+<li>What is a class?</li>
+</ul>
+<pre class="vim">  class Class {
+    has @isa;
+    has %methods;
+    has %attributes;
+
+    ...
+  }
+</pre>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/vogue.jpg" align=right>
+<h1>Modeling OO</h1>
+<p>
+
+</p>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/vogue.jpg" align=right>
+<h1>Modeling OO</h1>
+<p>
+
+</p>
+<ul>
+<li>Implementing OO</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/vogue.jpg" align=right>
+<h1>Modeling OO</h1>
+<p>
+
+</p>
+<ul>
+<li>Implementing OO</li>
+
+<ul>
+<li>In OO</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/vogue.jpg" align=right>
+<h1>Modeling OO</h1>
+<p>
+
+</p>
+<ul>
+<li>Implementing OO</li>
+
+<ul>
+<li>In OO</li>
+</ul>
+<li>Meta objects:</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/vogue.jpg" align=right>
+<h1>Modeling OO</h1>
+<p>
+
+</p>
+<ul>
+<li>Implementing OO</li>
+
+<ul>
+<li>In OO</li>
+</ul>
+<li>Meta objects:</li>
+
+<ul>
+<li>Class</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/vogue.jpg" align=right>
+<h1>Modeling OO</h1>
+<p>
+
+</p>
+<ul>
+<li>Implementing OO</li>
+
+<ul>
+<li>In OO</li>
+</ul>
+<li>Meta objects:</li>
+
+<ul>
+<li>Class</li>
+<li>Method</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/vogue.jpg" align=right>
+<h1>Modeling OO</h1>
+<p>
+
+</p>
+<ul>
+<li>Implementing OO</li>
+
+<ul>
+<li>In OO</li>
+</ul>
+<li>Meta objects:</li>
+
+<ul>
+<li>Class</li>
+<li>Method</li>
+<li>Attribute</li>
+</ul></ul>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+
+<h1>Example class</h1>
+<pre class="vim">  class Point {
+    has $x;
+    has $y;
+
+    method distance_to { ... }
+  }
+</pre>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+
+<h1>Modeled with objects</h1>
+<pre class="vim">  Class-&gt;<span class="synStatement">new</span>(
+    <span class="synConstant">attributes </span>=&gt; [
+      Attribute-&gt;<span class="synStatement">new</span>( <span class="synConstant">name </span>=&gt; <span class="synConstant">'$x'</span> ),
+      Attribute-&gt;<span class="synStatement">new</span>( <span class="synConstant">name </span>=&gt; <span class="synConstant">'$y'</span> ),
+    ],
+    <span class="synConstant">methods </span>=&gt; [
+      Method-&gt;<span class="synStatement">new</span>(
+        <span class="synConstant">name       </span>=&gt; <span class="synConstant">&quot;distance_to&quot;</span>,
+        <span class="synConstant">definition </span>=&gt;<span class="synIdentifier"> </span><span class="synStatement">sub</span><span class="synIdentifier"> </span>{ ... }
+      ),
+    ],
+  );
+</pre>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/istockphoto_944779_reception_bell.jpg" align=right>
+<h1>Metamodel Services</h1>
+<p>
+
+</p>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/istockphoto_944779_reception_bell.jpg" align=right>
+<h1>Metamodel Services</h1>
+<p>
+
+</p>
+<ul>
+<li>Form</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/istockphoto_944779_reception_bell.jpg" align=right>
+<h1>Metamodel Services</h1>
+<p>
+
+</p>
+<ul>
+<li>Form</li>
+
+<ul>
+<li>Introspection/Reflection</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/istockphoto_944779_reception_bell.jpg" align=right>
+<h1>Metamodel Services</h1>
+<p>
+
+</p>
+<ul>
+<li>Form</li>
+
+<ul>
+<li>Introspection/Reflection</li>
+</ul>
+<li>Function</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/istockphoto_944779_reception_bell.jpg" align=right>
+<h1>Metamodel Services</h1>
+<p>
+
+</p>
+<ul>
+<li>Form</li>
+
+<ul>
+<li>Introspection/Reflection</li>
+</ul>
+<li>Function</li>
+
+<ul>
+<li>Class generation</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/istockphoto_944779_reception_bell.jpg" align=right>
+<h1>Metamodel Services</h1>
+<p>
+
+</p>
+<ul>
+<li>Form</li>
+
+<ul>
+<li>Introspection/Reflection</li>
+</ul>
+<li>Function</li>
+
+<ul>
+<li>Class generation</li>
+<li>Class transformation</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/istockphoto_944779_reception_bell.jpg" align=right>
+<h1>Metamodel Services</h1>
+<p>
+
+</p>
+<ul>
+<li>Form</li>
+
+<ul>
+<li>Introspection/Reflection</li>
+</ul>
+<li>Function</li>
+
+<ul>
+<li>Class generation</li>
+<li>Class transformation</li>
+</ul>
+<li>Pattern packaging</li>
+</ul>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/a_moose.gif" align=right>
+<h1>Case Study</h1>
+<p>
+
+</p>
+<h2>Moose</h2>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/a_moose.gif" align=right>
+<h1>Case Study</h1>
+<p>
+
+</p>
+<h2>Moose</h2>
+<ul>
+<li>A deep meta object system</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/a_moose.gif" align=right>
+<h1>Case Study</h1>
+<p>
+
+</p>
+<h2>Moose</h2>
+<ul>
+<li>A deep meta object system</li>
+<li>4 layers deep</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/a_moose.gif" align=right>
+<h1>Case Study</h1>
+<p>
+
+</p>
+<h2>Moose</h2>
+<ul>
+<li>A deep meta object system</li>
+<li>4 layers deep</li>
+
+<ul>
+<li>Syntactic sugar</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/a_moose.gif" align=right>
+<h1>Case Study</h1>
+<p>
+
+</p>
+<h2>Moose</h2>
+<ul>
+<li>A deep meta object system</li>
+<li>4 layers deep</li>
+
+<ul>
+<li>Syntactic sugar</li>
+<li>Custom metaclasses</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/a_moose.gif" align=right>
+<h1>Case Study</h1>
+<p>
+
+</p>
+<h2>Moose</h2>
+<ul>
+<li>A deep meta object system</li>
+<li>4 layers deep</li>
+
+<ul>
+<li>Syntactic sugar</li>
+<li>Custom metaclasses</li>
+<li>Class::MOP</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/a_moose.gif" align=right>
+<h1>Case Study</h1>
+<p>
+
+</p>
+<h2>Moose</h2>
+<ul>
+<li>A deep meta object system</li>
+<li>4 layers deep</li>
+
+<ul>
+<li>Syntactic sugar</li>
+<li>Custom metaclasses</li>
+<li>Class::MOP</li>
+<li>Perl&#39;s native OO</li>
+</ul></ul>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/perl-camel.gif" align=right>
+<h1>Perl's native OO</h1>
+<p>
+
+</p>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/perl-camel.gif" align=right>
+<h1>Perl's native OO</h1>
+<p>
+
+</p>
+<ul>
+<li>Minimalistic</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/perl-camel.gif" align=right>
+<h1>Perl's native OO</h1>
+<p>
+
+</p>
+<ul>
+<li>Minimalistic</li>
+
+<ul>
+<li>Class = Package = Symbol table hash</li>
+<li>Inheritence tree embedded in <tt>@ISA</tt> entry</li>
+<li><tt>bless</tt> links data to a class</li>
+<li><tt>-&gt;</tt></li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/perl-camel.gif" align=right>
+<h1>Perl's native OO</h1>
+<p>
+
+</p>
+<ul>
+<li>Minimalistic</li>
+
+<ul>
+<li>Class = Package = Symbol table hash</li>
+<li>Inheritence tree embedded in <tt>@ISA</tt> entry</li>
+<li><tt>bless</tt> links data to a class</li>
+<li><tt>-&gt;</tt></li>
+</ul>
+<li>Insanely flexible</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/perl-camel.gif" align=right>
+<h1>Perl's native OO</h1>
+<p>
+
+</p>
+<ul>
+<li>Minimalistic</li>
+
+<ul>
+<li>Class = Package = Symbol table hash</li>
+<li>Inheritence tree embedded in <tt>@ISA</tt> entry</li>
+<li><tt>bless</tt> links data to a class</li>
+<li><tt>-&gt;</tt></li>
+</ul>
+<li>Insanely flexible</li>
+<li>Pretty klunky</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/perl-camel.gif" align=right>
+<h1>Perl's native OO</h1>
+<p>
+
+</p>
+<ul>
+<li>Minimalistic</li>
+
+<ul>
+<li>Class = Package = Symbol table hash</li>
+<li>Inheritence tree embedded in <tt>@ISA</tt> entry</li>
+<li><tt>bless</tt> links data to a class</li>
+<li><tt>-&gt;</tt></li>
+</ul>
+<li>Insanely flexible</li>
+<li>Pretty klunky</li>
+<li>Written in C &#40;not very accessible&#41;</li>
+</ul>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/MOP.jpg" align=right>
+<h1>Class::MOP</h1>
+<p>
+
+</p>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/MOP.jpg" align=right>
+<h1>Class::MOP</h1>
+<p>
+
+</p>
+<ul>
+<li>port of CLOS, more or less</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/MOP.jpg" align=right>
+<h1>Class::MOP</h1>
+<p>
+
+</p>
+<ul>
+<li>port of CLOS, more or less</li>
+<li>MOP = Meta Object Protocol</li>
+</ul>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/MOP.jpg" align=right>
+<h1>Class::MOP</h1>
+<p>
+
+</p>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/MOP.jpg" align=right>
+<h1>Class::MOP</h1>
+<p>
+
+</p>
+<ul>
+<li>Model</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/MOP.jpg" align=right>
+<h1>Class::MOP</h1>
+<p>
+
+</p>
+<ul>
+<li>Model</li>
+
+<ul>
+<li><tt>Class::MOP::Class</tt></li>
+<li><tt>Class::MOP::Method</tt></li>
+<li><tt>Class::MOP::Attribute</tt></li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/MOP.jpg" align=right>
+<h1>Class::MOP</h1>
+<p>
+
+</p>
+<ul>
+<li>Model</li>
+
+<ul>
+<li><tt>Class::MOP::Class</tt></li>
+<li><tt>Class::MOP::Method</tt></li>
+<li><tt>Class::MOP::Attribute</tt></li>
+</ul>
+<li>Easy interface</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/MOP.jpg" align=right>
+<h1>Class::MOP</h1>
+<p>
+
+</p>
+<ul>
+<li>Model</li>
+
+<ul>
+<li><tt>Class::MOP::Class</tt></li>
+<li><tt>Class::MOP::Method</tt></li>
+<li><tt>Class::MOP::Attribute</tt></li>
+</ul>
+<li>Easy interface</li>
+
+<ul>
+<li>Introspection</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/MOP.jpg" align=right>
+<h1>Class::MOP</h1>
+<p>
+
+</p>
+<ul>
+<li>Model</li>
+
+<ul>
+<li><tt>Class::MOP::Class</tt></li>
+<li><tt>Class::MOP::Method</tt></li>
+<li><tt>Class::MOP::Attribute</tt></li>
+</ul>
+<li>Easy interface</li>
+
+<ul>
+<li>Introspection</li>
+<li>Transformation</li>
+</ul></ul>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/MOP.jpg" align=right>
+<h1>Class::MOP</h1>
+<p>
+
+</p>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/MOP.jpg" align=right>
+<h1>Class::MOP</h1>
+<p>
+
+</p>
+<ul>
+<li>Can &#34;parse&#34; packages into meta objects</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/MOP.jpg" align=right>
+<h1>Class::MOP</h1>
+<p>
+
+</p>
+<ul>
+<li>Can &#34;parse&#34; packages into meta objects</li>
+<li>Modifying the objects writes back to packages</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/MOP.jpg" align=right>
+<h1>Class::MOP</h1>
+<p>
+
+</p>
+<ul>
+<li>Can &#34;parse&#34; packages into meta objects</li>
+<li>Modifying the objects writes back to packages</li>
+<li>Code generation</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/MOP.jpg" align=right>
+<h1>Class::MOP</h1>
+<p>
+
+</p>
+<ul>
+<li>Can &#34;parse&#34; packages into meta objects</li>
+<li>Modifying the objects writes back to packages</li>
+<li>Code generation</li>
+
+<ul>
+<li>Accessors from attributes</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/MOP.jpg" align=right>
+<h1>Class::MOP</h1>
+<p>
+
+</p>
+<ul>
+<li>Can &#34;parse&#34; packages into meta objects</li>
+<li>Modifying the objects writes back to packages</li>
+<li>Code generation</li>
+
+<ul>
+<li>Accessors from attributes</li>
+<li>Constructor from attributes</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/MOP.jpg" align=right>
+<h1>Class::MOP</h1>
+<p>
+
+</p>
+<ul>
+<li>Can &#34;parse&#34; packages into meta objects</li>
+<li>Modifying the objects writes back to packages</li>
+<li>Code generation</li>
+
+<ul>
+<li>Accessors from attributes</li>
+<li>Constructor from attributes</li>
+<li>Method modifiers</li>
+</ul></ul>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/a_moose.gif" align=right>
+<h1>Moose's custom metaclasses</h1>
+<p>
+
+</p>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/a_moose.gif" align=right>
+<h1>Moose's custom metaclasses</h1>
+<p>
+
+</p>
+<ul>
+<li>Subclasses of <tt>Class::MOP::Class</tt> et al</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/a_moose.gif" align=right>
+<h1>Moose's custom metaclasses</h1>
+<p>
+
+</p>
+<ul>
+<li>Subclasses of <tt>Class::MOP::Class</tt> et al</li>
+<li>More fun features</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/a_moose.gif" align=right>
+<h1>Moose's custom metaclasses</h1>
+<p>
+
+</p>
+<ul>
+<li>Subclasses of <tt>Class::MOP::Class</tt> et al</li>
+<li>More fun features</li>
+
+<ul>
+<li>Roles</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/a_moose.gif" align=right>
+<h1>Moose's custom metaclasses</h1>
+<p>
+
+</p>
+<ul>
+<li>Subclasses of <tt>Class::MOP::Class</tt> et al</li>
+<li>More fun features</li>
+
+<ul>
+<li>Roles</li>
+<li><tt>BUILD</tt> etc a la Perl 6</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/a_moose.gif" align=right>
+<h1>Moose's custom metaclasses</h1>
+<p>
+
+</p>
+<ul>
+<li>Subclasses of <tt>Class::MOP::Class</tt> et al</li>
+<li>More fun features</li>
+
+<ul>
+<li>Roles</li>
+<li><tt>BUILD</tt> etc a la Perl 6</li>
+</ul>
+<li>Type constraints</li>
+</ul>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/sugar.jpg" align=right>
+<h1>Moose sugar layer</h1>
+<p>
+
+</p>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/sugar.jpg" align=right>
+<h1>Moose sugar layer</h1>
+<p>
+
+</p>
+<ul>
+<li>Pseudo-declarative syntax</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/sugar.jpg" align=right>
+<h1>Moose sugar layer</h1>
+<p>
+
+</p>
+<ul>
+<li>Pseudo-declarative syntax</li>
+<li>Maps to metaclass manipulations</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/sugar.jpg" align=right>
+<h1>Moose sugar layer</h1>
+<p>
+
+</p>
+<ul>
+<li>Pseudo-declarative syntax</li>
+<li>Maps to metaclass manipulations</li>
+</ul>
+<pre class="vim">  has foo =&gt; ( is =&gt; &quot;rw&quot; );
+</pre>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/sugar.jpg" align=right>
+<h1>Moose sugar layer</h1>
+<p>
+
+</p>
+<ul>
+<li>Pseudo-declarative syntax</li>
+<li>Maps to metaclass manipulations</li>
+</ul>
+<pre class="vim">  has foo =&gt; ( is =&gt; &quot;rw&quot; );
+</pre>
+<ul>
+<li>becomes</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/sugar.jpg" align=right>
+<h1>Moose sugar layer</h1>
+<p>
+
+</p>
+<ul>
+<li>Pseudo-declarative syntax</li>
+<li>Maps to metaclass manipulations</li>
+</ul>
+<pre class="vim">  has foo =&gt; ( is =&gt; &quot;rw&quot; );
+</pre>
+<ul>
+<li>becomes</li>
+</ul>
+<pre class="vim">  $metaclass-&gt;add_attribute(
+    Moose::Meta::Attribute-&gt;new(
+      foo =&gt; ( is =&gt; &quot;rw&quot; ),
+    )
+  );
+</pre>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/p-seal-at-toronto-zoo.jpg" align=right>
+<h1>Moose vs. Class::Accessor</h1>
+<p>
+
+</p>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/p-seal-at-toronto-zoo.jpg" align=right>
+<h1>Moose vs. Class::Accessor</h1>
+<p>
+
+</p>
+<ul>
+<li>All that bloat just for the <tt>has</tt> syntax?</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/p-seal-at-toronto-zoo.jpg" align=right>
+<h1>Moose vs. Class::Accessor</h1>
+<p>
+
+</p>
+<ul>
+<li>All that bloat just for the <tt>has</tt> syntax?</li>
+<li><strong>NO!</strong></li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/p-seal-at-toronto-zoo.jpg" align=right>
+<h1>Moose vs. Class::Accessor</h1>
+<p>
+
+</p>
+<ul>
+<li>All that bloat just for the <tt>has</tt> syntax?</li>
+<li><strong>NO!</strong></li>
+<li>Pattern packaging</li>
+</ul>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/401.jpg" align=right>
+<h1>MooseX::</h1>
+<p>
+
+</p>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/401.jpg" align=right>
+<h1>MooseX::</h1>
+<p>
+
+</p>
+<ul>
+<li>Packaged meta code</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/401.jpg" align=right>
+<h1>MooseX::</h1>
+<p>
+
+</p>
+<ul>
+<li>Packaged meta code</li>
+<li>Pretty clean</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/401.jpg" align=right>
+<h1>MooseX::</h1>
+<p>
+
+</p>
+<ul>
+<li>Packaged meta code</li>
+<li>Pretty clean</li>
+<li>Mostly composable</li>
+</ul>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/401.jpg" align=right>
+<h1>MooseX::</h1>
+<p>
+
+</p>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/401.jpg" align=right>
+<h1>MooseX::</h1>
+<p>
+
+</p>
+<ul>
+<li><tt>MooseX::Storage</tt></li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/401.jpg" align=right>
+<h1>MooseX::</h1>
+<p>
+
+</p>
+<ul>
+<li><tt>MooseX::Storage</tt></li>
+
+<ul>
+<li>Customizable serialization through metaprogramming</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/401.jpg" align=right>
+<h1>MooseX::</h1>
+<p>
+
+</p>
+<ul>
+<li><tt>MooseX::Storage</tt></li>
+
+<ul>
+<li>Customizable serialization through metaprogramming</li>
+</ul>
+<li><tt>MooseX::AttributeHelpers</tt></li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/401.jpg" align=right>
+<h1>MooseX::</h1>
+<p>
+
+</p>
+<ul>
+<li><tt>MooseX::Storage</tt></li>
+
+<ul>
+<li>Customizable serialization through metaprogramming</li>
+</ul>
+<li><tt>MooseX::AttributeHelpers</tt></li>
+
+<ul>
+<li>Additional methods for collection type attributes</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/401.jpg" align=right>
+<h1>MooseX::</h1>
+<p>
+
+</p>
+<ul>
+<li><tt>MooseX::Storage</tt></li>
+
+<ul>
+<li>Customizable serialization through metaprogramming</li>
+</ul>
+<li><tt>MooseX::AttributeHelpers</tt></li>
+
+<ul>
+<li>Additional methods for collection type attributes</li>
+</ul>
+<li><tt>MooseX::Getopt</tt></li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/401.jpg" align=right>
+<h1>MooseX::</h1>
+<p>
+
+</p>
+<ul>
+<li><tt>MooseX::Storage</tt></li>
+
+<ul>
+<li>Customizable serialization through metaprogramming</li>
+</ul>
+<li><tt>MooseX::AttributeHelpers</tt></li>
+
+<ul>
+<li>Additional methods for collection type attributes</li>
+</ul>
+<li><tt>MooseX::Getopt</tt></li>
+
+<ul>
+<li>Additional constructor compiles attributes into a <tt>Getopt</tt> spec</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/401.jpg" align=right>
+<h1>MooseX::</h1>
+<p>
+
+</p>
+<ul>
+<li><tt>MooseX::Storage</tt></li>
+
+<ul>
+<li>Customizable serialization through metaprogramming</li>
+</ul>
+<li><tt>MooseX::AttributeHelpers</tt></li>
+
+<ul>
+<li>Additional methods for collection type attributes</li>
+</ul>
+<li><tt>MooseX::Getopt</tt></li>
+
+<ul>
+<li>Additional constructor compiles attributes into a <tt>Getopt</tt> spec</li>
+</ul>
+<li><tt>MooseX::IOC</tt></li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/401.jpg" align=right>
+<h1>MooseX::</h1>
+<p>
+
+</p>
+<ul>
+<li><tt>MooseX::Storage</tt></li>
+
+<ul>
+<li>Customizable serialization through metaprogramming</li>
+</ul>
+<li><tt>MooseX::AttributeHelpers</tt></li>
+
+<ul>
+<li>Additional methods for collection type attributes</li>
+</ul>
+<li><tt>MooseX::Getopt</tt></li>
+
+<ul>
+<li>Additional constructor compiles attributes into a <tt>Getopt</tt> spec</li>
+</ul>
+<li><tt>MooseX::IOC</tt></li>
+
+<ul>
+<li>Inversion of control integrated into the object system</li>
+</ul></ul>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/cute_moose.jpg" align=right>
+<h1>The point of Moose</h1>
+<p>
+
+</p>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/cute_moose.jpg" align=right>
+<h1>The point of Moose</h1>
+<p>
+
+</p>
+<ul>
+<li>OO is less tedious</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/cute_moose.jpg" align=right>
+<h1>The point of Moose</h1>
+<p>
+
+</p>
+<ul>
+<li>OO is less tedious</li>
+<li>Helps you write meta code</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/cute_moose.jpg" align=right>
+<h1>The point of Moose</h1>
+<p>
+
+</p>
+<ul>
+<li>OO is less tedious</li>
+<li>Helps you write meta code</li>
+
+<ul>
+<li>Good APIs promote clean code</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/cute_moose.jpg" align=right>
+<h1>The point of Moose</h1>
+<p>
+
+</p>
+<ul>
+<li>OO is less tedious</li>
+<li>Helps you write meta code</li>
+
+<ul>
+<li>Good APIs promote clean code</li>
+<li>Easier to build on existing base</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/cute_moose.jpg" align=right>
+<h1>The point of Moose</h1>
+<p>
+
+</p>
+<ul>
+<li>OO is less tedious</li>
+<li>Helps you write meta code</li>
+
+<ul>
+<li>Good APIs promote clean code</li>
+<li>Easier to build on existing base</li>
+<li>Conventions and structure let you play well with others &#40;<tt>MooseX::</tt>&#41;</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/cute_moose.jpg" align=right>
+<h1>The point of Moose</h1>
+<p>
+
+</p>
+<ul>
+<li>OO is less tedious</li>
+<li>Helps you write meta code</li>
+
+<ul>
+<li>Good APIs promote clean code</li>
+<li>Easier to build on existing base</li>
+<li>Conventions and structure let you play well with others &#40;<tt>MooseX::</tt>&#41;</li>
+<li>Introspectable &#38; tranformable metamodel</li>
+</ul></ul>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/MainHeaderPic_5.gif" align=right>
+<h1>Another Case Study</h1>
+<p>
+
+</p>
+<h2>ORMs</h2>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/MainHeaderPic_5.gif" align=right>
+<h1>Another Case Study</h1>
+<p>
+
+</p>
+<h2>ORMs</h2>
+<ul>
+<li>Are <strong>HARD</strong></li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/MainHeaderPic_5.gif" align=right>
+<h1>Another Case Study</h1>
+<p>
+
+</p>
+<h2>ORMs</h2>
+<ul>
+<li>Are <strong>HARD</strong></li>
+<li>Not even fun like the picture</li>
+</ul>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/legacyDataSources.jpg" align=right>
+<h1>ORMs</h1>
+<p>
+
+</p>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/legacyDataSources.jpg" align=right>
+<h1>ORMs</h1>
+<p>
+
+</p>
+<ul>
+<li>Modeling</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/legacyDataSources.jpg" align=right>
+<h1>ORMs</h1>
+<p>
+
+</p>
+<ul>
+<li>Modeling</li>
+
+<ul>
+<li>Tables &lt;-&gt; Classes</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/legacyDataSources.jpg" align=right>
+<h1>ORMs</h1>
+<p>
+
+</p>
+<ul>
+<li>Modeling</li>
+
+<ul>
+<li>Tables &lt;-&gt; Classes</li>
+<li>Fields &lt;-&gt; Attributes</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/legacyDataSources.jpg" align=right>
+<h1>ORMs</h1>
+<p>
+
+</p>
+<ul>
+<li>Modeling</li>
+
+<ul>
+<li>Tables &lt;-&gt; Classes</li>
+<li>Fields &lt;-&gt; Attributes</li>
+</ul>
+<li>Code Generation</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/legacyDataSources.jpg" align=right>
+<h1>ORMs</h1>
+<p>
+
+</p>
+<ul>
+<li>Modeling</li>
+
+<ul>
+<li>Tables &lt;-&gt; Classes</li>
+<li>Fields &lt;-&gt; Attributes</li>
+</ul>
+<li>Code Generation</li>
+
+<ul>
+<li>SQL</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/legacyDataSources.jpg" align=right>
+<h1>ORMs</h1>
+<p>
+
+</p>
+<ul>
+<li>Modeling</li>
+
+<ul>
+<li>Tables &lt;-&gt; Classes</li>
+<li>Fields &lt;-&gt; Attributes</li>
+</ul>
+<li>Code Generation</li>
+
+<ul>
+<li>SQL</li>
+<li>Accessors</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/legacyDataSources.jpg" align=right>
+<h1>ORMs</h1>
+<p>
+
+</p>
+<ul>
+<li>Modeling</li>
+
+<ul>
+<li>Tables &lt;-&gt; Classes</li>
+<li>Fields &lt;-&gt; Attributes</li>
+</ul>
+<li>Code Generation</li>
+
+<ul>
+<li>SQL</li>
+<li>Accessors</li>
+<li>Relationship fetchers</li>
+</ul></ul>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+
+<h1><tt>Class::DBI</tt></h1>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+
+<h1><tt>Class::DBI</tt></h1>
+<ul>
+<li>Meta code is in the base class</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+
+<h1><tt>Class::DBI</tt></h1>
+<ul>
+<li>Meta code is in the base class</li>
+<li>No clear schema modelling</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+
+<h1><tt>Class::DBI</tt></h1>
+<ul>
+<li>Meta code is in the base class</li>
+<li>No clear schema modelling</li>
+<li>No separation between regular &#38; meta code</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+
+<h1><tt>Class::DBI</tt></h1>
+<ul>
+<li>Meta code is in the base class</li>
+<li>No clear schema modelling</li>
+<li>No separation between regular &#38; meta code</li>
+<li>Lots of hacks</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+
+<h1><tt>Class::DBI</tt></h1>
+<ul>
+<li>Meta code is in the base class</li>
+<li>No clear schema modelling</li>
+<li>No separation between regular &#38; meta code</li>
+<li>Lots of hacks</li>
+<li>Don&#39;t go there</li>
+</ul>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+
+<h1><tt>DBIx::Class</tt></h1>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+
+<h1><tt>DBIx::Class</tt></h1>
+<ul>
+<li>Meta enlightened</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+
+<h1><tt>DBIx::Class</tt></h1>
+<ul>
+<li>Meta enlightened</li>
+
+<ul>
+<li>Schema objects fully model the SQL side</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+
+<h1><tt>DBIx::Class</tt></h1>
+<ul>
+<li>Meta enlightened</li>
+
+<ul>
+<li>Schema objects fully model the SQL side</li>
+<li>ResultSource etc partially model the OO side</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+
+<h1><tt>DBIx::Class</tt></h1>
+<ul>
+<li>Meta enlightened</li>
+
+<ul>
+<li>Schema objects fully model the SQL side</li>
+<li>ResultSource etc partially model the OO side</li>
+<li>Components for everything</li>
+</ul></ul>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+
+<h1><tt>DBIx::Class</tt></h1>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+
+<h1><tt>DBIx::Class</tt></h1>
+<ul>
+<li>Meta code:</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+
+<h1><tt>DBIx::Class</tt></h1>
+<ul>
+<li>Meta code:</li>
+
+<ul>
+<li>Proxy objects</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+
+<h1><tt>DBIx::Class</tt></h1>
+<ul>
+<li>Meta code:</li>
+
+<ul>
+<li>Proxy objects</li>
+<li>Accessors</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+
+<h1><tt>DBIx::Class</tt></h1>
+<ul>
+<li>Meta code:</li>
+
+<ul>
+<li>Proxy objects</li>
+<li>Accessors</li>
+<li>Code generation &#40;SQL, Perl&#41;</li>
+</ul></ul>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+
+<h1>ORM related meta programming</h1>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+
+<h1>ORM related meta programming</h1>
+<ul>
+<li>Complex</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+
+<h1>ORM related meta programming</h1>
+<ul>
+<li>Complex</li>
+<li>But manageable</li>
+</ul>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/b-silencer-water-vapour.jpg" align=right>
+<h1>Vaporware</h1>
+<p>
+
+</p>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/b-silencer-water-vapour.jpg" align=right>
+<h1>MO</h1>
+<p>
+
+</p>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/b-silencer-water-vapour.jpg" align=right>
+<h1>MO</h1>
+<p>
+
+</p>
+<ul>
+<li>My baby</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/b-silencer-water-vapour.jpg" align=right>
+<h1>MO</h1>
+<p>
+
+</p>
+<ul>
+<li>My baby</li>
+<li>Moose spinoff</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/b-silencer-water-vapour.jpg" align=right>
+<h1>MO</h1>
+<p>
+
+</p>
+<ul>
+<li>My baby</li>
+<li>Moose spinoff</li>
+
+<ul>
+<li>Stevan says it&#39;s Moose 2.0&#39;s</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/b-silencer-water-vapour.jpg" align=right>
+<h1>MO</h1>
+<p>
+
+</p>
+<ul>
+<li>My baby</li>
+<li>Moose spinoff</li>
+
+<ul>
+<li>Stevan says it&#39;s Moose 2.0&#39;s</li>
+</ul>
+<li>Perl 5 &#38; Haskell &#40;in pugs&#41;</li>
+</ul>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/lollypop.jpg" align=right>
+<h1>MO Sucks</h1>
+<p>
+
+</p>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/lollypop.jpg" align=right>
+<h1>MO Sucks</h1>
+<p>
+
+</p>
+<ul>
+<li>Experimental code</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/lollypop.jpg" align=right>
+<h1>MO Sucks</h1>
+<p>
+
+</p>
+<ul>
+<li>Experimental code</li>
+<li>Boring parts messy or unwritten</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/lollypop.jpg" align=right>
+<h1>MO Sucks</h1>
+<p>
+
+</p>
+<ul>
+<li>Experimental code</li>
+<li>Boring parts messy or unwritten</li>
+<li>Lacking integration, sugar layer</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/lollypop.jpg" align=right>
+<h1>MO Sucks</h1>
+<p>
+
+</p>
+<ul>
+<li>Experimental code</li>
+<li>Boring parts messy or unwritten</li>
+<li>Lacking integration, sugar layer</li>
+
+<ul>
+<li>mst promised to help ;-&#41;</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/lollypop.jpg" align=right>
+<h1>MO Sucks</h1>
+<p>
+
+</p>
+<ul>
+<li>Experimental code</li>
+<li>Boring parts messy or unwritten</li>
+<li>Lacking integration, sugar layer</li>
+
+<ul>
+<li>mst promised to help ;-&#41;</li>
+</ul>
+<li>Some parts slow as $*!&#38;%</li>
+</ul>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/rocks.jpg" align=right>
+<h1>MO Rocks</h1>
+<p>
+
+</p>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/rocks.jpg" align=right>
+<h1>MO Rocks</h1>
+<p>
+
+</p>
+<ul>
+<li>Purely functional</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/rocks.jpg" align=right>
+<h1>MO Rocks</h1>
+<p>
+
+</p>
+<ul>
+<li>Purely functional</li>
+<li>Very suited for meta transformations</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/rocks.jpg" align=right>
+<h1>MO Rocks</h1>
+<p>
+
+</p>
+<ul>
+<li>Purely functional</li>
+<li>Very suited for meta transformations</li>
+<li>Fine grained control over everything</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/rocks.jpg" align=right>
+<h1>MO Rocks</h1>
+<p>
+
+</p>
+<ul>
+<li>Purely functional</li>
+<li>Very suited for meta transformations</li>
+<li>Fine grained control over everything</li>
+<li>Can introduce entirely new conceptions of OO</li>
+</ul>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/engineering_large.jpg" align=right>
+<h1>MO Architechture</h1>
+<p>
+
+</p>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/engineering_large.jpg" align=right>
+<h1>MO Architechture</h1>
+<p>
+
+</p>
+<ul>
+<li>Modeling layer</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/engineering_large.jpg" align=right>
+<h1>MO Architechture</h1>
+<p>
+
+</p>
+<ul>
+<li>Modeling layer</li>
+
+<ul>
+<li>Corresponds to compilation</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/engineering_large.jpg" align=right>
+<h1>MO Architechture</h1>
+<p>
+
+</p>
+<ul>
+<li>Modeling layer</li>
+
+<ul>
+<li>Corresponds to compilation</li>
+</ul>
+<li>Responder layer</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/engineering_large.jpg" align=right>
+<h1>MO Architechture</h1>
+<p>
+
+</p>
+<ul>
+<li>Modeling layer</li>
+
+<ul>
+<li>Corresponds to compilation</li>
+</ul>
+<li>Responder layer</li>
+
+<ul>
+<li>Corresponds to runtime</li>
+</ul></ul>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/engineering_large.jpg" align=right>
+<h1>MO Architechture</h1>
+<p>
+
+</p>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/engineering_large.jpg" align=right>
+<h1>MO Architechture</h1>
+<p>
+
+</p>
+<ul>
+<li>Compiler/sugar layer creates the modeling layer</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/engineering_large.jpg" align=right>
+<h1>MO Architechture</h1>
+<p>
+
+</p>
+<ul>
+<li>Compiler/sugar layer creates the modeling layer</li>
+
+<ul>
+<li>Class objects are constructed, with all the details</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/engineering_large.jpg" align=right>
+<h1>MO Architechture</h1>
+<p>
+
+</p>
+<ul>
+<li>Compiler/sugar layer creates the modeling layer</li>
+
+<ul>
+<li>Class objects are constructed, with all the details</li>
+<li>No meta calculations happen yet</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/engineering_large.jpg" align=right>
+<h1>MO Architechture</h1>
+<p>
+
+</p>
+<ul>
+<li>Compiler/sugar layer creates the modeling layer</li>
+
+<ul>
+<li>Class objects are constructed, with all the details</li>
+<li>No meta calculations happen yet</li>
+</ul>
+<li>Modeling layer is &#34;compiled&#34; into responder layer</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/engineering_large.jpg" align=right>
+<h1>MO Architechture</h1>
+<p>
+
+</p>
+<ul>
+<li>Compiler/sugar layer creates the modeling layer</li>
+
+<ul>
+<li>Class objects are constructed, with all the details</li>
+<li>No meta calculations happen yet</li>
+</ul>
+<li>Modeling layer is &#34;compiled&#34; into responder layer</li>
+
+<ul>
+<li>Can be done on demand or upfront</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/engineering_large.jpg" align=right>
+<h1>MO Architechture</h1>
+<p>
+
+</p>
+<ul>
+<li>Compiler/sugar layer creates the modeling layer</li>
+
+<ul>
+<li>Class objects are constructed, with all the details</li>
+<li>No meta calculations happen yet</li>
+</ul>
+<li>Modeling layer is &#34;compiled&#34; into responder layer</li>
+
+<ul>
+<li>Can be done on demand or upfront</li>
+</ul>
+<li>Obscurely named objects</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/engineering_large.jpg" align=right>
+<h1>MO Architechture</h1>
+<p>
+
+</p>
+<ul>
+<li>Compiler/sugar layer creates the modeling layer</li>
+
+<ul>
+<li>Class objects are constructed, with all the details</li>
+<li>No meta calculations happen yet</li>
+</ul>
+<li>Modeling layer is &#34;compiled&#34; into responder layer</li>
+
+<ul>
+<li>Can be done on demand or upfront</li>
+</ul>
+<li>Obscurely named objects</li>
+
+<ul>
+<li>Bear with me</li>
+</ul></ul>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/light-bulb-glowing-filament-light-blue-uncropped-lores-3-AHD.jpg" align=right>
+<h1>"Concepts"</h1>
+<p>
+
+</p>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/light-bulb-glowing-filament-light-blue-uncropped-lores-3-AHD.jpg" align=right>
+<h1>"Concepts"</h1>
+<p>
+
+</p>
+<ul>
+<li>The purest form of OO is prototypes</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/light-bulb-glowing-filament-light-blue-uncropped-lores-3-AHD.jpg" align=right>
+<h1>"Concepts"</h1>
+<p>
+
+</p>
+<ul>
+<li>The purest form of OO is prototypes</li>
+
+<ul>
+<li>prototype OO can implement class OO</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/light-bulb-glowing-filament-light-blue-uncropped-lores-3-AHD.jpg" align=right>
+<h1>"Concepts"</h1>
+<p>
+
+</p>
+<ul>
+<li>The purest form of OO is prototypes</li>
+
+<ul>
+<li>prototype OO can implement class OO</li>
+</ul>
+<li>Concepts are new ways to express objects</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/light-bulb-glowing-filament-light-blue-uncropped-lores-3-AHD.jpg" align=right>
+<h1>"Concepts"</h1>
+<p>
+
+</p>
+<ul>
+<li>The purest form of OO is prototypes</li>
+
+<ul>
+<li>prototype OO can implement class OO</li>
+</ul>
+<li>Concepts are new ways to express objects</li>
+<li>A class is a concept</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/light-bulb-glowing-filament-light-blue-uncropped-lores-3-AHD.jpg" align=right>
+<h1>"Concepts"</h1>
+<p>
+
+</p>
+<ul>
+<li>The purest form of OO is prototypes</li>
+
+<ul>
+<li>prototype OO can implement class OO</li>
+</ul>
+<li>Concepts are new ways to express objects</li>
+<li>A class is a concept</li>
+<li>A role is a concept</li>
+</ul>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/vtable.jpg" align=right>
+<h1>"Responder Interfaces"</h1>
+<p>
+
+</p>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/vtable.jpg" align=right>
+<h1>"Responder Interfaces"</h1>
+<p>
+
+</p>
+<ul>
+<li><tt>$ri-&gt;dispatch&#40; $responder, $invocation &#41;</tt></li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/vtable.jpg" align=right>
+<h1>"Responder Interfaces"</h1>
+<p>
+
+</p>
+<ul>
+<li><tt>$ri-&gt;dispatch&#40; $responder, $invocation &#41;</tt></li>
+<li>Generated from concepts</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/vtable.jpg" align=right>
+<h1>"Responder Interfaces"</h1>
+<p>
+
+</p>
+<ul>
+<li><tt>$ri-&gt;dispatch&#40; $responder, $invocation &#41;</tt></li>
+<li>Generated from concepts</li>
+<li>Abstract VTable</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/vtable.jpg" align=right>
+<h1>"Responder Interfaces"</h1>
+<p>
+
+</p>
+<ul>
+<li><tt>$ri-&gt;dispatch&#40; $responder, $invocation &#41;</tt></li>
+<li>Generated from concepts</li>
+<li>Abstract VTable</li>
+
+<ul>
+<li>The flattened method hierarchy</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/vtable.jpg" align=right>
+<h1>"Responder Interfaces"</h1>
+<p>
+
+</p>
+<ul>
+<li><tt>$ri-&gt;dispatch&#40; $responder, $invocation &#41;</tt></li>
+<li>Generated from concepts</li>
+<li>Abstract VTable</li>
+
+<ul>
+<li>The flattened method hierarchy</li>
+<li>... or something completely different</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/vtable.jpg" align=right>
+<h1>"Responder Interfaces"</h1>
+<p>
+
+</p>
+<ul>
+<li><tt>$ri-&gt;dispatch&#40; $responder, $invocation &#41;</tt></li>
+<li>Generated from concepts</li>
+<li>Abstract VTable</li>
+
+<ul>
+<li>The flattened method hierarchy</li>
+<li>... or something completely different</li>
+<li>Performance</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/vtable.jpg" align=right>
+<h1>"Responder Interfaces"</h1>
+<p>
+
+</p>
+<ul>
+<li><tt>$ri-&gt;dispatch&#40; $responder, $invocation &#41;</tt></li>
+<li>Generated from concepts</li>
+<li>Abstract VTable</li>
+
+<ul>
+<li>The flattened method hierarchy</li>
+<li>... or something completely different</li>
+<li>Performance</li>
+<li>Flexibility</li>
+</ul></ul>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/fema_seal.gif" align=right>
+<h1>"Responders"</h1>
+<p>
+
+</p>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/fema_seal.gif" align=right>
+<h1>"Responders"</h1>
+<p>
+
+</p>
+<ul>
+<li>Something that is the subject of invocations</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/fema_seal.gif" align=right>
+<h1>"Responders"</h1>
+<p>
+
+</p>
+<ul>
+<li>Something that is the subject of invocations</li>
+
+<ul>
+<li>An object instance</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/fema_seal.gif" align=right>
+<h1>"Responders"</h1>
+<p>
+
+</p>
+<ul>
+<li>Something that is the subject of invocations</li>
+
+<ul>
+<li>An object instance</li>
+<li>A class &#40;class methods&#41;</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/fema_seal.gif" align=right>
+<h1>"Responders"</h1>
+<p>
+
+</p>
+<ul>
+<li>Something that is the subject of invocations</li>
+
+<ul>
+<li>An object instance</li>
+<li>A class &#40;class methods&#41;</li>
+</ul>
+<li>A simple tuple <tt>&#40; $data, $ri &#41;</tt></li>
+</ul>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/lg-banana.jpg" align=right>
+<h1>"Invocations"</h1>
+<p>
+
+</p>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/lg-banana.jpg" align=right>
+<h1>"Invocations"</h1>
+<p>
+
+</p>
+<ul>
+<li>A method call, multimethod, message... whatever</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/lg-banana.jpg" align=right>
+<h1>"Invocations"</h1>
+<p>
+
+</p>
+<ul>
+<li>A method call, multimethod, message... whatever</li>
+
+<ul>
+<li>Arguments, too</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/lg-banana.jpg" align=right>
+<h1>"Invocations"</h1>
+<p>
+
+</p>
+<ul>
+<li>A method call, multimethod, message... whatever</li>
+
+<ul>
+<li>Arguments, too</li>
+</ul>
+<li>Whatever an RI will put up with</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/lg-banana.jpg" align=right>
+<h1>"Invocations"</h1>
+<p>
+
+</p>
+<ul>
+<li>A method call, multimethod, message... whatever</li>
+
+<ul>
+<li>Arguments, too</li>
+</ul>
+<li>Whatever an RI will put up with</li>
+
+<ul>
+<li>Extensible calling semantics</li>
+</ul></ul>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/snoqualmie-falls-flowing-3811-equalized.jpg" align=right>
+<h1>MO compilation flow</h1>
+<p>
+
+</p>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/snoqualmie-falls-flowing-3811-equalized.jpg" align=right>
+<h1>MO compilation flow</h1>
+<p>
+
+</p>
+<ul>
+<li>Instantiate a <tt>Class</tt> object</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/snoqualmie-falls-flowing-3811-equalized.jpg" align=right>
+<h1>MO compilation flow</h1>
+<p>
+
+</p>
+<ul>
+<li>Instantiate a <tt>Class</tt> object</li>
+
+<ul>
+<li>Specify members &#40;methods, attributes&#41;</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/snoqualmie-falls-flowing-3811-equalized.jpg" align=right>
+<h1>MO compilation flow</h1>
+<p>
+
+</p>
+<ul>
+<li>Instantiate a <tt>Class</tt> object</li>
+
+<ul>
+<li>Specify members &#40;methods, attributes&#41;</li>
+<li>... and ancestor classes &#38; roles</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/snoqualmie-falls-flowing-3811-equalized.jpg" align=right>
+<h1>MO compilation flow</h1>
+<p>
+
+</p>
+<ul>
+<li>Instantiate a <tt>Class</tt> object</li>
+
+<ul>
+<li>Specify members &#40;methods, attributes&#41;</li>
+<li>... and ancestor classes &#38; roles</li>
+</ul>
+<li>Compile class</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/snoqualmie-falls-flowing-3811-equalized.jpg" align=right>
+<h1>MO compilation flow</h1>
+<p>
+
+</p>
+<ul>
+<li>Instantiate a <tt>Class</tt> object</li>
+
+<ul>
+<li>Specify members &#40;methods, attributes&#41;</li>
+<li>... and ancestor classes &#38; roles</li>
+</ul>
+<li>Compile class</li>
+
+<ul>
+<li><tt>my $class_methods_ri = $class-&gt;class_interface&#40;&#41;</tt></li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/snoqualmie-falls-flowing-3811-equalized.jpg" align=right>
+<h1>MO compilation flow</h1>
+<p>
+
+</p>
+<ul>
+<li>Instantiate a <tt>Class</tt> object</li>
+
+<ul>
+<li>Specify members &#40;methods, attributes&#41;</li>
+<li>... and ancestor classes &#38; roles</li>
+</ul>
+<li>Compile class</li>
+
+<ul>
+<li><tt>my $class_methods_ri = $class-&gt;class_interface&#40;&#41;</tt></li>
+<li>Instance method RI closed in the constructor, within <tt>$ri</tt></li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/snoqualmie-falls-flowing-3811-equalized.jpg" align=right>
+<h1>MO compilation flow</h1>
+<p>
+
+</p>
+<ul>
+<li>Instantiate a <tt>Class</tt> object</li>
+
+<ul>
+<li>Specify members &#40;methods, attributes&#41;</li>
+<li>... and ancestor classes &#38; roles</li>
+</ul>
+<li>Compile class</li>
+
+<ul>
+<li><tt>my $class_methods_ri = $class-&gt;class_interface&#40;&#41;</tt></li>
+<li>Instance method RI closed in the constructor, within <tt>$ri</tt></li>
+<li>Purely functional operation </li>
+</ul></ul>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/snoqualmie-falls-flowing-3811-equalized.jpg" align=right>
+<h1>RI composition</h1>
+<p>
+
+</p>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/snoqualmie-falls-flowing-3811-equalized.jpg" align=right>
+<h1>RI composition</h1>
+<p>
+
+</p>
+<ul>
+<li>Compute instance methods and attributes from ancestry</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/snoqualmie-falls-flowing-3811-equalized.jpg" align=right>
+<h1>RI composition</h1>
+<p>
+
+</p>
+<ul>
+<li>Compute instance methods and attributes from ancestry</li>
+<li>Compute instance slots from attributes</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/snoqualmie-falls-flowing-3811-equalized.jpg" align=right>
+<h1>RI composition</h1>
+<p>
+
+</p>
+<ul>
+<li>Compute instance methods and attributes from ancestry</li>
+<li>Compute instance slots from attributes</li>
+<li>Generate accessors</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/snoqualmie-falls-flowing-3811-equalized.jpg" align=right>
+<h1>RI composition</h1>
+<p>
+
+</p>
+<ul>
+<li>Compute instance methods and attributes from ancestry</li>
+<li>Compute instance slots from attributes</li>
+<li>Generate accessors</li>
+</ul>
+<pre class="vim">  MO::Run::ResponderInterface::MethodTable-&gt;new(
+    methods =&gt; %methods
+  );
+</pre>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/snoqualmie-falls-flowing-3811-equalized.jpg" align=right>
+<h1>RI composition</h1>
+<p>
+
+</p>
+<ul>
+<li>Compute instance methods and attributes from ancestry</li>
+<li>Compute instance slots from attributes</li>
+<li>Generate accessors</li>
+</ul>
+<pre class="vim">  MO::Run::ResponderInterface::MethodTable-&gt;new(
+    methods =&gt; %methods
+  );
+</pre>
+<ul>
+<li>Generate constructor</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/snoqualmie-falls-flowing-3811-equalized.jpg" align=right>
+<h1>RI composition</h1>
+<p>
+
+</p>
+<ul>
+<li>Compute instance methods and attributes from ancestry</li>
+<li>Compute instance slots from attributes</li>
+<li>Generate accessors</li>
+</ul>
+<pre class="vim">  MO::Run::ResponderInterface::MethodTable-&gt;new(
+    methods =&gt; %methods
+  );
+</pre>
+<ul>
+<li>Generate constructor</li>
+</ul>
+<pre class="vim">  sub {
+    my $data = process_params(@_);
+    return box( $data, $instance_ri );
+  }
+</pre>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/Creation-hands-L.jpg" align=right>
+<h1>Instantiation</h1>
+<p>
+
+</p>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/Creation-hands-L.jpg" align=right>
+<h1>Instantiation</h1>
+<p>
+
+</p>
+<ul>
+<li>Lookup RI using class name</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/Creation-hands-L.jpg" align=right>
+<h1>Instantiation</h1>
+<p>
+
+</p>
+<ul>
+<li>Lookup RI using class name</li>
+<li>Dispatch constructor class method</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/Creation-hands-L.jpg" align=right>
+<h1>Instantiation</h1>
+<p>
+
+</p>
+<ul>
+<li>Lookup RI using class name</li>
+<li>Dispatch constructor class method</li>
+<li>Compose data from params</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/Creation-hands-L.jpg" align=right>
+<h1>Instantiation</h1>
+<p>
+
+</p>
+<ul>
+<li>Lookup RI using class name</li>
+<li>Dispatch constructor class method</li>
+<li>Compose data from params</li>
+
+<ul>
+<li>Slightly complicated</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/Creation-hands-L.jpg" align=right>
+<h1>Instantiation</h1>
+<p>
+
+</p>
+<ul>
+<li>Lookup RI using class name</li>
+<li>Dispatch constructor class method</li>
+<li>Compose data from params</li>
+
+<ul>
+<li>Slightly complicated</li>
+</ul>
+<li>Link data with closed <tt>$instance_ri</tt></li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/Creation-hands-L.jpg" align=right>
+<h1>Instantiation</h1>
+<p>
+
+</p>
+<ul>
+<li>Lookup RI using class name</li>
+<li>Dispatch constructor class method</li>
+<li>Compose data from params</li>
+
+<ul>
+<li>Slightly complicated</li>
+</ul>
+<li>Link data with closed <tt>$instance_ri</tt></li>
+
+<ul>
+<li>Responder == &#40; Data, RI &#41;</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/Creation-hands-L.jpg" align=right>
+<h1>Instantiation</h1>
+<p>
+
+</p>
+<ul>
+<li>Lookup RI using class name</li>
+<li>Dispatch constructor class method</li>
+<li>Compose data from params</li>
+
+<ul>
+<li>Slightly complicated</li>
+</ul>
+<li>Link data with closed <tt>$instance_ri</tt></li>
+
+<ul>
+<li>Responder == &#40; Data, RI &#41;</li>
+<li>Like <tt>bless</tt></li>
+</ul></ul>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/telephone.jpg" align=right>
+<h1>Method calls</h1>
+<p>
+
+</p>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/telephone.jpg" align=right>
+<h1>Method calls</h1>
+<p>
+
+</p>
+<ul>
+<li>How to talk with your new object?</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/telephone.jpg" align=right>
+<h1>Method calls</h1>
+<p>
+
+</p>
+<ul>
+<li>How to talk with your new object?</li>
+</ul>
+<pre class="vim">  my $ri = $responder-&gt;responder_interface;
+
+</pre>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/telephone.jpg" align=right>
+<h1>Method calls</h1>
+<p>
+
+</p>
+<ul>
+<li>How to talk with your new object?</li>
+</ul>
+<pre class="vim">  my $ri = $responder-&gt;responder_interface;
+
+
+  my $method = MO::Run::Invocation::Method-&gt;new(
+    name      =&gt; &quot;foo&quot;
+    arguments =&gt; \@blah,
+  );
+
+</pre>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/telephone.jpg" align=right>
+<h1>Method calls</h1>
+<p>
+
+</p>
+<ul>
+<li>How to talk with your new object?</li>
+</ul>
+<pre class="vim">  my $ri = $responder-&gt;responder_interface;
+
+
+  my $method = MO::Run::Invocation::Method-&gt;new(
+    name      =&gt; &quot;foo&quot;
+    arguments =&gt; \@blah,
+  );
+
+
+  $ri-&gt;dispatch( $responder, $method );
+</pre>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/telephone.jpg" align=right>
+<h1>Method calls</h1>
+<p>
+
+</p>
+<ul>
+<li>How to talk with your new object?</li>
+</ul>
+<pre class="vim">  my $ri = $responder-&gt;responder_interface;
+
+
+  my $method = MO::Run::Invocation::Method-&gt;new(
+    name      =&gt; &quot;foo&quot;
+    arguments =&gt; \@blah,
+  );
+
+
+  $ri-&gt;dispatch( $responder, $method );
+</pre>
+<ul>
+<li>Arbitrary responder interfaces also allowed</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/telephone.jpg" align=right>
+<h1>Method calls</h1>
+<p>
+
+</p>
+<ul>
+<li>How to talk with your new object?</li>
+</ul>
+<pre class="vim">  my $ri = $responder-&gt;responder_interface;
+
+
+  my $method = MO::Run::Invocation::Method-&gt;new(
+    name      =&gt; &quot;foo&quot;
+    arguments =&gt; \@blah,
+  );
+
+
+  $ri-&gt;dispatch( $responder, $method );
+</pre>
+<ul>
+<li>Arbitrary responder interfaces also allowed</li>
+
+<ul>
+<li>Doesn&#39;t have to be <tt>$responder-&gt;responder_interface</tt></li>
+</ul></ul>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/Surprise-buttsecks.jpg" align=right>
+<h1>OH NOES!!!</h1>
+<p>
+
+</p>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/Surprise-buttsecks.jpg" align=right>
+<h1>OH NOES!!!</h1>
+<p>
+
+</p>
+<ul>
+<li>What&#39;s wrong with the previous slide?</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/Surprise-buttsecks.jpg" align=right>
+<h1>OH NOES!!!</h1>
+<p>
+
+</p>
+<ul>
+<li>What&#39;s wrong with the previous slide?</li>
+<li>RIs are objects too!</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/Surprise-buttsecks.jpg" align=right>
+<h1>OH NOES!!!</h1>
+<p>
+
+</p>
+<ul>
+<li>What&#39;s wrong with the previous slide?</li>
+<li>RIs are objects too!</li>
+<li>Need to bootstrap method calls</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/Surprise-buttsecks.jpg" align=right>
+<h1>OH NOES!!!</h1>
+<p>
+
+</p>
+<ul>
+<li>What&#39;s wrong with the previous slide?</li>
+<li>RIs are objects too!</li>
+<li>Need to bootstrap method calls</li>
+<li>Runtime must bootstrap low level OO</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/Surprise-buttsecks.jpg" align=right>
+<h1>OH NOES!!!</h1>
+<p>
+
+</p>
+<ul>
+<li>What&#39;s wrong with the previous slide?</li>
+<li>RIs are objects too!</li>
+<li>Need to bootstrap method calls</li>
+<li>Runtime must bootstrap low level OO</li>
+
+<ul>
+<li>More on this soon</li>
+</ul></ul>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/44790qV87_w.jpg" align=right>
+<h1>Meta level polymorphism</h1>
+<p>
+
+</p>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/44790qV87_w.jpg" align=right>
+<h1>Meta level polymorphism</h1>
+<p>
+
+</p>
+<ul>
+<li>An important point</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/44790qV87_w.jpg" align=right>
+<h1>Meta level polymorphism</h1>
+<p>
+
+</p>
+<ul>
+<li>An important point</li>
+
+<ul>
+<li>In fact, <strong>the</strong> point of MO</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/44790qV87_w.jpg" align=right>
+<h1>Meta level polymorphism</h1>
+<p>
+
+</p>
+<ul>
+<li>An important point</li>
+
+<ul>
+<li>In fact, <strong>the</strong> point of MO</li>
+</ul>
+<li>Responder interfaces are polymorphic</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/44790qV87_w.jpg" align=right>
+<h1>Meta level polymorphism</h1>
+<p>
+
+</p>
+<ul>
+<li>An important point</li>
+
+<ul>
+<li>In fact, <strong>the</strong> point of MO</li>
+</ul>
+<li>Responder interfaces are polymorphic</li>
+
+<ul>
+<li>Method table, network proxy, whatever</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/44790qV87_w.jpg" align=right>
+<h1>Meta level polymorphism</h1>
+<p>
+
+</p>
+<ul>
+<li>An important point</li>
+
+<ul>
+<li>In fact, <strong>the</strong> point of MO</li>
+</ul>
+<li>Responder interfaces are polymorphic</li>
+
+<ul>
+<li>Method table, network proxy, whatever</li>
+</ul>
+<li>Easy to specialize</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/44790qV87_w.jpg" align=right>
+<h1>Meta level polymorphism</h1>
+<p>
+
+</p>
+<ul>
+<li>An important point</li>
+
+<ul>
+<li>In fact, <strong>the</strong> point of MO</li>
+</ul>
+<li>Responder interfaces are polymorphic</li>
+
+<ul>
+<li>Method table, network proxy, whatever</li>
+</ul>
+<li>Easy to specialize</li>
+
+<ul>
+<li>Optimizations</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/44790qV87_w.jpg" align=right>
+<h1>Meta level polymorphism</h1>
+<p>
+
+</p>
+<ul>
+<li>An important point</li>
+
+<ul>
+<li>In fact, <strong>the</strong> point of MO</li>
+</ul>
+<li>Responder interfaces are polymorphic</li>
+
+<ul>
+<li>Method table, network proxy, whatever</li>
+</ul>
+<li>Easy to specialize</li>
+
+<ul>
+<li>Optimizations</li>
+<li>Strange features</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/44790qV87_w.jpg" align=right>
+<h1>Meta level polymorphism</h1>
+<p>
+
+</p>
+<ul>
+<li>An important point</li>
+
+<ul>
+<li>In fact, <strong>the</strong> point of MO</li>
+</ul>
+<li>Responder interfaces are polymorphic</li>
+
+<ul>
+<li>Method table, network proxy, whatever</li>
+</ul>
+<li>Easy to specialize</li>
+
+<ul>
+<li>Optimizations</li>
+<li>Strange features</li>
+</ul>
+<li>Easy to mix several OO systems</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/44790qV87_w.jpg" align=right>
+<h1>Meta level polymorphism</h1>
+<p>
+
+</p>
+<ul>
+<li>An important point</li>
+
+<ul>
+<li>In fact, <strong>the</strong> point of MO</li>
+</ul>
+<li>Responder interfaces are polymorphic</li>
+
+<ul>
+<li>Method table, network proxy, whatever</li>
+</ul>
+<li>Easy to specialize</li>
+
+<ul>
+<li>Optimizations</li>
+<li>Strange features</li>
+</ul>
+<li>Easy to mix several OO systems</li>
+
+<ul>
+<li>Just compile to separate RIs</li>
+</ul></ul>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/card-camel-108.jpg" align=right>
+<h1>MO in Perl 5</h1>
+<p>
+
+</p>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/card-camel-108.jpg" align=right>
+<h1>MO in Perl 5</h1>
+<p>
+
+</p>
+<ul>
+<li>Two runtimes</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/card-camel-108.jpg" align=right>
+<h1>MO in Perl 5</h1>
+<p>
+
+</p>
+<ul>
+<li>Two runtimes</li>
+<li>Very different</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/card-camel-108.jpg" align=right>
+<h1>MO in Perl 5</h1>
+<p>
+
+</p>
+<ul>
+<li>Two runtimes</li>
+<li>Very different</li>
+<li><tt>MO::Run::Aux</tt> wraps both</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/card-camel-108.jpg" align=right>
+<h1>MO in Perl 5</h1>
+<p>
+
+</p>
+<ul>
+<li>Two runtimes</li>
+<li>Very different</li>
+<li><tt>MO::Run::Aux</tt> wraps both</li>
+
+<ul>
+<li>Share tests by running with different <tt>%ENV</tt> var</li>
+</ul></ul>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/S2Secret.jpg" align=right>
+<h1>Hosted runtime</h1>
+<p>
+
+</p>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/S2Secret.jpg" align=right>
+<h1>Hosted runtime</h1>
+<p>
+
+</p>
+<ul>
+<li>Nested object system</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/S2Secret.jpg" align=right>
+<h1>Hosted runtime</h1>
+<p>
+
+</p>
+<ul>
+<li>Nested object system</li>
+<li>Bootstraps with Perl 5</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/S2Secret.jpg" align=right>
+<h1>Hosted runtime</h1>
+<p>
+
+</p>
+<ul>
+<li>Nested object system</li>
+<li>Bootstraps with Perl 5</li>
+
+<ul>
+<li>Native Perl OO == Low level, like VM opcodes</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/S2Secret.jpg" align=right>
+<h1>Hosted runtime</h1>
+<p>
+
+</p>
+<ul>
+<li>Nested object system</li>
+<li>Bootstraps with Perl 5</li>
+
+<ul>
+<li>Native Perl OO == Low level, like VM opcodes</li>
+<li>Virtualized MO == High Level</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/S2Secret.jpg" align=right>
+<h1>Hosted runtime</h1>
+<p>
+
+</p>
+<ul>
+<li>Nested object system</li>
+<li>Bootstraps with Perl 5</li>
+
+<ul>
+<li>Native Perl OO == Low level, like VM opcodes</li>
+<li>Virtualized MO == High Level</li>
+<li>Completely separate levels</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/S2Secret.jpg" align=right>
+<h1>Hosted runtime</h1>
+<p>
+
+</p>
+<ul>
+<li>Nested object system</li>
+<li>Bootstraps with Perl 5</li>
+
+<ul>
+<li>Native Perl OO == Low level, like VM opcodes</li>
+<li>Virtualized MO == High Level</li>
+<li>Completely separate levels</li>
+</ul>
+<li><tt>$ri-&gt;dispatch&#40; $responder, $method &#41;</tt></li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/S2Secret.jpg" align=right>
+<h1>Hosted runtime</h1>
+<p>
+
+</p>
+<ul>
+<li>Nested object system</li>
+<li>Bootstraps with Perl 5</li>
+
+<ul>
+<li>Native Perl OO == Low level, like VM opcodes</li>
+<li>Virtualized MO == High Level</li>
+<li>Completely separate levels</li>
+</ul>
+<li><tt>$ri-&gt;dispatch&#40; $responder, $method &#41;</tt></li>
+
+<ul>
+<li>not <tt>$responder-&gt;$method&#40;&#41;</tt></li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/S2Secret.jpg" align=right>
+<h1>Hosted runtime</h1>
+<p>
+
+</p>
+<ul>
+<li>Nested object system</li>
+<li>Bootstraps with Perl 5</li>
+
+<ul>
+<li>Native Perl OO == Low level, like VM opcodes</li>
+<li>Virtualized MO == High Level</li>
+<li>Completely separate levels</li>
+</ul>
+<li><tt>$ri-&gt;dispatch&#40; $responder, $method &#41;</tt></li>
+
+<ul>
+<li>not <tt>$responder-&gt;$method&#40;&#41;</tt></li>
+</ul>
+<li>Full expressiveness</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/S2Secret.jpg" align=right>
+<h1>Hosted runtime</h1>
+<p>
+
+</p>
+<ul>
+<li>Nested object system</li>
+<li>Bootstraps with Perl 5</li>
+
+<ul>
+<li>Native Perl OO == Low level, like VM opcodes</li>
+<li>Virtualized MO == High Level</li>
+<li>Completely separate levels</li>
+</ul>
+<li><tt>$ri-&gt;dispatch&#40; $responder, $method &#41;</tt></li>
+
+<ul>
+<li>not <tt>$responder-&gt;$method&#40;&#41;</tt></li>
+</ul>
+<li>Full expressiveness</li>
+<li>Slow, verbose</li>
+</ul>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/indian-camp.jpg" align=right>
+<h1>Native runtime</h1>
+<p>
+
+</p>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/indian-camp.jpg" align=right>
+<h1>Native runtime</h1>
+<p>
+
+</p>
+<ul>
+<li>Integrated object system</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/indian-camp.jpg" align=right>
+<h1>Native runtime</h1>
+<p>
+
+</p>
+<ul>
+<li>Integrated object system</li>
+<li>RIs are compiled into packages</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/indian-camp.jpg" align=right>
+<h1>Native runtime</h1>
+<p>
+
+</p>
+<ul>
+<li>Integrated object system</li>
+<li>RIs are compiled into packages</li>
+
+<ul>
+<li>Simple RIs are dissassembled and stuffed into the stash</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/indian-camp.jpg" align=right>
+<h1>Native runtime</h1>
+<p>
+
+</p>
+<ul>
+<li>Integrated object system</li>
+<li>RIs are compiled into packages</li>
+
+<ul>
+<li>Simple RIs are dissassembled and stuffed into the stash</li>
+<li>Complex RIs use <tt>AUTOLOAD</tt>, delegating to the RI meta object</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/indian-camp.jpg" align=right>
+<h1>Native runtime</h1>
+<p>
+
+</p>
+<ul>
+<li>Integrated object system</li>
+<li>RIs are compiled into packages</li>
+
+<ul>
+<li>Simple RIs are dissassembled and stuffed into the stash</li>
+<li>Complex RIs use <tt>AUTOLOAD</tt>, delegating to the RI meta object</li>
+</ul>
+<li>Only named method calls</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/indian-camp.jpg" align=right>
+<h1>Native runtime</h1>
+<p>
+
+</p>
+<ul>
+<li>Integrated object system</li>
+<li>RIs are compiled into packages</li>
+
+<ul>
+<li>Simple RIs are dissassembled and stuffed into the stash</li>
+<li>Complex RIs use <tt>AUTOLOAD</tt>, delegating to the RI meta object</li>
+</ul>
+<li>Only named method calls</li>
+
+<ul>
+<li>No arbitrary call concepts</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/indian-camp.jpg" align=right>
+<h1>Native runtime</h1>
+<p>
+
+</p>
+<ul>
+<li>Integrated object system</li>
+<li>RIs are compiled into packages</li>
+
+<ul>
+<li>Simple RIs are dissassembled and stuffed into the stash</li>
+<li>Complex RIs use <tt>AUTOLOAD</tt>, delegating to the RI meta object</li>
+</ul>
+<li>Only named method calls</li>
+
+<ul>
+<li>No arbitrary call concepts</li>
+<li><tt>-&gt;</tt> doesn&#39;t support anything else</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/indian-camp.jpg" align=right>
+<h1>Native runtime</h1>
+<p>
+
+</p>
+<ul>
+<li>Integrated object system</li>
+<li>RIs are compiled into packages</li>
+
+<ul>
+<li>Simple RIs are dissassembled and stuffed into the stash</li>
+<li>Complex RIs use <tt>AUTOLOAD</tt>, delegating to the RI meta object</li>
+</ul>
+<li>Only named method calls</li>
+
+<ul>
+<li>No arbitrary call concepts</li>
+<li><tt>-&gt;</tt> doesn&#39;t support anything else</li>
+</ul>
+<li>As fast as &#34;regular&#34; Perl OO</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/indian-camp.jpg" align=right>
+<h1>Native runtime</h1>
+<p>
+
+</p>
+<ul>
+<li>Integrated object system</li>
+<li>RIs are compiled into packages</li>
+
+<ul>
+<li>Simple RIs are dissassembled and stuffed into the stash</li>
+<li>Complex RIs use <tt>AUTOLOAD</tt>, delegating to the RI meta object</li>
+</ul>
+<li>Only named method calls</li>
+
+<ul>
+<li>No arbitrary call concepts</li>
+<li><tt>-&gt;</tt> doesn&#39;t support anything else</li>
+</ul>
+<li>As fast as &#34;regular&#34; Perl OO</li>
+
+<ul>
+<li>Even makes simple, standalone `.pmc`s</li>
+</ul></ul>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+
+<h1>Perl 5 Runtimes</h1>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+
+<h1>Perl 5 Runtimes</h1>
+<ul>
+<li>Native</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+
+<h1>Perl 5 Runtimes</h1>
+<ul>
+<li>Native</li>
+
+<ul>
+<li>Usable with regular Perl OO <span class="html">&#9786;</span></li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+
+<h1>Perl 5 Runtimes</h1>
+<ul>
+<li>Native</li>
+
+<ul>
+<li>Usable with regular Perl OO <span class="html">&#9786;</span></li>
+<li>Lacks arbitrary invocations <span class="html">&#9785;</span> </li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+
+<h1>Perl 5 Runtimes</h1>
+<ul>
+<li>Native</li>
+
+<ul>
+<li>Usable with regular Perl OO <span class="html">&#9786;</span></li>
+<li>Lacks arbitrary invocations <span class="html">&#9785;</span> </li>
+</ul>
+<li>Virtualized</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+
+<h1>Perl 5 Runtimes</h1>
+<ul>
+<li>Native</li>
+
+<ul>
+<li>Usable with regular Perl OO <span class="html">&#9786;</span></li>
+<li>Lacks arbitrary invocations <span class="html">&#9785;</span> </li>
+</ul>
+<li>Virtualized</li>
+
+<ul>
+<li>Feature complete <span class="html">&#9786;</span></li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+
+<h1>Perl 5 Runtimes</h1>
+<ul>
+<li>Native</li>
+
+<ul>
+<li>Usable with regular Perl OO <span class="html">&#9786;</span></li>
+<li>Lacks arbitrary invocations <span class="html">&#9785;</span> </li>
+</ul>
+<li>Virtualized</li>
+
+<ul>
+<li>Feature complete <span class="html">&#9786;</span></li>
+<li>Doesn&#39;t integrate <span class="html">&#9785;</span></li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+
+<h1>Perl 5 Runtimes</h1>
+<ul>
+<li>Native</li>
+
+<ul>
+<li>Usable with regular Perl OO <span class="html">&#9786;</span></li>
+<li>Lacks arbitrary invocations <span class="html">&#9785;</span> </li>
+</ul>
+<li>Virtualized</li>
+
+<ul>
+<li>Feature complete <span class="html">&#9786;</span></li>
+<li>Doesn&#39;t integrate <span class="html">&#9785;</span></li>
+<li>Slow <span class="html">&#9785;</span></li>
+</ul></ul>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/botticelli.venus.jpg" align=right>
+<h1>Idealized MO toolchain</h1>
+<p>
+
+</p>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/botticelli.venus.jpg" align=right>
+<h1>Idealized MO toolchain</h1>
+<p>
+
+</p>
+<ul>
+<li>Compiler handles modeling</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/botticelli.venus.jpg" align=right>
+<h1>Idealized MO toolchain</h1>
+<p>
+
+</p>
+<ul>
+<li>Compiler handles modeling</li>
+
+<ul>
+<li>Constructs meta objects at compile time</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/botticelli.venus.jpg" align=right>
+<h1>Idealized MO toolchain</h1>
+<p>
+
+</p>
+<ul>
+<li>Compiler handles modeling</li>
+
+<ul>
+<li>Constructs meta objects at compile time</li>
+</ul>
+<li>VM Opcodes support standard RI</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/botticelli.venus.jpg" align=right>
+<h1>Idealized MO toolchain</h1>
+<p>
+
+</p>
+<ul>
+<li>Compiler handles modeling</li>
+
+<ul>
+<li>Constructs meta objects at compile time</li>
+</ul>
+<li>VM Opcodes support standard RI</li>
+<li>Custom RIs are just objects</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/botticelli.venus.jpg" align=right>
+<h1>Idealized MO toolchain</h1>
+<p>
+
+</p>
+<ul>
+<li>Compiler handles modeling</li>
+
+<ul>
+<li>Constructs meta objects at compile time</li>
+</ul>
+<li>VM Opcodes support standard RI</li>
+<li>Custom RIs are just objects</li>
+
+<ul>
+<li>Bootstrapped using standard runtime objects</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/botticelli.venus.jpg" align=right>
+<h1>Idealized MO toolchain</h1>
+<p>
+
+</p>
+<ul>
+<li>Compiler handles modeling</li>
+
+<ul>
+<li>Constructs meta objects at compile time</li>
+</ul>
+<li>VM Opcodes support standard RI</li>
+<li>Custom RIs are just objects</li>
+
+<ul>
+<li>Bootstrapped using standard runtime objects</li>
+
+<ul>
+<li>Method table RI</li>
+</ul></ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/botticelli.venus.jpg" align=right>
+<h1>Idealized MO toolchain</h1>
+<p>
+
+</p>
+<ul>
+<li>Compiler handles modeling</li>
+
+<ul>
+<li>Constructs meta objects at compile time</li>
+</ul>
+<li>VM Opcodes support standard RI</li>
+<li>Custom RIs are just objects</li>
+
+<ul>
+<li>Bootstrapped using standard runtime objects</li>
+
+<ul>
+<li>Method table RI</li>
+<li>Named method invocation</li>
+</ul></ul></ul>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/lolgeeks016.jpg" align=right>
+<h1>Perl 6</h1>
+<p>
+
+</p>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/lolgeeks016.jpg" align=right>
+<h1>Perl 6</h1>
+<p>
+
+</p>
+<ul>
+<li>Perl 6 is the idealized MO toolchain</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/lolgeeks016.jpg" align=right>
+<h1>Perl 6</h1>
+<p>
+
+</p>
+<ul>
+<li>Perl 6 is the idealized MO toolchain</li>
+
+<ul>
+<li>Can introduce syntax</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/lolgeeks016.jpg" align=right>
+<h1>Perl 6</h1>
+<p>
+
+</p>
+<ul>
+<li>Perl 6 is the idealized MO toolchain</li>
+
+<ul>
+<li>Can introduce syntax</li>
+
+<ul>
+<li>Invocation types</li>
+</ul></ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/lolgeeks016.jpg" align=right>
+<h1>Perl 6</h1>
+<p>
+
+</p>
+<ul>
+<li>Perl 6 is the idealized MO toolchain</li>
+
+<ul>
+<li>Can introduce syntax</li>
+
+<ul>
+<li>Invocation types</li>
+<li>Concept declarations</li>
+</ul></ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/lolgeeks016.jpg" align=right>
+<h1>Perl 6</h1>
+<p>
+
+</p>
+<ul>
+<li>Perl 6 is the idealized MO toolchain</li>
+
+<ul>
+<li>Can introduce syntax</li>
+
+<ul>
+<li>Invocation types</li>
+<li>Concept declarations</li>
+</ul>
+<li>Implement bootstrap RIs in VM opcodes</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/lolgeeks016.jpg" align=right>
+<h1>Perl 6</h1>
+<p>
+
+</p>
+<ul>
+<li>Perl 6 is the idealized MO toolchain</li>
+
+<ul>
+<li>Can introduce syntax</li>
+
+<ul>
+<li>Invocation types</li>
+<li>Concept declarations</li>
+</ul>
+<li>Implement bootstrap RIs in VM opcodes</li>
+</ul>
+<li>Pugs might be using MO</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/lolgeeks016.jpg" align=right>
+<h1>Perl 6</h1>
+<p>
+
+</p>
+<ul>
+<li>Perl 6 is the idealized MO toolchain</li>
+
+<ul>
+<li>Can introduce syntax</li>
+
+<ul>
+<li>Invocation types</li>
+<li>Concept declarations</li>
+</ul>
+<li>Implement bootstrap RIs in VM opcodes</li>
+</ul>
+<li>Pugs might be using MO</li>
+
+<ul>
+<li>I&#39;m not really sure</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/lolgeeks016.jpg" align=right>
+<h1>Perl 6</h1>
+<p>
+
+</p>
+<ul>
+<li>Perl 6 is the idealized MO toolchain</li>
+
+<ul>
+<li>Can introduce syntax</li>
+
+<ul>
+<li>Invocation types</li>
+<li>Concept declarations</li>
+</ul>
+<li>Implement bootstrap RIs in VM opcodes</li>
+</ul>
+<li>Pugs might be using MO</li>
+
+<ul>
+<li>I&#39;m not really sure</li>
+<li>It was ported a while ago</li>
+</ul></ul>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+
+<h1>Introducing new concepts</h1>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+
+<h1>Introducing new concepts</h1>
+<ul>
+<li>Roles are the shit</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+
+<h1>Introducing new concepts</h1>
+<ul>
+<li>Roles are the shit</li>
+<li>But what about next week&#39;s fad?</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+
+<h1>Introducing new concepts</h1>
+<ul>
+<li>Roles are the shit</li>
+<li>But what about next week&#39;s fad?</li>
+<li>MO lets you introduce a new concept</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+
+<h1>Introducing new concepts</h1>
+<ul>
+<li>Roles are the shit</li>
+<li>But what about next week&#39;s fad?</li>
+<li>MO lets you introduce a new concept</li>
+
+<ul>
+<li>Arbitrary at compile time</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+
+<h1>Introducing new concepts</h1>
+<ul>
+<li>Roles are the shit</li>
+<li>But what about next week&#39;s fad?</li>
+<li>MO lets you introduce a new concept</li>
+
+<ul>
+<li>Arbitrary at compile time</li>
+<li>RI protocol at runtime</li>
+</ul></ul>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+
+<h1>Example - Prototype Objects</h1>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+
+<h1>Example - Prototype Objects</h1>
+<ul>
+<li>One shared RI</li>
+</ul>
+<pre class="vim">  sub dispatch {
+    my ( $object, $invocation ) = @_;
+
+    my $method = $object-&gt;{ $invocation-&gt;name };
+
+    $object-&gt;$method( $invocation-&gt;arguments );
+  }
+</pre>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/village_people.jpg" align=right>
+<h1>Example - Attribute Grammars</h1>
+<p>
+
+</p>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/village_people.jpg" align=right>
+<h1>Example - Attribute Grammars</h1>
+<p>
+
+</p>
+<ul>
+<li>Crazy stuff from the 1970s</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/village_people.jpg" align=right>
+<h1>Example - Attribute Grammars</h1>
+<p>
+
+</p>
+<ul>
+<li>Crazy stuff from the 1970s</li>
+<li>Renewed interest in <span class="html">&lambda;</span> land </li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/village_people.jpg" align=right>
+<h1>Example - Attribute Grammars</h1>
+<p>
+
+</p>
+<ul>
+<li>Crazy stuff from the 1970s</li>
+<li>Renewed interest in <span class="html">&lambda;</span> land </li>
+<li>Was pretty easy in MO</li>
+</ul>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/grammar.gif" align=right>
+<h1>Attribute Grammer Implementation</h1>
+<p>
+
+</p>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/grammar.gif" align=right>
+<h1>Attribute Grammer Implementation</h1>
+<p>
+
+</p>
+<ul>
+<li>Introduce new concept objects</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/grammar.gif" align=right>
+<h1>Attribute Grammer Implementation</h1>
+<p>
+
+</p>
+<ul>
+<li>Introduce new concept objects</li>
+
+<ul>
+<li>Attribute Grammar</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/grammar.gif" align=right>
+<h1>Attribute Grammer Implementation</h1>
+<p>
+
+</p>
+<ul>
+<li>Introduce new concept objects</li>
+
+<ul>
+<li>Attribute Grammar</li>
+<li>Attribute Grammer Instance - one per AG per class</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/grammar.gif" align=right>
+<h1>Attribute Grammer Implementation</h1>
+<p>
+
+</p>
+<ul>
+<li>Introduce new concept objects</li>
+
+<ul>
+<li>Attribute Grammar</li>
+<li>Attribute Grammer Instance - one per AG per class</li>
+</ul>
+<li>Runtime specialized RI</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/grammar.gif" align=right>
+<h1>Attribute Grammer Implementation</h1>
+<p>
+
+</p>
+<ul>
+<li>Introduce new concept objects</li>
+
+<ul>
+<li>Attribute Grammar</li>
+<li>Attribute Grammer Instance - one per AG per class</li>
+</ul>
+<li>Runtime specialized RI</li>
+
+<ul>
+<li>Shadows any RI with additional context sensitive methods</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/grammar.gif" align=right>
+<h1>Attribute Grammer Implementation</h1>
+<p>
+
+</p>
+<ul>
+<li>Introduce new concept objects</li>
+
+<ul>
+<li>Attribute Grammar</li>
+<li>Attribute Grammer Instance - one per AG per class</li>
+</ul>
+<li>Runtime specialized RI</li>
+
+<ul>
+<li>Shadows any RI with additional context sensitive methods</li>
+</ul>
+<li>Additional runtime support code</li>
+</ul>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/checklist.jpg" align=right>
+<h1>MO TODO</h1>
+<p>
+
+</p>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/checklist.jpg" align=right>
+<h1>MO TODO</h1>
+<p>
+
+</p>
+<ul>
+<li>Write a sugar layer</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/checklist.jpg" align=right>
+<h1>MO TODO</h1>
+<p>
+
+</p>
+<ul>
+<li>Write a sugar layer</li>
+
+<ul>
+<li>Make it fun to use</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/checklist.jpg" align=right>
+<h1>MO TODO</h1>
+<p>
+
+</p>
+<ul>
+<li>Write a sugar layer</li>
+
+<ul>
+<li>Make it fun to use</li>
+</ul>
+<li>Tests</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/checklist.jpg" align=right>
+<h1>MO TODO</h1>
+<p>
+
+</p>
+<ul>
+<li>Write a sugar layer</li>
+
+<ul>
+<li>Make it fun to use</li>
+</ul>
+<li>Tests</li>
+<li>Refactor the Class objects</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/checklist.jpg" align=right>
+<h1>MO TODO</h1>
+<p>
+
+</p>
+<ul>
+<li>Write a sugar layer</li>
+
+<ul>
+<li>Make it fun to use</li>
+</ul>
+<li>Tests</li>
+<li>Refactor the Class objects</li>
+
+<ul>
+<li>Bloated example code</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/checklist.jpg" align=right>
+<h1>MO TODO</h1>
+<p>
+
+</p>
+<ul>
+<li>Write a sugar layer</li>
+
+<ul>
+<li>Make it fun to use</li>
+</ul>
+<li>Tests</li>
+<li>Refactor the Class objects</li>
+
+<ul>
+<li>Bloated example code</li>
+<li>There are some patterns to extract</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/checklist.jpg" align=right>
+<h1>MO TODO</h1>
+<p>
+
+</p>
+<ul>
+<li>Write a sugar layer</li>
+
+<ul>
+<li>Make it fun to use</li>
+</ul>
+<li>Tests</li>
+<li>Refactor the Class objects</li>
+
+<ul>
+<li>Bloated example code</li>
+<li>There are some patterns to extract</li>
+</ul>
+<li>Self hosting</li>
+</ul>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+
+<h1>Self Hosting</h1>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+
+<h1>Self Hosting</h1>
+<ul>
+<li>Easier to maintain MO written in Moose</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+
+<h1>Self Hosting</h1>
+<ul>
+<li>Easier to maintain MO written in Moose</li>
+<li>Need to have clean syntax</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+
+<h1>Self Hosting</h1>
+<ul>
+<li>Easier to maintain MO written in Moose</li>
+<li>Need to have clean syntax</li>
+<li>Stable <tt>.pmc</tt> compilation</li>
+</ul>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/istockphoto_2540021_painted_exclamation_mark.jpg" align=right>
+<h1>Conclusion</h1>
+<p>
+
+</p>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/istockphoto_2540021_painted_exclamation_mark.jpg" align=right>
+<h1>Conclusion</h1>
+<p>
+
+</p>
+<ul>
+<li>Meta code is awesome code</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/istockphoto_2540021_painted_exclamation_mark.jpg" align=right>
+<h1>Conclusion</h1>
+<p>
+
+</p>
+<ul>
+<li>Meta code is awesome code</li>
+
+<ul>
+<li>Especially my meta code ;-&#41;</li>
+</ul></ul>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/istockphoto_2540021_painted_exclamation_mark.jpg" align=right>
+<h1>Conclusion</h1>
+<p>
+
+</p>
+<ul>
+<li>Meta code is awesome code</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/istockphoto_2540021_painted_exclamation_mark.jpg" align=right>
+<h1>Conclusion</h1>
+<p>
+
+</p>
+<ul>
+<li>Meta code is awesome code</li>
+
+<ul>
+<li>Lets you program in new ways</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/istockphoto_2540021_painted_exclamation_mark.jpg" align=right>
+<h1>Conclusion</h1>
+<p>
+
+</p>
+<ul>
+<li>Meta code is awesome code</li>
+
+<ul>
+<li>Lets you program in new ways</li>
+<li>Helps you take care of your other code</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/istockphoto_2540021_painted_exclamation_mark.jpg" align=right>
+<h1>Conclusion</h1>
+<p>
+
+</p>
+<ul>
+<li>Meta code is awesome code</li>
+
+<ul>
+<li>Lets you program in new ways</li>
+<li>Helps you take care of your other code</li>
+</ul>
+<li>Meta code is important code</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/istockphoto_2540021_painted_exclamation_mark.jpg" align=right>
+<h1>Conclusion</h1>
+<p>
+
+</p>
+<ul>
+<li>Meta code is awesome code</li>
+
+<ul>
+<li>Lets you program in new ways</li>
+<li>Helps you take care of your other code</li>
+</ul>
+<li>Meta code is important code</li>
+
+<ul>
+<li>It can affect <strong>anything</strong></li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/istockphoto_2540021_painted_exclamation_mark.jpg" align=right>
+<h1>Conclusion</h1>
+<p>
+
+</p>
+<ul>
+<li>Meta code is awesome code</li>
+
+<ul>
+<li>Lets you program in new ways</li>
+<li>Helps you take care of your other code</li>
+</ul>
+<li>Meta code is important code</li>
+
+<ul>
+<li>It can affect <strong>anything</strong></li>
+<li>Keep it minimalistic, and clearly defined</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/istockphoto_2540021_painted_exclamation_mark.jpg" align=right>
+<h1>Conclusion</h1>
+<p>
+
+</p>
+<ul>
+<li>Meta code is awesome code</li>
+
+<ul>
+<li>Lets you program in new ways</li>
+<li>Helps you take care of your other code</li>
+</ul>
+<li>Meta code is important code</li>
+
+<ul>
+<li>It can affect <strong>anything</strong></li>
+<li>Keep it minimalistic, and clearly defined</li>
+<li>No spaghetti monsters</li>
+</ul></ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/istockphoto_2540021_painted_exclamation_mark.jpg" align=right>
+<h1>Conclusion</h1>
+<p>
+
+</p>
+<ul>
+<li>Meta code is awesome code</li>
+
+<ul>
+<li>Lets you program in new ways</li>
+<li>Helps you take care of your other code</li>
+</ul>
+<li>Meta code is important code</li>
+
+<ul>
+<li>It can affect <strong>anything</strong></li>
+<li>Keep it minimalistic, and clearly defined</li>
+<li>No spaghetti monsters</li>
+</ul>
+<li>Meta code can be simple</li>
+</ul>
+<small>continued...</small>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/istockphoto_2540021_painted_exclamation_mark.jpg" align=right>
+<h1>Conclusion</h1>
+<p>
+
+</p>
+<ul>
+<li>Meta code is awesome code</li>
+
+<ul>
+<li>Lets you program in new ways</li>
+<li>Helps you take care of your other code</li>
+</ul>
+<li>Meta code is important code</li>
+
+<ul>
+<li>It can affect <strong>anything</strong></li>
+<li>Keep it minimalistic, and clearly defined</li>
+<li>No spaghetti monsters</li>
+</ul>
+<li>Meta code can be simple</li>
+
+<ul>
+<li>Only complicated if you aren&#39;t careful</li>
+</ul></ul>
+
+</div>
+<!-- END slide -->
+
+
+<!-- BEGIN slide -->
+<div class="slide">
+<img name="img" id="img" width="350" src="images/thanks.jpg" align=right>
+<h1>BIE FRENDS</h1>
+<p>
+
+</p>
+
+</div>
+<!-- END slide -->
+
+
+</body>
+</html>
+<!-- END s5 -->