Begin presentation
This commit is contained in:
parent
0aaf10eb1b
commit
8413e2248f
9 changed files with 1937 additions and 0 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -136,3 +136,5 @@ sympy-plots-for-*.tex/
|
|||
*.bak
|
||||
*.sav
|
||||
|
||||
*.xdv
|
||||
*.pdf
|
||||
|
|
31
Makefile
Normal file
31
Makefile
Normal file
|
@ -0,0 +1,31 @@
|
|||
TARGET=slides.pdf
|
||||
|
||||
SVGS=$(wildcard imgs/*.svg)
|
||||
SVG_PDFTEXS = $(patsubst imgs/%,imgs/pdf_tex/%,$(SVGS:.svg=.pdf_tex))
|
||||
SVG_PDF = $(patsubst imgs/%,imgs/pdf/%,$(SVGS:.svg=.pdf))
|
||||
AUTOGEN_SVGS_LIST=mac
|
||||
AUTOGEN_SVGS=$(addprefix imgs/_autogen/,$(AUTOGEN_SVGS_LIST))
|
||||
|
||||
all: $(SVG_PDFTEXS) $(SVG_PDF) $(AUTOGEN_SVGS) $(TARGET)
|
||||
|
||||
%.pdf: %.tex
|
||||
latexmk -pdfxe $<
|
||||
|
||||
imgs/_autogen/%: imgs/%.svg
|
||||
imgs/split_layers.py "$*.svg"
|
||||
cd "$@" ; inkscape --export-type=pdf *.svg
|
||||
|
||||
imgs/pdf_tex/%.pdf_tex: imgs/%.svg
|
||||
mkdir -p "imgs/pdf_tex"
|
||||
inkscape "$<" -o "$(@:.pdf_tex=.pdf)" --export-latex 2>/dev/null
|
||||
sed -i 's#\($(patsubst imgs/pdf_tex/%,%,$(@:.pdf_tex=.pdf))\)#imgs/pdf_tex/\1#g' $@
|
||||
|
||||
imgs/pdf/%.pdf: imgs/%.svg
|
||||
mkdir -p "imgs/pdf"
|
||||
inkscape "$<" -o "$@" 2>/dev/null
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
latexmk -C
|
||||
rm -rf "imgs/pdf_tex" "imgs/pdf"
|
||||
rm -rf imgs/_autogen
|
3
imgs/.gitignore
vendored
Normal file
3
imgs/.gitignore
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
_autogen
|
||||
pdf
|
||||
pdf_tex
|
1140
imgs/mac.svg
Normal file
1140
imgs/mac.svg
Normal file
File diff suppressed because it is too large
Load diff
After Width: | Height: | Size: 58 KiB |
532
imgs/routing.svg
Normal file
532
imgs/routing.svg
Normal file
|
@ -0,0 +1,532 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="1700"
|
||||
height="800"
|
||||
viewBox="0 0 449.79167 211.66666"
|
||||
version="1.1"
|
||||
id="svg8"
|
||||
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
|
||||
sodipodi:docname="routing.svg">
|
||||
<defs
|
||||
id="defs2">
|
||||
<marker
|
||||
inkscape:stockid="Arrow2Mend"
|
||||
orient="auto"
|
||||
refY="0.0"
|
||||
refX="0.0"
|
||||
id="marker4107"
|
||||
style="overflow:visible;"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
id="path4105"
|
||||
style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1"
|
||||
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
|
||||
transform="scale(0.6) rotate(180) translate(0,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow2Mend"
|
||||
orient="auto"
|
||||
refY="0.0"
|
||||
refX="0.0"
|
||||
id="marker4019"
|
||||
style="overflow:visible;"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
id="path4017"
|
||||
style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1"
|
||||
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
|
||||
transform="scale(0.6) rotate(180) translate(0,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow2Mend"
|
||||
orient="auto"
|
||||
refY="0.0"
|
||||
refX="0.0"
|
||||
id="marker3949"
|
||||
style="overflow:visible;"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
id="path3947"
|
||||
style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1"
|
||||
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
|
||||
transform="scale(0.6) rotate(180) translate(0,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:isstock="true"
|
||||
style="overflow:visible;"
|
||||
id="marker3867"
|
||||
refX="0.0"
|
||||
refY="0.0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow2Mend">
|
||||
<path
|
||||
transform="scale(0.6) rotate(180) translate(0,0)"
|
||||
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
|
||||
style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1"
|
||||
id="path3865" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:collect="always"
|
||||
inkscape:isstock="true"
|
||||
style="overflow:visible;"
|
||||
id="marker3733"
|
||||
refX="0.0"
|
||||
refY="0.0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow2Mend">
|
||||
<path
|
||||
transform="scale(0.6) rotate(180) translate(0,0)"
|
||||
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
|
||||
style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1"
|
||||
id="path3731" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:collect="always"
|
||||
inkscape:stockid="Arrow2Mend"
|
||||
orient="auto"
|
||||
refY="0.0"
|
||||
refX="0.0"
|
||||
id="marker3661"
|
||||
style="overflow:visible;"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
id="path3659"
|
||||
style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1"
|
||||
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
|
||||
transform="scale(0.6) rotate(180) translate(0,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:collect="always"
|
||||
inkscape:isstock="true"
|
||||
style="overflow:visible;"
|
||||
id="Arrow2Mend"
|
||||
refX="0.0"
|
||||
refY="0.0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow2Mend">
|
||||
<path
|
||||
transform="scale(0.6) rotate(180) translate(0,0)"
|
||||
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
|
||||
style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1"
|
||||
id="path3184" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:isstock="true"
|
||||
style="overflow:visible;"
|
||||
id="Arrow1Mend"
|
||||
refX="0.0"
|
||||
refY="0.0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow1Mend">
|
||||
<path
|
||||
transform="scale(0.4) rotate(180) translate(10,0)"
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
|
||||
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
|
||||
id="path3166" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:isstock="true"
|
||||
style="overflow:visible;"
|
||||
id="Arrow1Send"
|
||||
refX="0.0"
|
||||
refY="0.0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow1Send">
|
||||
<path
|
||||
transform="scale(0.2) rotate(180) translate(6,0)"
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
|
||||
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
|
||||
id="path3172" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:isstock="true"
|
||||
style="overflow:visible;"
|
||||
id="Arrow1Lend"
|
||||
refX="0.0"
|
||||
refY="0.0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow1Lend">
|
||||
<path
|
||||
transform="scale(0.8) rotate(180) translate(12.5,0)"
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
|
||||
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
|
||||
id="path3160" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:isstock="true"
|
||||
style="overflow:visible"
|
||||
id="Arrow1Lstart"
|
||||
refX="0.0"
|
||||
refY="0.0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow1Lstart">
|
||||
<path
|
||||
transform="scale(0.8) translate(12.5,0)"
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
|
||||
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
|
||||
id="path3157" />
|
||||
</marker>
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="0.68631873"
|
||||
inkscape:cx="1069.9059"
|
||||
inkscape:cy="435.07968"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
inkscape:document-rotation="0"
|
||||
showgrid="false"
|
||||
units="px"
|
||||
showguides="true"
|
||||
inkscape:guide-bbox="true"
|
||||
inkscape:snap-nodes="true"
|
||||
inkscape:snap-object-midpoints="true"
|
||||
inkscape:object-nodes="false"
|
||||
inkscape:window-width="1916"
|
||||
inkscape:window-height="1041"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="18"
|
||||
inkscape:window-maximized="1">
|
||||
<sodipodi:guide
|
||||
inkscape:color="rgb(0,0,255)"
|
||||
inkscape:locked="false"
|
||||
inkscape:label=""
|
||||
id="guide4484"
|
||||
orientation="0,1"
|
||||
position="155.04456,105.83333" />
|
||||
<sodipodi:guide
|
||||
inkscape:color="rgb(0,0,255)"
|
||||
inkscape:locked="false"
|
||||
inkscape:label=""
|
||||
id="guide4486"
|
||||
orientation="-1,0"
|
||||
position="224.89583,159.73242" />
|
||||
</sodipodi:namedview>
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<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">
|
||||
<g
|
||||
transform="translate(37.035063,-1.1447036e-5)"
|
||||
id="g2786">
|
||||
<ellipse
|
||||
style="fill:#19a0d2;fill-opacity:0.8;stroke:#4b4b4b;stroke-width:0.459777;stroke-linecap:round;stroke-linejoin:round"
|
||||
id="circle2768"
|
||||
cx="383.65247"
|
||||
cy="105.83334"
|
||||
rx="28.874279"
|
||||
ry="28.874277" />
|
||||
<path
|
||||
style="stroke-width:0.0214238"
|
||||
d="M 401.4771,109.26116 V 91.436522 q 0,-0.27851 -0.20352,-0.48203 -0.20353,-0.20353 -0.48204,-0.20353 h -34.27812 q -0.27851,0 -0.48204,0.20353 -0.20352,0.20352 -0.20352,0.48203 v 17.824638 q 0,0.27851 0.20352,0.48204 0.20353,0.20353 0.48204,0.20353 h 34.27812 q 0.27851,0 0.48204,-0.20353 0.20352,-0.20353 0.20352,-0.48204 z m 2.74225,-17.824638 v 23.309138 q 0,1.41398 -1.00692,2.4209 -1.00692,1.00692 -2.42089,1.00692 h -11.65456 q 0,0.79268 0.34278,1.66034 0.34278,0.86767 0.68556,1.5211 0.34279,0.65342 0.34279,0.93193 0,0.55702 -0.40706,0.96407 -0.40705,0.40706 -0.96407,0.40706 h -10.969 q -0.55702,0 -0.96407,-0.40706 -0.40705,-0.40705 -0.40705,-0.96407 0,-0.29993 0.34278,-0.94265 0.34278,-0.64271 0.68556,-1.49966 0.34278,-0.85695 0.34278,-1.67106 h -11.65456 q -1.41397,0 -2.42089,-1.00692 -1.00692,-1.00692 -1.00692,-2.4209 V 91.436522 q 0,-1.41397 1.00692,-2.42089 1.00692,-1.00692 2.42089,-1.00692 h 34.27812 q 1.41397,0 2.42089,1.00692 1.00692,1.00692 1.00692,2.42089 z"
|
||||
id="path885" />
|
||||
</g>
|
||||
<g
|
||||
transform="translate(63.086594,-1.1447036e-5)"
|
||||
id="g2776">
|
||||
<ellipse
|
||||
cy="105.83334"
|
||||
cx="261.28979"
|
||||
id="circle2766"
|
||||
style="fill:#ffce00;fill-opacity:0.8;stroke:#4b4b4b;stroke-width:0.459846;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
rx="28.874279"
|
||||
ry="28.874277" />
|
||||
<path
|
||||
style="stroke-width:0.0211211"
|
||||
d="m 245.06878,117.9991 h 21.62804 v -2.7035 h -21.62804 z m 0,-10.81401 h 21.62804 v -2.70351 h -21.62804 z m 33.11793,9.46226 q 0,-0.84484 -0.59139,-1.43623 -0.59139,-0.59139 -1.43624,-0.59139 -0.84484,0 -1.43624,0.59139 -0.59139,0.59139 -0.59139,1.43623 0,0.84485 0.59139,1.43624 0.5914,0.59139 1.43624,0.59139 0.84485,0 1.43624,-0.59139 0.59139,-0.59139 0.59139,-1.43624 z M 245.06878,96.371068 h 21.62804 v -2.70351 h -21.62804 z m 33.11793,9.462272 q 0,-0.84485 -0.59139,-1.43624 -0.59139,-0.59139 -1.43624,-0.59139 -0.84484,0 -1.43624,0.59139 -0.59139,0.59139 -0.59139,1.43624 0,0.84484 0.59139,1.43623 0.5914,0.5914 1.43624,0.5914 0.84485,0 1.43624,-0.5914 0.59139,-0.59139 0.59139,-1.43623 z m 0,-10.814022 q 0,-0.84485 -0.59139,-1.43624 -0.59139,-0.59139 -1.43624,-0.59139 -0.84484,0 -1.43624,0.59139 -0.59139,0.59139 -0.59139,1.43624 0,0.84485 0.59139,1.43624 0.5914,0.59139 1.43624,0.59139 0.84485,0 1.43624,-0.59139 0.59139,-0.59139 0.59139,-1.43624 z m 2.02763,17.572782 v 8.11051 h -37.84906 v -8.11051 z m 0,-10.81402 v 8.11051 h -37.84906 v -8.11051 z m 0,-10.814022 v 8.110525 h -37.84906 v -8.110525 z"
|
||||
id="path1519" />
|
||||
</g>
|
||||
<g
|
||||
transform="translate(-46.616813,-1.1447036e-5)"
|
||||
id="g2772">
|
||||
<ellipse
|
||||
style="fill:#52ec46;fill-opacity:0.8;stroke:#4b4b4b;stroke-width:0.459777;stroke-linecap:round;stroke-linejoin:round"
|
||||
id="path2764"
|
||||
cx="177.08437"
|
||||
cy="105.83334"
|
||||
rx="28.874279"
|
||||
ry="28.874277" />
|
||||
<path
|
||||
id="path2105"
|
||||
d="m 160.86334,117.9991 h 21.62804 v -2.7035 h -21.62804 z m 0,-10.81401 h 21.62804 v -2.70351 h -21.62804 z m 33.11793,9.46226 q 0,-0.84484 -0.59139,-1.43623 -0.59139,-0.59139 -1.43624,-0.59139 -0.84484,0 -1.43624,0.59139 -0.59139,0.59139 -0.59139,1.43623 0,0.84485 0.59139,1.43624 0.5914,0.59139 1.43624,0.59139 0.84485,0 1.43624,-0.59139 0.59139,-0.59139 0.59139,-1.43624 z M 160.86334,96.371078 h 21.62804 v -2.7035 h -21.62804 z m 33.11793,9.462262 q 0,-0.84485 -0.59139,-1.43624 -0.59139,-0.59139 -1.43624,-0.59139 -0.84484,0 -1.43624,0.59139 -0.59139,0.59139 -0.59139,1.43624 0,0.84484 0.59139,1.43623 0.5914,0.5914 1.43624,0.5914 0.84485,0 1.43624,-0.5914 0.59139,-0.59139 0.59139,-1.43623 z m 0,-10.814012 q 0,-0.84484 -0.59139,-1.43624 -0.59139,-0.59139 -1.43624,-0.59139 -0.84484,0 -1.43624,0.59139 -0.59139,0.5914 -0.59139,1.43624 0,0.84485 0.59139,1.43624 0.5914,0.59139 1.43624,0.59139 0.84485,0 1.43624,-0.59139 0.59139,-0.59139 0.59139,-1.43624 z m 2.02763,17.572772 v 8.11051 h -37.84906 v -8.11051 z m 0,-10.81402 v 8.11051 h -37.84906 v -8.11051 z m 0,-10.814002 v 8.11051 h -37.84906 v -8.11051 z"
|
||||
style="stroke-width:0.0211211" />
|
||||
</g>
|
||||
<text
|
||||
id="text2750"
|
||||
y="112.19526"
|
||||
x="83.19696"
|
||||
style="font-weight:300;font-size:8.81944px;line-height:1.25;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, Light';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
|
||||
xml:space="preserve"><tspan
|
||||
style="stroke-width:0.264583"
|
||||
y="112.19526"
|
||||
x="83.19696"
|
||||
id="tspan2748"
|
||||
sodipodi:role="line"></tspan></text>
|
||||
<g
|
||||
transform="translate(-8.6015521,0.00451257)"
|
||||
id="g4458">
|
||||
<g
|
||||
id="g2981"
|
||||
transform="translate(0,0.40306919)">
|
||||
<g
|
||||
transform="translate(0,-0.95189549)"
|
||||
id="g2975">
|
||||
<path
|
||||
d="M 8.8418605,83.782468 H 74.507349 V 40.211915 H 8.8418605 Z"
|
||||
style="fill:none;fill-opacity:0.8;stroke:#4b4b4b;stroke-width:0.480345;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="path2130" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-weight:300;font-size:8.81944px;line-height:1.25;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, Light';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
|
||||
x="27.745659"
|
||||
y="64.363541"
|
||||
id="text2762"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan2760"
|
||||
x="27.745659"
|
||||
y="64.363541"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.81944px;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.264583">Payload</tspan></text>
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
id="g2970"
|
||||
transform="translate(0,0.01744979)">
|
||||
<g
|
||||
transform="translate(-0.19538006)"
|
||||
id="g2960">
|
||||
<path
|
||||
id="rect2107"
|
||||
style="fill:#51ec46;fill-opacity:0.5;stroke:#4b4b4b;stroke-width:0.480346;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 9.0371052,137.70529 V 171.9771 H 74.702864 v -34.27181 z" />
|
||||
<path
|
||||
id="path2892"
|
||||
style="fill:#4b4b4b;fill-opacity:1;stroke:#4b4b4b;stroke-width:0.480346;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 9.0371052,137.70529 H 74.702864 v -9.82111 H 9.0371052 Z" />
|
||||
</g>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-size:8.81944px;line-height:1.25;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, Light';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;white-space:pre;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
|
||||
x="41.532494"
|
||||
y="152.46408"
|
||||
id="text2135"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan2152"
|
||||
x="41.532494"
|
||||
y="152.46408"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.81944px;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke-width:0.264583">Destination MAC</tspan><tspan
|
||||
sodipodi:role="line"
|
||||
x="41.532494"
|
||||
y="163.48839"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.81944px;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke-width:0.264583"
|
||||
id="tspan2792">address</tspan></text>
|
||||
<text
|
||||
id="text2887"
|
||||
y="135.97284"
|
||||
x="27.004965"
|
||||
style="font-weight:300;font-size:8.81944px;line-height:1.25;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, Light';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#ffffff;fill-opacity:1;stroke-width:0.264583"
|
||||
xml:space="preserve"><tspan
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.81944px;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#ffffff;fill-opacity:1;stroke-width:0.264583"
|
||||
y="135.97284"
|
||||
x="27.004965"
|
||||
id="tspan2885"
|
||||
sodipodi:role="line">LAYER 2</tspan></text>
|
||||
</g>
|
||||
<g
|
||||
id="g3017"
|
||||
transform="translate(0,0.21477379)">
|
||||
<path
|
||||
id="path2919"
|
||||
style="fill:#189fd1;fill-opacity:0.501961;stroke:#4b4b4b;stroke-width:0.480346;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 8.8417251,93.132024 V 127.40383 H 74.507484 V 93.132024 Z" />
|
||||
<path
|
||||
id="path2921"
|
||||
style="fill:#4b4b4b;fill-opacity:1;stroke:#4b4b4b;stroke-width:0.480346;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 8.8417251,93.132024 H 74.507484 V 83.310918 H 8.8417251 Z" />
|
||||
<text
|
||||
id="text2927"
|
||||
y="107.89082"
|
||||
x="41.532494"
|
||||
style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-size:8.81944px;line-height:1.25;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, Light';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;white-space:pre;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
|
||||
xml:space="preserve"><tspan
|
||||
id="tspan2925"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.81944px;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke-width:0.264583"
|
||||
y="107.89082"
|
||||
x="41.532494"
|
||||
sodipodi:role="line">Destination IP</tspan><tspan
|
||||
id="tspan2992"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.81944px;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke-width:0.264583"
|
||||
y="118.91512"
|
||||
x="41.532494"
|
||||
sodipodi:role="line">address</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-weight:300;font-size:8.81944px;line-height:1.25;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, Light';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#ffffff;fill-opacity:1;stroke-width:0.264583"
|
||||
x="27.004967"
|
||||
y="91.399574"
|
||||
id="text2931"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan2929"
|
||||
x="27.004967"
|
||||
y="91.399574"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.81944px;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#ffffff;fill-opacity:1;stroke-width:0.264583">LAYER 3</tspan></text>
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
transform="translate(-2.5662515,0.00451256)"
|
||||
id="g4412">
|
||||
<g
|
||||
id="g3051"
|
||||
transform="translate(188.31359,0.40306919)">
|
||||
<g
|
||||
id="g3049"
|
||||
transform="translate(0,-0.95189549)">
|
||||
<path
|
||||
id="path3043"
|
||||
style="fill:none;fill-opacity:0.8;stroke:#4b4b4b;stroke-width:0.480345;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 8.8418605,83.782468 H 74.507349 V 40.211915 H 8.8418605 Z" />
|
||||
<text
|
||||
id="text3047"
|
||||
y="64.363541"
|
||||
x="27.745659"
|
||||
style="font-weight:300;font-size:8.81944px;line-height:1.25;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, Light';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
|
||||
xml:space="preserve"><tspan
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.81944px;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.264583"
|
||||
y="64.363541"
|
||||
x="27.745659"
|
||||
id="tspan3045"
|
||||
sodipodi:role="line">Payload</tspan></text>
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
id="g3128"
|
||||
transform="translate(18.90123,4.4520398)">
|
||||
<path
|
||||
id="path3053"
|
||||
style="fill:#ffce00;fill-opacity:0.5;stroke:#4b4b4b;stroke-width:0.480346;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 178.25409,133.2707 v 34.27181 h 65.66575 V 133.2707 Z" />
|
||||
<path
|
||||
id="path3055"
|
||||
style="fill:#4b4b4b;fill-opacity:1;stroke:#4b4b4b;stroke-width:0.480346;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 178.25409,133.2707 h 65.66575 v -9.82111 h -65.66575 z" />
|
||||
<text
|
||||
id="text3063"
|
||||
y="148.0295"
|
||||
x="210.94485"
|
||||
style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-size:8.81944px;line-height:1.25;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, Light';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;white-space:pre;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
|
||||
xml:space="preserve"><tspan
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.81944px;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke-width:0.264583"
|
||||
y="148.0295"
|
||||
x="210.94485"
|
||||
id="tspan3059"
|
||||
sodipodi:role="line">Destination MAC</tspan><tspan
|
||||
id="tspan3061"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.81944px;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke-width:0.264583"
|
||||
y="159.0538"
|
||||
x="210.94485"
|
||||
sodipodi:role="line">address</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-weight:300;font-size:8.81944px;line-height:1.25;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, Light';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#ffffff;fill-opacity:1;stroke-width:0.264583"
|
||||
x="196.41733"
|
||||
y="131.53825"
|
||||
id="text3067"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan3065"
|
||||
x="196.41733"
|
||||
y="131.53825"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.81944px;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#ffffff;fill-opacity:1;stroke-width:0.264583">LAYER 2</tspan></text>
|
||||
</g>
|
||||
<g
|
||||
id="g3085"
|
||||
transform="translate(188.31359,0.2147726)">
|
||||
<path
|
||||
d="M 8.8417251,93.132024 V 127.40383 H 74.507484 V 93.132024 Z"
|
||||
style="fill:#189fd1;fill-opacity:0.501961;stroke:#4b4b4b;stroke-width:0.480346;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="path3071" />
|
||||
<path
|
||||
d="M 8.8417251,93.132024 H 74.507484 V 83.310918 H 8.8417251 Z"
|
||||
style="fill:#4b4b4b;fill-opacity:1;stroke:#4b4b4b;stroke-width:0.480346;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="path3073" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-size:8.81944px;line-height:1.25;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, Light';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;white-space:pre;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
|
||||
x="41.532494"
|
||||
y="107.89082"
|
||||
id="text3079"><tspan
|
||||
sodipodi:role="line"
|
||||
x="41.532494"
|
||||
y="107.89082"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.81944px;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke-width:0.264583"
|
||||
id="tspan3075">Destination IP</tspan><tspan
|
||||
sodipodi:role="line"
|
||||
x="41.532494"
|
||||
y="118.91512"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.81944px;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke-width:0.264583"
|
||||
id="tspan3077">address</tspan></text>
|
||||
<text
|
||||
id="text3083"
|
||||
y="91.399574"
|
||||
x="27.004967"
|
||||
style="font-weight:300;font-size:8.81944px;line-height:1.25;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, Light';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#ffffff;fill-opacity:1;stroke-width:0.264583"
|
||||
xml:space="preserve"><tspan
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.81944px;font-family:'Roboto Condensed';-inkscape-font-specification:'Roboto Condensed, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#ffffff;fill-opacity:1;stroke-width:0.264583"
|
||||
y="91.399574"
|
||||
x="27.004967"
|
||||
id="tspan3081"
|
||||
sodipodi:role="line">LAYER 3</tspan></text>
|
||||
</g>
|
||||
</g>
|
||||
<path
|
||||
id="path3155"
|
||||
d="M 70.047217,105.84884 H 95.022118"
|
||||
style="fill:none;stroke:#000000;stroke-width:1.61403;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2Mend)" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1.32292;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker3661)"
|
||||
d="m 163.47284,105.84604 h 24.9749"
|
||||
id="path3657" />
|
||||
<path
|
||||
id="path3729"
|
||||
d="m 264.39612,105.84604 h 24.9749"
|
||||
style="fill:none;stroke:#000000;stroke-width:1.32292;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker3733)" />
|
||||
<g
|
||||
transform="translate(78.259862,64.217427)"
|
||||
id="g4256">
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1.32292;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 279.12184,41.615905 h 7.13883"
|
||||
id="path3859" />
|
||||
<path
|
||||
id="path3861"
|
||||
d="m 286.26067,41.615905 h 11.69456"
|
||||
style="fill:none;stroke:#000000;stroke-width:1.32292;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.32292, 1.32292;stroke-dashoffset:0;stroke-opacity:1" />
|
||||
<path
|
||||
id="path3863"
|
||||
d="m 297.95523,41.628616 h 9.4671"
|
||||
style="fill:none;stroke:#000000;stroke-width:1.32292;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker4107)" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 30 KiB |
74
imgs/split_layers.py
Executable file
74
imgs/split_layers.py
Executable file
|
@ -0,0 +1,74 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
from xml.etree import ElementTree as ET
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
IN_DIR = Path(__file__).parent
|
||||
OUT_DIR = IN_DIR / "_autogen"
|
||||
|
||||
namespaces = {
|
||||
"svg": "http://www.w3.org/2000/svg",
|
||||
"inkscape": "http://www.inkscape.org/namespaces/inkscape",
|
||||
}
|
||||
|
||||
splits = {
|
||||
"mac.svg": {
|
||||
"_always": ["Base", "Key"],
|
||||
"0": [],
|
||||
"1": ["Routing table"],
|
||||
"2": ["Routing table", "Routing table - select"],
|
||||
"3": ["Yellow router"],
|
||||
"4": ["Yellow router", "ARP query"],
|
||||
"5": ["Yellow router", "ARP query", "ARP answer"],
|
||||
"6": ["Yellow router", "Outbound packet"],
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
def process_svg(svg_splits, path, out_path):
|
||||
out_path.mkdir(parents=True, exist_ok=True)
|
||||
always = svg_splits.get("_always", [])
|
||||
|
||||
svg = ET.parse(path.as_posix())
|
||||
|
||||
for keyframe in svg_splits:
|
||||
if keyframe.startswith("_"): # special value -- eg `_always`
|
||||
continue
|
||||
layers = always + svg_splits[keyframe]
|
||||
|
||||
for layer_node in svg.findall(
|
||||
".//svg:g[@inkscape:groupmode='layer']", namespaces=namespaces
|
||||
):
|
||||
layer_node.attrib["style"] = "display:none"
|
||||
for layer_name in layers:
|
||||
layer = svg.find(
|
||||
".//svg:g[@inkscape:groupmode='layer'][@inkscape:label='{}']".format(
|
||||
layer_name
|
||||
),
|
||||
namespaces=namespaces,
|
||||
)
|
||||
if not layer:
|
||||
raise Exception("Layer {} not found".format(layer_name))
|
||||
layer.attrib["style"] = "display:inline"
|
||||
|
||||
keyframe_outpath = out_path / "{}.svg".format(keyframe)
|
||||
svg.write(keyframe_outpath.as_posix(), encoding="utf-8")
|
||||
print("Written {}".format(keyframe_outpath.as_posix()))
|
||||
|
||||
|
||||
def main():
|
||||
processlist = []
|
||||
if len(sys.argv) < 2:
|
||||
processlist = splits.keys()
|
||||
else:
|
||||
processlist = [sys.argv[1]]
|
||||
|
||||
for svg_path in processlist:
|
||||
process_svg(
|
||||
splits[svg_path], IN_DIR / svg_path, OUT_DIR / (Path(svg_path).stem)
|
||||
)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
81
slides.tex
Normal file
81
slides.tex
Normal file
|
@ -0,0 +1,81 @@
|
|||
% vim: spell spelllang=en
|
||||
|
||||
\documentclass[11pt,xcolor={usenames,dvipsnames},aspectratio=169]{beamer}
|
||||
\usetheme{metropolis}
|
||||
\usepackage[utf8]{inputenc}
|
||||
\usepackage[english]{babel}
|
||||
\usepackage[T1]{fontenc}
|
||||
|
||||
\usepackage{texlib/my_listings}
|
||||
\usepackage{texlib/todo}
|
||||
|
||||
\usepackage{booktabs}
|
||||
\usepackage[normalem]{ulem}
|
||||
|
||||
%\usepackage{inconsolata}
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\title{Announcing IPv4 routes with an IPv6 next-hop in the Babel
|
||||
routing protocol}
|
||||
\subtitle{\textit{aka.} draft-bastian-babel-v4ov6}
|
||||
\author[\slidecountline]
|
||||
{Théophile Bastian, Juliusz Chroboczek}
|
||||
\date{}
|
||||
%\subject{}
|
||||
%\logo{}
|
||||
\institute{
|
||||
\href{https://ens.fr/}{ENS Paris},
|
||||
\href{https://www.irif.fr/}{IRIF},
|
||||
\href{https://www.nexedi.com/}{Nexedi}}
|
||||
|
||||
\begin{document}
|
||||
|
||||
\maketitle{}
|
||||
|
||||
\begin{frame}{Traditional routing}
|
||||
\begin{align*}
|
||||
\text{Network prefix (IPvX)} &\longrightarrow \text{Next-Hop (IPvX)}
|
||||
\end{align*}
|
||||
|
||||
\pause{}
|
||||
|
||||
\begin{table}
|
||||
\centering
|
||||
\textbf{IPv4 routing table} \\
|
||||
\medskip
|
||||
\begin{tabular}{@{} lcl @{}}
|
||||
\toprule
|
||||
Prefix & $\rightarrow$ & Next-Hop \\
|
||||
\midrule
|
||||
default & & 10.42.0.254 \\
|
||||
10.102.0.0/16 & & 10.102.0.1 \\
|
||||
10.102.10.0/24 & & 10.102.10.1 \\
|
||||
\only<3>{10.0.0.0/8 & & \sout{fd80:1::1}} \\
|
||||
\bottomrule
|
||||
\end{tabular}
|
||||
\end{table}
|
||||
|
||||
\todo{Better strikeout}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{The router's job}
|
||||
\begin{figure}
|
||||
\centering
|
||||
\includegraphics[width=\columnwidth]{imgs/pdf/routing.pdf}
|
||||
\end{figure}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{What's under the hull?}
|
||||
\begin{figure}
|
||||
\centering
|
||||
\only<0>{\includegraphics[width=\columnwidth]{imgs/_autogen/mac/0.pdf}}
|
||||
\only<1>{\includegraphics[width=\columnwidth]{imgs/_autogen/mac/1.pdf}}
|
||||
\only<2>{\includegraphics[width=\columnwidth]{imgs/_autogen/mac/2.pdf}}
|
||||
\only<3>{\includegraphics[width=\columnwidth]{imgs/_autogen/mac/3.pdf}}
|
||||
\only<4>{\includegraphics[width=\columnwidth]{imgs/_autogen/mac/4.pdf}}
|
||||
\only<5>{\includegraphics[width=\columnwidth]{imgs/_autogen/mac/5.pdf}}
|
||||
\only<6>{\includegraphics[width=\columnwidth]{imgs/_autogen/mac/6.pdf}}
|
||||
\end{figure}
|
||||
\end{frame}
|
||||
|
||||
\end{document}
|
63
texlib/my_listings.sty
Normal file
63
texlib/my_listings.sty
Normal file
|
@ -0,0 +1,63 @@
|
|||
\usepackage{listings}
|
||||
\usepackage{algorithmicx}
|
||||
\usepackage{algpseudocode}
|
||||
\usepackage{color}
|
||||
\usepackage{xcolor}
|
||||
\usepackage{courier}
|
||||
\definecolor{color_comment}{HTML}{2D6F19}
|
||||
\definecolor{color_linenum}{HTML}{9E9E9E}
|
||||
\definecolor{color_strings}{HTML}{D300F3}
|
||||
|
||||
|
||||
\lstset{ %
|
||||
% backgroundcolor=\color{white}, % choose the background color; you must add \usepackage{color} or \usepackage{xcolor}
|
||||
basicstyle=\footnotesize\ttfamily, % the size of the fonts that are used for the code
|
||||
breakatwhitespace=false, % sets if automatic breaks should only happen at whitespace
|
||||
breaklines=true, % sets automatic line breaking
|
||||
captionpos=b, % sets the caption-position to bottom
|
||||
commentstyle=\color{color_comment}, % comment style
|
||||
% deletekeywords={...}, % if you want to delete keywords from the given language
|
||||
% escapeinside={\%*}{*)}, % if you want to add LaTeX within your code
|
||||
extendedchars=true, % lets you use non-ASCII characters; for 8-bits encodings only, does not work with UTF-8
|
||||
frame=none, % adds a frame around the code
|
||||
keepspaces=true, % keeps spaces in text, useful for keeping indentation of code (possibly needs columns=flexible)
|
||||
keywordstyle=\color{blue}, % keyword style
|
||||
morekeywords={*,...}, % if you want to add more keywords to the set
|
||||
numbers=left, % where to put the line-numbers; possible values are (none, left, right)
|
||||
numbersep=5pt, % how far the line-numbers are from the code
|
||||
numberstyle=\tiny\color{color_linenum}, % the style that is used for the line-numbers
|
||||
rulecolor=\color{black}, % if not set, the frame-color may be changed on line-breaks within not-black text (e.g. comments (green here))
|
||||
showspaces=false, % show spaces everywhere adding particular underscores; it overrides 'showstringspaces'
|
||||
showstringspaces=false, % underline spaces within strings only
|
||||
showtabs=false, % show tabs within strings adding particular underscores
|
||||
stepnumber=1, % the step between two line-numbers. If it's 1, each line will be numbered
|
||||
stringstyle=\color{color_strings}, % string literal style
|
||||
tabsize=4, % sets default tabsize to 2 spaces
|
||||
% title=\lstname, % show the filename of files included with \lstinputlisting; also try caption instead of title
|
||||
% inputencoding=utf8/latin1 % To accept utf8 encoding
|
||||
}
|
||||
|
||||
\lstset{literate=
|
||||
{á}{{\'a}}1 {é}{{\'e}}1 {í}{{\'i}}1 {ó}{{\'o}}1 {ú}{{\'u}}1
|
||||
{Á}{{\'A}}1 {É}{{\'E}}1 {Í}{{\'I}}1 {Ó}{{\'O}}1 {Ú}{{\'U}}1
|
||||
{à}{{\`a}}1 {è}{{\`e}}1 {ì}{{\`i}}1 {ò}{{\`o}}1 {ù}{{\`u}}1
|
||||
{À}{{\`A}}1 {È}{{\'E}}1 {Ì}{{\`I}}1 {Ò}{{\`O}}1 {Ù}{{\`U}}1
|
||||
{ä}{{\"a}}1 {ë}{{\"e}}1 {ï}{{\"i}}1 {ö}{{\"o}}1 {ü}{{\"u}}1
|
||||
{Ä}{{\"A}}1 {Ë}{{\"E}}1 {Ï}{{\"I}}1 {Ö}{{\"O}}1 {Ü}{{\"U}}1
|
||||
{â}{{\^a}}1 {ê}{{\^e}}1 {î}{{\^i}}1 {ô}{{\^o}}1 {û}{{\^u}}1
|
||||
{Â}{{\^A}}1 {Ê}{{\^E}}1 {Î}{{\^I}}1 {Ô}{{\^O}}1 {Û}{{\^U}}1
|
||||
{œ}{{\oe}}1 {Œ}{{\OE}}1 {æ}{{\ae}}1 {Æ}{{\AE}}1 {ß}{{\ss}}1
|
||||
{ű}{{\H{u}}}1 {Ű}{{\H{U}}}1 {ő}{{\H{o}}}1 {Ő}{{\H{O}}}1
|
||||
{ç}{{\c c}}1 {Ç}{{\c C}}1 {ø}{{\o}}1 {å}{{\r a}}1 {Å}{{\r A}}1
|
||||
{€}{{\EUR}}1 {£}{{\pounds}}1 {¬}{{$\lnot$}}1 {∞}{{$\infty$}}1
|
||||
}
|
||||
|
||||
\newcommand{\true}{\lstinline$true$}
|
||||
\newcommand{\false}{\lstinline$false$}
|
||||
|
||||
\newcommand{\lstbash}[1]{\lstinline[language=bash]$#1$}
|
||||
\newcommand{\lstocaml}[1]{\lstinline[language=Caml]$#1$}
|
||||
\newcommand{\lstcpp}[1]{\lstinline[language=C++]$#1$}
|
||||
\newcommand{\lstc}[1]{\lstinline[language=C]$#1$}
|
||||
\newcommand{\lstpython}[1]{\lstinline[language=python]$#1$}
|
||||
|
11
texlib/todo.sty
Normal file
11
texlib/todo.sty
Normal file
|
@ -0,0 +1,11 @@
|
|||
\RequirePackage{xcolor}
|
||||
|
||||
\definecolor{todobg}{HTML}{FF5F00}
|
||||
\definecolor{todofg}{HTML}{3700DA}
|
||||
\definecolor{notebg}{HTML}{87C23C}
|
||||
\definecolor{notefg}{HTML}{BC3423}
|
||||
|
||||
\newcommand{\qtodo}[1]{\colorbox{todobg}{\textcolor{todofg}{#1}}}
|
||||
\newcommand{\todo}[1]{\qtodo{\textbf{TODO:}\,#1}}
|
||||
\newcommand{\qnote}[1]{\colorbox{notebg}{\textcolor{notefg}{#1}}}
|
||||
\newcommand{\tnote}[1]{\qnote{\textbf{NOTE:}\,#1}}
|
Loading…
Reference in a new issue