summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Silverstone <dsilvers@digital-scurf.org>2015-11-06 10:09:00 +0000
committerDaniel Silverstone <dsilvers@digital-scurf.org>2015-11-06 10:09:00 +0000
commit285f9bdd2d754f82419bd251e6c4fc4fcca8fec5 (patch)
tree57c41855411c67dfd9d670f6b1428a6c269d0ffa
parent842623b3744066e33db35b9f5c7d595dfbb8af24 (diff)
downloadgitano-talk-285f9bdd2d754f82419bd251e6c4fc4fcca8fec5.tar.bz2
Moony backgrounds
-rw-r--r--Lua-logo-nolabel.svg36
-rw-r--r--backing-lua-crater.pngbin0 -> 1832840 bytes
-rw-r--r--backing-lua-crescent.pngbin0 -> 629368 bytes
-rw-r--r--backing-lua-footprint.pngbin0 -> 2111738 bytes
-rw-r--r--backing-lua-landed.pngbin0 -> 611804 bytes
-rw-r--r--backing-lua-landing.pngbin0 -> 687116 bytes
-rw-r--r--backing-lua.pngbin0 -> 815130 bytes
-rw-r--r--backing-lua.svg232
-rw-r--r--debconf2015.pin314
9 files changed, 582 insertions, 0 deletions
diff --git a/Lua-logo-nolabel.svg b/Lua-logo-nolabel.svg
new file mode 100644
index 0000000..da417cd
--- /dev/null
+++ b/Lua-logo-nolabel.svg
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg version="1.1" width="937" height="937" viewBox="0 0 937 937"
+ 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="http://www.w3.org/2000/svg">
+
+ <title>Lua programming language logo</title>
+
+ <metadata>
+ <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>Lua programming language logo</dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+
+ <path d="M 880.401,266.182 A 456.668,456.668 0 1 1 722.223,90.5071"
+ style="fill:none; stroke:#808080;stroke-width:10.59654522;stroke-linecap:butt;stroke-dasharray:39.8522;stroke-dashoffset:0" />
+
+ <circle cx="473.505" cy="473.504" r="353.21301"
+ style="fill:#000080" />
+ <circle cx="619.81201" cy="327.19699" r="103.454"
+ style="fill:#ffffff" />
+ <circle
+ cx="826.71802" cy="120.291" r="103.455"
+ fill="#000080" />
+ <path d="m 377.82241,650.10583 0,-26.06741 -114.44233,0 0,-205.6783 -29.56427,0 0,231.74571 144.0066,0"
+ fill="#ffffff"/>
+ <path d="m 536.70055,650.10583 0,-166.57716 -26.38531,0 0,91.87176 c 0,34.01477 -17.80217,56.26747 -45.45904,56.26747 -20.98107,0 -34.3327,-12.71583 -34.3327,-32.74322 l 0,-115.39601 -26.38531,0 0,125.88656 c 0,27.65687 20.66323,45.45904 53.08852,45.45904 24.47792,0 40.05483,-8.5832 55.63169,-30.51796 l 0,25.74952 23.84215,0"
+ fill="#ffffff"/>
+ <path d="m 730.50248,649.47004 0,-20.0274 c -2.86105,0.63579 -4.13264,0.63579 -5.72211,0.63579 -9.21896,0 -14.3053,-4.76844 -14.3053,-13.03371 l 0,-92.82545 c 0,-29.56423 -21.61692,-45.45903 -62.62538,-45.45903 -40.37267,0 -65.16855,15.57691 -66.75803,54.04221 l 26.70321,0 c 2.22527,-20.34528 14.30532,-29.56427 39.10113,-29.56427 23.84213,0 37.19376,8.90109 37.19376,24.79584 l 0,6.9937 c 0,11.12632 -6.67582,15.89477 -27.6569,18.43793 -37.51161,4.76842 -43.23377,6.04001 -53.40642,10.17265 -19.39159,7.94737 -29.24637,22.88848 -29.24637,43.23377 0,30.20003 20.98113,48.0022 54.678,48.0022 21.29897,0 41.9622,-8.90109 56.58538,-24.47795 2.86105,12.7158 14.3053,21.93478 27.339,21.93478 5.40421,0 9.53687,-0.63579 18.12003,-2.86106 m -46.41272,-56.90326 c 0,23.84212 -24.16007,39.10112 -49.90957,39.10112 -20.66318,0 -32.74322,-7.31161 -32.74322,-25.43162 0,-17.48423 11.76215,-25.11374 40.05481,-29.24638 27.97477,-3.81474 33.69692,-5.08633 42.59798,-9.21896 l 0,24.79584"
+ fill="#ffffff"/>
+</svg>
diff --git a/backing-lua-crater.png b/backing-lua-crater.png
new file mode 100644
index 0000000..4710717
--- /dev/null
+++ b/backing-lua-crater.png
Binary files differ
diff --git a/backing-lua-crescent.png b/backing-lua-crescent.png
new file mode 100644
index 0000000..994f307
--- /dev/null
+++ b/backing-lua-crescent.png
Binary files differ
diff --git a/backing-lua-footprint.png b/backing-lua-footprint.png
new file mode 100644
index 0000000..425c915
--- /dev/null
+++ b/backing-lua-footprint.png
Binary files differ
diff --git a/backing-lua-landed.png b/backing-lua-landed.png
new file mode 100644
index 0000000..1597fed
--- /dev/null
+++ b/backing-lua-landed.png
Binary files differ
diff --git a/backing-lua-landing.png b/backing-lua-landing.png
new file mode 100644
index 0000000..2ac681f
--- /dev/null
+++ b/backing-lua-landing.png
Binary files differ
diff --git a/backing-lua.png b/backing-lua.png
new file mode 100644
index 0000000..c320518
--- /dev/null
+++ b/backing-lua.png
Binary files differ
diff --git a/backing-lua.svg b/backing-lua.svg
new file mode 100644
index 0000000..03b565b
--- /dev/null
+++ b/backing-lua.svg
@@ -0,0 +1,232 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ 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="1280"
+ height="720"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.48.5 r10040"
+ sodipodi:docname="backing-lua.svg"
+ inkscape:export-filename="/home/dsilvers/dev-git/gitano-talk/backing-lua-crater.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <defs
+ id="defs4">
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath2998">
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:3.46896172;stroke-linecap:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect3000"
+ width="1239.3561"
+ height="615.47998"
+ x="-1076.5593"
+ y="-706.89331" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3004">
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:2.70000005;stroke-linecap:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect3006"
+ width="1092.3138"
+ height="703.70221"
+ x="-1664.7284"
+ y="490.45071" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3010">
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:2.70000005;stroke-linecap:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect3012"
+ width="1129.0745"
+ height="1034.5472"
+ x="1974.5674"
+ y="353.9115" />
+ </clipPath>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.17545122"
+ inkscape:cx="207.82564"
+ inkscape:cy="931.27594"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ inkscape:window-width="1280"
+ inkscape:window-height="784"
+ inkscape:window-x="0"
+ inkscape:window-y="16"
+ inkscape:window-maximized="0"
+ borderlayer="true" />
+ <metadata
+ id="metadata7">
+ <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
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-332.36218)">
+ <image
+ y="141.52014"
+ x="-571.17413"
+ id="image3829"
+ xlink:href="file:///home/dsilvers/dev-git/gitano-talk/debian.jpg"
+ height="1080"
+ width="1920" />
+ <g
+ id="g3104"
+ transform="matrix(0.41605479,0,0,0.41605479,597.3628,497.87529)">
+ <path
+ id="path3086"
+ style="fill:none;stroke:#808080;stroke-width:10.59654522;stroke-linecap:butt;stroke-dasharray:39.8522;stroke-dashoffset:0"
+ d="M 880.401,266.182 A 456.668,456.668 0 1 1 722.223,90.5071"
+ inkscape:connector-curvature="0" />
+ <circle
+ id="circle3088"
+ style="fill:#000080"
+ r="353.21301"
+ cy="473.504"
+ cx="473.505"
+ sodipodi:cx="473.505"
+ sodipodi:cy="473.504"
+ sodipodi:rx="353.21301"
+ sodipodi:ry="353.21301"
+ d="m 826.71802,473.504 c 0,195.07416 -158.13885,353.21301 -353.21302,353.21301 -195.07416,0 -353.21301,-158.13885 -353.21301,-353.21301 0,-195.07416 158.13885,-353.21301 353.21301,-353.21301 195.07417,0 353.21302,158.13885 353.21302,353.21301 z" />
+ <circle
+ id="circle3090"
+ style="fill:#ffffff"
+ r="103.454"
+ cy="327.19699"
+ cx="619.81201"
+ sodipodi:cx="619.81201"
+ sodipodi:cy="327.19699"
+ sodipodi:rx="103.454"
+ sodipodi:ry="103.454"
+ d="m 723.26601,327.19699 c 0,57.13607 -46.31793,103.454 -103.454,103.454 -57.13607,0 -103.454,-46.31793 -103.454,-103.454 0,-57.13607 46.31793,-103.454 103.454,-103.454 57.13607,0 103.454,46.31793 103.454,103.454 z" />
+ <circle
+ id="circle3092"
+ r="103.455"
+ cy="120.291"
+ cx="826.71802"
+ sodipodi:cx="826.71802"
+ sodipodi:cy="120.291"
+ sodipodi:rx="103.455"
+ sodipodi:ry="103.455"
+ style="fill:#000080"
+ d="m 930.17302,120.291 c 0,57.13662 -46.31838,103.455 -103.455,103.455 -57.13662,0 -103.455,-46.31838 -103.455,-103.455 0,-57.136619 46.31838,-103.455001 103.455,-103.455001 57.13662,0 103.455,46.318382 103.455,103.455001 z" />
+ <path
+ id="path3094"
+ d="m 377.82241,650.10583 0,-26.06741 -114.44233,0 0,-205.6783 -29.56427,0 0,231.74571 144.0066,0"
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff" />
+ <path
+ id="path3096"
+ d="m 536.70055,650.10583 0,-166.57716 -26.38531,0 0,91.87176 c 0,34.01477 -17.80217,56.26747 -45.45904,56.26747 -20.98107,0 -34.3327,-12.71583 -34.3327,-32.74322 l 0,-115.39601 -26.38531,0 0,125.88656 c 0,27.65687 20.66323,45.45904 53.08852,45.45904 24.47792,0 40.05483,-8.5832 55.63169,-30.51796 l 0,25.74952 23.84215,0"
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff" />
+ <path
+ id="path3098"
+ d="m 730.50248,649.47004 0,-20.0274 c -2.86105,0.63579 -4.13264,0.63579 -5.72211,0.63579 -9.21896,0 -14.3053,-4.76844 -14.3053,-13.03371 l 0,-92.82545 c 0,-29.56423 -21.61692,-45.45903 -62.62538,-45.45903 -40.37267,0 -65.16855,15.57691 -66.75803,54.04221 l 26.70321,0 c 2.22527,-20.34528 14.30532,-29.56427 39.10113,-29.56427 23.84213,0 37.19376,8.90109 37.19376,24.79584 l 0,6.9937 c 0,11.12632 -6.67582,15.89477 -27.6569,18.43793 -37.51161,4.76842 -43.23377,6.04001 -53.40642,10.17265 -19.39159,7.94737 -29.24637,22.88848 -29.24637,43.23377 0,30.20003 20.98113,48.0022 54.678,48.0022 21.29897,0 41.9622,-8.90109 56.58538,-24.47795 2.86105,12.7158 14.3053,21.93478 27.339,21.93478 5.40421,0 9.53687,-0.63579 18.12003,-2.86106 m -46.41272,-56.90326 c 0,23.84212 -24.16007,39.10112 -49.90957,39.10112 -20.66318,0 -32.74322,-7.31161 -32.74322,-25.43162 0,-17.48423 11.76215,-25.11374 40.05481,-29.24638 27.97477,-3.81474 33.69692,-5.08633 42.59798,-9.21896 l 0,24.79584"
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff" />
+ </g>
+ <image
+ y="-1678.7267"
+ x="-3157.957"
+ id="image3351"
+ xlink:href="file:///home/dsilvers/dev-git/gitano-talk/moon/ALSEP_AS11-40-5951.jpg"
+ height="2373"
+ width="2349"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <image
+ y="-1199.564"
+ x="-3529.9387"
+ id="image3429"
+ xlink:href="file:///home/dsilvers/dev-git/gitano-talk/moon/FullMoon2010.jpg"
+ height="2452"
+ width="2580" />
+ <image
+ y="-1361.9489"
+ x="-3370.0417"
+ id="image3491"
+ xlink:href="file:///home/dsilvers/dev-git/gitano-talk/moon/Apollo_15_LM_on_surface.jpg"
+ height="2355"
+ width="2340" />
+ <image
+ y="-807.05139"
+ x="-4425.1279"
+ id="image3617"
+ xlink:href="file:///home/dsilvers/dev-git/gitano-talk/moon/Lunar_module_AS12-51-7507.jpg"
+ height="3519.3413"
+ width="3501.2935" />
+ <image
+ y="-1211.3829"
+ x="1503.6838"
+ id="image3695"
+ xlink:href="file:///home/dsilvers/dev-git/gitano-talk/moon/Terraced_Wall_Crater_on_the_Lunar_Limb_-_GPN-2000-001487.jpg"
+ height="1882.8804"
+ width="1882.8804" />
+ <rect
+ style="fill:#0000ff;fill-opacity:0.38157899;stroke:none"
+ id="rect2985"
+ width="1125.1357"
+ height="91.901413"
+ x="-2.7055938e-07"
+ y="356.53723" />
+ <text
+ xml:space="preserve"
+ style="font-size:56px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans Bold"
+ x="38.073441"
+ y="422.18109"
+ id="text3755"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3757"
+ x="38.073441"
+ y="422.18109">Debian and Lua</tspan></text>
+ <rect
+ style="fill:#0000ff;fill-opacity:0.38157899;stroke:none"
+ id="rect2985-0"
+ width="1115.9457"
+ height="91.901413"
+ x="163.45325"
+ y="942.08051" />
+ <text
+ xml:space="preserve"
+ style="font-size:56px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;font-family:DejaVu Sans Mono;-inkscape-font-specification:DejaVu Sans Mono Bold"
+ x="626.05933"
+ y="1009.0372"
+ id="text3777"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3779"
+ x="626.05933"
+ y="1009.0372">http://www.lua.org/</tspan></text>
+ </g>
+</svg>
diff --git a/debconf2015.pin b/debconf2015.pin
new file mode 100644
index 0000000..f31ded8
--- /dev/null
+++ b/debconf2015.pin
@@ -0,0 +1,314 @@
+# Debian conference Pinpoint talk about Gitano
+
+[backing.png]
+[center]
+[font=Sans 50px]
+[stretch]
+
+-- [backing-cat-flop.png]
+
+-- [backing-cat-flop.png] [no-markup]
+
+Gitano - A Git service configured in Git
+
+Daniel Silverstone <dsilvers@debian.org>
+
+# Burble like a tard about who you are
+
+-- [backing-cat-flop.png]
+
+What is it?
+
+# Git Server
+# Written in Lua
+# Configured in Git where plausible
+
+-- [backing-cat-flop.png]
+
+Why do it?
+
+# Looked at gitolite and decided I could do
+# better or nicer or whatever
+
+-- [backing-cat-flop.png]
+
+Who is it for?
+
+# People who would like to run their own git server
+# Github is a more effective centralised version control
+# system than Subversion could ever hope to be.
+# P.S. Alioth.
+# Gitorious is a large unwieldy pile of crap
+# Both of them rely on data stores which are not Git
+
+-- [backing-cat-sunbathing.png]
+
+-- [backing-cat-sunbathing.png]
+
+Technology choices
+
+# Git - odd to list, but I mean configuration is in git
+# rulesets are in git, etc.etc.etc.
+# Lua - I like Lua, it's easy to prototype and write stuff
+# libgit2/luagit2 - Way faster than invoking git commands
+# although Gitano *can* operate without them
+# cgit rather than gitweb - much faster, caches, prettier
+
+-- [backing-cat-sunbathing.png]
+
+Lace - Lua Access Control Engine
+
+# ACL engine for rulesets. Most people who are at least
+# technically minded understand ACLs. Non-turing-complete
+# means output more easily cached Not using Lua means I
+# *could* switch implementation language if I wanted.
+
+-- [font=Monospace 50px]
+
+define ref_has_user_prefix ref prefix refs/heads/${user}/
+allow "User branches are okay" op_is_reffy ref_has_user_prefix
+
+# Simple example showing definitions, prefix-matches,
+# expansions (gitano specific) and permission statements.
+# list of defined predicates on the allow line must all pass
+
+-- [backing-cat-sunbathing.png]
+
+Clod - Configuration Language Organised (by) Dots
+
+# Designed to keep track of ordering of entries (and spaces)
+# Currently doesn't track comments (because that's super
+# hard) Humans and the library tend to edit files in similar
+# ways meaning diffs are sane
+
+-- [font=Monospace 50px]
+
+project.head "refs/heads/master"
+project.description "Black box testing of Unix programs"
+project.owner "liw"
+
+# Three simple string entries as might be found in a
+# repository configuration in Gitano.
+
+-- [font=Monospace 50px]
+
+description "Gitano Instance Administrators"
+
+members["*"] "dsilvers"
+
+# Clod also supports lists which remain ordered. This is an
+# example group file in a Gitano repository
+
+-- [backing-cat-sunbathing.png]
+
+Supple - Sandbox [(for) Untrusted Procedure Partitioning (in) Lua] Engine
+
+# Supple allows me to run hooks provided by project owners
+# safely without risking them gaining access to the server
+# in any unusual way.
+
+# Hooks are run as Lua code with a limited set of functions
+# and only the data relevant to the event they're hooking
+# (along with a read-only repository object they can use to
+# interrogate other things a bit)
+
+-- [backing-cat-sunbathing.png]
+
+To limit the attack surface...
+
+The "untrusted" code runs in a (limited) Lua sandbox.
+
+That sandbox is soft-limited in terms of VM opcodes and memory.
+
+The sandbox is monitored and IO marshalled externally.
+
+# Your "untrusted" code is run inside a Lua sandbox which
+# has only a limited set of Lua's functionality exposed to
+# it.
+
+# That sandbox is soft-limited (optionally) in terms of VM
+# opcodes and memory allocated by Lua
+
+# The sandbox is run inside a monitoring Lua VM instance
+# which is responsible for carefully marshalling calls etc
+# into and out of the sandbox. All your comms go via this
+# monitor.
+
+-- [backing-cat-sunbathing.png]
+
+Just in case...
+
+The monitor is a Lua VM anyway, and it's all inside a separate process.
+
+The sandbox process is in an ephemeral chroot.
+
+# The monitor is, itself, a Lua VM anyway, inside a process
+# which is separate from the process you're doing untrusted
+# work on behalf of.
+
+# The sandbox process is created using a rootly helper so
+# that it's put into an isolation state consisting of a
+# directory which is owned by root which is set as your root
+# via the chroot call, but which is also rmdir'd so it's
+# ephemeral. Your process drops privileges back to the
+# calling UID so it cannot do anything inside its CWD
+# anyway.
+
+-- [backing-cat-sunbathing.png]
+
+And if that's not enough...
+
+Solid rlimits in terms of memory and open FDs
+
+And on Linux, memory is pre-allocated and we enter seccomp mode 1.
+
+# On top of that, the sandbox has some pretty solid rlimits
+# set in terms of max CPU usage, max VM size, max FDs open,
+# and max size of any file it writes. As such, it can't
+# create > 0 byte files in the directory it doesn't have
+# access to, and could only do that if it closed the FD to
+# the host process which is its only communications avenue.
+
+# Then, if you're on Linux, we go one step further and
+# pre-allocate enough memory for the interpreter to not hit
+# the rlimit and then enter seccomp mode 1 which limits the
+# syscalls permissible to read, write, _exit and sigreturn
+# so even if you could have circumvented any/all of the
+# limits above, you now can't make syscalls to take
+# advantage of them.
+
+# If that's not sandbox enough, please tell me how to
+ improve matters further.
+
+-- [backing-cat-sunbathing.png]
+
+Gall - Git Abstraction Layer (in) Lua
+
+# Abstraction layer for accessing Git repositories from Lua.
+# Focusses on bare repositories and can operate using the
+# git commandline or the libgit2 library (via the luagit2
+# binding).
+
+# Next comes inelegance, so "phew" goes here.
+
+-- [backing-cat-inelegant.png]
+
+-- [backing-cat-inelegant.png]
+
+Putting it all together.
+
+Gitano uses all of these libraries and adds utility commands
+for managing repositories, users, rules, etc.
+
+# Using these libraries and with a small amount of code of
+# its own Gitano then provides a git service with important
+# additional commands such as creating and destroying
+# repositories
+
+-- [font=Monospace 50px] [no-markup]
+
+ssh git@server create fooproject/barrepo
+[example] Creating repository: fooproject/barrepo
+[example] Setting repository owner to dsilvers
+[example] <fooproject/barrepo> Set owner to <dsilvers>
+[example] Running checks to ensure hooks etc are configured
+[example] Repository fooproject/barrepo created ok. Remember to configure rules etc.
+
+ssh git@server help config
+[example] config ---- View and change configuration for a repository (Takes a repo)
+[example]
+[example] => usage: config <reponame> <cmd> [args...]
+[example] =>
+[example] => View and manipulate the configuration of a repository.
+...
+
+
+# Create a repository, ask for help about configuration
+# Gitano has help built in for all its commands too
+
+# And now for something shocking
+
+-- [backing-cat-shocked.png]
+
+-- [backing-cat-shocked.png]
+
+Integrating with external apps and services
+
+OpenSSH server, Cgit (gitweb at a pinch), git-daemon
+
+Outgoing HTTP calls from hooks
+
+# Horrifyingly shocking idea, but integrating with external
+# services is a good idea. As such, Gitano uses OpenSSH
+# (nominally any other SSH too) for authentication and
+# secure connections.
+# Primarily focussed on cgit, we do generate the bits needed
+# for gitweb to operate too. And we produce the
+# git-daemon-export-ok file for the git daemon to be able to
+# work.
+
+-- [backing-cat-shocked.png]
+
+Real users of Gitano
+
+ - git.gitano.org.uk, git.liw.fi
+ - git.netsurf-browser.org, richard.maw.name/git
+ - Codethink and Baserock
+
+# Equally horrifyingly, people use this crap what I wrote.
+
+# But, it's not enough (sound stern)
+
+-- [backing-cat-stern.png]
+
+-- [command=google-chrome --app=https://trello.com/b/l4Id6iiC/gitano] [backing-cat-stern.png]
+
+Future plans
+
+Lots of ideas for future content, see the Trello
+
+ - https://trello.com/b/l4Id6iiC/gitanow
+ - (Link is on www.gitano.org.uk)
+
+# I would welcome contributions to Gitano or the libraries
+# behind it. I would especially welcome contributions which
+# increase the scenario test suite coverage.
+
+-- [backing-cat-eat-you.png]
+
+-- [command=gnome-terminal] [backing-cat-eat-you.png]
+
+Live demo and walkthrough
+
+"Stand by for action!
+ We are about to launch Stingray!
+ Marineville - I am calling 'Battle Stations'!
+ Anything can happen in the next half-hour!"
+
+ - Commander Shore
+
+# I make no promises, but here goes a demo which might eat
+# my face.
+
+-- [backing-cat-flop.png]
+
+Mailing list: <span font="Monospace 50px">gitano-dev@gitano.org.uk</span>
+IRC Channel: <span font="Monospace 50px">#gitano</span> on Freenode
+Website: <span font="Monospace 50px">http://www.gitano.org.uk/</span>
+
+Any questions?
+
+-- [backing-cat-sat.png]
+
+# Intrusive cat says "Enough with the talkings"
+
+-- [backing-cat-sat.png]
+
+Thank you for listening
+
+This talk is available from:
+<span font="Monospace 50px">git://git.gitano.org.uk/personal/dsilvers/gitano-talk.git</span>
+
+Current (at time of talk) gitano-all deb (4-1) at:
+<span font="Monospace 50px">http://users.pepperfish.net/dsilvers/gitano-deb/</span>
+