com presentations: PHPConf.Asia workshop finish: php-ext-asia18.xml slides/internals/Polar_to_cartesian.svg slides/internal s/coordinates.xml slides/internals/debug.xml slides/int ernals/exercise-steps.xml slides/internals/exercise.xml

[email protected] (Derick Rethans) Fri, 28 Sep 2018 06:13:35 +0000
Newsgroups php.pres
Message-ID <[email protected]>
Commit:    1b5585e4b3fa8941efe69456aa214a44122f47e4
Author:    Derick Rethans <[email protected]>         Fri, 28 Sep 2018 14:13:35 +0800
Parents:   6b811fbda3055f7e303e5b8c2e34de93cc7cc0d6
Branches:  master

Link:       http://git.php.net/?p=presentations.git;a=commitdiff;h=1b5585e4b3fa8941efe69456aa214a44122f47e4

Log:
PHPConf.Asia workshop finish

Changed paths:
  M  php-ext-asia18.xml
  A  slides/internals/Polar_to_cartesian.svg
  A  slides/internals/coordinates.xml
  A  slides/internals/debug.xml
  A  slides/internals/exercise-steps.xml
  A  slides/internals/exercise.xml
diff_1b5585e4b3fa8941efe69456aa214a44122f47e4.txt (text/plain, 29.8 KB)
diff --git a/php-ext-asia18.xml b/php-ext-asia18.xml
index 4aae017..bcb7114 100644
--- a/php-ext-asia18.xml
+++ b/php-ext-asia18.xml
@@ -55,6 +55,11 @@
 
 <slide>slides/internals/debug.xml</slide>
 
+<slide>slides/internals/exercise.xml</slide>
+<slide>slides/internals/coordinates.xml</slide>
+<slide>slides/internals/exercise-steps.xml</slide>
+
+
 <slide>slides/mongodb/questions.xml</slide>
 <slide>slides/mongodb/resources.xml</slide>
 </presentation>
diff --git a/slides/internals/Polar_to_cartesian.svg b/slides/internals/Polar_to_cartesian.svg
new file mode 100644
index 0000000..b814e0d
--- /dev/null
+++ b/slides/internals/Polar_to_cartesian.svg
@@ -0,0 +1,488 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:ns0="http://www.iki.fi/pav/software/textext/"
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="343pt"
+   height="340pt"
+   id="svg2160"
+   sodipodi:version="0.32"
+   inkscape:version="0.48.4 r9939"
+   sodipodi:modified="true"
+   version="1.1"
+   sodipodi:docname="Polar_to_cartesian.svg">
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="1.2235294"
+     inkscape:cx="214.375"
+     inkscape:cy="212.5"
+     inkscape:document-units="pt"
+     inkscape:current-layer="layer1"
+     id="namedview2164"
+     inkscape:window-width="1920"
+     inkscape:window-height="1056"
+     inkscape:window-x="0"
+     inkscape:window-y="24"
+     showgrid="false"
+     inkscape:window-maximized="1" />
+  <defs
+     id="defs2162" />
+  <metadata
+     id="metadata2166">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:groupmode="layer"
+     inkscape:label="Layer 1">
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#9d1717;stroke-width:3.995;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="M 389.44712,361.52091 L 389.44712,144.39255"
+       id="path3150" />
+    <path
+       id="path2169"
+       d="M 70.288462,22.011705 L 70.288462,423.42098"
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.44376445;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.47081947;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="M 414.40401,365.33654 L 4.0575336,365.33654"
+       id="path2171" />
+    <path
+       id="path3144"
+       d="M 70.288462,364.51923 L 389.85577,143.84615"
+       style="fill:none;fill-rule:evenodd;stroke:#040594;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" />
+    <path
+       transform="matrix(8.3642488e-2,0,0,2.7966767e-2,374.5771,139.41224)"
+       d="M 214.95192 213.31731 A 42.5 132.40384 0 1 1  129.95192,213.31731 A 42.5 132.40384 0 1 1  214.95192 213.31731 z"
+       sodipodi:ry="132.40384"
+       sodipodi:rx="42.5"
+       sodipodi:cy="213.31731"
+       sodipodi:cx="172.45192"
+       id="path3146"
+       style="opacity:1;fill:#06060c;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       sodipodi:type="arc" />
+    <path
+       id="path3148"
+       d="M 388.50307,363.70192 L 72.458472,363.70192"
+       style="fill:none;fill-rule:evenodd;stroke:#9d1717;stroke-width:4.4325;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+    <path
+       id="path3152"
+       d="M 368.11058,362.76575 L 368.11058,342.57078"
+       style="fill:none;fill-rule:evenodd;stroke:#9d1717;stroke-width:2.7125001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#9d1717;stroke-width:2.7125001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="M 368.0131,340.66827 L 388.20807,340.66827"
+       id="path3154" />
+    <path
+       sodipodi:open="true"
+       sodipodi:end="0.58835027"
+       sodipodi:start="0"
+       transform="matrix(1,0,0,-1,-89.365385,543.11474)"
+       d="M 218.22116,181.44231 A 51.490383,52.307693 0 0 1 209.56343,210.47252"
+       sodipodi:ry="52.307693"
+       sodipodi:rx="51.490383"
+       sodipodi:cy="181.44231"
+       sodipodi:cx="166.73077"
+       id="path3156"
+       style="opacity:1;fill:none;fill-opacity:1;stroke:#0a0707;stroke-width:2.7125001;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       sodipodi:type="arc" />
+    <path
+       transform="matrix(8.2123962e-2,8.6727555e-2,-2.211263e-2,0.3220969,80.963039,0.1018054)"
+       d="M -64.567314,98.07692 L -102.00996,108.25213 L -139.4526,118.42735 L -129.54327,80.913459 L -119.63395,43.399572 L -92.100629,70.738246 L -64.567314,98.07692 z "
+       inkscape:randomized="0"
+       inkscape:rounded="0"
+       inkscape:flatsided="false"
+       sodipodi:arg2="1.3054498"
+       sodipodi:arg1="0.25825222"
+       sodipodi:r2="22.401537"
+       sodipodi:r1="44.803074"
+       sodipodi:cy="86.634613"
+       sodipodi:cx="-107.88462"
+       sodipodi:sides="3"
+       id="path3170"
+       style="opacity:1;fill:#06060c;fill-opacity:1;stroke:none;stroke-width:2.7125001;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       sodipodi:type="star" />
+    <text
+       transform="scale(0.9104956,1.0983029)"
+       sodipodi:linespacing="125%"
+       id="text3172"
+       y="214.31668"
+       x="246.74461"
+       style="font-size:58.42762756px;font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman"
+       xml:space="preserve"><tspan
+         y="214.31668"
+         x="246.74461"
+         id="tspan3174"
+         sodipodi:role="line">r</tspan></text>
+    <text
+       transform="scale(0.9753057,1.0253196)"
+       sodipodi:linespacing="125%"
+       id="text3176"
+       y="383.98767"
+       x="389.45605"
+       style="font-size:50.53984451px;font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman"
+       xml:space="preserve"><tspan
+         y="383.98767"
+         x="389.45605"
+         id="tspan3178"
+         sodipodi:role="line">x</tspan></text>
+    <text
+       transform="scale(1.0335003,0.9675856)"
+       sodipodi:linespacing="125%"
+       id="text3180"
+       y="46.800858"
+       x="41.128345"
+       style="font-size:46.91788101px;font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman"
+       xml:space="preserve"><tspan
+         y="46.800858"
+         x="41.128345"
+         id="tspan3182"
+         sodipodi:role="line">y</tspan></text>
+    <path
+       sodipodi:type="star"
+       style="opacity:1;fill:#06060c;fill-opacity:1;stroke:none;stroke-width:2.7125001;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="path3184"
+       sodipodi:sides="3"
+       sodipodi:cx="-107.88462"
+       sodipodi:cy="86.634613"
+       sodipodi:r1="44.803074"
+       sodipodi:r2="22.401537"
+       sodipodi:arg1="0.25825222"
+       sodipodi:arg2="1.3054498"
+       inkscape:flatsided="false"
+       inkscape:rounded="0"
+       inkscape:randomized="0"
+       d="M -64.567314,98.07692 L -102.00996,108.25213 L -139.4526,118.42735 L -129.54327,80.913459 L -119.63395,43.399572 L -92.100629,70.738246 L -64.567314,98.07692 z "
+       transform="matrix(-8.6727555e-2,8.2123962e-2,-0.3220969,-2.211263e-2,432.37461,376.325)" />
+    <g
+       id="g3359"
+       ns0:preamble=""
+       ns0:text="$\\varphi$"
+       transform="matrix(4.8576649,0,0,4.8576649,-942.32649,-311.22354)">
+      <defs
+         id="defs3361">
+        <g
+           id="g3363">
+          <symbol
+             id="textext-6925c2c1-0"
+             overflow="visible"
+             style="overflow:visible">
+            <path
+               id="path3366"
+               d=""
+               style="stroke:none"
+               inkscape:connector-curvature="0" />
+          </symbol>
+          <symbol
+             id="textext-6925c2c1-1"
+             overflow="visible"
+             style="overflow:visible">
+            <path
+               id="path3369"
+               d="M 1.6875,1.6875 C 1.65625,1.828125 1.640625,1.84375 1.640625,1.890625 c 0,0.21875 0.1875,0.28125 0.296875,0.28125 0.046875,0 0.265625,-0.03125 0.359375,-0.265625 C 2.328125,1.828125 2.375,1.5 2.65625,0.09375 c 0.078125,0 0.15625,0.015625 0.328125,0.015625 1.65625,0 3.1875,-1.5625 3.1875,-3.140625 0,-0.78125 -0.390625,-1.375 -1.140625,-1.375 -1.4375,0 -2.046875,1.9375 -2.640625,3.875 C 1.3125,-0.734375 0.75,-1.28125 0.75,-2 c 0,-0.28125 0.234375,-1.375 0.828125,-2.0625 0.09375,-0.09375 0.09375,-0.109375 0.09375,-0.140625 0,-0.03125 -0.03125,-0.09375 -0.125,-0.09375 -0.28125,0 -1.046875,1.453125 -1.046875,2.40625 0,0.9375 0.65625,1.65625 1.71875,1.90625 z m 1.390625,-2.15625 c -0.09375,0 -0.109375,0 -0.1875,-0.015625 -0.125,0 -0.125,0 -0.125,-0.03125 0,-0.015625 0.171875,-0.9375 0.1875,-1.078125 0.3125,-1.28125 1.09375,-2.234375 1.984375,-2.234375 0.6875,0 0.953125,0.53125 0.953125,1.015625 0,1.125 -1.28125,2.34375 -2.8125,2.34375 z m 0,0"
+               style="stroke:none"
+               inkscape:connector-curvature="0" />
+          </symbol>
+        </g>
+      </defs>
+      <g
+         id="textext-6925c2c1-2">
+        <g
+           id="g3372"
+           style="fill:#000000;fill-opacity:1">
+          <use
+             id="use3374"
+             y="134.765"
+             x="223.43201"
+             xlink:href="#textext-6925c2c1-1"
+             width="428.75"
+             height="425" />
+        </g>
+      </g>
+    </g>
+    <g
+       ns0:text="$r \\cos \\varphi$"
+       ns0:preamble=""
+       transform="matrix(3.7032852,0,0,3.7032852,-641.41959,-105.67994)"
+       id="g3491">
+      <defs
+         id="defs3493">
+        <g
+           id="g3495">
+          <symbol
+             style="overflow:visible"
+             overflow="visible"
+             id="textext-6637ec56-0">
+            <path
+               inkscape:connector-curvature="0"
+               style="stroke:none"
+               d=""
+               id="path3498" />
+          </symbol>
+          <symbol
+             style="overflow:visible"
+             overflow="visible"
+             id="textext-6637ec56-1">
+            <path
+               inkscape:connector-curvature="0"
+               style="stroke:none"
+               d="m 0.875,-0.59375 c -0.03125,0.15625 -0.09375,0.390625 -0.09375,0.4375 0,0.171875 0.140625,0.265625 0.296875,0.265625 0.125,0 0.296875,-0.078125 0.375,-0.28125 C 1.46875,-0.203125 1.796875,-1.5625 1.84375,-1.75 c 0.078125,-0.328125 0.265625,-1.015625 0.3125,-1.296875 0.046875,-0.125 0.328125,-0.59375 0.5625,-0.8125 0.078125,-0.0625 0.375,-0.328125 0.796875,-0.328125 0.265625,0 0.40625,0.125 0.421875,0.125 -0.296875,0.046875 -0.515625,0.28125 -0.515625,0.546875 0,0.15625 0.109375,0.34375 0.375,0.34375 0.265625,0 0.546875,-0.234375 0.546875,-0.59375 0,-0.34375 -0.3125,-0.640625 -0.828125,-0.640625 C 2.875,-4.40625 2.4375,-3.921875 2.25,-3.640625 2.15625,-4.09375 1.796875,-4.40625 1.328125,-4.40625 0.875,-4.40625 0.6875,-4.015625 0.59375,-3.84375 0.421875,-3.5 0.296875,-2.90625 0.296875,-2.875 c 0,0.109375 0.09375,0.109375 0.109375,0.109375 0.109375,0 0.109375,-0.015625 0.171875,-0.234375 0.171875,-0.703125 0.375,-1.1875 0.734375,-1.1875 0.15625,0 0.296875,0.078125 0.296875,0.453125 0,0.21875 -0.03125,0.328125 -0.15625,0.84375 z m 0,0"
+               id="path3501" />
+          </symbol>
+          <symbol
+             style="overflow:visible"
+             overflow="visible"
+             id="textext-6637ec56-2">
+            <path
+               inkscape:connector-curvature="0"
+               style="stroke:none"
+               d="M 1.6875,1.6875 C 1.65625,1.828125 1.640625,1.84375 1.640625,1.890625 c 0,0.21875 0.1875,0.28125 0.296875,0.28125 0.046875,0 0.265625,-0.03125 0.359375,-0.265625 C 2.328125,1.828125 2.375,1.5 2.65625,0.09375 c 0.078125,0 0.15625,0.015625 0.328125,0.015625 1.65625,0 3.1875,-1.5625 3.1875,-3.140625 0,-0.78125 -0.390625,-1.375 -1.140625,-1.375 -1.4375,0 -2.046875,1.9375 -2.640625,3.875 C 1.3125,-0.734375 0.75,-1.28125 0.75,-2 c 0,-0.28125 0.234375,-1.375 0.828125,-2.0625 0.09375,-0.09375 0.09375,-0.109375 0.09375,-0.140625 0,-0.03125 -0.03125,-0.09375 -0.125,-0.09375 -0.28125,0 -1.046875,1.453125 -1.046875,2.40625 0,0.9375 0.65625,1.65625 1.71875,1.90625 z m 1.390625,-2.15625 c -0.09375,0 -0.109375,0 -0.1875,-0.015625 -0.125,0 -0.125,0 -0.125,-0.03125 0,-0.015625 0.171875,-0.9375 0.1875,-1.078125 0.3125,-1.28125 1.09375,-2.234375 1.984375,-2.234375 0.6875,0 0.953125,0.53125 0.953125,1.015625 0,1.125 -1.28125,2.34375 -2.8125,2.34375 z m 0,0"
+               id="path3504" />
+          </symbol>
+          <symbol
+             style="overflow:visible"
+             overflow="visible"
+             id="textext-6637ec56-3">
+            <path
+               inkscape:connector-curvature="0"
+               style="stroke:none"
+               d=""
+               id="path3507" />
+          </symbol>
+          <symbol
+             style="overflow:visible"
+             overflow="visible"
+             id="textext-6637ec56-4">
+            <path
+               inkscape:connector-curvature="0"
+               style="stroke:none"
+               d="m 1.171875,-2.171875 c 0,-1.625 0.8125,-2.046875 1.34375,-2.046875 0.09375,0 0.71875,0.015625 1.0625,0.375 -0.40625,0.03125 -0.46875,0.328125 -0.46875,0.453125 0,0.265625 0.1875,0.453125 0.453125,0.453125 0.265625,0 0.46875,-0.15625 0.46875,-0.46875 0,-0.671875 -0.765625,-1.0625 -1.53125,-1.0625 -1.25,0 -2.15625,1.078125 -2.15625,2.3125 0,1.28125 0.984375,2.265625 2.140625,2.265625 1.328125,0 1.65625,-1.203125 1.65625,-1.296875 0,-0.09375 -0.109375,-0.09375 -0.140625,-0.09375 -0.078125,0 -0.109375,0.03125 -0.125,0.09375 -0.28125,0.921875 -0.9375,1.046875 -1.296875,1.046875 -0.53125,0 -1.40625,-0.421875 -1.40625,-2.03125 z m 0,0"
+               id="path3510" />
+          </symbol>
+          <symbol
+             style="overflow:visible"
+             overflow="visible"
+             id="textext-6637ec56-5">
+            <path
+               inkscape:connector-curvature="0"
+               style="stroke:none"
+               d="M 4.6875,-2.140625 C 4.6875,-3.40625 3.703125,-4.46875 2.5,-4.46875 c -1.25,0 -2.21875,1.09375 -2.21875,2.328125 0,1.296875 1.03125,2.25 2.203125,2.25 1.203125,0 2.203125,-0.984375 2.203125,-2.25 z m -2.1875,2 c -0.4375,0 -0.875,-0.203125 -1.140625,-0.671875 -0.25,-0.4375 -0.25,-1.046875 -0.25,-1.40625 0,-0.390625 0,-0.921875 0.234375,-1.359375 C 1.609375,-4.03125 2.078125,-4.25 2.484375,-4.25 c 0.4375,0 0.859375,0.21875 1.125,0.65625 0.265625,0.421875 0.265625,1 0.265625,1.375 0,0.359375 0,0.90625 -0.21875,1.34375 C 3.421875,-0.421875 2.984375,-0.140625 2.5,-0.140625 z m 0,0"
+               id="path3513" />
+          </symbol>
+          <symbol
+             style="overflow:visible"
+             overflow="visible"
+             id="textext-6637ec56-6">
+            <path
+               inkscape:connector-curvature="0"
+               style="stroke:none"
+               d="m 2.078125,-1.9375 c 0.21875,0.046875 1.03125,0.203125 1.03125,0.921875 0,0.5 -0.34375,0.90625 -1.125,0.90625 -0.84375,0 -1.203125,-0.5625 -1.390625,-1.421875 C 0.5625,-1.65625 0.5625,-1.6875 0.453125,-1.6875 c -0.125,0 -0.125,0.0625 -0.125,0.234375 l 0,1.328125 c 0,0.171875 0,0.234375 0.109375,0.234375 0.046875,0 0.0625,-0.015625 0.25,-0.203125 0.015625,-0.015625 0.015625,-0.03125 0.203125,-0.21875 0.4375,0.40625 0.890625,0.421875 1.09375,0.421875 1.140625,0 1.609375,-0.671875 1.609375,-1.390625 0,-0.515625 -0.296875,-0.828125 -0.421875,-0.9375 C 2.84375,-2.546875 2.453125,-2.625 2.03125,-2.703125 1.46875,-2.8125 0.8125,-2.9375 0.8125,-3.515625 c 0,-0.359375 0.25,-0.765625 1.109375,-0.765625 1.09375,0 1.15625,0.90625 1.171875,1.203125 0,0.09375 0.09375,0.09375 0.109375,0.09375 0.140625,0 0.140625,-0.046875 0.140625,-0.234375 l 0,-1.015625 c 0,-0.15625 0,-0.234375 -0.109375,-0.234375 -0.046875,0 -0.078125,0 -0.203125,0.125 -0.03125,0.03125 -0.125,0.125 -0.171875,0.15625 -0.375,-0.28125 -0.78125,-0.28125 -0.9375,-0.28125 -1.21875,0 -1.59375,0.671875 -1.59375,1.234375 0,0.34375 0.15625,0.625 0.421875,0.84375 0.328125,0.25 0.609375,0.3125 1.328125,0.453125 z m 0,0"
+               id="path3516" />
+          </symbol>
+        </g>
+      </defs>
+      <g
+         id="textext-6637ec56-7">
+        <g
+           style="fill:#000000;fill-opacity:1"
+           id="g3519">
+          <use
+             height="425"
+             width="428.75"
+             xlink:href="#textext-6637ec56-1"
+             x="223.43201"
+             y="134.765"
+             id="use3521" />
+        </g>
+        <g
+           style="fill:#000000;fill-opacity:1"
+           id="g3523">
+          <use
+             height="425"
+             width="428.75"
+             xlink:href="#textext-6637ec56-4"
+             x="229.864"
+             y="134.765"
+             id="use3525" />
+          <use
+             height="425"
+             width="428.75"
+             xlink:href="#textext-6637ec56-5"
+             x="234.29138"
+             y="134.765"
+             id="use3527" />
+          <use
+             height="425"
+             width="428.75"
+             xlink:href="#textext-6637ec56-6"
+             x="239.27267"
+             y="134.765"
+             id="use3529" />
+        </g>
+        <g
+           style="fill:#000000;fill-opacity:1"
+           id="g3531">
+          <use
+             height="425"
+             width="428.75"
+             xlink:href="#textext-6637ec56-2"
+             x="244.86301"
+             y="134.765"
+             id="use3533" />
+        </g>
+      </g>
+    </g>
+    <g
+       id="g3746"
+       transform="matrix(0,3.7032852,-3.7032852,0,901.43144,-626.12243)"
+       ns0:preamble=""
+       ns0:text="$r \\sin \\varphi$">
+      <defs
+         id="defs3748">
+        <g
+           id="g3750">
+          <symbol
+             id="textext-e7aa8506-0"
+             overflow="visible"
+             style="overflow:visible">
+            <path
+               id="path3753"
+               d=""
+               style="stroke:none"
+               inkscape:connector-curvature="0" />
+          </symbol>
+          <symbol
+             id="textext-e7aa8506-1"
+             overflow="visible"
+             style="overflow:visible">
+            <path
+               id="path3756"
+               d="m 0.875,-0.59375 c -0.03125,0.15625 -0.09375,0.390625 -0.09375,0.4375 0,0.171875 0.140625,0.265625 0.296875,0.265625 0.125,0 0.296875,-0.078125 0.375,-0.28125 C 1.46875,-0.203125 1.796875,-1.5625 1.84375,-1.75 c 0.078125,-0.328125 0.265625,-1.015625 0.3125,-1.296875 0.046875,-0.125 0.328125,-0.59375 0.5625,-0.8125 0.078125,-0.0625 0.375,-0.328125 0.796875,-0.328125 0.265625,0 0.40625,0.125 0.421875,0.125 -0.296875,0.046875 -0.515625,0.28125 -0.515625,0.546875 0,0.15625 0.109375,0.34375 0.375,0.34375 0.265625,0 0.546875,-0.234375 0.546875,-0.59375 0,-0.34375 -0.3125,-0.640625 -0.828125,-0.640625 C 2.875,-4.40625 2.4375,-3.921875 2.25,-3.640625 2.15625,-4.09375 1.796875,-4.40625 1.328125,-4.40625 0.875,-4.40625 0.6875,-4.015625 0.59375,-3.84375 0.421875,-3.5 0.296875,-2.90625 0.296875,-2.875 c 0,0.109375 0.09375,0.109375 0.109375,0.109375 0.109375,0 0.109375,-0.015625 0.171875,-0.234375 0.171875,-0.703125 0.375,-1.1875 0.734375,-1.1875 0.15625,0 0.296875,0.078125 0.296875,0.453125 0,0.21875 -0.03125,0.328125 -0.15625,0.84375 z m 0,0"
+               style="stroke:none"
+               inkscape:connector-curvature="0" />
+          </symbol>
+          <symbol
+             id="textext-e7aa8506-2"
+             overflow="visible"
+             style="overflow:visible">
+            <path
+               id="path3759"
+               d="M 1.6875,1.6875 C 1.65625,1.828125 1.640625,1.84375 1.640625,1.890625 c 0,0.21875 0.1875,0.28125 0.296875,0.28125 0.046875,0 0.265625,-0.03125 0.359375,-0.265625 C 2.328125,1.828125 2.375,1.5 2.65625,0.09375 c 0.078125,0 0.15625,0.015625 0.328125,0.015625 1.65625,0 3.1875,-1.5625 3.1875,-3.140625 0,-0.78125 -0.390625,-1.375 -1.140625,-1.375 -1.4375,0 -2.046875,1.9375 -2.640625,3.875 C 1.3125,-0.734375 0.75,-1.28125 0.75,-2 c 0,-0.28125 0.234375,-1.375 0.828125,-2.0625 0.09375,-0.09375 0.09375,-0.109375 0.09375,-0.140625 0,-0.03125 -0.03125,-0.09375 -0.125,-0.09375 -0.28125,0 -1.046875,1.453125 -1.046875,2.40625 0,0.9375 0.65625,1.65625 1.71875,1.90625 z m 1.390625,-2.15625 c -0.09375,0 -0.109375,0 -0.1875,-0.015625 -0.125,0 -0.125,0 -0.125,-0.03125 0,-0.015625 0.171875,-0.9375 0.1875,-1.078125 0.3125,-1.28125 1.09375,-2.234375 1.984375,-2.234375 0.6875,0 0.953125,0.53125 0.953125,1.015625 0,1.125 -1.28125,2.34375 -2.8125,2.34375 z m 0,0"
+               style="stroke:none"
+               inkscape:connector-curvature="0" />
+          </symbol>
+          <symbol
+             id="textext-e7aa8506-3"
+             overflow="visible"
+             style="overflow:visible">
+            <path
+               id="path3762"
+               d=""
+               style="stroke:none"
+               inkscape:connector-curvature="0" />
+          </symbol>
+          <symbol
+             id="textext-e7aa8506-4"
+             overflow="visible"
+             style="overflow:visible">
+            <path
+               id="path3765"
+               d="m 2.078125,-1.9375 c 0.21875,0.046875 1.03125,0.203125 1.03125,0.921875 0,0.5 -0.34375,0.90625 -1.125,0.90625 -0.84375,0 -1.203125,-0.5625 -1.390625,-1.421875 C 0.5625,-1.65625 0.5625,-1.6875 0.453125,-1.6875 c -0.125,0 -0.125,0.0625 -0.125,0.234375 l 0,1.328125 c 0,0.171875 0,0.234375 0.109375,0.234375 0.046875,0 0.0625,-0.015625 0.25,-0.203125 0.015625,-0.015625 0.015625,-0.03125 0.203125,-0.21875 0.4375,0.40625 0.890625,0.421875 1.09375,0.421875 1.140625,0 1.609375,-0.671875 1.609375,-1.390625 0,-0.515625 -0.296875,-0.828125 -0.421875,-0.9375 C 2.84375,-2.546875 2.453125,-2.625 2.03125,-2.703125 1.46875,-2.8125 0.8125,-2.9375 0.8125,-3.515625 c 0,-0.359375 0.25,-0.765625 1.109375,-0.765625 1.09375,0 1.15625,0.90625 1.171875,1.203125 0,0.09375 0.09375,0.09375 0.109375,0.09375 0.140625,0 0.140625,-0.046875 0.140625,-0.234375 l 0,-1.015625 c 0,-0.15625 0,-0.234375 -0.109375,-0.234375 -0.046875,0 -0.078125,0 -0.203125,0.125 -0.03125,0.03125 -0.125,0.125 -0.171875,0.15625 -0.375,-0.28125 -0.78125,-0.28125 -0.9375,-0.28125 -1.21875,0 -1.59375,0.671875 -1.59375,1.234375 0,0.34375 0.15625,0.625 0.421875,0.84375 0.328125,0.25 0.609375,0.3125 1.328125,0.453125 z m 0,0"
+               style="stroke:none"
+               inkscape:connector-curvature="0" />
+          </symbol>
+          <symbol
+             id="textext-e7aa8506-5"
+             overflow="visible"
+             style="overflow:visible">
+            <path
+               id="path3768"
+               d="M 1.765625,-4.40625 0.375,-4.296875 l 0,0.3125 c 0.640625,0 0.734375,0.0625 0.734375,0.546875 l 0,2.6875 c 0,0.4375 -0.109375,0.4375 -0.78125,0.4375 l 0,0.3125 C 0.640625,-0.015625 1.1875,-0.03125 1.421875,-0.03125 1.78125,-0.03125 2.125,-0.015625 2.46875,0 l 0,-0.3125 c -0.671875,0 -0.703125,-0.046875 -0.703125,-0.4375 z m 0.03125,-1.734375 c 0,-0.3125 -0.234375,-0.53125 -0.515625,-0.53125 -0.3125,0 -0.53125,0.265625 -0.53125,0.53125 0,0.265625 0.21875,0.53125 0.53125,0.53125 0.28125,0 0.515625,-0.21875 0.515625,-0.53125 z m 0,0"
+               style="stroke:none"
+               inkscape:connector-curvature="0" />
+          </symbol>
+          <symbol
+             id="textext-e7aa8506-6"
+             overflow="visible"
+             style="overflow:visible">
+            <path
+               id="path3771"
+               d="m 1.09375,-3.421875 0,2.671875 c 0,0.4375 -0.109375,0.4375 -0.78125,0.4375 l 0,0.3125 c 0.359375,-0.015625 0.859375,-0.03125 1.140625,-0.03125 0.25,0 0.765625,0.015625 1.109375,0.03125 l 0,-0.3125 c -0.671875,0 -0.78125,0 -0.78125,-0.4375 l 0,-1.84375 C 1.78125,-3.625 2.5,-4.1875 3.125,-4.1875 c 0.640625,0 0.75,0.53125 0.75,1.109375 l 0,2.328125 c 0,0.4375 -0.109375,0.4375 -0.78125,0.4375 l 0,0.3125 c 0.34375,-0.015625 0.859375,-0.03125 1.125,-0.03125 0.25,0 0.78125,0.015625 1.109375,0.03125 l 0,-0.3125 c -0.515625,0 -0.765625,0 -0.765625,-0.296875 l 0,-1.90625 c 0,-0.859375 0,-1.15625 -0.3125,-1.515625 -0.140625,-0.171875 -0.46875,-0.375 -1.046875,-0.375 C 2.46875,-4.40625 2,-3.984375 1.71875,-3.359375 l 0,-1.046875 -1.40625,0.109375 0,0.3125 c 0.703125,0 0.78125,0.0625 0.78125,0.5625 z m 0,0"
+               style="stroke:none"
+               inkscape:connector-curvature="0" />
+          </symbol>
+        </g>
+      </defs>
+      <g
+         id="textext-e7aa8506-7">
+        <g
+           id="g3774"
+           style="fill:#000000;fill-opacity:1">
+          <use
+             id="use3776"
+             y="134.765"
+             x="223.43201"
+             xlink:href="#textext-e7aa8506-1"
+             width="428.75"
+             height="425" />
+        </g>
+        <g
+           id="g3778"
+           style="fill:#000000;fill-opacity:1">
+          <use
+             id="use3780"
+             y="134.765"
+             x="229.864"
+             xlink:href="#textext-e7aa8506-4"
+             width="428.75"
+             height="425" />
+          <use
+             id="use3782"
+             y="134.765"
+             x="233.79324"
+             xlink:href="#textext-e7aa8506-5"
+             width="428.75"
+             height="425" />
+          <use
+             id="use3784"
+             y="134.765"
+             x="236.56087"
+             xlink:href="#textext-e7aa8506-6"
+             width="428.75"
+             height="425" />
+        </g>
+        <g
+           id="g3786"
+           style="fill:#000000;fill-opacity:1">
+          <use
+             id="use3788"
+             y="134.765"
+             x="243.756"
+             xlink:href="#textext-e7aa8506-2"
+             width="428.75"
+             height="425" />
+        </g>
+      </g>
+    </g>
+  </g>
+</svg>
diff --git a/slides/internals/coordinates.xml b/slides/internals/coordinates.xml
new file mode 100644
index 0000000..3e4c809
--- /dev/null
+++ b/slides/internals/coordinates.xml
@@ -0,0 +1,10 @@
+<slide>
+<title>Converting Coordinate Systems</title>
+
+<image filename="Polar_to_cartesian.svg"/>
+
+<list>
+	<bullet>Cartesian: *x* and *y*</bullet>
+	<bullet>Polar: r (*radius*) and φ (*degrees*)</bullet>
+</list>
+</slide>
diff --git a/slides/internals/debug.xml b/slides/internals/debug.xml
new file mode 100644
index 0000000..4bd2adb
--- /dev/null
+++ b/slides/internals/debug.xml
@@ -0,0 +1,12 @@
+<slide>
+<title>Debugging Tools</title>
+
+<blurb>%gdb%</blurb>
+<blurb class="small">→ allows the inspection of programs when they're running</blurb>
+<blurb class="small">→ %export USE_ZEND_ALLOC=0%</blurb>
+<break/>
+
+<blurb>%valgrind%</blurb>
+<blurb class="small">→ tells you about memory corruption and allocation issues</blurb>
+<blurb class="small">→ %export ZEND_DONT_UNLOAD_MODULES=1%</blurb>
+</slide>
diff --git a/slides/internals/exercise-steps.xml b/slides/internals/exercise-steps.xml
new file mode 100644
index 0000000..bd0566c
--- /dev/null
+++ b/slides/internals/exercise-steps.xml
@@ -0,0 +1,26 @@
+<slide>
+<title>Exercise Steps</title>
+<subtitle>Polar to Cartesian Coordinates</subtitle>
+
+<blurb>%geospatial.c%</blurb>
+<list>
+	<bullet>Add the function definition to %geospatial_functions%</bullet>
+	<bullet>Add arg-info struct</bullet>
+	<bullet>Add %PHP_FUNCTION% implementation that uses %zend_parse_parameters% and calls %polar_to_cartesian%</bullet>
+</list>
+
+<blurb>%algorithms.h%</blurb>
+<list>
+	<bullet>Add macro for deg2rad and rad2deg:
+<example><![CDATA[#define deg2rad(deg) ((deg) * M_PI / 180.0)
+#define rad2deg(rad) ((rad) * 180.0 / M_PI)]]></example>
+	</bullet>
+</list>
+
+<blurb>%algorithms.c%</blurb>
+<list>
+	<bullet>Implement algorithm</bullet>
+</list>
+
+<blurb>Run tests!: %make test%</blurb>
+</slide>
diff --git a/slides/internals/exercise.xml b/slides/internals/exercise.xml
new file mode 100644
index 0000000..1533c18
--- /dev/null
+++ b/slides/internals/exercise.xml
@@ -0,0 +1,15 @@
+<slide>
+<title>Exercise</title>
+
+<blurb>Adding new functions to the geospatial extension</blurb>
+
+<blurb>Required:</blurb>
+
+<list>
+	<bullet>Linux, or possibly a Mac</bullet>
+	<bullet>Compiler, automake, autoconf, m4 and friends</bullet>
+	<bullet>PHP, with development headers for PHP 7.0+</bullet>
+	<bullet>A git clone of<br/>%https://github.m/derickr/php-ext-tutorial.git%</bullet>
+	<bullet>PDF of slides for reference:<br/>%:-:url:-:%</bullet>
+</list>
+</slide>